* solib.c (solib_open): Make path relative if search for absolute path
failed. If search for relative path in solib_search_path failed, fall
back to search for basename only.
Changelog:
2001-10-27 Fred Fish <fnf@redhat.com>
* symfile.c (auto_solib_add): Update comment to note that
this variable is now just used as a boolean to control shlib
autoloading, and clarify when it is used.
* symfile.h (auto_solib_add): Ditto.
* symfile.c (auto_solib_limit): New variable that holds the
autoloading threshold instead of overloading auto_solib_add.
* symfile.h (auto_solib_limit): Ditto.
* irix5-nat.c (_initialize_solib): Change auto-solib-add
variable from var_zinteger to var_boolean and update help.
* osfsolib.c (_initialize_solib): Ditto.
* pa64solib.c (_initialize_pa64_solib): Ditto.
* solib.c (_initialize_solib): Ditto.
* somsolib.c (_initialize_som_solib): Ditto.
* xcoffsolib.c (_initialize_solib): Ditto.
* pa64solib.c (pa64_solib_total_st_size): Update comment to
note that the new auto_solib_limit variable is used instead
of overloading auto_solib_add variable.
(_initialize_pa64_solib): Ditto.
* somsolib.c (som_solib_total_st_size): Ditto.
(_initialize_som_solib): Ditto.
* pa64solib.c (_initialize_pa64_solib): Add new set/show
commands for auto-solib-limit variable.
* somsolib.c (_initialize_som_solib): Ditto
* pa64solib.c (add_to_solist): Check that auto_solib_add is
set and use auto_solib_limit as the threshold size instead
of auto_solib_add.
* somsolib.c (som_solib_add): Ditto, and also change warning
text about size threshold exceeded.
doc/ChangeLog:
2001-10-28 Fred Fish <fnf@redhat.com>
* gdb.texinfo (auto-solib-add): Change docs to match
implementation change.
(auto-solib-limit): Add docs for new variable.
instead of system-specific define's like _WIN32 and __MSDOS__.
Use IS_DIR_SEPARATOR and IS_ABSOLUTE_PATH instead of SLASH_P and
ROOTED_P.
(top-level): #include "filenames.h".
* solib.c (solib_open): Use IS_DIR_SEPARATOR and IS_ABSOLUTE_PATH
instead of SLASH_CHAR, ROOTED_P and SLASH_P.
(top-level): #include "filenames.h".
* defs.h (SLASH_P, SLASH_CHAR, ROOTED_P): Remove definitions.
(SLASH_STRING): Define only for _WIN32.
* completer.c: Use HAVE_DOS_BASED_FILE_SYSTEM instead of
__MSDOS_.
* cli/cli-cmds.c (cd_command): Use IS_DIR_SEPARATOR and
IS_ABSOLUTE_PATH instead of SLASH_P and ROOTED_P. Replace
system-specific ifdefs with HAVE_DOS_BASED_FILE_SYSTEM.
(top-level): #include "filenames.h".
* solib.c (no_shared_libraries): New function. Discard all symbols
from shared libraries.
(_initialize_solib): Add command "nosharedlibrary" as complement
to the command "sharedlibrary". Unloads symbols for all solibs.
(_initialize_demangler): Fill demangling_style_names with the
names of known demangling styles from libiberty_demanglers[]. Use
add_set_enum_cmd instead of add_set_cmd, to get completion on
demangling style names.
* proc-api.c (_initialize_proc_api): Make `procfs-file' use
file-name completion.
* remote-rdi.c (_initialize_remote_rdi): Ditto for `rdilogfile'.
* solib.c (_initialize_solib): Ditto for `solib-search-path' and
`solib-absolute-prefix'.
* tracepoint.c (_initialize_tracepoint): Ditto for
`save-tracepoints'.
* win32-nat.c (_initialize_inftarg): Ditto for `dll-symbols'.
* cli/cli-cmds.c (init_cli_cmds): Make `shell' and `make' use
file-name completion.
* infcmd.c (_initialize_infcmd): Make the following commands use
the file-name completer: `tty', `args', `path', `paths', and
`run'.
* solist.h: Declare new function solib_open.
* solib.c (solib_open): New function. Abstracts some of the
code from solib_map_sections, for finding the binary solib file.
(solib_map_sections): Call solib_open.
* solib-svr4.c (enable_break): Call solib_open.
* valops.c (value_cast): Indentation fix-up.
* acconfig.h (HAVE_PRGREGSET32_T, HAVE_PRFPREGSET32_T,
HAVE_STRUCT_LINK_MAP32): New configure macros.
* config.in: Ditto.
* configure.in: Test for the above new macros.
* breakpoint.c: Update copyright date.
* core-sol2.c: Include v9/sys/privregs.h directly to
work around a bug in Sun's Solaris 8 header files.
(fetch_core_registers): Use the above new configure macros to
handle cross-debugging of 32-bit core files on a 64-bit host.
* sol-thread.c (ps_pdmodel) New function.
(rw_common): For debugging of 32-bit apps on a 64-bit host,
truncate addresses to 32 bits.
* solib.c (solib_extract_address): Functionize. Make 32/64 aware.
(LM_ADDR, LM_NEXT, LM_NAME): Ditto.
(IGNORE_FIRST_LINK_MAP): Ditto.
(first_link_map_member): Make 32/64 aware.
(open_symbol_file_object): Ditto.
(current_sos): Ditto.
* solib.c (symbol_add_stub): Remember the index and the name of
the section with the lowest address. Use this data (instead of
data from .text) to pass info into symbol_file_add.
* elfread.c (record_minimal_symbol_and_info): Use the section
where the symbol lives to get the index, instead of guessing.
* solib.c (elf_locate_base, info_sharedlibrary_command):
Look at the bfd to determine if it is elf32 or elf64, rather
than using an ifdef. This makes it runtime teststable and
multi-arch.
* symfile.h (struct section_addr_info ): Remove fields for special
treatment of .text, .data and .bss sections.
* solib.c (symbol_add_stub): The special field text_addr is not
available anymore. Search for the .text field the hard way.
* symfile.c (build_section_addr_info_from_section_table): Don't
fill in {text, data, bss}_addr any more.
(default_symfile_offsets): Don't use {text, data, bss}_addr fields
to fill in section_offsets for objfile.
(syms_from_objfile): Don't deal with {text, data, bss}_addr as a
special case anymore.
(add_symbol_file_command): Ditto.
below the code to sort out additions and removals. That way, we
always catch all loaded shared libraries whose symbols we haven't
grabbed yet.
* solib.c (solib_add): Don't try to free a shared object's objfile
if it doesn't have one. Duh.
* solib.c (solib_add): If a pattern was given, but it doesn't
match any currently loaded shared libraries, print a message;
don't just be silent.
* solib.c (current_sos): New function, replacing find_solib.
(find_solib): Deleted.
(free_so): New function.
(clear_solib): Call free_so, instead of writing it out.
(solib_add): Rewritten: compare the inferior's current list of
shared objects with GDB's list, and do the required loads and
unloads.
(info_sharedlibrary_command, solib_address): Don't use find_solib
to walk the list of shared libraries: call solib_add, and then
walk the list at so_list_head normally.
* objfiles.c (free_objfile): Don't call CLEAR_SOLIB, and don't
detach the core target. These tasks are taken care of elsewhere.
* target.c (remove_target_sections): New function.
* target.h (remove_target_sections): New declaration.
* solib.c (symbol_add_stub): Check whether we've already created
an objfile for this shared object first, before doing all that
work to compute section addresses, etc.
* objfiles.c (unlink_objfile): Report an internal error if objfile
doesn't occur in the object_files list.
* solib.c (special_symbol_handling): Delete argument; it's not
used.
* solib.c (SOLIB_EXTRACT_ADDRESS): New macro to extract addresses
from solib structures. Use it throughout solib.c, get rid of all
CORE_ADDR casts.
(struct so_list): Change type of lmaddr to CORE_ADDR.
(first_link_map_member): Change return value type to CORE_ADDR,
update callers.
(solib_add_common_symbols): Change parameter type to CORE_ADDR,
update callers.
(open_symbol_file_object, find_solib): Change type of lm variable
to CORE_ADDR.