diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-10-24 21:21:16 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-10-24 21:21:16 +0000 |
commit | 8d005789186b3d1e0b58b37ead5f260c05256f28 (patch) | |
tree | 5c484ebee785c57ca608d4f9b8834b86871f12a6 /gdb/solib-legacy.c | |
parent | 59215afbea47b0845a7fe36534c37e7ce02065bf (diff) | |
download | gdb-8d005789186b3d1e0b58b37ead5f260c05256f28.zip gdb-8d005789186b3d1e0b58b37ead5f260c05256f28.tar.gz gdb-8d005789186b3d1e0b58b37ead5f260c05256f28.tar.bz2 |
* 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.
Diffstat (limited to 'gdb/solib-legacy.c')
-rw-r--r-- | gdb/solib-legacy.c | 132 |
1 files changed, 0 insertions, 132 deletions
diff --git a/gdb/solib-legacy.c b/gdb/solib-legacy.c deleted file mode 100644 index e943ba5..0000000 --- a/gdb/solib-legacy.c +++ /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 */ -} |