aboutsummaryrefslogtreecommitdiff
path: root/gdb/solib.c
diff options
context:
space:
mode:
authorFred Fish <fnf@specifix.com>1996-07-08 09:05:18 +0000
committerFred Fish <fnf@specifix.com>1996-07-08 09:05:18 +0000
commitace4b8d75a3bd81cdaf61a0fec307d631388470d (patch)
treea58747a97825773044bd6aed6c2c6e650062d8f3 /gdb/solib.c
parentb7cc3e753094407b5dbb1f4d6c70e679f4fe2172 (diff)
downloadgdb-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.c30
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 */
}