X-Original-To: alpine-aports@lists.alpinelinux.org Received: from mail-qt0-f193.google.com (mail-qt0-f193.google.com [209.85.216.193]) by lists.alpinelinux.org (Postfix) with ESMTP id 7C42C5C3AE6 for ; Fri, 17 Mar 2017 11:02:57 +0000 (GMT) Received: by mail-qt0-f193.google.com with SMTP id r5so8988808qtb.2 for ; Fri, 17 Mar 2017 04:02:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=flatglobe.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references; bh=41CMsxdXZDbCWc9xvuZGGgSm4n6HEKwXAVTDQIVuRaQ=; b=gb2fiYDGXdvQPahJ/GTIt8jdf6nHY6IAn2v7zC3O1PhJ9obISLx5+QYkDy0qUmj6I8 imURwnPn2KV2bO6tiPYccXXwD0Tfs4BGVMkcCAQF6xzpvaaHZKBjT+iEjtDhb+Gx4PJe QsyYnARiFiq0Pig4ZZRCZoJlH3GyUr8yAyZcs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=41CMsxdXZDbCWc9xvuZGGgSm4n6HEKwXAVTDQIVuRaQ=; b=qk+ywAYukk1gST6Lqu3UETtd5MiFMM3I60bCsE5EfO04OED9qfEMleWeYoEURYICf7 NmLB/H8nWBoP5X9NL4Pol9YzL4prnU0OdjKwwnN19hAQjVt4tS/TdPjUn+otlu7tp4wA fQXh1yzU8jB4ugra0FQLsexpjVyIlUqJXoU7W+unZWdwZF2RPFj0xm4ibX8GrKPLxpOK eaLIzyepWXUsMTnFJxpQQYCokETDHTGzx5hVJ6LVfz7zjGZSAj3kVVM5J0b60Tt0BiRz 1eXUK+9SzHb4s/sNdGYSjLKbSfKnd7vMC5pRBxcf7muigtU+D9jX9obobfO8OJNpGFK7 H1xA== X-Gm-Message-State: AFeK/H3xjj4urYiK9eTxUMtc9VOk5dpU6+JRN3CtwXqwOg+cWOLRgS+rBJUjXQFwbHEcMw== X-Received: by 10.237.42.194 with SMTP id t60mr14174846qtd.269.1489748576784; Fri, 17 Mar 2017 04:02:56 -0700 (PDT) Received: from localhost.localdomain (cpe-204-210-151-44.hvc.res.rr.com. [204.210.151.44]) by smtp.gmail.com with ESMTPSA id y3sm2854582qke.59.2017.03.17.04.02.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 17 Mar 2017 04:02:55 -0700 (PDT) From: "Tuan M. Hoang" To: alpine-aports@lists.alpinelinux.org Subject: [alpine-aports] [PATCH 2/7] main/gdb: add s390x support Date: Fri, 17 Mar 2017 07:02:46 -0400 Message-Id: <20170317110246.22700-1-tmhoang@flatglobe.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170317110046.22642-1-tmhoang@flatglobe.org> References: <20170317110046.22642-1-tmhoang@flatglobe.org> X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: --- main/gdb/APKBUILD | 8 +- main/gdb/s390x-use-elf-gdb_fpregset_t.patch | 156 ++++++++++++++++++++++++++++ 2 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 main/gdb/s390x-use-elf-gdb_fpregset_t.patch diff --git a/main/gdb/APKBUILD b/main/gdb/APKBUILD index 8b0b8f5d31..cce676fa8e 100644 --- a/main/gdb/APKBUILD +++ b/main/gdb/APKBUILD @@ -10,7 +10,8 @@ depends= makedepends="ncurses-dev expat-dev texinfo readline-dev python2-dev zlib-dev autoconf automake libtool linux-headers perl" subpackages="$pkgname-doc" -source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz" +source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz + s390x-use-elf-gdb_fpregset_t.patch" builddir="$srcdir"/$pkgname-$pkgver build () { @@ -53,6 +54,5 @@ package() { rm -rf "$pkgdir"/usr/lib } -md5sums="193453347ddced7acb6b1cd2ee8f2e4b gdb-7.12.1.tar.xz" -sha256sums="4607680b973d3ec92c30ad029f1b7dbde3876869e6b3a117d8a7e90081113186 gdb-7.12.1.tar.xz" -sha512sums="0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8 gdb-7.12.1.tar.xz" +sha512sums="0ac8d0a495103611ef41167a08313a010dce6ca4c6d827cbe8558a0c1a1a8a6bfa53f1b7704251289cababbfaaf9e075550cdf741a54d6cd9ca3433d910efcd8 gdb-7.12.1.tar.xz +c3872eb51b3a42c5a33f8b7542c37fab7b0548560202e5eda740a2176cdfadff9bf73c6d26bceb225829dcb509c823acae2ccc796237ac97ebe552b82582bdf5 s390x-use-elf-gdb_fpregset_t.patch" diff --git a/main/gdb/s390x-use-elf-gdb_fpregset_t.patch b/main/gdb/s390x-use-elf-gdb_fpregset_t.patch new file mode 100644 index 0000000000..2b3f318da7 --- /dev/null +++ b/main/gdb/s390x-use-elf-gdb_fpregset_t.patch @@ -0,0 +1,156 @@ +The s390 versions of fill_gregset / supply_gregset and fill_fpregset / +supply_fpregset declare the data structure to be filled or supplied from +as gregset_t and fpregset_t, respectively, instead of gdb_gregset_t and +gdb_fpregset_t. This is incompatible with the declaration of these +functions in gregset.h. +gdb/ChangeLog: + + * s390-linux-nat.c (supply_gregset, fill_gregset, fetch_regs) + (store_regs): Replace gregset_t by gdb_gregset_t. + (supply_fpregset, fill_fpregset, fetch_fpregs, store_fpregs): + Replace fpregset_t by gdb_fpregset_t. +Credit to Andreas Arnez at IBM + +--- + gdb/s390-linux-nat.c | 34 ++++++++++++++++++---------------- + 1 file changed, 18 insertions(+), 16 deletions(-) + +diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c +index 55a3899..84c304f 100644 +--- a/gdb/s390-linux-nat.c ++++ b/gdb/s390-linux-nat.c +@@ -100,7 +100,7 @@ static const struct regset s390_64_gregset = + make them look like 32-bit registers. */ + + void +-supply_gregset (struct regcache *regcache, const gregset_t *regp) ++supply_gregset (struct regcache *regcache, const gdb_gregset_t *regp) + { + #ifdef __s390x__ + struct gdbarch *gdbarch = get_regcache_arch (regcache); +@@ -111,7 +111,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) + gdb_byte buf[4]; + + regcache_supply_regset (&s390_64_gregset, regcache, -1, +- regp, sizeof (gregset_t)); ++ regp, sizeof (gdb_gregset_t)); + pswm = extract_unsigned_integer ((const gdb_byte *) regp + + S390_PSWM_OFFSET, 8, byte_order); + pswa = extract_unsigned_integer ((const gdb_byte *) regp +@@ -126,7 +126,7 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) + #endif + + regcache_supply_regset (&s390_gregset, regcache, -1, regp, +- sizeof (gregset_t)); ++ sizeof (gdb_gregset_t)); + } + + /* Fill register REGNO (if it is a general-purpose register) in +@@ -134,14 +134,15 @@ supply_gregset (struct regcache *regcache, const gregset_t *regp) + do this for all registers. */ + + void +-fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno) ++fill_gregset (const struct regcache *regcache, gdb_gregset_t *regp, ++ int regno) + { + #ifdef __s390x__ + struct gdbarch *gdbarch = get_regcache_arch (regcache); + if (gdbarch_ptr_bit (gdbarch) == 32) + { + regcache_collect_regset (&s390_64_gregset, regcache, regno, +- regp, sizeof (gregset_t)); ++ regp, sizeof (gdb_gregset_t)); + + if (regno == -1 + || regno == S390_PSWM_REGNUM || regno == S390_PSWA_REGNUM) +@@ -178,26 +179,27 @@ fill_gregset (const struct regcache *regcache, gregset_t *regp, int regno) + #endif + + regcache_collect_regset (&s390_gregset, regcache, regno, regp, +- sizeof (gregset_t)); ++ sizeof (gdb_gregset_t)); + } + + /* Fill GDB's register array with the floating-point register values + in *REGP. */ + void +-supply_fpregset (struct regcache *regcache, const fpregset_t *regp) ++supply_fpregset (struct regcache *regcache, const gdb_fpregset_t *regp) + { + regcache_supply_regset (&s390_fpregset, regcache, -1, regp, +- sizeof (fpregset_t)); ++ sizeof (gdb_fpregset_t)); + } + + /* Fill register REGNO (if it is a general-purpose register) in + *REGP with the value in GDB's register array. If REGNO is -1, + do this for all registers. */ + void +-fill_fpregset (const struct regcache *regcache, fpregset_t *regp, int regno) ++fill_fpregset (const struct regcache *regcache, gdb_fpregset_t *regp, ++ int regno) + { + regcache_collect_regset (&s390_fpregset, regcache, regno, regp, +- sizeof (fpregset_t)); ++ sizeof (gdb_fpregset_t)); + } + + /* Find the TID for the current inferior thread to use with ptrace. */ +@@ -217,7 +219,7 @@ s390_inferior_tid (void) + static void + fetch_regs (struct regcache *regcache, int tid) + { +- gregset_t regs; ++ gdb_gregset_t regs; + ptrace_area parea; + + parea.len = sizeof (regs); +@@ -226,7 +228,7 @@ fetch_regs (struct regcache *regcache, int tid) + if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0) + perror_with_name (_("Couldn't get registers")); + +- supply_gregset (regcache, (const gregset_t *) ®s); ++ supply_gregset (regcache, (const gdb_gregset_t *) ®s); + } + + /* Store all valid general-purpose registers in GDB's register cache +@@ -234,7 +236,7 @@ fetch_regs (struct regcache *regcache, int tid) + static void + store_regs (const struct regcache *regcache, int tid, int regnum) + { +- gregset_t regs; ++ gdb_gregset_t regs; + ptrace_area parea; + + parea.len = sizeof (regs); +@@ -254,7 +256,7 @@ store_regs (const struct regcache *regcache, int tid, int regnum) + static void + fetch_fpregs (struct regcache *regcache, int tid) + { +- fpregset_t fpregs; ++ gdb_fpregset_t fpregs; + ptrace_area parea; + + parea.len = sizeof (fpregs); +@@ -263,7 +265,7 @@ fetch_fpregs (struct regcache *regcache, int tid) + if (ptrace (PTRACE_PEEKUSR_AREA, tid, (long) &parea, 0) < 0) + perror_with_name (_("Couldn't get floating point status")); + +- supply_fpregset (regcache, (const fpregset_t *) &fpregs); ++ supply_fpregset (regcache, (const gdb_fpregset_t *) &fpregs); + } + + /* Store all valid floating-point registers in GDB's register cache +@@ -271,7 +273,7 @@ fetch_fpregs (struct regcache *regcache, int tid) + static void + store_fpregs (const struct regcache *regcache, int tid, int regnum) + { +- fpregset_t fpregs; ++ gdb_fpregset_t fpregs; + ptrace_area parea; + + parea.len = sizeof (fpregs); +-- +1.8.5.6 + -- 2.11.1 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---