[PATCH] Fix compiler warnings building against Linux uapi headers

enh enh@google.com
Mon Jun 22 19:09:00 GMT 2015


building gdb against the Linux kernel's uapi headers (as used by
Android's bionic C library) causes warnings such as:

gdb/gdbserver/linux-arm-low.c:122:0: warning: "HWCAP_VFP" redefined
[enabled by default]

because linux-arm-low.c has #defines like this:

 #define HWCAP_VFP       64

but the current Linux kernel #define looks like this instead:

 #define HWCAP_VFP (1 << 6)

I don't know whether you still need to support versions of glibc that
don't have these constants at all; if you don't, a better fix would be
to remove gdbserver's duplicate definitions. But on the assumption
that you do need to support old versions of glibc, here's a patch to
avoid the redefinition...

2015-06-22  Elliott Hughes  <enh@google.com>

	* linux-arm-low.c: Only define HWCAP_VFP and friends if they're
	not already defined. Fixes build against Linux uapi headers.

diff --git a/gdb/gdbserver/linux-arm-low.c b/gdb/gdbserver/linux-arm-low.c
index 303d9c8..f199b1c 100644
--- a/gdb/gdbserver/linux-arm-low.c
+++ b/gdb/gdbserver/linux-arm-low.c
@@ -119,11 +119,21 @@ struct arch_lwp_info
 static unsigned long arm_hwcap;

 /* These are in <asm/elf.h> in current kernels.  */
+#ifndef HWCAP_VFP
 #define HWCAP_VFP       64
+#endif
+#ifndef HWCAP_IWMMXT
 #define HWCAP_IWMMXT    512
+#endif
+#ifndef HWCAP_NEON
 #define HWCAP_NEON      4096
+#endif
+#ifndef HWCAP_VFPv3
 #define HWCAP_VFPv3     8192
+#endif
+#ifndef HWCAP_VFPv3D16
 #define HWCAP_VFPv3D16  16384
+#endif

 #ifdef HAVE_SYS_REG_H
 #include <sys/reg.h>



More information about the Gdb-patches mailing list