Make shared libraries resolve global symbols within themselves first.
Currently only on GNUish linkers... Submitted by Steven Bade <sbade@austin.ibm.com>
This commit is contained in:
parent
4825092bbe
commit
83d092f785
@ -266,6 +266,7 @@ do_gnu-shared:
|
|||||||
( set -x; ${CC} ${SHARED_LDFLAGS} \
|
( set -x; ${CC} ${SHARED_LDFLAGS} \
|
||||||
-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
-shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
-Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
-Wl,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||||
|
-Wl,-Bsymbolic \
|
||||||
-Wl,--whole-archive lib$$i.a \
|
-Wl,--whole-archive lib$$i.a \
|
||||||
-Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
|
-Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
|
||||||
libs="$$libs -l$$i"; \
|
libs="$$libs -l$$i"; \
|
||||||
@ -292,6 +293,7 @@ do_darwin-shared:
|
|||||||
do_cygwin-shared:
|
do_cygwin-shared:
|
||||||
libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
|
||||||
( set -x; ${CC} -shared -o cyg$$i.dll \
|
( set -x; ${CC} -shared -o cyg$$i.dll \
|
||||||
|
-Wl,-Bsymbolic \
|
||||||
-Wl,--whole-archive lib$$i.a \
|
-Wl,--whole-archive lib$$i.a \
|
||||||
-Wl,--out-implib,lib$$i.dll.a \
|
-Wl,--out-implib,lib$$i.dll.a \
|
||||||
-Wl,--no-whole-archive $$libs ) || exit 1; \
|
-Wl,--no-whole-archive $$libs ) || exit 1; \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user