SPARC: nested static initialization
Erik Volk
eriksnga@gmail.com
Wed Dec 2 02:36:00 GMT 2015
On Tue, Dec 1, 2015 at 8:31 PM, Alan Modra <amodra@gmail.com> wrote:
> On Wed, Nov 25, 2015 at 01:35:29PM -0500, Erik Volk wrote:
>> The attached small test case calls a global function during static
>> initialization in a shared library. After the function address is
>> resolved but before the function is actually being called, the global
>> initialization from main executable is triggered
>
> So the process of resolving _Z8equals42d (defined in both main and
> libshared.so) which you call from _ZL13init_shared_2v, causes the
> global init in main to run. This is likely a glibc ld.so issue, not a
> binutils problem.
Thank you for taking a look. Truly appreciated.
FWIIW: the problem also triggers when _Z8equals42d is undefined in
libshared.so; the double definition
actually came from #include <cmath> in the original code exhibiting the problem.
>
>> and registers used to
>> hold function arguments get clobbered.
>
> This also is likely a glibc issue. You may find it better to ask
> about this problem on the glibc list.
Will do.
Thanks again!
Erik.
More information about the Binutils
mailing list