Age | Commit message (Collapse) | Author | Files | Lines |
|
* elflink.h (elf_link_add_object_symbols): Use !info->executable
instead of info->shared where appropriate.
(bfd_elfNN_size_dynamic_sections, elf_link_output_extsym): Likewise.
* elflink.c (_bfd_elf_create_got_section): Likewise.
(_bfd_elf_link_create_dynamic_sections): Likewise.
(_bfd_elf_link_assign_sym_version): Likewise.
* elf32-i386.c (elf_i386_size_dynamic_sections): Create .interp section
and DT_DEBUG dynamic tag even for position independent executables.
* elf32-ppc.c (ppc_elf_size_dynamic_sections): Likewise.
* elf32-s390.c (elf_s390_size_dynamic_sections: Likewise.
* elf64-ppc.c (ppc64_elf_size_dynamic_sections: Likewise.
* elf64-s390.c (elf_s390_size_dynamic_sections: Likewise.
* elf64-x86-64.c (elf64_x86_64_size_dynamic_sections: Likewise.
* elfxx-ia64.c (elfNN_ia64_size_dynamic_sections: Likewise.
* elf32-sparc.c (elf32_sparc_size_dynamic_sections: Likewise.
* elf64-alpha.c (elf64_alpha_size_dynamic_sections: Likewise.
* elf64-sparc.c (sparc64_elf_size_dynamic_sections: Likewise.
include/
* bfdlink.h (struct bfd_link_info): Add pie and executable
bits.
ld/
* lexsup.c (OPTION_PIE): Define.
(ld_options): Add -pie and --pic-executable options.
(parse_args): Handle OPTION_PIE.
* ldmain.c (main): Initialize link_info.pie and
link_info.executable.
* genscripts.sh: Generate PIE scripts.
* ld.texinfo: Document -pie and --pic-executable options.
* emultempl/elf32.em (gld${EMULATION_NAME}_after_open):
(gld${EMULATION_NAME}_place_orphan): Likewise.
(gld${EMULATION_NAME}_get_script): Include PIE scripts.
* scripttempl/elf.sc: In PIE scripts set . the same way as in
shared scripts.
* emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Set to yes.
* emulparams/elf64_ia64.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf32ppc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64ppc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf_x86_64.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf_s390.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf32_sparc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64_sparc.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64alpha.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf64_s390.sh (GENERATE_PIE_SCRIPT): Likewise.
* emulparams/elf_i386.sh (GENERATE_PIE_SCRIPT): Likewise.
|
|
* ldmain.c (overflow_cutoff_limit): Define, initialized to 10.
(reloc_overflow): Limit error messages based on it.
* lexsup.c (parse_args) <OPTION_VERBOSE>: Set cutoff to
unlimited.
|
|
2003-04-28 H.J. Lu <hjl@gnu.org>
* elfxx-ia64.c (elfNN_ia64_relax_section): Relax ldxmov during
the relax finalize pass.
* section.c (struct sec): Add need_finalize_relax and remove
flag11.
(STD_SECTION): Update struct sec initializer.
* bfd-in2.h: Regenerated.
include/
2003-04-28 H.J. Lu <hjl@gnu.org>
* bfdlink.h (bfd_link_info): Add relax_finalizing.
ld/
2003-04-28 H.J. Lu <hjl@gnu.org>
* ldlang.c (lang_process): Add the relax finalize pass.
* ldmain.c (main): Initialize link_info.relax_finalizing to
FALSE.
|
|
* bfdlink.h (bfd_link_callbacks): Add error_handler.
ld/
* ldmain.c (link_callbacks): Initialize error_handler.
* ldmisc.c (error_handler): New function.
* ldmisc.h (error_handler): New prototype.
|
|
|
|
Initialize them.
ldfile.c: Include pathnames.h. (is_sysrooted_pathname): New. (ldfile_add_library_path): Use it.
(ldfile_open_file_search): Likewise. Use IS_ABSOLUTE_PATH.
Don't search_dirs if given an absolute pathname.
(ldfile_open_file): Issue error message for sysrooted absolute pathnames.
|
|
well.
|
|
|
|
to do. Add an inverse switch. Update the documentation.
|
|
* ldmain.c (get_emulation): Sort -mipsNN checks in the usual
order, and handle (ignore) -mips32r2.
|
|
|
|
* Makefile.am (ldmain.o): Add @TARGET_SYSTEM_ROOT_DEFINE@.
(GENSCRIPTS): Add @use_sysroot@.
* Makefile.in: Regenerated.
* configure.host: Move setting of NATIVE_LIB_DIRS to...
* configure.tgt: ... here. Use ${target} instead of ${host}
for NATIVE_LIB_DIRS.
* configure.in: Add --with-sysroot.
* configure: Regenerated.
* genscripts.sh: Accept use_sysroot option. Set new variables
NATIVE and USE_LIBPATH. Prepend "=" to directory names if
$use_sysroot. Don't search $tool_lib if $use_sysroot.
* ldfile.c (ldfile_add_library_path): Handle leading '='.
* ldmain.c (TARGET_SYSTEM_ROOT): Define if not defined.
(ld_sysroot): New variable.
(main): Initialize ld_sysroot.
* ldmain.h (ld_sysroot): New extern.
* emultempl/elf32.em: Use NATIVE and USE_LIBPATH instead of
searching $EMULATION_LIBPATH.
(gld${EMULATION_NAME}_add_sysroot): New function.
(gld${EMULATION_NAME}_check_ld_so_conf): Use it. Honor ld_sysroot.
(gld${EMULATION_NAME}_after_open): Likewise. Only search
environment variables if $NATIVE.
* ld.texinfo (Options): Mention "=" prefix in the description of -L.
* NEWS: Mention --with-sysroot.
* emulparams/elf32bmipn32-defs.sh: Set NATIVE and LIBPATH_SUFFIX
instead of setting LIB_PATH.
* emulparams/elf32ppc.sh: Likewise.
* emulparams/elf64_s390.sh: Likewise.
* emulparams/elf64_sparc.sh: Likewise.
* emulparams/elf64ppc.sh: Likewise.
* emulparams/elf_x86_64.sh: Likewise.
* emulparams/elf64_aix.sh: Add "=" prefixes to LIB_PATH.
* emulparams/elf64hppa.sh: Add "=" prefixes to LIB_PATH.
|
|
* Makefile.in: Regenerated.
* ldmain.c (set_scripts_dir): Use make_relative_prefix for the first
search path.
|
|
* lexsup.c (OPTION_STRIP_DISCARDED): Define.
(OPTION_NO_STRIP_DISCARDED): Define.
(ld_options): Add "strip-discarded" and "no-strip-discarded".
(parse_args): Handle them.
|
|
architecture it does not recognise, unless it has explicitly told to accept
them.
|
|
fields.
|
|
comparisons of bfd_boolean vars with TRUE/FALSE. Formatting.
|
|
|
|
* emultempl/beos.em: Likewise.
* emultempl/elf32.em: Likewise.
* emultempl/pe.em: Likewise.
* ldctor.c: Likewise.
* ldexp.c: Likewise.
* ldfile.c: Likewise.
* ldlang.c: Likewise.
* ldlex.c: Likewise.
* ldlex.l: Likewise.
* ldmain.c: Likewise.
* ldmisc.c: Likewise.
* ldwrite.c: Likewise.
* lexsup.c: Likewise.
* mri.c: Likewise.
* pe-dll.c: Likewise.
|
|
|
|
are extracted from archives.
|
|
* ldlang.c (entry_sym): Likewise.
(ldlang_undef_chain_list_type): Likewise.
(lang_finish): Adjust references to entry_symbol.
(lang_add_entry): Likewise.
(lang_gc_sections): Use link_info.gc_sym_list.
(lang_process): Set link_info.gc_sym_list.
* ldlex.l: Include bfdlink.h.
* ldmain.c (main): Init link_info.gc_sym_list.
* emultempl/aix.em: Adjust references to entry_symbol.
* emultempl/armcoff.em: Likewise.
* emultempl/armelf.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/ppc64elf.em (ppc_after_open): New function.
(LDEMUL_AFTER_OPEN): Define.
* emulparams/elf64ppc.sh: KEEP .opd sections.
|
|
imports being resilved if this feature was not requested via a command line
switch.
|
|
* emultempl/elf32.em (gld${EMULATION_NAME}_parse_args): Handle
"-z muldefs".
(gld${EMULATION_NAME}_list_options): Add "-z muldefs".
* ld.texinfo: Updated for --allow-multiple-definition and
"-z muldefs".
* ldmain.c (main): Initialize the allow_multiple_definition
field to false.
* lexsup.c (OPTION_ALLOW_MULTIPLE_DEFINITION): New.
(ld_options): Add --allow-multiple-definition.
(parse_args): Support OPTION_ALLOW_MULTIPLE_DEFINITION.
|
|
|
|
* ldexp.c: Likewise.
* ldfile.c: Likewise.
* ldlang.c: Likewise.
* ldmain.c: Likewise.
* lexsup.c: Likewise.
* pe-dll.c: Likewise.
|
|
* ldlang.c (lang_process): ..to here.
|
|
* ldexp.h (etree_value_type): Add "str" field.
(union etree_union): Add "str" to "value" struct.
(exp_bigintop): Declare.
(exp_get_fill): Declare.
* ldexp.c: Include "safe-ctype.h".
(exp_intop): Set value.str to NULL.
(exp_bigintop): New function.
(new_rel): Pass in "str", and set new.str from it.
(new_rel_from_section): Set new.str to NULL.
(fold_name): Adjust calls to new_rel.
(exp_fold_tree): Likewise.
(exp_get_fill): New function.
* ldgram.y (struct big_int bigint, fill_type *fill): New.
(INT): Returns a "bigint". Adjust all code handling INTs.
(fill_opt): Returns a "fill".
(fill_exp): Split out of fill_opt, use for FILL.
* ldlang.h (struct _fill_type): New.
(fill_type): Move typedef to ldexp.h.
(lang_output_section_statement_type): "fill" is now a pointer.
(lang_fill_statement_type): Likewise.
(lang_padding_statement_type): Likewise.
(lang_add_fill): Now takes a "fill_type *" param.
(lang_leave_output_section_statement): Likewise.
(lang_do_assignments): Likewise.
(lang_size_sections): Likewise.
(lang_leave_overlay_section): Likewise.
(lang_leave_overlay): Likewise.
* ldlang.c: Include ldgram.h after ldexp.h.
(lang_output_section_statement_lookup): Adjust for fill_type change.
(print_fill_statement): Likewise.
(print_padding_statement): Likewise.
(insert_pad): Now takes a "fill_type *" arg.
(size_input_section): Likewise.
(lang_size_sections_1): Likewise.
(lang_size_sections): Likewise.
(lang_do_assignments): Likewise.
(lang_add_fill): Likewise.
(lang_leave_output_section_statement): Likewise.
(lang_leave_overlay_section): Likewise.
(lang_leave_overlay): Likewise.
Adjust all callers of the above function.
* ldlex.l: Include ldgram.h after ldexp.h. Allow hex numbers
starting with "0X" as well as "0x". Return bigint.str for hex
numbers starting with "0x" or "0X", zero bigint.str otherwise.
Always use base 16 for numbers starting with "$".
* ldmain.c: Include ldgram.h after ldexp.h.
* ldwrite.c (build_link_order): Use bfd_data_link_order in place
of bfd_fill_link_order.
* pe-dll.c: Adjust lang_do_assignments calls.
* emultempl/elf32.em: Likewise.
* emultempl/hppaelf.em: Likewise.
* emultempl/ppc64elf.em: Likewise.
* emultempl/beos.em: Include ldgram.h after ldexp.h, adjust
lang_add_assignment call.
* emultempl/pe.em: Likewise.
|
|
* ldmain.c: Add prototype for main ().
* lexsup.c: Guard declaration of strtoul with HAVE_STDLIB_H.
* emultempl/lnk960.em (lnk960_choose_target): Function should
take two arguments.
|
|
|
|
|
|
|
|
Support -b64 in AIX
|
|
with ldlex_script, ldlex_popstate.
(ifile_p1): Likewise.
* ldlex.l (EOF): Don't BEGIN(SCRIPT). Restore lineno from the
correct slot.
(lex_push_file): Save current lineno to lineno_stack. Set lineno
to 1. Don't BEGIN(SCRIPT).
(lex_redirect): Similarly.
* ldmain.c (main): Set yydebug non-zero if YYDEBUG.
|
|
* ldmain.c (get_emulation): Improve comment about the handling
of -mipsN options.
|
|
* ldlang.c (lang_common): Conditionally inhibit Common allocation.
* lexsup.c: Add --no-define-common commandline option.
* ldgram.y: Add INHIBIT_COMMON_ALLOCATION script command.
* ldlex.l: Likewise.
* ld.h: Add command_line.inhibit_common_definition.
* ldmain.c (main): Initialize.
* ld.texinfo: Document.
|
|
|
|
defines BufferSize. Increase buffer size by one.
|
|
Jason Eckhardt <jle@redhat.com>
* ldmain.c (get_emulation): Add support for -mips32 and -mips64.
|
|
|
|
|
|
(struct elf_backend_data): Add elf_backend_reloc_type_class.
(_bfd_elf_reloc_type_class): New.
* elfxx-target.h (elf_backend_reloc_type_class): Define.
(elfNN_bed): Add elf_backend_reloc_type_class.
* elf.c (_bfd_elf_reloc_type_class): New.
* elf32-i386.c (elf_i386_check_relocs): Set DF_TEXTREL if the reloc
is against read-only section.
(elf_i386_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(elf_i386_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elf32-sparc.c (elf32_sparc_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
(elf32_sparc_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(elf32_sparc_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elf64-sparc.c (sparc64_elf_check_relocs): Set DF_TEXTREL if the
reloc is against read-only section.
(sparc64_elf_size_dynamic_sections): Use DF_TEXTREL flag instead of
looking up section names for DT_TEXTREL.
(sparc64_elf_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elfxx-ia64.c (struct elfNN_ia64_link_hash_table): Add reltext field.
(elfNN_ia64_hash_table_create): Clear ia64_info.
(get_reloc_section): Set DF_TEXTREL if the reloc is against read-only
section.
(elfNN_ia64_size_dynamic_sections): Use ia64_info->reltext flag
instead of looking up section names for DT_TEXTREL.
(elfNN_ia64_reloc_type_class): New.
(elf_backend_reloc_type_class): Define.
* elflink.h (size_dynamic_sections): Add spare DT_NULL tags.
(struct elf_link_sort_rela): New.
(elf_link_sort_cmp1, elf_link_sort_cmp2, elf_link_sort_relocs): New.
(elf_bfd_final_link): Call elf_link_sort_relocs.
Convert one spare DT_NULL into DT_RELCOUNT resp. DT_RELACOUNT if
necessary.
* bfdlink.h (struct bfd_link_info): Add combreloc and
spare_dynamic_tags fields.
* emultempl/elf32.em (place_orphan): Place orphan .rel* sections
into .rel.dyn resp. .rela.dyn if combreloc.
(get_script): If .x linker script is equal to .xn, only put it
once into the binary.
Add .xc and .xsc scripts.
(parse_args): Handle -z combreloc and -z nocombreloc.
* scripttempl/elf.sc (.rela.sbss): Fix a typo.
For .xc and .xsc scripts put all .rel* or .rela* input sections
but .rel*.plt and PLT-like sections into .rel.dyn resp. .rela.dyn.
* genscripts.sh (GENERATE_COMBRELOC_SCRIPT): Set if SCRIPT_NAME
is elf.
Strip trailing whitespace from script.
Generate .xc and .xsc scripts if requested.
* ldmain.c (main): Initialize link_info.combreloc and
link_info.spare_dynamic_tags.
* lexsup.c (OPTION_SPARE_DYNAMIC_TAGS): Define.
(ld_options): Add --spare-dynamic-tags option.
(parse_args): Likewise.
* ld.texinfo: Document -z combreloc and -z nocombreloc.
* ldint.texinfo: Document .xc and .xsc linker scripts.
* NEWS: Add notes about -z combreloc and SHF_MERGE.
|
|
|
|
|
|
* ldmain.c (main): initialize link_info.pei386_auto_import
* pe-dll.c: new tables for auto-export filtering
(auto_export): change API, pass abfd for contextual filtering.
Loop thru tables of excluded symbols instead of comparing
"by hand".
2001-08-02 Paul Sokolovsky <paul.sokolovsky@technologist.com>
* pe-dll.c: new variable pe_dll_enable_extra_debug. New
static variable current_sec (static struct sec *). Add
forward declaration for add_bfd_to_link.
(process_def_file): Don't export undefined symbols. Do not
export symbols starting with "_imp__". Call auto_export()
with new API.
(pe_walk_relocs_of_symbol): New function.
(generate_reloc): add optional extra debugging
(pe_dll_generate_def_file): eliminate extraneous initial blank
line in output
(make_one): enlarge symtab to make room for __nm__ symbols
(DATA auto-import support).
(make_singleton_name_thunk): New function.
(make_import_fixup_mark): New function.
(make_import_fixup_entry): New function.
(pe_create_import_fixup): New function.
(add_bfd_to_link): Specify that 'name' argument is a CONST
char *.
* pe-dll.h: declare new variable pe_dll_extra_pe_debug;
declare new functions pe_walk_relocs_of_symbol and
pe_create_import_fixup.
* emultempl/pe.em: add new options --enable-auto-import,
--disable-auto-import, and --enable-extra-pe-debug.
(make_import_fixup): New function.
(pe_find_data_imports): New function.
(pr_sym): New function.
(gld_${EMULATION_NAME}_after_open): Add optional extra pe
debugging. Call pe_find_data_imports. Mark .idata as DATA, not
CODE.
2001-08-02 Charles Wilson <cwilson@ece.gatech.edu>
* ld.texinfo: add additional documentation for
--export-all-symbols. Document --out-implib,
--enable-auto-image-base, --disable-auto-image-base,
--dll-search-prefix, --enable-auto-import, and
--disable-auto-import.
* ldint.texinfo: Add detailed documentation on auto-import
implementation.
|
|
* ldmain.c (main): Fix typos in the last change.
|
|
* ldmain.c (main): Disallow -F and -f without -shared.
|
|
Set new link_info member export_dynamic.
* ldmain.c (main): Initialize new link_info member export_dynamic.
|
|
|
|
* ldfile.c: Include "libiberty.h".
* ldlex.l: Likewise.
* ldmisc.c (buystring): Removed.
* ldmisc.h: Likewise.
* ldfile.c: Replace buystring with xstrdup.
* ldlang.c: Likewise.
* ldlex.l: Likewise.
* ldmain.c: Likewise.
* ldmisc.c: Likewise.
* lexsup.c: Likewise.
* mpw-eppcmac.c: Likewise.
|