[GDB][PR gdb/20457] Fix builds broken by proc-service changes.
Matthew Wahab
matthew.wahab@foss.arm.com
Fri Aug 12 14:16:00 GMT 2016
Hello,
GLIBC BZ#20311 introduced a change to install proc_service.h so that gdb
didn't have to use the version it embeds in gdb_proc_service.h. The
embedded version is guarded by HAVE_PROC_SERVICE_H and
gdb_proc_service.h has a number other of includes and definitions, all
of which are uncondional except for an include for gregset.h. This is
only included if HAVE_PROC_SERIVCE_H is not defined.
This causes a build failure when cross compiling gdb with the latest
glibc because type definitions in gregset are used independently of
HAVE_PROC_SERIVCE_H. In particular, they are used in gdb_proc_service.h
when PRFPREGSET_T_BROKEN is set.
The error messages on the failure are
----
binutils-gdb/gdb/gdb_proc_service.h:173:9: error: âgdb_fpregset_tâ does
not name a type; did you mean âelf_fpregset_tâ?
typedef gdb_fpregset_t gdb_prfpregset_t;
^~~~~~~~~~~~~~
elf_fpregset_t
binutils-gdb/gdb/gdb_proc_service.h:173:9: error: âgdb_fpregset_tâ does
not name a type; did you mean âelf_fpregset_tâ?
typedef gdb_fpregset_t gdb_prfpregset_t;
^~~~~~~~~~~~~~
elf_fpregset_t
binutils-gdb/gdb/proc-service.c:218:15: error: âgdb_prfpregset_tâ does
not name a type; did you mean âgdb_fpregset_tâ?
const gdb_prfpregset_t *fpregset)
^~~~~~~~~~~~~~~~
gdb_fpregset_t
----
This patch moves the include for gregset.h to before the code guarded by
HAVE_PROC_SERIVCE_H, so that it is always included. This is enough to
fix the build.
The macro PRFPREGSET_T_BROKEN is set by the configure script which uses
AC_TRY_RUN to test the sizeof (prfregset_t) and is always set for
cross-compiled builds. It's probably better to do the test using
AC_CHECK_SIZEOF, so that cross-compiled build get the correct value.
I'll send a follow-up patch to do that.
Tested by building gdb for target and host aarch64-none-linux-gnu
against previous and current glibc and by cross-compiling for
aarch64-none-linux-gnu with new glibc on an x86_64-pc-linux-gnu host.
Is this ok?
Matthew
2016-08-12 Matthew Wahab <matthew.wahab@arm.com>
PR gdb/20457
* gdb_proc_service.h: Add an include of gregset.h
[!HAVE_PROC_SERVICE_H]: Remove the include of gregset.h.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-GDB-Fix-builds-broken-by-proc-service-changes.patch
Type: text/x-patch
Size: 1155 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20160812/c41ff3b9/attachment.bin>
More information about the Gdb-patches
mailing list