Current trunk GDB (and gdb-7.8.1 too) fails to build on Aarch64 when
-fno-common is enabled. It fails during link stage due to multiple
definition of `tdesc_aarch64':
...
[ 199s] aarch64-linux-nat.o: In function `initialize_tdesc_aarch64':
[ 199s]
/home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/features/aarch64.c:11:
multiple definition of `tdesc_aarch64'
[ 199s]
aarch64-tdep.o:/home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/objfiles.h:540:
first defined here
[ 199s] aarch64-linux-nat.o: In function `initialize_tdesc_aarch64':
[ 199s]
/home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/features/aarch64.c:11:
multiple definition of `tdesc_aarch64'
[ 199s]
aarch64-tdep.o:/home/abuild/rpmbuild/BUILD/gdb-7.8.1/gdb/objfiles.h:540:
first defined here
[ 199s] collect2: error: ld returned 1 exit status
[ 199s] make[2]: *** [gdb] Error 1
...
This happens because struct target_desc *tdesc_aarch64 is defined in
gdb/features/aarch64.c, which is included by two files
(gdb/aarch64-linux-nat.c and gdb/aarch64-tdep.c).
gdb/Changelog
2015-02-17 Max Ostapenko <m.ostapenko@partner.samsung.com>
PR gdb/17984
* aarch64-linux-nat.c: Don't include features/aarch64.c anymore.
(aarch64_linux_read_description): Remove initialize_tdesc_aarch64
call.
* aarch64-tdep.h (tdesc_aarch64): Declare.
+2015-02-17 Max Ostapenko <m.ostapenko@partner.samsung.com>
+
+ PR gdb/17984
+ * aarch64-linux-nat.c: Don't include features/aarch64.c anymore.
+ (aarch64_linux_read_description): Remove initialize_tdesc_aarch64
+ call.
+ * aarch64-tdep.h (tdesc_aarch64): Declare.
+
2015-02-12 Mark Wielaard <mjw@redhat.com>
* contrib/ari/gdb_ari.sh: Remove checks for "true" and "false".
#include "gregset.h"
-#include "features/aarch64.c"
-
/* Defines ps_err_e, struct ps_prochandle. */
#include "gdb_proc_service.h"
static const struct target_desc *
aarch64_linux_read_description (struct target_ops *ops)
{
- initialize_tdesc_aarch64 ();
return tdesc_aarch64;
}
struct type *vnb_type;
};
+extern struct target_desc *tdesc_aarch64;
+
#endif /* aarch64-tdep.h */