diff options
author | Fred Fish <fnf@specifix.com> | 1996-07-08 09:05:18 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 1996-07-08 09:05:18 +0000 |
commit | ace4b8d75a3bd81cdaf61a0fec307d631388470d (patch) | |
tree | a58747a97825773044bd6aed6c2c6e650062d8f3 /gdb/solib.c | |
parent | b7cc3e753094407b5dbb1f4d6c70e679f4fe2172 (diff) | |
download | gdb-ace4b8d75a3bd81cdaf61a0fec307d631388470d.zip gdb-ace4b8d75a3bd81cdaf61a0fec307d631388470d.tar.gz gdb-ace4b8d75a3bd81cdaf61a0fec307d631388470d.tar.bz2 |
(laying some groundwork for a fix for PR 8443)
* coffread.c (record_minimal_symbol): Don't presave name string
on symbol_obstack before passing to prim_record_minimal_symbol.
It now handles saving the string itself.
* dbxread.c (read_dbx_dynamic_symtab): Ditto.
* mipsread.c (read_alphacoff_dynamic_symtab): Ditto.
* os9kread.c (record_minimal_symbol): Ditto.
* solib.c (solib_add_common_symbols): Ditto.
* coffread.c (coff_symtab_read): Don't presave name string on
symbol_obstack before passing to prim_record_minimal_symbol_and_info.
It now handles saving the string itself.
* dbxread.c (record_minimal_symbol): Ditto.
* elfread.c (record_minimal_symbol_and_info): Ditto.
* dstread.c (record_minimal_symbol): Remove static function that just
called prim_record_minimal_symbol with the same args (after change to
prim_record_minimal_symbol to do it's own name string saves).
* nlmread.c (record_minimal_symbol): Ditto.
* somread.c (record_minimal_symbol): Ditto.
* hpread.c (hpread_read_enum_type): Save symbol name on symbol obstack.
(hpread_read_function_type): Ditto.
(hpread_process_one_debug_symbol): Ditto.
* mdebugread.c (parse_symbol): Ditto.
(new_symbol): Ditto.
* minsyms.c (prim_record_minimal_symbol_and_info): Ditto.
* coffread.c (process_coff_symbol): Use obsavestring to save
SYMBOL_NAME, rather than obstack_copy0.
* dstread.c (create_new_symbol): Ditto
* symfile.c (obconcat): Ditto.
* stabsread.c (patch_block_stabs): Ditto.
* xcoffread.c (SYMNAME_ALLOC): Ditto.
* symfile.c (obsavestring): Update comments
* solib.c (solib_add_common_symbols): Remove local var origname.
Diffstat (limited to 'gdb/solib.c')
-rw-r--r-- | gdb/solib.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/gdb/solib.c b/gdb/solib.c index 6f8c376..9e50c16 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -21,6 +21,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "defs.h" +/* This file is only compilable if link.h is available. */ + +#ifdef HAVE_LINK_H + #include <sys/types.h> #include <signal.h> #include "gdb_string.h" @@ -158,9 +162,6 @@ sharedlibrary_command PARAMS ((char *, int)); static int enable_break PARAMS ((void)); -static int -disable_break PARAMS ((void)); - static void info_sharedlibrary_command PARAMS ((char *, int)); @@ -186,6 +187,9 @@ elf_locate_base PARAMS ((void)); #else +static int +disable_break PARAMS ((void)); + static void allocate_rt_common_objfile PARAMS ((void)); @@ -346,7 +350,6 @@ solib_add_common_symbols (rtc_symp) struct nlist inferior_rtc_nlist; int len; char *name; - char *origname; /* Remove any runtime common symbols from previous runs. */ @@ -377,18 +380,16 @@ solib_add_common_symbols (rtc_symp) behind the name of the symbol. */ len = inferior_rtc_nlist.n_value - inferior_rtc_nlist.n_un.n_strx; - origname = name = xmalloc (len); + name = xmalloc (len); read_memory ((CORE_ADDR) inferior_rtc_nlist.n_un.n_name, name, len); /* Allocate the runtime common objfile if necessary. */ if (rt_common_objfile == NULL) allocate_rt_common_objfile (); - name = obsavestring (name, strlen (name), - &rt_common_objfile -> symbol_obstack); prim_record_minimal_symbol (name, inferior_rtc_nlist.n_value, mst_bss, rt_common_objfile); - free (origname); + free (name); } rtc_symp = inferior_rtc_symb.rtc_next; } @@ -756,7 +757,7 @@ locate_base () debug_base = elf_locate_base (); #ifdef HANDLE_SVR4_EXEC_EMULATORS /* Try it the hard way for emulated executables. */ - else if (inferior_pid != 0) + else if (inferior_pid != 0 && target_has_execution) proc_iterate_over_mappings (look_for_base); #endif } @@ -1241,6 +1242,8 @@ DESCRIPTION */ +#ifndef SVR4_SHARED_LIBS + static int disable_break () { @@ -1289,6 +1292,8 @@ disable_break () return (status); } +#endif /* #ifdef SVR4_SHARED_LIBS */ + /* LOCAL FUNCTION @@ -1679,10 +1684,13 @@ int from_tty; solib_add (args, from_tty, (struct target_ops *) 0); } +#endif /* HAVE_LINK_H */ + void _initialize_solib() { - +#ifdef HAVE_LINK_H + add_com ("sharedlibrary", class_files, sharedlibrary_command, "Load shared object library symbols for files matching REGEXP."); add_info ("sharedlibrary", info_sharedlibrary_command, @@ -1698,4 +1706,6 @@ informs gdb that a new library has been loaded. Otherwise, symbols\n\ must be loaded manually, using `sharedlibrary'.", &setlist), &showlist); + +#endif /* HAVE_LINK_H */ } |