* elf-bfd.h (struct elf_obj_tdata): Delete dt_soname field. Add
dyn_lib_class field. Rearrange for better packing.
(elf_dt_soname): Delete.
(elf_dyn_lib_class): Define.
* elf.c (bfd_elf_set_dt_needed_name): Update comment.
(bfd_elf_set_dt_needed_soname): Delete.
(bfd_elf_set_dyn_lib_class): New function.
* elflink.h (add_dt_needed_tag): New function. Split out from..
(elf_link_add_object_symbols): ..here. Rename "name" to "soname".
Use elf_dyn_lib_class to set dt_needed and add_needed. Move fallback
initialization of soname.
(elf_link_check_versioned_symbol): Test elf_dyn_lib_class instead of
elf_dt_soname.
* bfd-in.h (enum dynamic_lib_link_class): New.
(bfd_elf_set_dt_needed_soname): Delete.
(bfd_elf_set_dyn_lib_class): Declare.
* bfd-in2.h: Regenerate.
ld/
* ld.texinfo: Add --as-needed doco.
* ldmain.c (as_needed): New global var.
* ldmain.h (as_needed): Declare.
* lexsup.c (option_values): Add OPTION_AS_NEEDED and
OPTION_NO_AS_NEEDED.
(ld_options): Likewise.
(parse_args): Handle them.
* ldlang.h (lang_input_statement_type): Add as_needed field.
* ldlang.c (new_afile): Set p->as_needed.
* emultempl/elf32.em (gld${EMULATION_NAME}_load_symbols): New function.
(gld${EMULATION_NAME}_try_needed): Use bfd_elf_set_dyn_lib_class.
(ld_${EMULATION_NAME}_emulation): Set LDEMUL_RECOGNIZED_FILE entry.
* ldlang.c (open_input_bfds): Remove useless cast.
(lang_do_assignments_1): Likewise.
(lang_for_each_input_section): Delete.
|
||
|---|---|---|
| .. | ||
| aix.em | ||
| alphaelf.em | ||
| armcoff.em | ||
| armelf_oabi.em | ||
| armelf.em | ||
| astring.sed | ||
| beos.em | ||
| elf32.em | ||
| generic.em | ||
| gld960.em | ||
| gld960c.em | ||
| hppaelf.em | ||
| ia64elf.em | ||
| linux.em | ||
| lnk960.em | ||
| m68hc1xelf.em | ||
| m68kcoff.em | ||
| m68kelf.em | ||
| mipsecoff.em | ||
| mipself.em | ||
| mmix-elfnmmo.em | ||
| mmixelf.em | ||
| mmo.em | ||
| needrelax.em | ||
| netbsd.em | ||
| ostring.sed | ||
| pe.em | ||
| ppc32elf.em | ||
| ppc64elf.em | ||
| README | ||
| sh64elf.em | ||
| sunos.em | ||
| ticoff.em | ||
| vanilla.em | ||
| xtensaelf.em | ||
The files in this directory are sourced by genscripts.sh, after setting some variables to substitute in, to produce C source files that contain jump tables for each emulation.