Package: gdb Version: 7.12-6+ia64.1 Severity: normal Tags: patch User: debian-ia64@lists.debian.org Usertags: ia64
Dear Maintainer, gdb 8.1 FTBFS on ia64 because an internal API change was not fully propagated across all callers. This is fixed in upstream git commit 5d691c8829d0e5c4c4b9cfb147c8a873ce18085b, which is included here for your convenience. Jason -- System Information: Debian Release: buster/sid APT prefers unreleased APT policy: (500, 'unreleased'), (500, 'unstable') Architecture: ia64 Kernel: Linux 4.17.0-3-mckinley (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages gdb depends on: ii libc6.1 2.27-5 ii libexpat1 2.2.6-1 ii liblzma5 5.2.2-1.3+b1 ii libncurses5 6.1+20180714-1 ii libpython3.6 3.6.6-2 ii libreadline7 7.0-5 ii libtinfo5 6.1+20180714-1 ii zlib1g 1:1.2.11.dfsg-1 Versions of packages gdb recommends: ii libc6.1-dbg [libc-dbg] 2.27-5 Versions of packages gdb suggests: pn gdb-doc <none> pn gdbserver <none> -- no debconf information
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index 0df62e26ab..2fab60c1d0 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -69,6 +69,7 @@ struct ia64_table_entry }; static struct ia64_table_entry *ktab = NULL; +static gdb::optional<gdb::byte_vector> ktab_buf; #endif @@ -2647,11 +2648,9 @@ ia64_access_mem (unw_addr_space_t as, } /* Call low-level function to access the kernel unwind table. */ -static LONGEST -getunwind_table (gdb_byte **buf_p) +static gdb::optional<gdb::byte_vector> +getunwind_table () { - LONGEST x; - /* FIXME drow/2005-09-10: This code used to call ia64_linux_xfer_unwind_table directly to fetch the unwind table for the currently running ia64-linux kernel. That data should @@ -2660,10 +2659,8 @@ getunwind_table (gdb_byte **buf_p) we should find a way to override the corefile layer's xfer_partial method. */ - x = target_read_alloc (current_top_target (), TARGET_OBJECT_UNWIND_TABLE, - NULL, buf_p); - - return x; + return target_read_alloc (current_top_target (), TARGET_OBJECT_UNWIND_TABLE, + NULL); } /* Get the kernel unwind table. */ @@ -2674,15 +2671,12 @@ get_kernel_table (unw_word_t ip, unw_dyn_info_t *di) if (!ktab) { - gdb_byte *ktab_buf; - LONGEST size; - - size = getunwind_table (&ktab_buf); - if (size <= 0) + ktab_buf = getunwind_table (); + if (!ktab_buf) return -UNW_ENOINFO; - ktab = (struct ia64_table_entry *) ktab_buf; - ktab_size = size; + ktab = (struct ia64_table_entry *) ktab_buf->data (); + ktab_size = ktab_buf->size (); for (etab = ktab; etab->start_offset; ++etab) etab->info_offset += KERNEL_START;