From c0867626d277101afcead91e94f20cbe89a3aced Mon Sep 17 00:00:00 2001 From: Sergio Durigan Junior Date: Fri, 29 Jun 2018 21:36:42 -0400 Subject: [PATCH] Add missing parameter to 'amd64_create_target_description' (and unbreak build) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit While building gdbserver on GNU/Linux, the build failed with: ../../../binutils-gdb/gdb/gdbserver/linux-x86-tdesc.c: In function ‘const target_desc* amd64_linux_read_description(uint64_t, bool)’: ../../../binutils-gdb/gdb/gdbserver/linux-x86-tdesc.c:121:67: error: too few arguments to function ‘target_desc* amd64_create_target_description(uint64_t, bool, bool, bool)’ *tdesc = amd64_create_target_description (xcr0, is_x32, true); ^ In file included from ../../../binutils-gdb/gdb/gdbserver/linux-x86-tdesc.c:26:0: ../../../binutils-gdb/gdb/gdbserver/../arch/amd64.h:21:14: note: declared here target_desc *amd64_create_target_description (uint64_t xcr0, bool is_x32, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ According to Joel Brobecker: > I think the parameter should be set to "true". Otherwise, it will > not include the fs_base and gs_base register in the list of registers. > Although the name of the source file says x86, the code itself is > protected by... > > #ifdef __x86_64__ > > ... and is inside a function called amd64_linux_read_description. > I also verified that this file gets compiled on amd64-linux platforms. > See gdb/gdbserver/configure.srv: > > x86_64-*-linux*) srv_regobj="$srv_amd64_linux_regobj $srv_i386_linux_regobj" > > The last piece of confirmation is that setting the parameter to "true" > provides the behavior before the parameter was added; and the reason > for adding the parameter was to remove the {fs,gs}_base registers > from the list for Windows only. Therefore I'm pushing the patch to unbreak the build. gdb/gdbserver/ChangeLog: 2018-06-29 Joel Brobecker * linux-x86-tdesc.c (amd64_linux_read_description): Add missing parameter in call to 'amd64_create_target_description'. --- gdb/gdbserver/ChangeLog | 5 +++++ gdb/gdbserver/linux-x86-tdesc.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 2fd2d90a49c..c90de7c98ab 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2018-06-29 Joel Brobecker + + * linux-x86-tdesc.c (amd64_linux_read_description): Add missing + parameter in call to 'amd64_create_target_description'. + 2018-06-28 Jan Kratochvil * x86-tdesc.h: Remove executable permission flag. diff --git a/gdb/gdbserver/linux-x86-tdesc.c b/gdb/gdbserver/linux-x86-tdesc.c index 358659b2951..c3aa20c982c 100644 --- a/gdb/gdbserver/linux-x86-tdesc.c +++ b/gdb/gdbserver/linux-x86-tdesc.c @@ -118,7 +118,7 @@ amd64_linux_read_description (uint64_t xcr0, bool is_x32) if (*tdesc == NULL) { - *tdesc = amd64_create_target_description (xcr0, is_x32, true); + *tdesc = amd64_create_target_description (xcr0, is_x32, true, true); init_target_desc (*tdesc, amd64_expedite_regs); } -- 2.30.2