https://sourceware.org/bugzilla/show_bug.cgi?id=20522

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2016-08-29
                 CC|                            |amodra at gmail dot com
     Ever confirmed|0                           |1

--- Comment #1 from Alan Modra <amodra at gmail dot com> ---
I think what is going on here is that with both -pie -and --emit-relocs we have
dynamic relocs *and* the non-alloc relocation sections that are adjusted copies
of the input relocations.

The linux kernel script contains the following

 .rela.dyn : AT(ADDR(.rela.dyn) - (0xc000000000000000 -0x00000000))
 {
  __rela_dyn_start = .;
  *(.rela*)
 }

I think gold is attempting to mash together the dynamic relocs and the copies
of input relocations, which is just plain wrong.  GNU ld ignores the script
above for the non-alloc relocation sections..

Incidentally, changing the kernel script "*(.rela*)" to "*(.rela.dyn)" avoids
the problem.  The changed script works with GNU ld too, except when -z
nocombreloc is in effect.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to