This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/14849] New: Add DF_1_DEEPBIND
- From: "hjl.tools at gmail dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: Fri, 16 Nov 2012 01:15:47 +0000
- Subject: [Bug dynamic-link/14849] New: Add DF_1_DEEPBIND
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=14849
Bug #: 14849
Summary: Add DF_1_DEEPBIND
Product: glibc
Version: 2.17
Status: NEW
Severity: normal
Priority: P2
Component: dynamic-link
AssignedTo: unassigned@sourceware.org
ReportedBy: hjl.tools@gmail.com
Classification: Unclassified
Created attachment 6740
--> http://sourceware.org/bugzilla/attachment.cgi?id=6740
A testcase
>From a Linux user:
yes, i have a 3-rd party application (simulator) which uses an old boost-1.48
and i have a dlopened plugin for this simulator which uses new boost-1.51.
i'd like to avoid mixing incompatible boost symbols.
> Can you compile/link plugin against boost-1.48?
no, i'm using 1.50+ specific features/fixes not present in 1.48.
This issue can be solved with RTLD_DEEPBIND:
[hjl@gnu-tools-1 mixed-syms]$ make
gcc -shared -o libBOOST.so.0 -fPIC BOOST0.c
gcc -o exe exe.c libBOOST.so.0 -ldl -Wl,-R,.
gcc -shared -o libBOOST.so.1 -fPIC BOOST1.c
gcc -shared -o plugin.so -fPIC plugin.c libBOOST.so.1
./exe
bar()
new foo()
old foo()
[hjl@gnu-tools-1 mixed-syms]$
We can add DF_1_DEEPBIND, implement "ld -z deepbind" and map
it to TLD_DEEPBIND.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.