+2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
+
+ * xcofflink.c (xcoff_mark, xcoff_link_input_bfd): Don't copy
+ R_POS and R_NEG relocations against absolute symbols to the
+ .loader section.
+
2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
* coff64-rs6000.c (xcoff64_write_object_contents): Set the cputype
case R_NEG:
case R_RL:
case R_RLA:
+ if (h != NULL
+ && (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ && bfd_is_abs_section (h->root.u.def.section))
+ break;
++xcoff_hash_table (info)->ldrel_count;
if (h != NULL)
h->flags |= XCOFF_LDREL;
case R_NEG:
case R_RL:
case R_RLA:
+ if (h != NULL
+ && (h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ && bfd_is_abs_section (h->root.u.def.section))
+ break;
/* This reloc needs to be copied into the .loader
section. */
ldrel.l_vaddr = irel->r_vaddr;
+2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
+
+ * ld-powerpc/aix-abs-reloc-1.ex, ld-powerpc/aix-abs-reloc-1.im,
+ ld-powerpc/aix-abs-reloc-1.od, ld-powerpc/aix-abs-reloc-1.s: New test.
+ * ld-powerpc/aix52.exp: Run it.
+
2009-03-14 Richard Sandiford <r.sandiford@uk.ibm.com>
* ld-powerpc/aix-core-sec-1.s, ld-powerpc/aix-core-sec-1.ex,
--- /dev/null
+bar 0xdeadbeef
--- /dev/null
+
+.*
+
+DYNAMIC RELOCATION RECORDS \(none\)
+
+Contents of section \.data:
+ 10000000 deadbeef .*
--- /dev/null
+ .globl foo
+ .csect foo[RW]
+foo:
+ .long bar
}
set aix52tests {
+ {"Relocations against absolute symbols 1"
+ "-shared -bI:aix-abs-reloc-1.im -bE:aix-abs-reloc-1.ex"
+ {} {aix-abs-reloc-1.s}
+ {{objdump -sRj.data aix-abs-reloc-1.od}}
+ "aix-abs-reloc-1.so"}
+
{"Core sections test 1" "-shared -bE:aix-core-sec-1.ex"
"" {aix-core-sec-1.s}
{{objdump -h aix-core-sec-1.hd}}