public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master:         M68K TLS support.
@ 2009-02-03 16:37 tromey
  0 siblings, 0 replies; only message in thread
From: tromey @ 2009-02-03 16:37 UTC (permalink / raw)
  To: archer-commits

The branch, master has been updated
       via  83244659d8ba6362e7dbd7dfafb8ed1cf6e51c0a (commit)
       via  a3bba34e704e8ff71dba954c74452217cb40124d (commit)
       via  34083a97307a6f1456c9455997c4b5471ba21330 (commit)
       via  9b9259f61cdcbec6d68eb9cedef6819f288053ed (commit)
       via  331acbfdd7b4c6734baad6d4d4c2c1489a9a22a1 (commit)
       via  12ee80b84d3220d99f5396deb7b072e51d7d1afd (commit)
       via  55a909760e801aafcf7e031b098cf2161d248d9a (commit)
       via  48a6038a855c30477e907307ab8b7d3834c575c1 (commit)
       via  fe4c4e465347fee881541b71c140a773f42a0ce6 (commit)
       via  e1d633a3fafbf670c686f59f3007b6280da50625 (commit)
       via  5c8d779d999734da634d5905e5a945d98cab69d8 (commit)
       via  54596033c019654f4a92f8d99c62a2cfb02b8b19 (commit)
       via  7a228ded75afbcc5af87b9cd26e54ceea0b3cb25 (commit)
      from  d8ccded1bd72290e07a69451f708292a76fe7a7a (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 83244659d8ba6362e7dbd7dfafb8ed1cf6e51c0a
Author: Nick Clifton <nickc@redhat.com>
Date:   Tue Feb 3 14:36:45 2009 +0000

            M68K TLS support.
    
            ld/testsuite/
            * ld-m68k/got-multigot-12-13-14-34-35-ok.d: Update.
            * ld-m68k/got-multigot-14-ok.d: Update.
            * ld-m68k/m68k-got.exp: Update.
            * ld-m68k/got-negative-12-13-14-34-ok.d: Update.
            * ld-m68k/got-negative-14-ok.d: Update.
            * ld-m68k/tls-gd-1.d, ld-m68k/tls-gd-2.d: New tests.
            * ld-m68k/tls-gd-ie-1.d, ld-m68k/tls-ie-1.d: New tests.
            * ld-m68k/tls-ld-1.d, ld-m68k/tls-ld-2.d: New tests.
            * ld-m68k/tls-ld-1.s, ld-m68k/tls-ld-2.s, ld-m68k/tls-le-1.s:
            New test sources.
            * ld-m68k/tls-no-1.s, ld-m68k/tls-gd-ie-1.s, ld-m68k/tls-gd-1.s:
            New test sources.
            * ld-m68k/tls-gd-2.s, ld-m68k/tls-ie-1.s: New test sources.
            * ld-m68k/m68k.exp: Run new tests.
            (merge isa-a isa-a:nodiv): Fix.
    
            gas/testsuite/
            * gas/m68k/tls-gd-3.d, gas/m68k/tls-gd-3.s: New test.
            * gas/m68k/all.exp: Run it.
    
            gas/
            * config/m68k-parse.h (enum pic_relocation): Add values for TLS
            relocations.
            * config/m68k-parse.y (yylex): Parse TLS relocations.
            * config/tc-m68k.c (m68k_elf_cons): New static function.
            (md_pseudo_table): Use it.
            (get_reloc_code, tc_m68k_fix_adjustable, tc_gen_reloc): Handle TLS
            relocations.
            (md_apply_fix): Fix to set thread local flag.
            (m68k_elf_suffix): New static function; helper for m68k_elf_cons.
    
            include/elf/
            * m68k.h: Map TLS relocations to numbers.
    
            bfd/
            * bfd-in2.h: Regenerate.
            * elf32-m68k.c: Handle 2-slot GOT entries.  Rename variables and
            fields from n_entries to n_slots where appropriate, update comments.
            (HOWTO): Add TLS relocations.
            (reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*.
            (enum elf_m68k_got_offset_size): New enum.
            (struct elf_m68k_got_entry.type): Move field to ...
            (struct elf_m68k_got_entry_key): ... here.  Update all uses.
            (elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static
            functions.
            (elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static
            functions.
            (struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries
            fields into n_entries array.  Update comments.
            (elf_m68k_init_got): Simplify, update all uses.
            (elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update.
            (ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot
            GOT entries; update name, update all uses.
            (ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto.
            (elf_m68k_get_got_entry): Update.
            (elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries,
            simplify.
            (elf_m68k_remove_got_entry_type): Simplify.
            (elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update.
            (elf_m68k_can_merge_gots): Update.
            (elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update.
            (struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot
            GOT entries, simplify.
            (elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same.
            (struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff
            field, remove obsoleted local_n_entries field.
            (elf_m68k_partition_multi_got_2): New static function.
            (elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it;
            update.
            (elf_m68k_remove_got_entry_type): Update.
            (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
            (elf_m68k_check_relocs): Handle TLS relocations.  Remove unnecessary
            update of sgot->size and srelgot->size.
            (elf_m68k_gc_sweep_hook): Update.
            (elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
            (elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle
            TLS relocations.
            * reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations.
            * libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*.

commit a3bba34e704e8ff71dba954c74452217cb40124d
Author: DJ Delorie <dj@delorie.com>
Date:   Tue Feb 3 02:15:56 2009 +0000

    * elf32-mep.c (config_names): Regenerate configuration.
    
    * mep-asm.c: Regenerate.
    * mep-desc.c: Regenerate.
    * mep-desc.h: Regenerate.
    * mep-dis.c: Regenerate.
    * mep-ibld.c: Regenerate.
    * mep-opc.c: Regenerate.
    * mep-opc.h: Regenerate.

commit 34083a97307a6f1456c9455997c4b5471ba21330
Author: Joel Brobecker <brobecker@gnat.com>
Date:   Tue Feb 3 01:09:35 2009 +0000

            * breakpoint (update_watchpoint): Minor comment adjustment.

commit 9b9259f61cdcbec6d68eb9cedef6819f288053ed
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Feb 3 01:09:00 2009 +0000

    Fix ChangeLog to point to the correct bug, PR gdb/9594.
    
    gdb/testsuite
    	* gdb.cp/cpcompletion.exp: Name the test "pr9594".
    	* gdb.cp/pr2489.cc: Rename...
    	* gdb.cp/pr9594.cc: ... to this.

commit 331acbfdd7b4c6734baad6d4d4c2c1489a9a22a1
Author: Tom Tromey <tromey@redhat.com>
Date:   Tue Feb 3 01:00:35 2009 +0000

    gdb
    	PR gdb/2489:
    	* completer.c (count_struct_fields): Count method names.
    	(add_struct_fields): Add matching method names.
    gdb/testsuite
    	* gdb.cp/Makefile.in (EXECUTABLES): Add pr2489.
    	* gdb.cp/pr2489.cc: New file.
    	* gdb.cp/cpcompletion.exp: New file.

commit 12ee80b84d3220d99f5396deb7b072e51d7d1afd
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Tue Feb 3 00:00:04 2009 +0000

    daily update

commit 55a909760e801aafcf7e031b098cf2161d248d9a
Author: gdbadmin <gdbadmin@sourceware.org>
Date:   Tue Feb 3 00:00:03 2009 +0000

    *** empty log message ***

commit 48a6038a855c30477e907307ab8b7d3834c575c1
Author: Doug Evans <dje@google.com>
Date:   Mon Feb 2 23:18:03 2009 +0000

    	* config/tcl.m4 (SC_PATH_TCLCONFIG): Don't exit 0 if tclconfig fails.
    	(SC_PATH_TKCONFIG): Don't exit 0 if tkconfig fails.
    	(SC_LOAD_TCLCONFIG): Quote all uses of TCL_BIN_DIR, it may contain
    	"# no Tcl configs found".
    	(SC_LOAD_TKCONFIG): Similarily for TK_BIN_DIR.
    
    	* gdb/configure.ac (gdbkt): Check both no_tcl/no_tk first, before
    	doing any further tcl/tk configury.  Don't configure gdbtk if
    	tcl or tk check fails.
    	* gdb/aclocal.m4: Regenerate.
    	* gdb/configure: Regenerate.
    	* gdb/gdbtk/plugins/aclocal.m4: Regenerate.
    	* gdb/gdbtk/plugins/configure: Regenerate.

commit fe4c4e465347fee881541b71c140a773f42a0ce6
Author: Tom Tromey <tromey@redhat.com>
Date:   Mon Feb 2 21:50:11 2009 +0000

    gdb
    	PR exp/9059:
    	* valops.c (find_overload_match): Follow typedefs before taking
    	address of object argument.
    gdb/testsuite
    	PR exp/9059:
    	* gdb.cp/call-c.exp: Add regression test.
    	* gdb.cp/call-c.cc (FooHandle): New typedef.
    	(main): New variable 'handle'.

commit e1d633a3fafbf670c686f59f3007b6280da50625
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Mon Feb 2 03:52:37 2009 +0000

    	* elf-bfd.h (bfd_elf_get_str_section): Don't declare.
    	(bfd_elf_find_section, _sh_elf_set_mach_from_flags): Likewise.
    	* elf.c (bfd_elf_get_str_section): Make static.
    	(bfd_elf_find_section): Delete.
    	* libbfd.h: Regenerate.

commit 5c8d779d999734da634d5905e5a945d98cab69d8
Author: Alan Modra <amodra@bigpond.net.au>
Date:   Mon Feb 2 00:00:05 2009 +0000

    daily update

commit 54596033c019654f4a92f8d99c62a2cfb02b8b19
Author: gdbadmin <gdbadmin@sourceware.org>
Date:   Mon Feb 2 00:00:03 2009 +0000

    *** empty log message ***

commit 7a228ded75afbcc5af87b9cd26e54ceea0b3cb25
Author: Doug Evans <dje@google.com>
Date:   Sun Feb 1 23:31:02 2009 +0000

    	* target.h (target_waitstatus_to_string): Declare.
    	* target.c (target_waitstatus_to_string): New function.  Copied from
    	debug_to_wait.  Add missing entries for TARGET_WAITKIND_SYSCALL_ENTRY,
    	TARGET_WAITKIND_SYSCALL_RETURN, TARGET_WAITKIND_IGNORE,
    	TARGET_WAITKIND_NO_HISTORY.
    	(debug_to_wait): Call it.
    	* infrun.c (wait_for_inferior): If debug_infrun, print result of
    	target_wait.
    	(fetch_inferior_event): Ditto.

-----------------------------------------------------------------------

Summary of changes:
 bfd/ChangeLog                         |   59 ++
 bfd/bfd-in2.h                         |   15 +
 bfd/elf-bfd.h                         |    9 -
 bfd/elf.c                             |   44 +-
 bfd/elf32-m68k.c                      | 1520 ++++++++++++++++++++++++---------
 bfd/elf32-mep.c                       |    3 +-
 bfd/libbfd.h                          |   17 +-
 bfd/reloc.c                           |   30 +
 bfd/version.h                         |    2 +-
 config/ChangeLog                      |    8 +
 config/tcl.m4                         |   14 +-
 gdb/ChangeLog                         |   36 +
 gdb/aclocal.m4                        |   24 +-
 gdb/breakpoint.c                      |    4 +-
 gdb/completer.c                       |   32 +-
 gdb/configure                         |  366 +++++----
 gdb/configure.ac                      |  110 ++--
 gdb/infrun.c                          |   20 +
 gdb/target.c                          |   75 +-
 gdb/target.h                          |    4 +
 gdb/testsuite/ChangeLog               |   19 +
 gdb/testsuite/gdb.cp/Makefile.in      |    2 +-
 gdb/testsuite/gdb.cp/call-c.cc        |    3 +
 gdb/testsuite/gdb.cp/call-c.exp       |    3 +
 gdb/testsuite/gdb.cp/cpcompletion.exp |   72 ++
 gdb/testsuite/gdb.cp/pr9594.cc        |   51 ++
 gdb/valops.c                          |    8 +-
 gdb/version.in                        |    2 +-
 include/elf/ChangeLog                 |    4 +
 include/elf/m68k.h                    |   19 +
 opcodes/ChangeLog                     |   10 +
 opcodes/mep-asm.c                     |   37 -
 opcodes/mep-desc.c                    | 1136 +++++++++----------------
 opcodes/mep-desc.h                    |   33 +-
 opcodes/mep-dis.c                     |   39 -
 opcodes/mep-ibld.c                    |  211 -----
 opcodes/mep-opc.c                     |  268 +------
 opcodes/mep-opc.h                     |   26 +-
 38 files changed, 2216 insertions(+), 2119 deletions(-)
 create mode 100644 gdb/testsuite/gdb.cp/cpcompletion.exp
 create mode 100644 gdb/testsuite/gdb.cp/pr9594.cc

First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c1f8a9b..76d435b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,62 @@
+2009-02-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+	* bfd-in2.h: Regenerate.
+	* elf32-m68k.c: Handle 2-slot GOT entries.  Rename variables and
+	fields from n_entries to n_slots where appropriate, update comments.
+	(HOWTO): Add TLS relocations.
+	(reloc_map): Map BFD_RELOC_68K_TLS_* to R_68K_TLS_*.
+	(enum elf_m68k_got_offset_size): New enum.
+	(struct elf_m68k_got_entry.type): Move field to ...
+	(struct elf_m68k_got_entry_key): ... here.  Update all uses.
+	(elf_m68k_reloc_got_type, elf_m68k_reloc_got_offset_size): New static
+	functions.
+	(elf_m68k_reloc_got_n_entries, elf_m68k_reloc_tls_p): New static
+	functions.
+	(struct elf_m68k_got): merge rel_8o_n_entries and rel_8o_16o_n_entries
+	fields into n_entries array.  Update comments.
+	(elf_m68k_init_got): Simplify, update all uses.
+	(elf_m68k_init_got_entry_key): Handle R_68K_TLS_LDM32 reloc, update.
+	(ELF_M68K_REL_8O_MAX_N_ENTRIES_IN_GOT): Adjust to handle 2-slot
+	GOT entries; update name, update all uses.
+	(ELF_M68K_REL_8O_16O_MAX_N_ENTRIES_IN_GOT): Ditto.
+	(elf_m68k_get_got_entry): Update.
+	(elf_m68k_update_got_entry_type): Rewrite to handle TLS GOT entries,
+	simplify.
+	(elf_m68k_remove_got_entry_type): Simplify.
+	(elf_m68k_add_entry_to_got, elf_m68k_can_merge_gots_1): Update.
+	(elf_m68k_can_merge_gots): Update.
+	(elf_m68k_merge_gots_1, elf_m68k_merge_gots): Update.
+	(struct elf_m68k_finalize_got_offsets_arg): Rewrite to handle 2-slot
+	GOT entries, simplify.
+	(elf_m68k_finalize_got_offsets_1, elf_m68k_finalize_got_offsets): Same.
+	(struct elf_m68k_partition_multi_got_arg): Add slots_relas_diff
+	field, remove obsoleted local_n_entries field.
+	(elf_m68k_partition_multi_got_2): New static function.
+	(elf_m68k_partition_multi_got_1, elf_m68k_partition_multi_got): Use it;
+	update.
+	(elf_m68k_remove_got_entry_type): Update.
+	(elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
+	(elf_m68k_check_relocs): Handle TLS relocations.  Remove unnecessary 
+	update of sgot->size and srelgot->size.
+	(elf_m68k_gc_sweep_hook): Update.
+	(elf_m68k_install_rela, dtpoff_base, tpoff): New static functions.
+	(elf_m68k_relocate_section, elf_m68k_finish_dynamic_symbol): Handle
+	TLS relocations.
+	* reloc.c (BFD_RELOC_68K_TLS_*): Declare TLS relocations.
+	* libbfd.h (bfd_reloc_code_real_names): Add BFD_RELOC_68K_TLS_*.
+
+2009-02-02  DJ Delorie  <dj@redhat.com>
+
+	* elf32-mep.c (config_names): Regenerate configuration.
+
+2009-02-02  Alan Modra  <amodra@bigpond.net.au>
+
+	* elf-bfd.h (bfd_elf_get_str_section): Don't declare.
+	(bfd_elf_find_section, _sh_elf_set_mach_from_flags): Likewise.
+	* elf.c (bfd_elf_get_str_section): Make static.
+	(bfd_elf_find_section): Delete.
+	* libbfd.h: Regenerate.
+
 2009-02-01  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	* elf-eh-frame.c (REQUIRE_CLEARED_RELOCS) Remove.
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 779f03a..b79fa5c 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2363,6 +2363,21 @@ The 24-bit relocation is used in some Intel 960 configurations.  */
   BFD_RELOC_68K_GLOB_DAT,
   BFD_RELOC_68K_JMP_SLOT,
   BFD_RELOC_68K_RELATIVE,
+  BFD_RELOC_68K_TLS_GD32,
+  BFD_RELOC_68K_TLS_GD16,
+  BFD_RELOC_68K_TLS_GD8,
+  BFD_RELOC_68K_TLS_LDM32,
+  BFD_RELOC_68K_TLS_LDM16,
+  BFD_RELOC_68K_TLS_LDM8,
+  BFD_RELOC_68K_TLS_LDO32,
+  BFD_RELOC_68K_TLS_LDO16,
+  BFD_RELOC_68K_TLS_LDO8,
+  BFD_RELOC_68K_TLS_IE32,
+  BFD_RELOC_68K_TLS_IE16,
+  BFD_RELOC_68K_TLS_IE8,
+  BFD_RELOC_68K_TLS_LE32,
+  BFD_RELOC_68K_TLS_LE16,
+  BFD_RELOC_68K_TLS_LE8,
 
 /* Linkage-table relative.  */
   BFD_RELOC_32_BASEREL,
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index c1cc63e..7b8fa69 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1626,8 +1626,6 @@ extern unsigned int _bfd_elf_section_from_bfd_section
   (bfd *, asection *);
 extern char *bfd_elf_string_from_elf_section
   (bfd *, unsigned, unsigned);
-extern char *bfd_elf_get_str_section
-  (bfd *, unsigned);
 extern Elf_Internal_Sym *bfd_elf_get_elf_syms
   (bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *,
    Elf_External_Sym_Shndx *);
@@ -1671,8 +1669,6 @@ extern bfd_boolean bfd_elf_make_generic_object
   (bfd *);
 extern bfd_boolean bfd_elf_mkcorefile
   (bfd *);
-extern Elf_Internal_Shdr *bfd_elf_find_section
-  (bfd *, char *);
 extern bfd_boolean _bfd_elf_make_section_from_shdr
   (bfd *, Elf_Internal_Shdr *, const char *, int);
 extern bfd_boolean _bfd_elf_make_section_from_phdr
@@ -2143,11 +2139,6 @@ extern bfd_boolean _bfd_elf_merge_object_attributes (bfd *, bfd *);
 /* Large common section.  */
 extern asection _bfd_elf_large_com_section;
 
-/* SH ELF specific routine.  */
-
-extern bfd_boolean _sh_elf_set_mach_from_flags
-  (bfd *);
-
 /* This is the condition under which finish_dynamic_symbol will be called.
    If our finish_dynamic_symbol isn't called, we'll need to do something
    about initializing any .plt and .got entries in relocate_section.  */
diff --git a/bfd/elf.c b/bfd/elf.c
index 0009ee8..44af469 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -1,7 +1,8 @@
 /* ELF executable support for BFD.
 
    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
-   2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -258,7 +259,7 @@ bfd_elf_mkcorefile (bfd *abfd)
   return bfd_elf_make_generic_object (abfd);
 }
 
-char *
+static char *
 bfd_elf_get_str_section (bfd *abfd, unsigned int shindex)
 {
   Elf_Internal_Shdr **i_shdrp;
@@ -1019,45 +1020,6 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
   return TRUE;
 }
 
-/*
-INTERNAL_FUNCTION
-	bfd_elf_find_section
-
-SYNOPSIS
-	struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
-
-DESCRIPTION
-	Helper functions for GDB to locate the string tables.
-	Since BFD hides string tables from callers, GDB needs to use an
-	internal hook to find them.  Sun's .stabstr, in particular,
-	isn't even pointed to by the .stab section, so ordinary
-	mechanisms wouldn't work to find it, even if we had some.
-*/
-
-struct elf_internal_shdr *
-bfd_elf_find_section (bfd *abfd, char *name)
-{
-  Elf_Internal_Shdr **i_shdrp;
-  char *shstrtab;
-  unsigned int max;
-  unsigned int i;
-
-  i_shdrp = elf_elfsections (abfd);
-  if (i_shdrp != NULL)
-    {
-      shstrtab = bfd_elf_get_str_section (abfd,
-					  elf_elfheader (abfd)->e_shstrndx);
-      if (shstrtab != NULL)
-	{
-	  max = elf_numsections (abfd);
-	  for (i = 1; i < max; i++)
-	    if (!strcmp (&shstrtab[i_shdrp[i]->sh_name], name))
-	      return i_shdrp[i];
-	}
-    }
-  return 0;
-}
-
 const char *const bfd_elf_section_type_names[] = {
   "SHT_NULL", "SHT_PROGBITS", "SHT_SYMTAB", "SHT_STRTAB",
   "SHT_RELA", "SHT_HASH", "SHT_DYNAMIC", "SHT_NOTE",
diff --git a/bfd/elf32-m68k.c b/bfd/elf32-m68k.c
index cb7eb5e..542501b 100644
--- a/bfd/elf32-m68k.c
+++ b/bfd/elf32-m68k.c
@@ -1,6 +1,6 @@
 /* Motorola 68k series support for 32-bit ELF
    Copyright 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+   2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -114,6 +114,263 @@ static reloc_howto_type howto_table[] = {
 	 0,			/* src_mask */
 	 0,			/* dst_mask */
 	 FALSE),
+
+  /* TLS general dynamic variable reference.  */
+  HOWTO (R_68K_TLS_GD32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_GD32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_GD16,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_GD16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_GD8,		/* type */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_GD8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x000000ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic variable reference.  */
+  HOWTO (R_68K_TLS_LDM32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LDM32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_LDM16,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LDM16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_LDM8,		/* type */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LDM8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x000000ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_LDO32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LDO32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_LDO16,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LDO16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_LDO8,		/* type */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LDO8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x000000ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS initial execution variable reference.  */
+  HOWTO (R_68K_TLS_IE32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_IE32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_IE16,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_IE16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_IE8,		/* type */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_IE8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x000000ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local execution variable reference.  */
+  HOWTO (R_68K_TLS_LE32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LE32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_LE16,	/* type */
+	 0,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LE16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_LE8,		/* type */
+	 0,			/* rightshift */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_LE8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x000000ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS GD/LD dynamic relocations.  */
+  HOWTO (R_68K_TLS_DTPMOD32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_DTPMOD32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_DTPREL32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_DTPREL32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_68K_TLS_TPREL32,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_68K_TLS_TPREL32",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
 static void
@@ -132,7 +389,9 @@ static const struct
 {
   bfd_reloc_code_real_type bfd_val;
   int elf_val;
-} reloc_map[] = {
+}
+  reloc_map[] =
+{
   { BFD_RELOC_NONE, R_68K_NONE },
   { BFD_RELOC_32, R_68K_32 },
   { BFD_RELOC_16, R_68K_16 },
@@ -159,6 +418,21 @@ static const struct
   { BFD_RELOC_CTOR, R_68K_32 },
   { BFD_RELOC_VTABLE_INHERIT, R_68K_GNU_VTINHERIT },
   { BFD_RELOC_VTABLE_ENTRY, R_68K_GNU_VTENTRY },
+  { BFD_RELOC_68K_TLS_GD32, R_68K_TLS_GD32 },
+  { BFD_RELOC_68K_TLS_GD16, R_68K_TLS_GD16 },
+  { BFD_RELOC_68K_TLS_GD8, R_68K_TLS_GD8 },
+  { BFD_RELOC_68K_TLS_LDM32, R_68K_TLS_LDM32 },
+  { BFD_RELOC_68K_TLS_LDM16, R_68K_TLS_LDM16 },
+  { BFD_RELOC_68K_TLS_LDM8, R_68K_TLS_LDM8 },
+  { BFD_RELOC_68K_TLS_LDO32, R_68K_TLS_LDO32 },
+  { BFD_RELOC_68K_TLS_LDO16, R_68K_TLS_LDO16 },
+  { BFD_RELOC_68K_TLS_LDO8, R_68K_TLS_LDO8 },
+  { BFD_RELOC_68K_TLS_IE32, R_68K_TLS_IE32 },
+  { BFD_RELOC_68K_TLS_IE16, R_68K_TLS_IE16 },
+  { BFD_RELOC_68K_TLS_IE8, R_68K_TLS_IE8 },
+  { BFD_RELOC_68K_TLS_LE32, R_68K_TLS_LE32 },


hooks/post-receive
--
Repository for Project Archer.


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-02-03 16:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-02-03 16:37 [SCM] master: M68K TLS support tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).