This is the mail archive of the
binutils-cvs@sources.redhat.com
mailing list for the binutils project.
src bfd/bfd-in2.h bfd/elf32-arm.c bfd/libbfd.h ...
- From: drow at sourceware dot org
- To: binutils-cvs at sources dot redhat dot com
- Date: 28 Mar 2005 15:39:06 -0000
- Subject: src bfd/bfd-in2.h bfd/elf32-arm.c bfd/libbfd.h ...
CVSROOT: /cvs/src
Module name: src
Branch: binutils-csl-arm-2005q1-branch
Changes by: drow@sourceware.org 2005-03-28 15:39:06
Modified files:
bfd : bfd-in2.h elf32-arm.c libbfd.h reloc.c
gas/config : tc-arm.c
gas/testsuite/gas/arm: arm.exp
include/elf : arm.h
ld/testsuite/ld-arm: arm-dyn.ld arm-elf.exp arm-lib.ld
Added files:
gas/testsuite/gas/arm: tls.d tls.s
ld/testsuite/ld-arm: tls-app.d tls-app.r tls-app.s tls-lib.d
tls-lib.r tls-lib.s
Log message:
* bfd/bfd-in2.h, libbfd.h: Regenerated.
* bfd/reloc.c: Add ARM TLS relocations.
* bfd/elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS
relocations.
(elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto)
(elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto)
(elf32_arm_tls_ie32_howto): New.
(elf32_arm_howto_from_type): Support TLS relocations.
(elf32_arm_reloc_map): Likewise.
(elf32_arm_reloc_type_lookup): Likewise.
(TCB_SIZE): Define.
(struct elf32_arm_obj_tdata): New.
(elf32_arm_tdata, elf32_arm_local_got_tls_type): Define.
(elf32_arm_mkobject): New function.
(struct elf32_arm_relocs_copied): Add pc_count.
(elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD)
(GOT_TLS_IE): Define.
(struct elf32_arm_link_hash_table): Add tls_ldm_got.
(elf32_arm_link_hash_newfunc): Initialize tls_type.
(elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type.
(elf32_arm_link_hash_table_create): Initialize tls_ldm_got.
(dtpoff_base, tpoff): New functions.
(elf32_arm_final_link_relocate): Handle TLS relocations.
(IS_ARM_TLS_RELOC): Define.
(elf32_arm_relocate_section): Warn about TLS mismatches.
(elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count.
(elf32_arm_check_relocs): Detect invalid symbol indexes. Handle
TLS relocations and pc_count.
(elf32_arm_adjust_dynamic_symbol): Check non_got_ref.
(allocate_dynrelocs): Handle TLS. Bind REL32 relocs to local
calls.
(elf32_arm_size_dynamic_sections): Handle TLS.
(elf32_arm_finish_dynamic_symbol): Likewise.
(bfd_elf32_mkobject): Define.
* gas/config/tc-arm.c (arm_parse_reloc): Add TLS relocations.
(md_apply_fix3): Mark TLS symbols.
(tc_gen_reloc): Handle TLS relocations.
(arm_fix_adjustable): Ignore TLS relocations.
(s_arm_elf_cons): Support expressions after decorated symbols.
* gas/testsuite/gas/arm/tls.s, gas/testsuite/gas/arm/tls.d: New files.
* gas/testsuite/gas/arm/arm.exp: Run TLS test.
* include/elf/arm.h: Add TLS relocations.
* ld/testsuite/ld-arm/tls-lib.s, ld/testsuite/ld-arm/tls-lib.d,
ld/testsuite/ld-arm/tls-lib.r, ld/testsuite/ld-arm/tls-app.s,
ld/testsuite/ld-arm/tls-app.d, ld/testsuite/ld-arm/tls-app.r: New files.
* ld/testsuite/ld-arm/arm-lib.ld, ld/testsuite/ld-arm/arm-dyn.ld:
Increase data segment alignment.
* ld/testsuite/ld-arm/arm-elf.exp: Run TLS tests.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/bfd-in2.h.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.325&r2=1.325.4.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/elf32-arm.c.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.22.2.3.2.1&r2=1.22.2.3.2.2
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/libbfd.h.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.137&r2=1.137.4.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/reloc.c.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.123&r2=1.123.4.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/gas/config/tc-arm.c.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.193.4.1&r2=1.193.4.2
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/arm/tls.d.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/arm/tls.s.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/gas/testsuite/gas/arm/arm.exp.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.35.4.1&r2=1.35.4.2
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/include/elf/arm.h.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.20.2.1&r2=1.20.2.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/tls-app.d.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/tls-app.r.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/tls-app.s.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/tls-lib.d.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/tls-lib.r.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/tls-lib.s.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=NONE&r2=1.1.2.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/arm-dyn.ld.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.1&r2=1.1.4.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/arm-elf.exp.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.6&r2=1.6.4.1
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/testsuite/ld-arm/arm-lib.ld.diff?cvsroot=src&only_with_tag=binutils-csl-arm-2005q1-branch&r1=1.1&r2=1.1.4.1