gdb: Don't assume r_ldsomap when r_version > 1 on Linux
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 16 Aug 2021 23:17:25 +0000 (16:17 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 17 Aug 2021 14:05:57 +0000 (07:05 -0700)
The r_ldsomap field is specific to Solaris (part of librtld_db), and
should never be accessed for Linux.  glibc is planning to add a field
to support multiple namespaces.  But there will be no r_ldsomap when
r_version is bumped to 2.  Add linux_[ilp32|lp64]_fetch_link_map_offsets
to set r_ldsomap_offset to -1 and use them for Linux targets.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=28236

27 files changed:
gdb/aarch64-linux-tdep.c
gdb/alpha-linux-tdep.c
gdb/amd64-linux-tdep.c
gdb/arc-linux-tdep.c
gdb/arm-linux-tdep.c
gdb/cris-linux-tdep.c
gdb/csky-linux-tdep.c
gdb/hppa-linux-tdep.c
gdb/i386-linux-tdep.c
gdb/ia64-linux-tdep.c
gdb/linux-tdep.c
gdb/linux-tdep.h
gdb/m32r-linux-tdep.c
gdb/m68k-linux-tdep.c
gdb/microblaze-linux-tdep.c
gdb/mips-linux-tdep.c
gdb/mn10300-linux-tdep.c
gdb/nios2-linux-tdep.c
gdb/or1k-linux-tdep.c
gdb/ppc-linux-tdep.c
gdb/riscv-linux-tdep.c
gdb/s390-linux-tdep.c
gdb/sh-linux-tdep.c
gdb/sparc-linux-tdep.c
gdb/sparc64-linux-tdep.c
gdb/tilegx-linux-tdep.c
gdb/xtensa-linux-tdep.c

index 63c200b47f7bb8edf009aa2b71609cff67153bd5..b1225438d9d53fded48b1977cba53affcf49028b 100644 (file)
@@ -1795,7 +1795,7 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   linux_init_abi (info, gdbarch, 1);
 
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_lp64_fetch_link_map_offsets);
+                                        linux_lp64_fetch_link_map_offsets);
 
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
index c2cffc13c205973e8f4c49fe4c4812a9c269c40f..0a00fc1f310c5f951a89c4a333a15b2243514b93 100644 (file)
@@ -374,7 +374,7 @@ 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);
+    (gdbarch, linux_lp64_fetch_link_map_offsets);
 
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
index ac6843c1fdd36238cd8753fc3fe1180fb372fe38..715add8a7b0603fd3568089061844ba62a22270a 100644 (file)
@@ -2042,7 +2042,7 @@ amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   /* GNU/Linux uses SVR4-style shared libraries.  */
   set_solib_svr4_fetch_link_map_offsets
-    (gdbarch, svr4_lp64_fetch_link_map_offsets);
+    (gdbarch, linux_lp64_fetch_link_map_offsets);
 
   /* Register DTrace handlers.  */
   set_gdbarch_dtrace_parse_probe_argument (gdbarch, amd64_dtrace_parse_probe_argument);
@@ -2256,7 +2256,7 @@ amd64_x32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   /* GNU/Linux uses SVR4-style shared libraries.  */
   set_solib_svr4_fetch_link_map_offsets
-    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 }
 
 void _initialize_amd64_linux_tdep ();
index cf18b8d6b03a1c8ca110006d0f1aec18781cb065..448fa370a36199a437711bebc9d17b942405056d 100644 (file)
@@ -732,7 +732,7 @@ arc_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* GNU/Linux uses SVR4-style shared libraries, with 32-bit ints, longs
      and pointers (ILP32).  */
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
 }
 
 /* Suppress warning from -Wmissing-prototypes.  */
index 773a93384f77c6fdbc5a1d46ba569ba3c2956b9b..c0dfc5fcf3e1a5da5f168fda5e9d7c28bbd47ca8 100644 (file)
@@ -1763,7 +1763,7 @@ arm_linux_init_abi (struct gdbarch_info info,
   tdep->jb_elt_size = ARM_LINUX_JB_ELEMENT_SIZE;
 
   set_solib_svr4_fetch_link_map_offsets
-    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
   /* Single stepping.  */
   set_gdbarch_software_single_step (gdbarch, arm_linux_software_single_step);
index 4c1a4529986b64baf12e5156d08e07767a434753..68a12dbe0e9e762f3e364373bf298552b492926a 100644 (file)
@@ -43,7 +43,7 @@ cris_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
                                               svr4_fetch_objfile_link_map);
 
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
 
 }
 
index e38ec652561a7cb021e5bf76eb3b2e862799ce39..3a52a87b647ba87f80fc04fbb37be059d68d3ee3 100644 (file)
@@ -239,7 +239,7 @@ csky_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
 
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
index 4bdaa1dfaeec164b882547201cbc09006257466a..52c642f0c7f8d80099f225e32f3d237b1ff9627f 100644 (file)
@@ -501,7 +501,7 @@ hppa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   /* GNU/Linux uses SVR4-style shared libraries.  */
   set_solib_svr4_fetch_link_map_offsets
-    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
   tdep->in_solib_call_trampoline = hppa_in_solib_call_trampoline;
   set_gdbarch_skip_trampoline_code (gdbarch, hppa_skip_trampoline_code);
index c0df916ce6dc374ff97efdf2d88914ce21df22a0..1c065eecb4dbd405324a111e953c12b9eb170252 100644 (file)
@@ -1044,7 +1044,7 @@ i386_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* GNU/Linux uses 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);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
   /* GNU/Linux uses the dynamic linker included in the GNU C Library.  */
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
index a17ec5900020b18d43bc181edbacf02f1026896b..71767ddf83e980d2d1d900cbe9ec54ff45f9d743 100644 (file)
@@ -237,7 +237,7 @@ 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);
+    (gdbarch, linux_lp64_fetch_link_map_offsets);
 
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
index 637d3d36a0bedd74980f3df8f0138c4dd5d19961..ae2f7c14f6d3ea187a89a7e83ae83f156a2e7488 100644 (file)
@@ -41,6 +41,7 @@
 #include "gdbsupport/gdb_optional.h"
 #include "gcore.h"
 #include "gcore-elf.h"
+#include "solib-svr4.h"
 
 #include <ctype.h>
 
@@ -2724,3 +2725,62 @@ more information about this file, refer to the manpage of proc(5) and core(5).")
                           NULL, show_dump_excluded_mappings,
                           &setlist, &showlist);
 }
+
+/* Fetch (and possibly build) an appropriate `link_map_offsets' for
+   ILP32/LP64 Linux systems which don't have the r_ldsomap field.  */
+
+link_map_offsets *
+linux_ilp32_fetch_link_map_offsets ()
+{
+  static link_map_offsets lmo;
+  static link_map_offsets *lmp = nullptr;
+
+  if (lmp == nullptr)
+    {
+      lmp = &lmo;
+
+      lmo.r_version_offset = 0;
+      lmo.r_version_size = 4;
+      lmo.r_map_offset = 4;
+      lmo.r_brk_offset = 8;
+      lmo.r_ldsomap_offset = -1;
+
+      /* Everything we need is in the first 20 bytes.  */
+      lmo.link_map_size = 20;
+      lmo.l_addr_offset = 0;
+      lmo.l_name_offset = 4;
+      lmo.l_ld_offset = 8;
+      lmo.l_next_offset = 12;
+      lmo.l_prev_offset = 16;
+    }
+
+  return lmp;
+}
+
+link_map_offsets *
+linux_lp64_fetch_link_map_offsets ()
+{
+  static link_map_offsets lmo;
+  static link_map_offsets *lmp = nullptr;
+
+  if (lmp == nullptr)
+    {
+      lmp = &lmo;
+
+      lmo.r_version_offset = 0;
+      lmo.r_version_size = 4;
+      lmo.r_map_offset = 8;
+      lmo.r_brk_offset = 16;
+      lmo.r_ldsomap_offset = -1;
+
+      /* Everything we need is in the first 40 bytes.  */
+      lmo.link_map_size = 40;
+      lmo.l_addr_offset = 0;
+      lmo.l_name_offset = 8;
+      lmo.l_ld_offset = 16;
+      lmo.l_next_offset = 24;
+      lmo.l_prev_offset = 32;
+    }
+
+  return lmp;
+}
index 28b60e46579bb26057b0a047df7b5c3243541833..b5c1184bb099ea697ac5e206880bc937533f2eb3 100644 (file)
@@ -98,4 +98,9 @@ extern CORE_ADDR linux_get_hwcap (struct target_ops *target);
    error, 0 is returned.  */
 extern CORE_ADDR linux_get_hwcap2 (struct target_ops *target);
 
+/* Fetch (and possibly build) an appropriate `struct link_map_offsets'
+   for ILP32 and LP64 Linux systems.  */
+extern struct link_map_offsets *linux_ilp32_fetch_link_map_offsets ();
+extern struct link_map_offsets *linux_lp64_fetch_link_map_offsets ();
+
 #endif /* linux-tdep.h */
index 24807de0b2b09d993ec9d2f0462fdb0b5df42dd9..af0b5c01d044fba822438bfd4f00f909e6ca6acd 100644 (file)
@@ -461,7 +461,7 @@ m32r_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* GNU/Linux uses 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);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
   /* Core file support.  */
   set_gdbarch_iterate_over_regset_sections
index 7543a35e6112e60b7f79a056fa99143aaa7f4a2a..ad4d75adb4df0f402bc07aba423d2ba615220a72 100644 (file)
@@ -408,7 +408,7 @@ m68k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   /* GNU/Linux uses SVR4-style shared libraries.  */
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
 
   /* GNU/Linux uses the dynamic linker included in the GNU C Library.  */
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
index 17cdc2516d4f7c998479441e60b7b88f7cb6bd85..e9ce7cd7fe063fb93c8a4cde45822ca0d9508f3b 100644 (file)
@@ -124,7 +124,7 @@ microblaze_linux_init_abi (struct gdbarch_info info,
 
   /* Shared library handling.  */
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
 
   /* Trampolines.  */
   tramp_frame_prepend_unwinder (gdbarch,
index 1ceed5250fe6f2f01aa542e7a2fb646e207918dd..ce287f6a3540bcbb77b3d4f733fb4456264f2154 100644 (file)
@@ -1542,7 +1542,7 @@ mips_linux_init_abi (struct gdbarch_info info,
        set_gdbarch_get_longjmp_target (gdbarch,
                                        mips_linux_get_longjmp_target);
        set_solib_svr4_fetch_link_map_offsets
-         (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+         (gdbarch, linux_ilp32_fetch_link_map_offsets);
        tramp_frame_prepend_unwinder (gdbarch, &micromips_linux_o32_sigframe);
        tramp_frame_prepend_unwinder (gdbarch,
                                      &micromips_linux_o32_rt_sigframe);
@@ -1554,7 +1554,7 @@ mips_linux_init_abi (struct gdbarch_info info,
        set_gdbarch_get_longjmp_target (gdbarch,
                                        mips_linux_get_longjmp_target);
        set_solib_svr4_fetch_link_map_offsets
-         (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+         (gdbarch, linux_ilp32_fetch_link_map_offsets);
        set_gdbarch_long_double_bit (gdbarch, 128);
        /* These floatformats should probably be renamed.  MIPS uses
           the same 128-bit IEEE floating point format that IA-64 uses,
@@ -1570,7 +1570,7 @@ mips_linux_init_abi (struct gdbarch_info info,
        set_gdbarch_get_longjmp_target (gdbarch,
                                        mips64_linux_get_longjmp_target);
        set_solib_svr4_fetch_link_map_offsets
-         (gdbarch, svr4_lp64_fetch_link_map_offsets);
+         (gdbarch, linux_lp64_fetch_link_map_offsets);
        set_gdbarch_long_double_bit (gdbarch, 128);
        /* These floatformats should probably be renamed.  MIPS uses
           the same 128-bit IEEE floating point format that IA-64 uses,
index 1a2e049311898a91c1cf8615d57be53197ba1d2b..7c68d1116c53ac3b5d5a446bfd530ca6395f66b8 100644 (file)
@@ -709,7 +709,7 @@ am33_linux_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_iterate_over_regset_sections
     (gdbarch, am33_iterate_over_regset_sections);
   set_solib_svr4_fetch_link_map_offsets
-    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
   tramp_frame_prepend_unwinder (gdbarch, &am33_linux_sigframe);
   tramp_frame_prepend_unwinder (gdbarch, &am33_linux_rt_sigframe);
index 661c8b38f7203a8c602ad6030762dc4ab18cc2fa..bd86146c878abc74aa679b430cbce397b1949a73 100644 (file)
@@ -226,7 +226,7 @@ nios2_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
 
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
                                             svr4_fetch_objfile_link_map);
index 1c3f8db74927eb1f1943f34bf7644b67b44f42b2..2ad55f0d9ec8c663cf587238ed2607e7adce4d9a 100644 (file)
@@ -143,7 +143,7 @@ or1k_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   linux_init_abi (info, gdbarch, 0);
 
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
 
   /* GNU/Linux uses SVR4-style shared libraries.  */
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
index 1e94922f25a94edb76cef16e5ca1eb2b9434e9d1..e62f45a35d80b28919d157790e83e5d9aacc725d 100644 (file)
@@ -2035,7 +2035,7 @@ ppc_linux_init_abi (struct gdbarch_info info,
       /* Shared library handling.  */
       set_gdbarch_skip_trampoline_code (gdbarch, ppc_skip_trampoline_code);
       set_solib_svr4_fetch_link_map_offsets
-       (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+       (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
       /* Setting the correct XML syscall filename.  */
       set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_PPC);
@@ -2087,7 +2087,7 @@ ppc_linux_init_abi (struct gdbarch_info info,
       /* Shared library handling.  */
       set_gdbarch_skip_trampoline_code (gdbarch, ppc64_skip_trampoline_code);
       set_solib_svr4_fetch_link_map_offsets
-       (gdbarch, svr4_lp64_fetch_link_map_offsets);
+       (gdbarch, linux_lp64_fetch_link_map_offsets);
 
       /* Setting the correct XML syscall filename.  */
       set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_PPC64);
index 49dc75bb6180d1e5119d7108855d953a0f407c0c..7351e1901d6cc8a1defa9a51c904d6513c44b3d2 100644 (file)
@@ -187,8 +187,8 @@ riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
                                         (riscv_isa_xlen (gdbarch) == 4
-                                         ? svr4_ilp32_fetch_link_map_offsets
-                                         : svr4_lp64_fetch_link_map_offsets));
+                                         ? linux_ilp32_fetch_link_map_offsets
+                                         : linux_lp64_fetch_link_map_offsets));
 
   /* GNU/Linux uses SVR4-style shared libraries.  */
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
index 1f40e10e3d38a423790a86cbee3de9bacaa28ade..04e3fc640d26e9a36d40c24053cb5142564b9c46 100644 (file)
@@ -1158,7 +1158,7 @@ s390_linux_init_abi_31 (struct gdbarch_info info, struct gdbarch *gdbarch)
   s390_linux_init_abi_any (info, gdbarch);
 
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_ilp32_fetch_link_map_offsets);
+                                        linux_ilp32_fetch_link_map_offsets);
   set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_S390);
 }
 
@@ -1174,7 +1174,7 @@ s390_linux_init_abi_64 (struct gdbarch_info info, struct gdbarch *gdbarch)
   s390_linux_init_abi_any (info, gdbarch);
 
   set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                        svr4_lp64_fetch_link_map_offsets);
+                                        linux_lp64_fetch_link_map_offsets);
   set_xml_syscall_file_name (gdbarch, XML_SYSCALL_FILENAME_S390X);
 }
 
index 700df35bc3b99dc11616ccda0f559b2710a742e6..8315d46fddf84ef56e5c984429acd84de676d306 100644 (file)
@@ -189,7 +189,7 @@ sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* GNU/Linux uses 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);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
   set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
 
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
index 8d8efb49911232991ee91d68cf670ef1482d8528..4ad77e24d82c62b608ad58a4a9f7b2561d472496 100644 (file)
@@ -436,7 +436,7 @@ sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* 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);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
   /* ...which means that we need some special handling when doing
      prologue analysis.  */
index ea692ac00efcc8f89a02e71d4c7d226c72ed9293..e63fa87c69b3b1422c9b40f7781308d83783a2a0 100644 (file)
@@ -383,7 +383,7 @@ sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* 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);
+    (gdbarch, linux_lp64_fetch_link_map_offsets);
 
   /* ...which means that we need some special handling when doing
      prologue analysis.  */
index 382e7f6d9088aefdb23e5f9d86197829d20d3b1c..353497a3434e5392df9bf251d5613b95eae5dd0a 100644 (file)
@@ -121,10 +121,10 @@ tilegx_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   /* GNU/Linux uses SVR4-style shared libraries.  */
   if (arch_size == 32)
     set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                          svr4_ilp32_fetch_link_map_offsets);
+                                          linux_ilp32_fetch_link_map_offsets);
   else
     set_solib_svr4_fetch_link_map_offsets (gdbarch,
-                                          svr4_lp64_fetch_link_map_offsets);
+                                          linux_lp64_fetch_link_map_offsets);
 
   /* Enable TLS support.  */
   set_gdbarch_fetch_tls_load_module_address (gdbarch,
index 2eba9aaa21dbbcd6dc96e8df1f75fbc9995da534..c9e2519b1e71107bc141dba3d8ce91755e5faf6e 100644 (file)
@@ -113,7 +113,7 @@ xtensa_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
   linux_init_abi (info, gdbarch, 0);
 
   set_solib_svr4_fetch_link_map_offsets
-    (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+    (gdbarch, linux_ilp32_fetch_link_map_offsets);
 
   set_gdbarch_gdb_signal_from_target (gdbarch,
                                      xtensa_linux_gdb_signal_from_target);