This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[COMMIT] Disentangle SPARC Linux from Solaris


It doesn't really make sense anymore for the Linux targets to be based
on thee Solaris targets.

Committed,

Mark


Index: ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>

	* sparc-linux-tdep.c: Update copyright year.
	(sparc32_linux_init_abi): Set skip_trampoline_code and
	solib_svr4_fetch_link_map_offsets.  Set TDEP->plt_entry_size.
	Don't set software_single_step and don't call
	sparc32_sol2_init_abi.
	* sparc64-linux-tdep.c: Update copyright year.
	(sparc64_linux_init_abi): Set skip_trampoline_code and
	solib_svr4_fetch_link_map_offsets.  Set TDEP->plt_entry_size.
	Don't set software_single_step and don't call
	sparc64_sol2_init_abi.

Index: sparc-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparc-linux-tdep.c,v
retrieving revision 1.11
diff -u -p -r1.11 sparc-linux-tdep.c
--- sparc-linux-tdep.c 21 Apr 2005 22:04:04 -0000 1.11
+++ sparc-linux-tdep.c 22 Apr 2005 19:04:19 -0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux SPARC.
 
-   Copyright 2003, 2004 Free Software Foundation, Inc.
+   Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -144,14 +144,19 @@ sparc32_linux_sigframe_init (const struc
 static void
 sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
   tramp_frame_prepend_unwinder (gdbarch, &sparc32_linux_sigframe);
   tramp_frame_prepend_unwinder (gdbarch, &sparc32_linux_rt_sigframe);
 
-  /* GNU/Linux is very similar to Solaris ...  */
-  sparc32_sol2_init_abi (info, gdbarch);
-
-  /* ... but doesn't have kernel-assisted single-stepping support.  */
-  set_gdbarch_software_single_step (gdbarch, sparc_software_single_step);
+  /* GNU/Linux has SVR4-style shared libraries...  */
+  set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+
+  /* ...which means that we need some special handling when doing
+     prologue analysis.  */
+  tdep->plt_entry_size = 12;
 
   /* GNU/Linux doesn't support the 128-bit `long double' from the psABI.  */
   set_gdbarch_long_double_bit (gdbarch, 64);
Index: sparc64-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparc64-linux-tdep.c,v
retrieving revision 1.6
diff -u -p -r1.6 sparc64-linux-tdep.c
--- sparc64-linux-tdep.c 21 Apr 2005 22:04:04 -0000 1.6
+++ sparc64-linux-tdep.c 22 Apr 2005 19:04:20 -0000
@@ -1,6 +1,6 @@
 /* Target-dependent code for GNU/Linux UltraSPARC.
 
-   Copyright 2003, 2004 Free Software Foundation, Inc.
+   Copyright 2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -106,11 +106,14 @@ sparc64_linux_init_abi (struct gdbarch_i
 
   tramp_frame_prepend_unwinder (gdbarch, &sparc64_linux_rt_sigframe);
 
-  /* GNU/Linux is very similar to Solaris ...  */
-  sparc64_sol2_init_abi (info, gdbarch);
-
-  /* ... but doesn't have kernel-assisted single-stepping support.  */
-  set_gdbarch_software_single_step (gdbarch, sparc_software_single_step);
+  /* GNU/Linux has SVR4-style shared libraries...  */
+  set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, svr4_lp64_fetch_link_map_offsets);
+
+  /* ...which means that we need some special handling when doing
+     prologue analysis.  */
+  tdep->plt_entry_size = 16;
 
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]