summaryrefslogtreecommitdiffstats
path: root/bfd
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2010-01-23 12:05:33 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2010-01-23 12:05:33 +0000
commitc865e45b1b6d482d20b3f6096d5227216db0e451 (patch)
tree22f683e1c80498b296b3c10cd2a906f305cce9cc /bfd
parentd35e937f74be8b03c594eb2b070db34c4e0541d6 (diff)
downloadppe42-binutils-c865e45b1b6d482d20b3f6096d5227216db0e451.tar.gz
ppe42-binutils-c865e45b1b6d482d20b3f6096d5227216db0e451.zip
bfd/
* coff-rs6000.c (xcoff_howto_table): Change size to 0 and bitsize to 1. (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_NONE. * coff64-rs6000.c (xcoff64_howto_table): Change size to 0 and bitsize to 1. (xcoff64_reloc_type_lookup): Handle BFD_RELOC_NONE. gas/ * write.h (fix_at_start): Declare. * write.c (fix_new_internal): Add at_beginning parameter. Use it instead of REVERSE_SORT_RELOCS. Fix the handling of seg_fix_tailP for the at_beginning/REVERSE_SORT_RELOCS case. (fix_new, fix_new_exp): Update accordingly. (fix_at_start): New function. * config/tc-ppc.c (md_pseudo_table): Add .ref to the OBJ_XCOFF section. (ppc_ref): New function, for OBJ_XCOFF. (md_apply_fix): Handle BFD_RELOC_NONE for OBJ_XCOFF. * config/te-i386aix.h (REVERSE_SORT_RELOCS): Remove #undef. gas/testsuite/ * gas/ppc/xcoff-ref-1.s, gas/ppc/xcoff-ref-1.l: New test. * gas/ppc/aix.exp: Run it. ld/testsuite/ * ld-powerpc/aix-ref-1-32.od, ld-powerpc/aix-ref-1-64.od, ld-powerpc/aix-ref-1.s: New tests. * ld-powerpc/aix52.exp: Run them.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/coff-rs6000.c8
-rw-r--r--bfd/coff64-rs6000.c8
3 files changed, 18 insertions, 6 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index b292f45662..714f03fe7d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,11 @@
+2010-01-23 Richard Sandiford <r.sandiford@uk.ibm.com>
+
+ * coff-rs6000.c (xcoff_howto_table): Change size to 0 and bitsize to 1.
+ (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_NONE.
+ * coff64-rs6000.c (xcoff64_howto_table): Change size to 0 and
+ bitsize to 1.
+ (xcoff64_reloc_type_lookup): Handle BFD_RELOC_NONE.
+
2010-01-21 Nick Clifton <nickc@redhat.com>
* elflink.c (elf_link_add_object_symbols): Look up name of
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 2ee74ecf57..2f13f489bb 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -896,11 +896,11 @@ reloc_howto_type xcoff_howto_table[] =
EMPTY_HOWTO (0xe),
- /* Non-relocating reference. */
+ /* Non-relocating reference. Bitsize is 1 so that r_rsize is 0. */
HOWTO (R_REF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
- 32, /* bitsize */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
@@ -1162,6 +1162,8 @@ _bfd_xcoff_reloc_type_lookup (abfd, code)
case BFD_RELOC_32:
case BFD_RELOC_CTOR:
return &xcoff_howto_table[0];
+ case BFD_RELOC_NONE:
+ return &xcoff_howto_table[0xf];
default:
return NULL;
}
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 4d618c1acc..15e636e50e 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -1594,11 +1594,11 @@ reloc_howto_type xcoff64_howto_table[] =
EMPTY_HOWTO (0xe),
- /* Non-relocating reference. */
+ /* Non-relocating reference. Bitsize is 1 so that r_rsize is 0. */
HOWTO (R_REF, /* type */
0, /* rightshift */
- 2, /* size (0 = byte, 1 = short, 2 = long) */
- 32, /* bitsize */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 1, /* bitsize */
FALSE, /* pc_relative */
0, /* bitpos */
complain_overflow_dont, /* complain_on_overflow */
@@ -1882,6 +1882,8 @@ xcoff64_reloc_type_lookup (abfd, code)
return &xcoff64_howto_table[0x1c];
case BFD_RELOC_64:
return &xcoff64_howto_table[0];
+ case BFD_RELOC_NONE:
+ return &xcoff64_howto_table[0xf];
default:
return NULL;
}
OpenPOWER on IntegriCloud