This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Moving to GDB_MULTI_ARCH_PARTIAL
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: gdb at sources dot redhat dot com
- Cc: Richard dot Earnshaw at arm dot com
- Date: Wed, 06 Feb 2002 17:21:07 +0000
- Subject: Moving to GDB_MULTI_ARCH_PARTIAL
- Organization: ARM Ltd.
- Reply-to: Richard dot Earnshaw at arm dot com
I'm trying to get the ARM target building now at multi-arch partial. It
seems that the auto-generated definitions at this level are to an extent
inconsistent.
For example, gdbarch_validate() requires that PUSH_ARGUMENTS is fully
implemented as a multi-arch call, but the code in gdbarch.h does not fault
a partial definition of this.
That is, in gdbarch.h we have
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined (PUSH_ARGUMENTS)
#error "Non multi-arch definition of PUSH_ARGUMENTS"
#endif
#if GDB_MULTI_ARCH
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (PUSH_ARGUMENTS)
#define PUSH_ARGUMENTS(nargs, args, sp, struct_return, struct_addr)
(gdbarch_pus
h_arguments (current_gdbarch, nargs, args, sp, struct_return, struct_addr))
#endif
#endif
but then in gdbarch_validate,
if ((GDB_MULTI_ARCH >= 1)
&& (gdbarch->push_arguments == 0))
fprintf_unfiltered (log, "\n\tpush_arguments");
Surely these two should be brought into line (one tests with ">" and the
other with ">=").
R.