[Top][All Lists]
[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)
- Overloaded shared-library functions on hppa-linux,
John David Anglin <=