Commit graph

8 commits

Author SHA1 Message Date
H.J. Lu
6b3b0ab896 Make linker assigned symbol dynamic only for shared object
Linker assigned symbols should be made dynamic by default only when
creating shared object or relocatable executable.

bfd/

	* elflink.c (bfd_elf_record_link_assignment): Check for shared
	library, instead of PIC, and don't check PDE when making linker
	assigned symbol dynamic.

ld/

	* testsuite/ld-frv/fdpic-pie-6.d: Updated.
	* testsuite/ld-mips-elf/pie-n32.d: Likewise.
	* testsuite/ld-mips-elf/pie-n64.d: Likewise.
	* testsuite/ld-mips-elf/pie-o32.d: Likewise.
2016-02-23 05:19:03 -08:00
Alan Modra
85167a847e Adjust for dynamic sym changes. 2005-08-15 15:39:48 +00:00
Alexandre Oliva
68320ddb7e bfd/ChangeLog:
* elf32-frv.c (elf32_frv_relocate_section): Remove warning from
uninitialized check_segment[1] in TLSMOFF case.
Reported by Alan Modra.
(elf32_frv_relocate_section): Improve errors and warnings.
ld/testsuite/ChangeLog:
* ld-frv/fdpic-static-6.d: Update.
* ld-frv/fdpic*.d: Remove explicit -mfdpic from #as.  Update
spelling of errors and warnings.
2005-02-17 17:11:01 +00:00
Alexandre Oliva
90219bd0f3 bfd/ChangeLog:
2004-12-10  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (elf32_frv_relocate_section): Force local binding
for TLSMOFF.
* reloc.c: Add R_FRV_TLSMOFF.
* elf32-frv.c (elf32_frv_howto_table): Likewise.
(frv_reloc_map, frv_reloc_type_lookup): Map it.
(elf32_frv_relocate_section): Handle it.
(elf32_frv_check_relocs): Likewise.
* libbfd.h, bfd-in2.h: Rebuilt.
2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
* elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash
when given an undefweak TLS symbol.  Fix constant TLS PLT entries
such that they return the constant in gr9.
(_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS
symbols.
(_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections.
too, such that they shrink on relaxation.
(elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as
marking the position right past the _GLOBAL_OFFSET_TABLE_ value.
(_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries
if we can guarantee the use of 16-bit constants.
2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
Introduce TLS support for FR-V FDPIC.
* reloc.c: Add TLS relocations.
* elf32-frv.c (elf32_frv_howto_table): Add TLS relocations.
(elf32_frv_rel_tlsdesc_value_howto): New.
(elf32_frv_rel_tlsoff_howto): New.
(frv_reloc_map): Add new mappings.
(struct frvfdpic_elf_link_hash_table): Add pointer to summary
reloc information.
(frvfdpic_dynamic_got_plt_info): New.
(frvfdpic_plt_tls_ret_offset): New.
(ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier.
(struct _frvfdpic_dynamic_got_info): Likewise.  Add TLS members.
(struct _frvfdpic_dynamic_got_plt_info): Likewise.
(FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute
section as local.
(struct frvfdpic_relocs_info): Add TLS fields.
(frvfdpic_relocs_info_hash): Warning clean up.
(frvfdpic_relocs_info_find): Initialize tlsplt_entry.
(frvfdpic_pic_merge_early_relocs_info): Merge TLS fields.
(FRVFDPIC_TLS_BIAS): Define.
(tls_biased_base): New.
(_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS
relocations.
(frv_reloc_type_lookup): Likewise.
(frvfdpic_info_to_howto_rel): Likewise.
(elf32_frv_relocate_section): Likewise.
(_frv_create_got_section): Create the PLT section here.
(elf32_frvfdpic_create_dynamic_sections): Not here.
(_frvfdpic_count_nontls_entries): Move out of...
(_frvfdpic_count_got_plt_entries): ... here.
(_frvfdpic_count_tls_entries): Likewise.  Add TLS support.
(_frvfdpic_count_relocs_fixups): Likewise.  Add relaxation
support.
(_frvfdpic_relax_tls_entries): New.
(_frvfdpic_compute_got_alloc_data): Add TLS support.
(_frvfdpic_get_tlsdesc_entry): New.
(_frvfdpic_assign_got_entries): Add TLS support.
(_frvfdpic_assign_plt_entries): Likewise.
(_frvfdpic_reset_got_plt_entries): New.
(_frvfdpic_size_got_plt): Move out of...
(elf32_frvfdpic_size_dynamic_sections): ... here.
(_frvfdpic_relax_got_plt_entries): New.
(elf32_frvfdpic_relax_section): New.
(elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check.
(elf32_frv_check_relocs): Add TLS support.
(bfd_elf32_bfd_relax_section): Define for FDPIC.
* libbfd.h, bfd-in2.h: Rebuilt.
cpu/ChangeLog:
2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
* frv.cpu: Add support for TLS annotations in loads and calll.
* frv.opc (parse_symbolic_address): New.
(parse_ldd_annotation): New.
(parse_call_annotation): New.
(parse_ld_annotation): New.
(parse_ulo16, parse_uslo16): Use parse_symbolic_address.
Introduce TLS relocations.
(parse_d12, parse_s12, parse_u12): Likewise.
(parse_uhi16): Likewise.  Fix constant checking on 64-bit host.
(parse_call_label, print_at): New.
gas/ChangeLog:
* config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such.
2004-12-10  Alexandre Oliva  <aoliva@redhat.com>
* config/tc-frv.c (frv_pic_ptr): Add tlsmoff support.
2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
* cgen.c (gas_cgen_parse_operand): Handle
CGEN_PARSE_OPERAND_SYMBOLIC.
* config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations.
(frv_force_relocation): Likewise.  Fix handling of PIC
relocations.
(md_apply_fix3): Likewise.
include/elf/ChangeLog:
2004-12-10  Alexandre Oliva  <aoliva@redhat.com>
* frv.h: Add R_FRV_TLSMOFF.
2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
* frv.h: Add TLS relocations.
include/opcode/ChangeLog:
2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
* cgen.h (enum cgen_parse_operand_type): Add
CGEN_PARSE_OPERAND_SYMBOLIC.
ld/testsuite/ChangeLog:
* ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS.
* ld-frv/tls.exp: Likewise.
2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/tls-3.s: New.
* ld-frv/tls-static-3.d: New.
* ld-frv/tls-dynamic-3.d: New.
* ld-frv/tls-pie-3.d: New.
* ld-frv/tls-shared-3.d: New.
* ld-frv/tls-relax-static-3.d: New.
* ld-frv/tls-relax-dynamic-3.d: New.
* ld-frv/tls-relax-pie-3.d: New.
* ld-frv/tls-relax-shared-3.d: New.
* ld-frv/tls.exp: Run the new tests.
* ld-frv/tls-dynamic-2.d: Adjust for improved relaxation.
* ld-frv/tls-relax-dynamic-2.d: Likewise.
* ld-frv/tls-relax-initial-shared-2.d: Likewise.
2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/tls-1-dep.s: New.
* ld-frv/tls-1-shared.lds: New.
* ld-frv/tls-1.s: New.
* ld-frv/tls-2.s: New.
* ld-frv/tls-dynamic-1.d: New.
* ld-frv/tls-dynamic-2.d: New.
* ld-frv/tls-initial-shared-2.d: New.
* ld-frv/tls-pie-1.d: New.
* ld-frv/tls-relax-dynamic-1.d: New.
* ld-frv/tls-relax-dynamic-2.d: New.
* ld-frv/tls-relax-initial-shared-2.d: New.
* ld-frv/tls-relax-pie-1.d: New.
* ld-frv/tls-relax-shared-1.d: New.
* ld-frv/tls-relax-shared-2.d: New.
* ld-frv/tls-relax-static-1.d: New.
* ld-frv/tls-shared-1-fail.d: New.
* ld-frv/tls-shared-1.d: New.
* ld-frv/tls-shared-2.d: New.
* ld-frv/tls-static-1.d: New.
* ld-frv/tls.exp: New.
* ld-frv/fdpic-pie-1.d: Adjust for 64-bit host.
* ld-frv/fdpic-pie-2.d: Likewise.
* ld-frv/fdpic-pie-6.d: Likewise.
* ld-frv/fdpic-pie-7.d: Likewise.
* ld-frv/fdpic-pie-8.d: Likewise.
* ld-frv/fdpic-shared-1.d: Likewise.
* ld-frv/fdpic-shared-2.d: Likewise.
* ld-frv/fdpic-shared-3.d: Likewise.
* ld-frv/fdpic-shared-4.d: Likewise.
* ld-frv/fdpic-shared-5.d: Likewise.
* ld-frv/fdpic-shared-6.d: Likewise.
* ld-frv/fdpic-shared-7.d: Likewise.
* ld-frv/fdpic-shared-8.d: Likewise.
* ld-frv/fdpic-shared-local-2.d: Likewise.
* ld-frv/fdpic-shared-local-8.d: Likewise.
* ld-frv/fdpic-static-1.d: Likewise.
* ld-frv/fdpic-static-2.d: Likewise.
* ld-frv/fdpic-static-6.d: Likewise.
* ld-frv/fdpic-static-7.d: Likewise.
* ld-frv/fdpic-static-8.d: Likewise.
opcodes/ChangeLog:
2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
* frv-asm.c: Rebuilt.
* frv-desc.c: Rebuilt.
* frv-desc.h: Rebuilt.
* frv-dis.c: Rebuilt.
* frv-ibld.c: Rebuilt.
* frv-opc.c: Rebuilt.
* frv-opc.h: Rebuilt.
2005-01-25 20:22:41 +00:00
Alexandre Oliva
aee6f5b4bd bfd/ChangeLog:
* elf-bfd.h (struct elf_backend_data): Added
elf_backend_omit_section_dynsym.
(_bfd_elf_link_omit_section_dynsym): Declare.
* elf32-frv.c (_frvfdpic_link_omit_section_dynsym): New.
(elf_backend_omit_section_dynsym): Use it for frvfdpic.
* elflink.c (_bfd_elf_link_omit_section_dynsym): Split out of...
(_bfd_elf_link_renumber_dynsyms): ... this function.
* elfxx-target.h (elf_backend_omit_section_dynsym): Default to
_bfd_elf_link_omit_section_dynsym).
(elfNN_bed): Added elf_backend_omit_section_dynsym.
ld/ChangeLog:
* emulparams/elf32frvfd.sh (GENERATE_PIE_SCRIPT): Set to yes.
ld/testsuite/ChangeLog:
* ld-frv/fdpic-pie-1.d: Adjust for pie-specific link script.
* ld-frv/fdpic-pie-2.d: Likewise.
* ld-frv/fdpic-pie-6.d: Likewise.
* ld-frv/fdpic-pie-7.d: Likewise.
* ld-frv/fdpic-pie-8.d: Likewise.
* ld-frv/fdpic-shared-1.d: Likewise.
* ld-frv/fdpic-shared-2.d: Likewise.
* ld-frv/fdpic-shared-3.d: Likewise.
* ld-frv/fdpic-shared-4.d: Likewise.
* ld-frv/fdpic-shared-5.d: Likewise.
* ld-frv/fdpic-shared-6.d: Likewise.
* ld-frv/fdpic-shared-7.d: Likewise.
* ld-frv/fdpic-shared-8.d: Likewise.
* ld-frv/fdpic-shared-local-2.d: Likewise.
* ld-frv/fdpic-shared-local-8.d: Likewise.
2004-06-21 14:45:42 +00:00
Alexandre Oliva
90084db24d * ld-frv/fdpic*.d: Adjust to compensate for page size change. 2004-03-27 21:11:17 +00:00
Alexandre Oliva
9b1f5ff99b * ld-frv/fdpic-pie-2.d: Adjust for decay of FUNCDESC relocs that
bind locally.
* ld-frv/fdpic-pie-8.d: Likewise.
* ld-frv/fdpic-shared-4.d: Likewise.
* ld-frv/fdpic-pie-6-fail.d: Renamed from...
* ld-frv/fdpic-pie-6.d: New test.
* ld-frv/fdpic-shared-6-fail.d: Renamed from...
* ld-frv/fdpic-shared-6.d: New test.
* ld-frv/fdpic6.ldv: New.
* ld-frv/fdpic-static-6.d: Adjust test name.
* ld-frv/fdpic-pie-8-fail.d: Removed.
* ld-frv/fdpic.exp: Run new tests.
2004-02-24 16:39:09 +00:00
Alexandre Oliva
a9a704fc4e * ld-frv: Update .d files with correct addresses displayed for
dynamic relocations.
2003-12-02  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/fdpic1.s (.D0): Move to separate data section.
2003-11-28  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/fdpic-static-1.d, ld-frv/fdpic-static-2.d,
* ld-frv/fdpic-static-7.d, ld-frv/fdpic-static-8.d: Update to
reflect EMBEDDED= change in linker script.
2003-11-27  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv: Update .d files to reflect changes in the page size, the
addition of a stack segment, the use of a NULL function descriptor
for weakundef functions and the change in the lazy funcdesc_value
in-place addend value.
2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
* lib/ld-lib.exp (is_elf_format): Match frv-uclinux.
2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/fdpic-static-1.d, ld-frv/fdpic-static-2.d,
ld-frv/fdpic-static-7.d, ld-frv/fdpic-static-8.d: Addresses are
now _gp-based, not .rofixup-based.
* ld-frv/fdpic-static-6.d: Likewise.  Match warning about
relocation to different section.
2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/fdpic.exp: Add -melf32frvfd to LDFLAGS.
2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/fdpic7.s, ld-frv/fdpic-static-7.d, ld-frv/fdpic-pie-7.d,
ld-frv/fdpic-shared-7.d: New.
* ld-frv/fdpic8.s, ld-frv/fdpic-static-8.d, ld-frv/fdpic-pie-8.d,
ld-frv/fdpic-shared-8.d: New.
* ld-frv/fdpic-pie-8-fail.d, ld-frv/fdpic-shared-8-fail.d: New.
* ld-frv/fdpic.exp: Run them.
* ld-frv/fdpic8.ldv, ld-frv/fdpic8min.ldv: New.
2003-09-18  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/fdpic5.s, ld-frv/fdpic-static-5.d, ld-frv/fdpic-pie-5.d,
ld-frv/fdpic-shared-5.d: New.
* ld-frv/fdpic6.s, ld-frv/fdpic-static-6.d, ld-frv/fdpic-pie-6.d,
ld-frv/fdpic-shared-6.d: New.
* ld-frv/fdpic.exp: Run them.
* ld-frv/fdpic*.d: Add -mfdpic to assembler flags.  Updated.
* ld-frv/fdpic2min.ldv: New, used by fdpic-shared-2.d.
* ld-frv/fdpic-shared-2-fail.d: New.
* ld-frv/fdpic.exp: Run it.
* ld-frv/fdpic4.s, ld-frv/fdpic-shared-4.d: New.
* ld-frv/fdpic.exp: Add new test.
* ld-frv/fdpic-pie-2.d: Remove unnecessary function descriptors.
* ld-frv/fdpic-shared-local-2.d, ld-frv/fdpic2.ldv: New.
* ld-frv/fdpic3.s, ld-frv/fdpic-shared-3.d: New.
* ld-frv/fdpic.exp: Add new tests.
* ld-frv/fdpic.exp, ld-frv/fdpic1.s, ld-frv/fdpic2.s,
* ld-frv/fdpic-static-1.d, ld-frv/fdpic-static-2.d,
* ld-frv/fdpic-pie-1.d, ld-frv/fdpic-pie-2.d,
* ld-frv/fdpic-shared-1.d, ld-frv/fdpic-shared-2.d: Renamed from
ucpic.
2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
* ld-frv/ucpic.exp, ld-frv/ucpic1.s, ld-frv/ucpic2.s: New.
* ld-frv/ucpic-static-1.d, ld-frv/ucpic-static-2.d: New.
* ld-frv/ucpic-pie-1.d, ld-frv/ucpic-pie-2.d: New.
* ld-frv/ucpic-shared-1.d, ld-frv/ucpic-shared-2.d: New.
2004-01-06 19:19:31 +00:00