* solib-svr4.c (legacy_svr4_fetch_link_map_offsets_hook): Remove.
authorUlrich Weigand <uweigand@de.ibm.com>
Wed, 24 Oct 2007 21:21:16 +0000 (21:21 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Wed, 24 Oct 2007 21:21:16 +0000 (21:21 +0000)
(solib_svr4_init): Initialize fetch_link_map_offsets to NULL.
* solib-svr4.h (legacy_svr4_fetch_link_map_offsets_hook): Remove.
* solib-legacy.c: Remove file.

* config/alpha/alpha-linux.mt (TDEPFILES): Remove solib-legacy.o.
* config/arm/linux.mt (TDEPFILES): Likewise.
* config/i386/i386gnu.mh (NATDEPFILES): Likewise.
* config/ia64/linux.mt (TDEPFILES): Likewise.
* config/m32r/linux.mt (TDEPFILES): Likewise.
* config/powerpc/linux.mt (TDEPFILES): Likewise.
* config/s390/s390.mt (TDEPFILES): Likewise.

* alpha-linux-tdep.c (alpha_linux_init_abi): Call
set_solib_svr4_fetch_link_map_offsets.
* i386gnu-tdep.c (i386gnu_init_abi): Likewise.
* ia64-linux-tdep.c (ia64_linux_init_abi): Likewise.

* i386gnu-tdep.c: Include "solib-svr4.h".
* Makefile.in: Update dependencies.

15 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/alpha-linux-tdep.c
gdb/config/alpha/alpha-linux.mt
gdb/config/arm/linux.mt
gdb/config/i386/i386gnu.mh
gdb/config/ia64/linux.mt
gdb/config/m32r/linux.mt
gdb/config/powerpc/linux.mt
gdb/config/s390/s390.mt
gdb/i386gnu-tdep.c
gdb/ia64-linux-tdep.c
gdb/solib-legacy.c [deleted file]
gdb/solib-svr4.c
gdb/solib-svr4.h

index dddaa24d79224dfdbd9484b9699643f90cfd8d22..1fcdf293d0868c110b020df5c62fcb5258eaffd5 100644 (file)
@@ -1,3 +1,26 @@
+2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * solib-svr4.c (legacy_svr4_fetch_link_map_offsets_hook): Remove.
+       (solib_svr4_init): Initialize fetch_link_map_offsets to NULL.
+       * solib-svr4.h (legacy_svr4_fetch_link_map_offsets_hook): Remove.
+       * solib-legacy.c: Remove file.
+
+       * config/alpha/alpha-linux.mt (TDEPFILES): Remove solib-legacy.o.
+       * config/arm/linux.mt (TDEPFILES): Likewise.
+       * config/i386/i386gnu.mh (NATDEPFILES): Likewise.
+       * config/ia64/linux.mt (TDEPFILES): Likewise.
+       * config/m32r/linux.mt (TDEPFILES): Likewise.
+       * config/powerpc/linux.mt (TDEPFILES): Likewise.
+       * config/s390/s390.mt (TDEPFILES): Likewise.
+
+       * alpha-linux-tdep.c (alpha_linux_init_abi): Call
+       set_solib_svr4_fetch_link_map_offsets.
+       * i386gnu-tdep.c (i386gnu_init_abi): Likewise.
+       * ia64-linux-tdep.c (ia64_linux_init_abi): Likewise.
+
+       * i386gnu-tdep.c: Include "solib-svr4.h".
+       * Makefile.in: Update dependencies.
+
 2007-10-24  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * i386-nto-tdep.c: Include "solib.h".
index d68a5029b0db00eda30431c1af59032fd0f1016b..8fc1d8afc4f1ee11326d5d43a0d2653300ad6c66 100644 (file)
@@ -2138,7 +2138,8 @@ i386fbsd-tdep.o: i386fbsd-tdep.c $(defs_h) $(arch_utils_h) $(gdbcore_h) \
 i386gnu-nat.o: i386gnu-nat.c $(defs_h) $(inferior_h) $(floatformat_h) \
        $(regcache_h) $(gdb_assert_h) $(gdb_string_h) $(i386_tdep_h) \
        $(gnu_nat_h) $(i387_tdep_h) $(gregset_h)
-i386gnu-tdep.o: i386gnu-tdep.c $(defs_h) $(osabi_h) $(i386_tdep_h)
+i386gnu-tdep.o: i386gnu-tdep.c $(defs_h) $(osabi_h) $(solib_svr4_h) \
+       $(i386_tdep_h)
 i386-linux-nat.o: i386-linux-nat.c $(defs_h) $(inferior_h) $(gdbcore_h) \
        $(regcache_h) $(linux_nat_h) $(gdb_assert_h) $(gdb_string_h) \
        $(gregset_h) $(i387_tdep_h) $(i386_tdep_h) $(i386_linux_tdep_h) \
@@ -2637,7 +2638,6 @@ solib-frv.o: solib-frv.c $(defs_h) $(gdb_string_h) $(inferior_h) \
 solib-irix.o: solib-irix.c $(defs_h) $(symtab_h) $(bfd_h) $(symfile_h) \
        $(objfiles_h) $(gdbcore_h) $(target_h) $(inferior_h) $(solist_h) \
        $(solib_h) $(solib_irix_h)
-solib-legacy.o: solib-legacy.c $(defs_h) $(gdbcore_h) $(solib_svr4_h)
 solib-null.o: solib-null.c $(defs_h) $(solist_h)
 solib-osf.o: solib-osf.c $(defs_h) $(gdb_string_h) $(bfd_h) $(symtab_h) \
        $(symfile_h) $(objfiles_h) $(target_h) $(inferior_h) $(solist_h)
index 983cd510dcf60292ef024511ca83a4ed9ce41f77..4a52fe358c572c0b2d44348da9a34c9c3bb28052 100644 (file)
@@ -224,6 +224,9 @@ alpha_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
 
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, svr4_lp64_fetch_link_map_offsets);
+
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                              svr4_fetch_objfile_link_map);
index 096c6c325c1f61c6d87b13ef536a9bf6280c2d9d..c0eefa6b7d18507412850c200bf12a803ad56152 100644 (file)
@@ -1,3 +1,3 @@
 # Target: Little-endian Alpha
 TDEPFILES= alpha-tdep.o alpha-mdebug-tdep.o alpha-linux-tdep.o \
-          solib.o solib-svr4.o solib-legacy.o
+          solib.o solib-svr4.o
index 8f4a85372f759ebbc0c3bdcb19fca6e47320486d..8621b56e37d9de8f6943697cf8f269ceb445121c 100644 (file)
@@ -1,5 +1,4 @@
 # Target: ARM based machine running GNU/Linux
 TDEPFILES= arm-tdep.o arm-linux-tdep.o glibc-tdep.o solib.o \
-  solib-svr4.o solib-legacy.o symfile-mem.o \
-  corelow.o
+  solib-svr4.o symfile-mem.o corelow.o
 
index 35b3947bff6713904a1f56f2cbffa14137a48a7d..fa7f7c359c533e6ea688c902c7b9c059cc73b88f 100644 (file)
@@ -1,6 +1,6 @@
 # Host: Intel 386 running the GNU Hurd
 NATDEPFILES= i386gnu-nat.o gnu-nat.o corelow.o core-regset.o \
-            fork-child.o solib.o solib-svr4.o solib-legacy.o \
+            fork-child.o solib.o solib-svr4.o \
             notify_S.o process_reply_S.o msg_reply_S.o \
             msg_U.o exc_request_U.o exc_request_S.o
 
index 22aa1711f457a4bdc8210764aff92392235b1e6c..f56776956a151e70ac13b7856986ab775aaf543d 100644 (file)
@@ -1,3 +1,2 @@
 # Target: Intel IA-64 running GNU/Linux
-TDEPFILES= ia64-tdep.o ia64-linux-tdep.o \
-       solib.o solib-svr4.o solib-legacy.o symfile-mem.o
+TDEPFILES= ia64-tdep.o ia64-linux-tdep.o solib.o solib-svr4.o symfile-mem.o
index 1a9cfafb7f539eb0decef580725b1b107c406be5..e27fc67075ea70303448d11260219dd4addcb01e 100644 (file)
@@ -1,5 +1,5 @@
 # Target: Renesas M32R running GNU/Linux
-TDEPFILES= m32r-tdep.o m32r-linux-tdep.o remote-m32r-sdi.o glibc-tdep.o solib.o solib-svr4.o solib-legacy.o symfile-mem.o
+TDEPFILES= m32r-tdep.o m32r-linux-tdep.o remote-m32r-sdi.o glibc-tdep.o solib.o solib-svr4.o symfile-mem.o
 
 SIM_OBS = remote-sim.o
 SIM = ../sim/m32r/libsim.a
index 846f8c3e6abd486b9e3359fec14d7bc34b4ab2bb..863ebb46c35ab03e3b6f56ab1c59b00dc94b910e 100644 (file)
@@ -1,6 +1,6 @@
 # Target: Motorola PPC on Linux
 TDEPFILES= rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o solib.o \
-       solib-svr4.o solib-legacy.o corelow.o symfile-mem.o
+       solib-svr4.o corelow.o symfile-mem.o
 
 SIM_OBS = remote-sim.o
 SIM = ../sim/ppc/libsim.a
index 2299e7caf0eea1ad0eadc7b5b0e3e482ff6b775c..c9dfb249ec9a3e4ba6de892d0dbdfed822bb2471 100644 (file)
@@ -1,2 +1,2 @@
 # Target: S390 running Linux
-TDEPFILES=s390-tdep.o solib.o solib-svr4.o solib-legacy.o
+TDEPFILES=s390-tdep.o solib.o solib-svr4.o
index 9621961e5bb83079e315547b745d232d59ca68a6..4a2c75ce933cb3ff770f7d82edae4c385175b5a8 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "defs.h"
 #include "osabi.h"
+#include "solib-svr4.h"
 
 #include "i386-tdep.h"
 
@@ -29,6 +30,9 @@ i386gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* GNU uses ELF.  */
   i386_elf_init_abi (info, gdbarch);
 
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+
   tdep->jb_pc_offset = 20;     /* From <bits/setjmp.h>.  */
 }
 
index 4b8a02bb025b8e7aab45c84b87ac6713d1fcac43..1c0005b43e0449d63900f8e42556d9e20d047ba7 100644 (file)
@@ -130,6 +130,9 @@ ia64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
 
+  set_solib_svr4_fetch_link_map_offsets
+    (gdbarch, svr4_lp64_fetch_link_map_offsets);
+
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                              svr4_fetch_objfile_link_map);
diff --git a/gdb/solib-legacy.c b/gdb/solib-legacy.c
deleted file mode 100644 (file)
index e943ba5..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Provide legacy r_debug and link_map support for SVR4-like native targets.
-
-   Copyright (C) 2000, 2001, 2006, 2007 Free Software Foundation, Inc.
-
-   This file is part of GDB.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
-
-#include "defs.h"
-#include "gdbcore.h"
-#include "solib-svr4.h"
-
-#ifdef HAVE_LINK_H
-
-#ifdef HAVE_NLIST_H
-/* nlist.h needs to be included before link.h on some older *BSD systems. */
-#include <nlist.h>
-#endif
-
-#include <link.h>
-
-/* Fetch (and possibly build) an appropriate link_map_offsets structure
-   for native targets using struct definitions from link.h.  */
-
-static struct link_map_offsets *
-legacy_svr4_fetch_link_map_offsets (void)
-{
-  static struct link_map_offsets lmo;
-  static struct link_map_offsets *lmp = 0;
-#if defined (HAVE_STRUCT_LINK_MAP32)
-  static struct link_map_offsets lmo32;
-  static struct link_map_offsets *lmp32 = 0;
-#endif
-
-#ifndef offsetof
-#define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
-#endif
-#define fieldsize(TYPE, MEMBER) (sizeof (((TYPE *)0)->MEMBER))
-
-  if (lmp == 0)
-    {
-      lmp = &lmo;
-
-#ifdef HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS
-      lmo.r_version_offset = offsetof (struct r_debug, r_version);
-      lmo.r_version_size = fieldsize (struct r_debug, r_version);
-      lmo.r_map_offset = offsetof (struct r_debug, r_map);
-      lmo.r_ldsomap_offset = -1;
-
-      lmo.link_map_size = sizeof (struct link_map);
-
-      lmo.l_addr_offset = offsetof (struct link_map, l_addr);
-      lmo.l_next_offset = offsetof (struct link_map, l_next);
-      lmo.l_ld_offset = offsetof (struct link_map, l_ld);
-      lmo.l_prev_offset = offsetof (struct link_map, l_prev);
-      lmo.l_name_offset = offsetof (struct link_map, l_name);
-#else /* !defined(HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS) */
-#ifdef HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS
-      lmo.link_map_size = sizeof (struct link_map);
-
-      lmo.l_addr_offset = offsetof (struct link_map, lm_addr);
-      lmo.l_next_offset = offsetof (struct link_map, lm_next);
-      /* FIXME: Is this the right field name, or is it available at all?  */
-      lmo.l_ld_offset = offsetof (struct link_map, lm_ld);
-      lmo.l_name_offset = offsetof (struct link_map, lm_name);
-#else /* !defined(HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS) */
-#if HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS
-      lmo.link_map_size = sizeof (struct so_map);
-
-      lmo.l_addr_offset = offsetof (struct so_map, som_addr);
-      lmo.l_next_offset = offsetof (struct so_map, som_next);
-      lmo.l_name_offset = offsetof (struct so_map, som_path);
-      /* FIXME: Is the address of the dynamic table available?  */
-      lmo.l_ld_offset = -1;
-#endif /* HAVE_STRUCT_SO_MAP_WITH_SOM_MEMBERS */
-#endif /* HAVE_STRUCT_LINK_MAP_WITH_LM_MEMBERS */
-#endif /* HAVE_STRUCT_LINK_MAP_WITH_L_MEMBERS */
-    }
-
-#if defined (HAVE_STRUCT_LINK_MAP32)
-  if (lmp32 == 0)
-    {
-      lmp32 = &lmo32;
-
-      lmo32.r_version_offset = offsetof (struct r_debug32, r_version);
-      lmo32.r_version_size = fieldsize (struct r_debug32, r_version);
-      lmo32.r_map_offset = offsetof (struct r_debug32, r_map);
-      lmo32.r_ldsomap_offset = -1;
-
-      lmo32.link_map_size = sizeof (struct link_map32);
-
-      lmo32.l_addr_offset = offsetof (struct link_map32, l_addr);
-      lmo32.l_next_offset = offsetof (struct link_map32, l_next);
-      lmo32.l_prev_offset = offsetof (struct link_map32, l_prev);
-      lmo32.l_name_offset = offsetof (struct link_map32, l_name);
-    }
-#endif /* defined (HAVE_STRUCT_LINK_MAP32) */
-
-#if defined (HAVE_STRUCT_LINK_MAP32)
-  if (exec_bfd != NULL)
-    {
-      if (bfd_get_arch_size (exec_bfd) == 32)
-       return lmp32;
-    }
-  if (gdbarch_ptr_bit (current_gdbarch) == 32)
-    return lmp32;
-#endif
-  return lmp;
-}
-
-#endif /* HAVE_LINK_H */
-
-extern initialize_file_ftype _initialize_svr4_lm; /* -Wmissing-prototypes */
-
-void
-_initialize_svr4_lm (void)
-{
-#ifdef HAVE_LINK_H
-  legacy_svr4_fetch_link_map_offsets_hook = legacy_svr4_fetch_link_map_offsets;
-#endif /* HAVE_LINK_H */
-}
index c6dfe2eb128ba9a8912543fdda109707b592a9d2..36c6df0f595bcd43566a7dcbcaf701f57009915b 100644 (file)
 static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
 static int svr4_have_link_map_offsets (void);
 
-/* This hook is set to a function that provides native link map
-   offsets if the code in solib-legacy.c is linked in.  */
-struct link_map_offsets *(*legacy_svr4_fetch_link_map_offsets_hook) (void);
-
 /* Link map info to include in an allocated so_list entry */
 
 struct lm_info
@@ -1448,7 +1444,7 @@ solib_svr4_init (struct obstack *obstack)
   struct solib_svr4_ops *ops;
 
   ops = OBSTACK_ZALLOC (obstack, struct solib_svr4_ops);
-  ops->fetch_link_map_offsets = legacy_svr4_fetch_link_map_offsets_hook;
+  ops->fetch_link_map_offsets = NULL;
   return ops;
 }
 
index bb0acfe4a8ee354c8322aeaa9687e08120fd7d84..c485e9669b684dd9657aed227bfbe4ef8e74029f 100644 (file)
@@ -72,11 +72,6 @@ extern void set_solib_svr4_fetch_link_map_offsets
    link map for the given objfile.  */
 extern CORE_ADDR svr4_fetch_objfile_link_map (struct objfile *objfile);
 
-/* legacy_svr4_fetch_link_map_offsets_hook is a pointer to a function
-   which is used to fetch link map offsets.  It will only be set
-   by solib-legacy.c, if at all.  */
-extern struct link_map_offsets *(*legacy_svr4_fetch_link_map_offsets_hook) (void);
-
 /* Fetch (and possibly build) an appropriate `struct link_map_offsets'
    for ILP32 and LP64 SVR4 systems.  */
 extern struct link_map_offsets *svr4_ilp32_fetch_link_map_offsets (void);