* ldemul.c (ldemul_recognized_file): new function, new hook
* ldint.texinfo: document new hook.
* ldlang.c (load_symbols): call recognized_hook for all objects we
do recognize, in case the emulation needs to handle them
specially. PE DLLs use this.
* pe-dll.c (pe_dll_generate_def_file): take out hack and debug
printfs
* emultempl/pe.em (gld_i386_recognized_file): new function
(gld_i486_unrecognized_file): take out hack
they link in the right order.
(make_tail): same here
(pe_process_import_defs): use sequential names for bfds to ensure
proper link order.
(pe_implied_import_dll): new function; handles linking directly
against DLLs by simulating IMPORTS directives. * emultempl/pe.em
(gld_i386pe_before_parse): hack bfd to not recognize .dll files
via bfd_pe_dll_not_recognized_hack
pe_process_import_defs
* pe-dll.c (pe_dll_generate_def_file): calculate BASE from
pe_data, only print if actually set. Print version only if
set.
(save_relocs): save relocs for both input and output.
(make_one): support internal/external different names.
(pe_dll_generate_implib): support new make_one
(pe_process_import_defs): new function; handles IMPORT
directives in .def files.
* deffile.h: add hint member.
* pe-dll.c (pe_dll_generate_implib): New function with helpers;
generates the import library directly from the export table.
(fill_edata): remember the actual hint for the import library.
symbols, clean up old code.
(pe_dll_generate_def_file): don't crash if pe_def_file is NULL
* emultempl/pe.em (gld_i386_parse_args): add
(en/dis)able-stdcall-fixups
(pe_fixup_stdcalls): warn about stdcall fixups
(gld_i386_unrecognized_file): make exported symbols undefs so that
archive members get pulled in
* deffile.h: New file; direct support for PE DLLs
* deffilep.y: New file; direct support for PE DLLs
* emultempl/pe.em: add direct support for PE DLLs
* configure.tgt: allow target-specific extra files
* configure.in: allow target-specific extra files
* ldlang.c (lang_add_assignment): return the assignment so that
one can change the value later based on the object files (pe-dll
DEF files do this)
* ldint.texinfo: add section for emulation walkthrough
* lexsup.c (ld_options): Change text of -O to Optimize output file".
(parse_args): Set link_info.optimize based on -O argument.
* ldmain.c (main): Initialize link_info.optimze to false.
* ld.texinfo: Describe -O option.
* ld.1: Likewise.
dyanmic linking.
* scripttempl/v850.sc: Add KEEP attribute to .init,
.fini, .dtors and .ctors. Add .data and .text
wildcards to support section garbage collection.
elf. Change TEXT_START_ADDR to 0x8000. Define
OTHER_TEXT_SECTIONS, OTHER_BSS_SYMBOLS and
OTHER_BSS_END_SYMBOLS.
* scripttempl/elf.sc: Modify to use
OTHER_BSS_END_SYMBOLS.
* scripttempl/elfarm.sc: Remove file.
Add bfd_ prefix to elf32_arm_process_before_allocation
and elf32_arm_allocate_interworking_sections.
(gld_armelf_after_open): Add bfd_ prefix to
elf32_arm_get_bfd_for_interworking.