Subject: libtool -export-symbols-regex
To: None <tech-pkg@netbsd.org>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: tech-pkg
Date: 03/21/2004 13:25:50
Hi,
I'm hiting a problem with libtool -export-symbols-regex on solaris:
/bin/ksh ../libtool --mode=3Dlink gcc  -O -I/usr/pkg/include -I/usr/pkg/inc=
lude/freetype2 -Wall -L/usr/pkg/gcc3/lib/gcc-lib/sparc-sun-solaris2/3.3.3 -=
Wl,-R/usr/pkg/gcc3/lib/gcc-lib/sparc-sun-solaris2/3.3.3 -L/usr/pkg/gcc3/lib=
 -Wl,-R/usr/pkg/gcc3/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/openwin/l=
ib -Wl,-R/usr/openwin/lib -o libgdk_pixbuf-2.0.la -rpath /usr/pkg/lib -vers=
ion-info 200:4:200 -export-symbols-regex "^[^_].*" gdk-pixbuf.lo gdk-pixbuf=
-animation.lo gdk-pixbuf-data.lo gdk-pixbuf-io.lo gdk-pixbuf-loader.lo gdk-=
pixbuf-scale.lo gdk-pixbuf-util.lo gdk-pixdata.lo gdk-pixbuf-enum-types.lo =
pixops/libpixops.la   -Wl,-R/usr/pkg/lib -threads -L/usr/pkg/lib -lgmodule-=
2.0 -ldl -lgobject-2.0 -lgthread-2.0 -lglib-2.0 -liconv -lm    -lm -lintl -=
liconv=20
generating symbol list for `libgdk_pixbuf-2.0.la'
nm -p  .libs/gdk-pixbuf.o .libs/gdk-pixbuf-animation.o .libs/gdk-pixbuf-dat=
a.o .libs/gdk-pixbuf-io.o .libs/gdk-pixbuf-loader.o .libs/gdk-pixbuf-scale.=
o .libs/gdk-pixbuf-util.o .libs/gdk-pixdata.o .libs/gdk-pixbuf-enum-types.o=
  pixops/.libs/libpixops.a | sed -n -e 's/^.*[         ]\([BDRT][BDRT]*\)[ =
    ][      ]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2\3 \3/p' | /usr/pkg/bin/=
nbsed 's/.* //' | sort | uniq > .libs/libgdk_pixbuf-2.0.exp
grep -E -e "^[^_].*" ".libs/libgdk_pixbuf-2.0.exp" > ".libs/libgdk_pixbuf-2=
.0.expT"
mv -f ".libs/libgdk_pixbuf-2.0.expT" ".libs/libgdk_pixbuf-2.0.exp"
/usr/ucb/echo "{ global:" > .libs/libgdk_pixbuf-2.0.so.200.4.exp
cat .libs/libgdk_pixbuf-2.0.exp | /usr/pkg/bin/nbsed -e "s/\(.*\)/\1;/" >> =
.libs/libgdk_pixbuf-2.0.so.200.4.exp
usr/ucb/echo "local: *; };" >> .libs/libgdk_pixbuf-2.0.so.200.4.exp
gcc -shared -Wl,-M -Wl,.libs/libgdk_pixbuf-2.0.so.200.4.exp -Wl,-h -Wl,libg=
dk_pixbuf-2.0.so.200 -o .libs/libgdk_pixbuf-2.0.so.200.4  .libs/gdk-pixbuf.=
o .libs/gdk-pixbuf-animation.o .libs/gdk-pixbuf-data.o .libs/gdk-pixbuf-io.=
o .libs/gdk-pixbuf-loader.o .libs/gdk-pixbuf-scale.o .libs/gdk-pixbuf-util.=
o .libs/gdk-pixdata.o .libs/gdk-pixbuf-enum-types.o -z allextract pixops/.l=
ibs/libpixops.a -z defaultextract  -R/local/funk1/pkgbuild/x11/gtk2/work.fu=
nk/.buildlink/lib -R/local/funk1/pkgbuild/x11/gtk2/work.funk/.buildlink/lib=
 -L/local/funk1/pkgbuild/x11/gtk2/work.funk/.buildlink/gcc3/lib/gcc-lib/spa=
rc-sun-solaris2/3.3.3 -L/local/funk1/pkgbuild/x11/gtk2/work.funk/.buildlink=
/gcc3/lib -L/local/funk1/pkgbuild/x11/gtk2/work.funk/.buildlink/lib -L/loca=
l/funk1/pkgbuild/x11/gtk2/work.funk/.x11-buildlink/lib -lc /local/funk1/pkg=
build/x11/gtk2/work.funk/.buildlink/lib/libgmodule-2.0.so -ldl /local/funk1=
/pkgbuild/x11/gtk2/work.funk/.buildlink/lib/libgobject-2.0.so /local/funk1/=
pkgbuild/x11/gtk2/work.funk/.buildlink/lib/libgthread-2.0.so /local/funk1/p=
kgbuild/x11/gtk2/work.funk/.buildlink/lib/libglib-2.0.so -lm /local/funk1/p=
kgbuild/x11/gtk2/work.funk/.buildlink/lib/libintl.so /local/funk1/pkgbuild/=
x11/gtk2/work.funk/.buildlink/lib/libiconv.so -lc  -Wl,-R/usr/pkg/gcc3/lib/=
gcc-lib/sparc-sun-solaris2/3.3.3 -Wl,-R/usr/pkg/lib -Wl,-R/usr/openwin/lib
ld: fatal: file .libs-L: stat failed: No such file or directory
collect2: ld returned 1 exit status
gmake[3]: *** [libgdk_pixbuf-2.0.la] Error 1

Looking closed, the "-Wl,-M -Wl,.libs/libgdk_pixbuf-2.0.so.200.4.exp" is
changed to "-Wl,-M -Wl,.libs-L -lgdk_pixbuf-2.0exp" within .buildlink/bin/g=
cc.
The problem seems to be in .buildlink/bin/.cache-trans:
-Wl,.libs/libgdk_pixbuf-2.0.so.200.4.exp)       # /local/funk1/pkgbuild/x11=
/gtk2
/work.funk/.buildlink/bin/gcc
        cachearg=3D"-Wl,.libs-L -lgdk_pixbuf-2.0exp"
	arg=3D"$cachearg"; cachehit=3Dyes
	;;
These lines also appear in .cache-add-trans

And this is where I'm lost: I didn't find how these lines where added to
=2Ecache-add-trans

--=20
Manuel Bouyer <bouyer@antioche.eu.org>
     NetBSD: 26 ans d'experience feront toujours la difference
--