bug-gnu-utils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Overloaded shared-library functions on hppa-linux


From: John David Anglin
Subject: Overloaded shared-library functions on hppa-linux
Date: Fri, 19 Apr 2002 17:44:13 -0400 (EDT)

I have been looking further at the failure of g++.old-deja/g++.brendan/new3.C
under hppa-linux.

The main program calls _Znaj in libstdc++.so.  _Znaj calls _Znwj with
a pc relative call.  Both the main program and libstdc++ contain
the function _Znwj.  The version in the main program should overload
the one in libstdc++.  However, _Znaj in libstdc++ calls the shared
version of _Znwj resulting in the test failure.

Looking at libstdc++, I see that no import stub is used for the
call to _Znwj.  The call is simply a pc relative branch directly
to _Znwj.  Thus, the dynamic loader can't fix the call to call
the version of _Znwj in the main program.

My initial attempts at fixing this haven't been too successful.
It appears that that the assumption that calls within a shared
library are not overloaded is present in a number of places in
elf32-hppa.c.  Any thoughts on what needs to be done to fix
the problem?

Dave
-- 
J. David Anglin                                  address@hidden
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]