From 9f6e76f4ea8ddee6d6d2b1aa7c61e9cb69063196 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Thu, 16 May 2013 15:41:40 +0000 Subject: [PATCH] bfd/ 2013-05-16 Tristan Gingold * 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 * config/tc-ppc.c (ppc_is_toc_sym): Symbols of class XMC_TC are also TOC symbols. --- bfd/ChangeLog | 5 +++++ bfd/coff-rs6000.c | 4 +++- bfd/coff64-rs6000.c | 3 +++ gas/ChangeLog | 5 +++++ gas/config/tc-ppc.c | 3 ++- 5 files changed, 18 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 24231ca50f..0f5986376c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2013-05-16 Tristan Gingold + + * 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 * elf64-aarch64.c (elf_backend_default_execstack): Define to 0. diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 0945aca0ef..aa61afbbac 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -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]; diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index 5f4a502c5f..56a0d2573b 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -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]; diff --git a/gas/ChangeLog b/gas/ChangeLog index bab74bb01b..ee6e25191a 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2013-05-16 Tristan Gingold + + * config/tc-ppc.c (ppc_is_toc_sym): Symbols of class XMC_TC + are also TOC symbols. + 2013-05-16 Nick Clifton * config/tc-msp430.c: Make -mmcu recognise more part numbers. diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 904166e88d..a764168578 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -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)); -- 2.34.1