From 5ba446e77982061d795c7f82dd92d24f082d0571 Mon Sep 17 00:00:00 2001
From: Alexandre Oliva <aoliva@redhat.com>
Date: Tue, 25 Jan 2005 20:22:35 +0000
Subject: [PATCH] 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.

---
 include/elf/ChangeLog    |  7 +++++++
 include/elf/frv.h        | 18 +++++++++++++++++-
 include/opcode/ChangeLog |  6 ++++++
 include/opcode/cgen.h    |  3 ++-
 4 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 8ecaa501d..74795eeb0 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,10 @@
+2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
+
+	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.
+
 2005-01-17  Nick Clifton  <nickc@redhat.com>
 
 	* sh.h (EF_SH2A_SH4_NOFPU, EF_SH2A_SH3_NOFPU, EF_SH2A_SH4,
diff --git a/include/elf/frv.h b/include/elf/frv.h
index a6b8a7d14..bbd8f33c5 100644
--- a/include/elf/frv.h
+++ b/include/elf/frv.h
@@ -1,5 +1,5 @@
 /* FRV ELF support for BFD.
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
 
 This file is part of BFD, the Binary File Descriptor library.
 
@@ -49,6 +49,22 @@ START_RELOC_NUMBERS (elf_frv_reloc_type)
   RELOC_NUMBER (R_FRV_GOTOFF12, 22)
   RELOC_NUMBER (R_FRV_GOTOFFHI, 23)
   RELOC_NUMBER (R_FRV_GOTOFFLO, 24)
+  RELOC_NUMBER (R_FRV_GETTLSOFF, 25)
+  RELOC_NUMBER (R_FRV_TLSDESC_VALUE, 26)
+  RELOC_NUMBER (R_FRV_GOTTLSDESC12, 27)
+  RELOC_NUMBER (R_FRV_GOTTLSDESCHI, 28)
+  RELOC_NUMBER (R_FRV_GOTTLSDESCLO, 29)
+  RELOC_NUMBER (R_FRV_TLSMOFF12, 30)
+  RELOC_NUMBER (R_FRV_TLSMOFFHI, 31)
+  RELOC_NUMBER (R_FRV_TLSMOFFLO, 32)
+  RELOC_NUMBER (R_FRV_GOTTLSOFF12, 33)
+  RELOC_NUMBER (R_FRV_GOTTLSOFFHI, 34)
+  RELOC_NUMBER (R_FRV_GOTTLSOFFLO, 35)
+  RELOC_NUMBER (R_FRV_TLSOFF, 36)
+  RELOC_NUMBER (R_FRV_TLSDESC_RELAX, 37)
+  RELOC_NUMBER (R_FRV_GETTLSOFF_RELAX, 38)
+  RELOC_NUMBER (R_FRV_TLSOFF_RELAX, 39)
+  RELOC_NUMBER (R_FRV_TLSMOFF, 40)
   RELOC_NUMBER (R_FRV_GNU_VTINHERIT, 200)
   RELOC_NUMBER (R_FRV_GNU_VTENTRY, 201)
 END_RELOC_NUMBERS(R_FRV_max)
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 1a589bd20..44c7dc448 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,9 @@
+2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
+
+	2004-11-10  Alexandre Oliva  <aoliva@redhat.com>
+	* cgen.h (enum cgen_parse_operand_type): Add
+	CGEN_PARSE_OPERAND_SYMBOLIC.
+
 2005-01-21  Fred Fish  <fnf@specifixinc.com>
 
 	* mips.h: Change INSN_ALIAS to INSN2_ALIAS.
diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h
index 16366fd0d..2926f9150 100644
--- a/include/opcode/cgen.h
+++ b/include/opcode/cgen.h
@@ -369,7 +369,8 @@ enum cgen_parse_operand_type
 {
   CGEN_PARSE_OPERAND_INIT,
   CGEN_PARSE_OPERAND_INTEGER,
-  CGEN_PARSE_OPERAND_ADDRESS
+  CGEN_PARSE_OPERAND_ADDRESS,
+  CGEN_PARSE_OPERAND_SYMBOLIC
 };
 
 /* Values for indicating what was parsed.  */