mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-25 05:00:01 +00:00
* libelf.h (struct elf_obj_tdata): New field dt_needed_name.
(elf_dt_needed_name): New accessor macro. * elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name is set, use that instead of the filename for the DT_NEEDED dynamic entry. * elf.c (bfd_elf_set_dt_needed_name): New function. * bfd-in.h (bfd_elf_set_dt_needed_name): Declare. * bfd-in2.h: Rebuilt.
This commit is contained in:
parent
33b90e5265
commit
c1f84521bf
@ -10,6 +10,15 @@ Wed Jun 15 18:02:21 1994 Ken Raeburn (raeburn@cujo.cygnus.com)
|
||||
|
||||
Wed Jun 15 01:34:07 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
|
||||
|
||||
* libelf.h (struct elf_obj_tdata): New field dt_needed_name.
|
||||
(elf_dt_needed_name): New accessor macro.
|
||||
* elfcode.h (elf_link_add_object_symbols): If elf_dt_needed_name
|
||||
is set, use that instead of the filename for the DT_NEEDED dynamic
|
||||
entry.
|
||||
* elf.c (bfd_elf_set_dt_needed_name): New function.
|
||||
* bfd-in.h (bfd_elf_set_dt_needed_name): Declare.
|
||||
* bfd-in2.h: Rebuilt.
|
||||
|
||||
* elfcode.h (NAME(bfd_elf,size_dynamic_sections)): Add sinterpptr
|
||||
argument, and set it to the .interp section.
|
||||
* bfd-in.h (bfd_elf32_size_dynamic_sections): Update prototype.
|
||||
|
@ -535,6 +535,7 @@ extern boolean bfd_elf32_size_dynamic_sections
|
||||
PARAMS ((bfd *, struct bfd_link_info *, struct sec **));
|
||||
extern boolean bfd_elf64_size_dynamic_sections
|
||||
PARAMS ((bfd *, struct bfd_link_info *, struct sec **));
|
||||
extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *));
|
||||
|
||||
/* SunOS shared library support routines for the linker. */
|
||||
|
||||
|
@ -535,6 +535,7 @@ extern boolean bfd_elf32_size_dynamic_sections
|
||||
PARAMS ((bfd *, struct bfd_link_info *, struct sec **));
|
||||
extern boolean bfd_elf64_size_dynamic_sections
|
||||
PARAMS ((bfd *, struct bfd_link_info *, struct sec **));
|
||||
extern void bfd_elf_set_dt_needed_name PARAMS ((bfd *, const char *));
|
||||
|
||||
/* SunOS shared library support routines for the linker. */
|
||||
|
||||
|
@ -4163,8 +4163,12 @@ elf_link_add_object_symbols (abfd, info)
|
||||
|
||||
/* Find the name to use in a DT_NEEDED entry that refers to this
|
||||
object. If the object has a DT_SONAME entry, we use it.
|
||||
Otherwise, we use the file name. */
|
||||
Otherwise, if the generic linker stuck something in
|
||||
elf_dt_needed_name, we use that. Otherwise, we just use the
|
||||
file name. */
|
||||
name = bfd_get_filename (abfd);
|
||||
if (elf_dt_needed_name (abfd) != NULL)
|
||||
name = elf_dt_needed_name (abfd);
|
||||
s = bfd_get_section_by_name (abfd, ".dynamic");
|
||||
if (s != NULL)
|
||||
{
|
||||
|
@ -417,6 +417,12 @@ struct elf_obj_tdata
|
||||
minus the sh_info field of the symbol table header. */
|
||||
struct elf_link_hash_entry **sym_hashes;
|
||||
|
||||
/* The linker ELF emulation code needs to let the backend ELF linker
|
||||
know what filename should be used for a dynamic object if the
|
||||
dynamic object is found using a search. This field is used to
|
||||
hold that information. */
|
||||
const char *dt_needed_name;
|
||||
|
||||
/* Irix 5 often screws up the symbol table, sorting local symbols
|
||||
after global symbols. This flag is set if the symbol table in
|
||||
this BFD appears to be screwed up. If it is, we ignore the
|
||||
@ -441,6 +447,7 @@ struct elf_obj_tdata
|
||||
#define elf_gp(bfd) (elf_tdata(bfd) -> gp)
|
||||
#define elf_gp_size(bfd) (elf_tdata(bfd) -> gp_size)
|
||||
#define elf_sym_hashes(bfd) (elf_tdata(bfd) -> sym_hashes)
|
||||
#define elf_dt_needed_name(bfd) (elf_tdata(bfd) -> dt_needed_name)
|
||||
#define elf_bad_symtab(bfd) (elf_tdata(bfd) -> bad_symtab)
|
||||
|
||||
extern char * elf_string_from_elf_section PARAMS ((bfd *, unsigned, unsigned));
|
||||
|
Loading…
Reference in New Issue
Block a user