https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84553

Jim Wilson <wilson at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2018-02-26
     Ever confirmed|0                           |1

--- Comment #2 from Jim Wilson <wilson at gcc dot gnu.org> ---
rdynamic is a linker option that the compiler ignores, except to pass on to the
linker.  As far as the compiler knows, you are building a non-pic application,
and hence the symbol is local.  We can't assume that -rdynamic will be used at
compile time, and hence to make this work we must assume that any local symbol
might become global at link time.

We can fix this my modifying the ia64_reloc_rw_mask function to return 3 when
non-pic, same as it does when pic, to indicate that local symbols with relocs
aren't read-only.

I don't have access to ia64 hardware, so I don't have any easy way to test
this.
The symbol ends up in .data.rel.ro.local instead of .data.rel.ro, but
presumably that is OK.

Reply via email to