This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] Multi-arch some more i386 SVR4 bits
- From: Mark Kettenis <kettenis at chello dot nl>
- To: gdb-patches at sources dot redhat dot com
- Date: Fri, 23 Aug 2002 21:27:44 +0200 (CEST)
- Subject: [PATCH] Multi-arch some more i386 SVR4 bits
I only have to get rid of CPLUS_MARKER now :-).
Committed.
Mark
Index: ChangeLog
from Mark Kettenis <kettenis@gnu.org>
* i386-tdep.c: Include "objfiles.h".
(i386_svr4_init_abi): Set in_solib_call_trampoline and
skip_trampoline_code.
* config/i386/tm-i386v4.h: Don't include "config/tm-sysv4.h".
(CPLUS_MARKER): Define to '.'.
Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.82
diff -u -p -r1.82 i386-tdep.c
--- i386-tdep.c 18 Aug 2002 17:18:45 -0000 1.82
+++ i386-tdep.c 23 Aug 2002 19:24:55 -0000
@@ -25,6 +25,7 @@
#include "frame.h"
#include "inferior.h"
#include "gdbcore.h"
+#include "objfiles.h"
#include "target.h"
#include "floatformat.h"
#include "symfile.h"
@@ -1369,6 +1370,10 @@ i386_svr4_init_abi (struct gdbarch_info
/* System V Release 4 uses ELF. */
i386_elf_init_abi (info, gdbarch);
+
+ /* System V Release 4 has shared libraries. */
+ set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
+ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
/* FIXME: kettenis/20020511: Why do we override this function here? */
set_gdbarch_frame_chain_valid (gdbarch, generic_func_frame_chain_valid);
Index: config/i386/tm-i386v4.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/tm-i386v4.h,v
retrieving revision 1.7
diff -u -p -r1.7 tm-i386v4.h
--- config/i386/tm-i386v4.h 15 Aug 2002 18:49:52 -0000 1.7
+++ config/i386/tm-i386v4.h 23 Aug 2002 19:24:55 -0000
@@ -26,7 +26,14 @@
/* Pick up most of what we need from the generic i386 target include file. */
#include "i386/tm-i386.h"
-/* Pick up more stuff from the generic SVR4 host include file. */
-#include "config/tm-sysv4.h"
+/* It is unknown which, if any, SVR4 assemblers do not accept dollar signs
+ in identifiers. The default in G++ is to use dots instead, for all SVR4
+ systems, so we make that our default also. FIXME: There should be some
+ way to get G++ to tell us what CPLUS_MARKER it is using, perhaps by
+ stashing it in the debugging information as part of the name of an
+ invented symbol ("gcc_cplus_marker$" for example). */
+
+#undef CPLUS_MARKER
+#define CPLUS_MARKER '.'
#endif /* ifndef TM_I386V4_H */