From cc397f3a236509257acfd5cd17c2f15f87a482d7 Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Sun, 10 Sep 2017 12:16:54 -0400 Subject: [PATCH] Fix build breakage on GNU/Linux AArch64 This patch fixes the build breakage that has been happening on AArch64 since September 5th. The breakage was introduced by the following commit: author Yao Qi Tue, 5 Sep 2017 04:54:52 -0400 (09:54 +0100) committer Yao Qi Tue, 5 Sep 2017 04:54:52 -0400 (09:54 +0100) commit f7000548a2b79d7e5cb924468117ca4245e6b820 Use VEC for target_desc.reg_defs The build log for this commit can be seen here: And the underlying problem is that the code is not calling the new function "allocate_target_description" to allocate the "struct target_desc" using "new" instead of XNEW, which end up not properly initializing the fields of the structure. Regtested on BuildBot. gdb/gdbserver/ChangeLog: 2017-09-10 Sergio Durigan Junior * linux-low.c (handle_extended_wait): Use "allocate_target_description" instead of "XNEW". * linux-x86-low.c (initialize_low_arch): Likewise. --- gdb/gdbserver/ChangeLog | 6 ++++++ gdb/gdbserver/linux-low.c | 2 +- gdb/gdbserver/linux-x86-low.c | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index ac73db2b89..345abb3e73 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,9 @@ +2017-09-10 Sergio Durigan Junior + + * linux-low.c (handle_extended_wait): Use + "allocate_target_description" instead of "XNEW". + * linux-x86-low.c (initialize_low_arch): Likewise. + 2017-09-05 Yao Qi * configure.srv (srv_i386_regobj): Remove. diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 6f4b26afb9..a7859cce88 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -570,7 +570,7 @@ handle_extended_wait (struct lwp_info **orig_event_lwp, int wstat) clone_all_breakpoints (child_thr, event_thr); - tdesc = XNEW (struct target_desc); + tdesc = allocate_target_description (); copy_target_description (tdesc, parent_proc->tdesc); child_proc->tdesc = tdesc; diff --git a/gdb/gdbserver/linux-x86-low.c b/gdb/gdbserver/linux-x86-low.c index f09871ac36..844a165666 100644 --- a/gdb/gdbserver/linux-x86-low.c +++ b/gdb/gdbserver/linux-x86-low.c @@ -2900,7 +2900,7 @@ initialize_low_arch (void) { /* Initialize the Linux target descriptions. */ #ifdef __x86_64__ - tdesc_amd64_linux_no_xml = XNEW (struct target_desc); + tdesc_amd64_linux_no_xml = allocate_target_description (); copy_target_description (tdesc_amd64_linux_no_xml, amd64_linux_read_description (X86_XSTATE_SSE_MASK, false)); @@ -2911,7 +2911,7 @@ initialize_low_arch (void) initialize_low_tdesc (); #endif - tdesc_i386_linux_no_xml = XNEW (struct target_desc); + tdesc_i386_linux_no_xml = allocate_target_description (); copy_target_description (tdesc_i386_linux_no_xml, i386_linux_read_description (X86_XSTATE_SSE_MASK)); tdesc_i386_linux_no_xml->xmltarget = xmltarget_i386_linux_no_xml; -- 2.34.1