[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sr #108201] libtool problems with -export-symbols-regex on solaris with
From: |
Richard PALO |
Subject: |
[sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x |
Date: |
Mon, 10 Dec 2012 13:58:03 +0000 |
User-agent: |
Mozilla/5.0 (X11; SunOS i86pc; rv:17.0) Gecko/17.0 Firefox/17.0 |
URL:
<http://savannah.gnu.org/support/?108201>
Summary: libtool problems with -export-symbols-regex on
solaris with gcc-4.7.x
Project: GNU Libtool
Submitted by: risto3
Submitted on: lun. 10 déc. 2012 13:58:02 GMT
Category: None
Priority: 5 - Normal
Severity: 4 - Important
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Operating System: *BSD
_______________________________________________________
Details:
(I put *BSD because SunOS not available)
In trying to build rarian-0.8.1, it appears that the shared library
(librarian.so) is not built correctly.
I have I isolated the problem to the following statement in Makefile.am
librarian_la_LDFLAGS = -export-symbols-regex "^rrn_.*"
Here is the resulting libtool output for this command:
/bin/sh ../libtool --tag=CXX --mode=link g++ -g -O2 -export-symbols-regex
"^rrn_.*" -o librarian.la -rpath /usr/local/lib librarian_la-rarian-main.lo
librarian_la-rarian-reg-utils.lo librarian_la-rarian-language.lo
librarian_la-rarian-utils.lo librarian_la-rarian-info.lo
librarian_la-rarian-man.lo rarian-omf.lo tinyxml.lo tinyxmlparser.lo
tinystr.lo tinyxmlerror.lo
libtool: link: rm -fr .libs/librarian.a .libs/librarian.exp
.libs/librarian.la .libs/librarian.lai .libs/librarian.so .libs/librarian.so.0
.libs/librarian.so.0.0.0
libtool: link: /opt/pkg/gnu/bin/nm -B .libs/librarian_la-rarian-main.o
.libs/librarian_la-rarian-reg-utils.o .libs/librarian_la-rarian-language.o
.libs/librarian_la-rarian-utils.o .libs/librarian_la-rarian-info.o
.libs/librarian_la-rarian-man.o .libs/rarian-omf.o .libs/tinyxml.o
.libs/tinyxmlparser.o .libs/tinystr.o .libs/tinyxmlerror.o | sed -n -e
's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][
]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1
\2 \2/p' | sed '/ __gnu_lto/d' | /opt/pkg/bin/gsed 's/.* //' | sort | uniq >
.libs/librarian.exp
libtool: link: /opt/pkg/bin/ggrep -E -e "^rrn_.*" ".libs/librarian.exp" >
".libs/librarian.expT"
libtool: link: mv -f ".libs/librarian.expT" ".libs/librarian.exp"
libtool: link: echo "{ global:" > .libs/librarian.so.0.0.0.exp
libtool: link: cat .libs/librarian.exp | /opt/pkg/bin/gsed -e "s/\(.*\)/\1;/"
>> .libs/librarian.so.0.0.0.exp
libtool: link: echo "local: *; };" >> .libs/librarian.so.0.0.0.exp
libtool: link: g++ -shared -fPIC -DPIC -nostdlib -Wl,-M
-Wl,.libs/librarian.so.0.0.0.exp -o .libs/librarian.so.0.0.0
/usr/lib/amd64/crti.o /usr/lib/amd64/values-Xa.o
/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/crtbegin.o
.libs/librarian_la-rarian-main.o .libs/librarian_la-rarian-reg-utils.o
.libs/librarian_la-rarian-language.o .libs/librarian_la-rarian-utils.o
.libs/librarian_la-rarian-info.o .libs/librarian_la-rarian-man.o
.libs/rarian-omf.o .libs/tinyxml.o .libs/tinyxmlparser.o .libs/tinystr.o
.libs/tinyxmlerror.o -L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../../../x86_64-sun-solaris2.11/lib/amd64
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../../amd64
-L/lib/amd64 -L/usr/lib/amd64
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../../../x86_64-sun-solaris2.11/lib
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../.. -lstdc++ -lm
-lc -lgcc_s /opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/crtend.o
/usr/lib/amd64/crtn.o -O2
libtool: link: rm -f .libs/librarian.so.0.0.0.exp
libtool: link: (cd ".libs" && rm -f "librarian.so.0" && ln -s
"librarian.so.0.0.0" "librarian.so.0")
libtool: link: (cd ".libs" && rm -f "librarian.so" && ln -s
"librarian.so.0.0.0" "librarian.so")
libtool: link: ar cru .libs/librarian.a librarian_la-rarian-main.o
librarian_la-rarian-reg-utils.o librarian_la-rarian-language.o
librarian_la-rarian-utils.o librarian_la-rarian-info.o
librarian_la-rarian-man.o rarian-omf.o tinyxml.o tinyxmlparser.o tinystr.o
tinyxmlerror.o
libtool: link: ranlib .libs/librarian.a
libtool: link: ( cd ".libs" && rm -f "librarian.la" && ln -s "../librarian.la"
"librarian.la" )
If I suppress the -export-symbols-regex "^rrn_.*", the following is output:
libtool: link: rm -fr .libs/librarian.a .libs/librarian.exp
.libs/librarian.la .libs/librarian.lai .libs/librarian.so .libs/librarian.so.0
.libs/librarian.so.0.0.0
libtool: link: g++ -shared -fPIC -DPIC -nostdlib /usr/lib/amd64/crti.o
/usr/lib/amd64/values-Xa.o
/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/crtbegin.o
.libs/librarian_la-rarian-main.o .libs/librarian_la-rarian-reg-utils.o
.libs/librarian_la-rarian-language.o .libs/librarian_la-rarian-utils.o
.libs/librarian_la-rarian-info.o .libs/librarian_la-rarian-man.o
.libs/rarian-omf.o .libs/tinyxml.o .libs/tinyxmlparser.o .libs/tinystr.o
.libs/tinyxmlerror.o -L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../../../x86_64-sun-solaris2.11/lib/amd64
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../../amd64
-L/lib/amd64 -L/usr/lib/amd64
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../../../x86_64-sun-solaris2.11/lib
-L/opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/../../.. -lstdc++ -lm
-lc -lgcc_s /opt/pkg/gcc47/lib/gcc/x86_64-sun-solaris2.11/4.7.2/crtend.o
/usr/lib/amd64/crtn.o -O2 -Wl,-h -Wl,librarian.so.0 -o
.libs/librarian.so.0.0.0
libtool: link: (cd ".libs" && rm -f "librarian.so.0" && ln -s
"librarian.so.0.0.0" "librarian.so.0")
libtool: link: (cd ".libs" && rm -f "librarian.so" && ln -s
"librarian.so.0.0.0" "librarian.so")
libtool: link: ar cru .libs/librarian.a librarian_la-rarian-main.o
librarian_la-rarian-reg-utils.o librarian_la-rarian-language.o
librarian_la-rarian-utils.o librarian_la-rarian-info.o
librarian_la-rarian-man.o rarian-omf.o tinyxml.o tinyxmlparser.o tinystr.o
tinyxmlerror.o
libtool: link: ranlib .libs/librarian.a
libtool: link: ( cd ".libs" && rm -f "librarian.la" && ln -s "../librarian.la"
"librarian.la" )
the corresponding -Wl,-h -Wl,$soname is now generated.
In looking at libtool.m4 from the 2.4.2 sources, the following lines appear
suspect (in comparing with the GCC part a bit earlier in the code), follow the
$GXX with_gnu_ld=no branch:
# GNU C++ compiler with Solaris linker
if test "$GXX" = yes && test "$with_gnu_ld" = no; then
_LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
if $CC --version | $GREP -v '^2\.7' > /dev/null; then
_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib
$LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags
${wl}-h $wl$soname -o $lib'
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo
"local: *; };" >> $lib.exp~
$CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM
$lib.exp'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used
when
# linking a shared library.
output_verbose_link_cmd='$CC -shared $CFLAGS -v
conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
else
# g++ 2.7 appears to require `-G' NOT `-shared' on this
# platform.
_LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS
$predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h
$wl$soname -o $lib'
_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" >
$lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo
"local: *; };" >> $lib.exp~
$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects
$libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
# Commands to make compiler produce verbose output that lists
# what "hidden" libraries, object files and flags are used
when
# linking a shared library.
output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext
2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
fi
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/support/?108201>
_______________________________________________
Message posté via/par Savannah
http://savannah.gnu.org/
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x,
Richard PALO <=
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Richard PALO, 2012/12/11
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Bob Friesenhahn, 2012/12/11
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Richard PALO, 2012/12/11
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Richard PALO, 2012/12/11
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Richard PALO, 2012/12/12
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Richard PALO, 2012/12/12
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Bob Friesenhahn, 2012/12/12
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Richard PALO, 2012/12/12
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Richard PALO, 2012/12/12
- [sr #108201] libtool problems with -export-symbols-regex on solaris with gcc-4.7.x, Peter Rosin, 2012/12/12