2003-04-28 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_merge_symbol): Call elf_backend_copy_indirect_symbol
to copy any information related to dynamic linking when we flip
the indirection.
ld/testsuite/
2003-04-28 H.J. Lu <hjl@gnu.org>
* ld-elfvers/vers.exp (picflag): Set PIC flag for compiler.
(build_vers_lib): Support PIC.
(build_vers_lib_no_pic): New. Change all calls to build_vers_lib
to build_vers_lib_no_pic.
(build_vers_lib_pic): New.
Add tests vers26a, vers26b1, vers26b2 and vers26b3 for versioned
definition vs. normal definition in different files.
* ld-elfvers/vers26a.c: New file.
* ld-elfvers/vers26a.dsym: Likewise.
* ld-elfvers/vers26a.map: Likewise.
* ld-elfvers/vers26a.ver: Likewise.
* ld-elfvers/vers26b.c: Likewise.
* ld-elfvers/vers26b.dsym: New empty file.
* ld-elfvers/vers26b.ver: Likewise.
2003-04-27 H.J. Lu <hjl@gnu.org>
* elf-bfd.h (ELF_LINK_DYNAMIC_DEF): New.
(ELF_LINK_DYNAMIC_WEAK): New.
* elflink.h (elf_merge_symbol): Add one argument to indicate if
a symbol should be skipped. Ignore definitions in dynamic
objects for symbols with non-default visibility.
(elf_add_default_symbol): Adjusted.
(elf_link_add_object_symbols): Check if a symbol should be
skipped. Don't merge the visibility field with the one from
a dynamic object.
(elf_link_check_versioned_symbol): Use undef_bfd.
(elf_link_output_extsym): Warn if a forced local symbol is
referenced from dynamic objects. Make non-weak undefined symbol
with non-default visibility a fatal error.
ld/testsuite/
2003-04-27 H.J. Lu <hjl@gnu.org>
* ld-elfvsb/elfvsb.dat: Updated.
* ld-elfvsb/elfvsb.exp: Likewise.
* ld-elfvsb/main.c: Likewise.
* ld-elfvsb/sh1.c: Likewise.
* ld-elfvsb/sh2.c: Likewise.
* elf32-m68hc11.c (m68hc11_elf_relax_section): Clear prev_insn_group
when we couldn't relax something.
* ld-m68hc11/bug-3331.d: New test.
* ld-m68hc11/bug-3331.s: New file.
* ld-m68hc11/far-hc11.d: New test for HC11 trampoline generation.
* ld-m68hc11/far-hc12.s: New file.
* ld-m68hc11/far-hc12.d: New test for HC12 trampoline generation.
* ld-m68hc11/far-hc12.ld: New file.
68HC11 and 68HC12.
(LDEMUL_BEFORE_ALLOCATION): Override to gather the trampolines to
generate.
(LDEMUL_FINISH): Override to generate the trampolines after gc and
linker relaxation.
(LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Override to create the
stub file for trampolines.
(PARSE_AND_LIST_OPTIONS, PARSE_AND_LIST_LONGOPTS): New options
--no-trampoline and --bank-window to control the memory bank window.
ld-mips-elf/elf-rel-got-n64.d, ld-mips-elf/elf-rel-xgot-n32.d,
ld-mips-elf/elf-rel-xgot-n64.d: New.
* ld-mips-elf/mips-elf.exp (hasn32): Define as condition for
new tests to run.
(process_def_file): Don't create an export section if there are no exports and
we're building an exe.
(pe_dll_build_sections): Ditto
(pe_dll_fill_sections): Conditionalize setting abfd->dll true on info->shared
emultempl/pe.em (gld_${EMULATION_NAME}_after_open): If i386pe or armpe, call
pe_dll_build_section() for both exe's and dll's, not just dll's. Don't call
pe_dll_build_section() if link_info.relocateable.
(gld_${EMULATION_NAME}_finish): For all targets except shpe and mipspe, call
pe_dll_fill_sections() for both exe's and dll's, not just dll's. Don't call
pe_dll_fill_sections() if link_info.relocateable.