* i386-tdep.c: Include "objfiles.h".
authorMark Kettenis <kettenis@gnu.org>
Fri, 23 Aug 2002 19:26:15 +0000 (19:26 +0000)
committerMark Kettenis <kettenis@gnu.org>
Fri, 23 Aug 2002 19:26:15 +0000 (19:26 +0000)
(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 '.'.

gdb/ChangeLog
gdb/config/i386/tm-i386v4.h
gdb/i386-tdep.c

index 9532614..ea6156c 100644 (file)
@@ -1,5 +1,11 @@
 2002-08-23  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 '.'.
+
        * linux-proc.c (struct linux_corefile_thread_data): Add num_notes
        member.
        (linux_corefile_thread_callback): Increase args->num_notes.
index bfc4bb2..9363327 100644 (file)
 /* 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 */
index 4230136..233049d 100644 (file)
@@ -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"
@@ -1370,6 +1371,10 @@ i386_svr4_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* 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);