bfd/
authorTristan Gingold <gingold@adacore.com>
Thu, 16 May 2013 15:41:40 +0000 (15:41 +0000)
committerTristan Gingold <gingold@adacore.com>
Thu, 16 May 2013 15:41:40 +0000 (15:41 +0000)
2013-05-16  Tristan Gingold  <gingold@adacore.com>

* coff-rs6000.c (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_16.
* coff64-rs6000.c (xcoff64_reloc_type_lookup): Likewise.

gas/
2013-05-16  Tristan Gingold  <gingold@adacore.com>

* config/tc-ppc.c (ppc_is_toc_sym): Symbols of class XMC_TC
are also TOC symbols.

bfd/ChangeLog
bfd/coff-rs6000.c
bfd/coff64-rs6000.c
gas/ChangeLog
gas/config/tc-ppc.c

index 24231ca50f7380425b7028213c7400aeb0d76eb8..0f5986376c111ad21091a77cc0fd2dbb4693bef8 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-16  Tristan Gingold  <gingold@adacore.com>
+
+       * coff-rs6000.c (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_16.
+       * coff64-rs6000.c (xcoff64_reloc_type_lookup): Likewise.
+
 2013-05-15  Andreas Schwab  <schwab@suse.de>
 
        * elf64-aarch64.c (elf_backend_default_execstack): Define to 0.
index 0945aca0ef738f27ca46dcdac14ff7560ef10186..aa61afbbac322648200bb95e157708f175109893 100644 (file)
@@ -1098,7 +1098,6 @@ reloc_howto_type xcoff_howto_table[] =
         0xffff,                /* src_mask */
         0xffff,                /* dst_mask */
         FALSE),                /* pcrel_offset */
-
 };
 
 void
@@ -1146,6 +1145,9 @@ _bfd_xcoff_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
       return &xcoff_howto_table[8];
     case BFD_RELOC_PPC_TOC16:
       return &xcoff_howto_table[3];
+    case BFD_RELOC_16:
+      /* Note that this relocation is only internally used by gas.  */
+      return &xcoff_howto_table[0xc];
     case BFD_RELOC_32:
     case BFD_RELOC_CTOR:
       return &xcoff_howto_table[0];
index 5f4a502c5f4639d58e0ac57388a76d083c24b417..56a0d2573bc568b4c523f3ee1e1614b529f63faf 100644 (file)
@@ -1826,6 +1826,9 @@ xcoff64_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
       return &xcoff64_howto_table[8];
     case BFD_RELOC_PPC_TOC16:
       return &xcoff64_howto_table[3];
+    case BFD_RELOC_16:
+      /* Note that this relocation is only internally used by gas.  */
+      return &xcoff64_howto_table[0xc];
     case BFD_RELOC_32:
     case BFD_RELOC_CTOR:
       return &xcoff64_howto_table[0x1c];
index bab74bb01b058194d782167f549ee98ac69da83f..ee6e25191ac22fa84d286da1a16c614054e8ea02 100644 (file)
@@ -1,3 +1,8 @@
+2013-05-16  Tristan Gingold  <gingold@adacore.com>
+
+       * config/tc-ppc.c (ppc_is_toc_sym): Symbols of class XMC_TC
+       are also TOC symbols.
+
 2013-05-16  Nick Clifton  <nickc@redhat.com>
 
        * config/tc-msp430.c: Make -mmcu recognise more part numbers.
index 904166e88d4b12162a16627c9eee81584228bf88..a76416857884e216f81c174707d9e10971b43f0d 100644 (file)
@@ -2428,7 +2428,8 @@ static int
 ppc_is_toc_sym (symbolS *sym)
 {
 #ifdef OBJ_XCOFF
-  return symbol_get_tc (sym)->symbol_class == XMC_TC;
+  return (symbol_get_tc (sym)->symbol_class == XMC_TC
+         || symbol_get_tc (sym)->symbol_class == XMC_TC0);
 #endif
 #ifdef OBJ_ELF
   const char *sname = segment_name (S_GET_SEGMENT (sym));