https://sourceware.org/bugzilla/show_bug.cgi?id=25179
Alan Modra <amodra at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |WONTFIX
Assignee|unassigned at sourceware dot org |amodra at gmail dot com
--- Comment #9 from Alan Modra <amodra at gmail dot com> ---
This isn't a bug, it's a feature. The linker has a choice when all the
references in an executable to a function defined in a shared library are in
read-write sections. It can create a plt call stub as is done if there is a
reference in a read-only section and define that function symbol on the plt
call stub code, or it can emit dynamic relocations. Both solutions result in a
valid executable. However, dynamic relocations have better runtime
performance: Calls to the function don't need to bounce through the plt call
stub code.
Normally the only references in read-write sections are to initialise function
pointers with an R_PPC_ADDR32 relocation. Which is probably why your ld.so
doesn't handle R_PPC_ADDR16*.
You could argue, and I'd agree, that the linker should not emit dynamic
relocations that are not supported by ld.so. It isn't a trivial task, but I'm
happy to accept patches to do that for powerpc on netbsd.
--
You are receiving this mail because:
You are on the CC list for the bug.