Subject: gnumeric vs perl = libtool vs binutils on NetBSD-current
To: None <pkgsrc-users@NetBSD.org>
From: Thomas Klausner <wiz@NetBSD.org>
List: pkgsrc-users
Date: 03/12/2006 19:15:17
Hi!
On 3.99.1[56], since the binutils update, gnumeric doesn't compile any long=
er.
The build there fails with:
/bin/sh ../../libtool --tag=3DCC --mode=3Dlink cc -O2 -I/usr/pkg/include -=
I/usr/include -I/usr/pkg/include/python2.4 -I/usr/include/krb5 -DGLX_GLXEXT=
_LEGACY -I/usr/pkg/include/freetype2 -I/usr/X11R6/include -Wall -Wmissing-=
prototypes -Wsign-compare -Wpointer-arith -Wnested-externs -Wchar-subscrip=
ts -Wwrite-strings -Wnested-externs -Wmissing-noreturn -Wstrict-prototypes =
-Wmissing-prototypes -Wmissing-format-attribute -Wmissing-declarations -L=
/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib/py=
thon2.4/config -Wl,-R/usr/pkg/lib/python2.4/config -L/usr/X11R6/lib -Wl,-R/=
usr/X11R6/lib -o perl_loader.la -rpath /usr/pkg/lib/gnumeric/1.6.2/plugins/=
perl-loader -module -avoid-version -Wl,-R/usr/pkg/lib --whole-archive -shar=
ed -L/usr/pkg/lib boot.lo perl-loader.lo perl-gnumeric.lo xsinit.lo -Wl,-=
E -Wl,-R/usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/CORE -Wl,-R/usr/=
pkg/lib -L/usr/pkg/lib /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/a=
uto/DynaLoader/DynaLoader.a -L/usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-m=
ulti/CORE -lperl -lm -lcrypt -lpthread -lm
*** Warning: Linking the shared library perl_loader.la against the
*** static library /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/D=
ynaLoader/libDynaLoader_pic.a is not portable!
rm -fr .libs/perl_loader.so
cc -shared .libs/boot.o .libs/perl-loader.o .libs/perl-gnumeric.o .libs/xs=
init.o -L/usr/obj/math/gnumeric/work.i386/.buildlink/lib -L/usr/obj/math/g=
numeric/work.i386/.buildlink/lib/python2.4/config -L/usr/obj/math/gnumeric/=
work.i386/.x11-buildlink/lib /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-mu=
lti/auto/DynaLoader/libDynaLoader_pic.a -L/usr/obj/math/gnumeric/work.i386/=
.buildlink/lib/perl5/5.8.0/i386-netbsd-thread-multi/CORE -lperl -lcrypt -lp=
thread -lm -Wl,-R/usr/pkg/lib -Wl,-R/usr/pkg/lib/python2.4/config -Wl,-R/u=
sr/X11R6/lib -Wl,-E -Wl,-R/usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi=
/CORE -Wl,-soname -Wl,perl_loader.so -o .libs/perl_loader.so
ar cru .libs/perl_loader.a /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-mult=
i/auto/DynaLoader/libDynaLoader_pic.a boot.o perl-loader.o perl-gnumeric.o=
xsinit.o /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader=
/libDynaLoader_pic.a
ar: /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader/libDy=
naLoader_pic.a: No such file or directory
*** Error code 1
Stop.
I wonder why libtool converts
/usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader/DynaLoad=
er.a
to
/usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader/libDynaL=
oader_pic.a=20
The directory /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLo=
ader/ contains:
-r--r--r-- 1 root wheel 7430 Mar 10 06:54 DynaLoader.a
-r--r--r-- 1 root wheel 181 Mar 10 06:57 autosplit.ix
-r--r--r-- 1 root wheel 1269 Mar 10 06:57 dl_expandspec.al
-r--r--r-- 1 root wheel 505 Mar 10 06:57 dl_find_symbol_anywhere.al
-r--r--r-- 1 root wheel 4296 Mar 10 06:57 dl_findfile.al
-r--r--r-- 1 root wheel 1 Mar 10 06:57 extralibs.ld
which matches the contents of a 5.8.7nb8 binary package for 3.0/i386 I foun=
d on ftp.netbsd.org:
-r--r--r-- 1 root wheel 7430 Jan 15 11:22 lib/perl5/5.8.0/i386-n=
etbsd-thread-multi/auto/DynaLoader/DynaLoader.a
-r--r--r-- 1 root wheel 181 Jan 15 11:26 lib/perl5/5.8.0/i386-n=
etbsd-thread-multi/auto/DynaLoader/autosplit.ix
-r--r--r-- 1 root wheel 1269 Jan 15 11:26 lib/perl5/5.8.0/i386-n=
etbsd-thread-multi/auto/DynaLoader/dl_expandspec.al
-r--r--r-- 1 root wheel 505 Jan 15 11:26 lib/perl5/5.8.0/i386-n=
etbsd-thread-multi/auto/DynaLoader/dl_find_symbol_anywhere.al
-r--r--r-- 1 root wheel 4296 Jan 15 11:26 lib/perl5/5.8.0/i386-n=
etbsd-thread-multi/auto/DynaLoader/dl_findfile.al
-r--r--r-- 1 root wheel 1 Jan 15 11:26 lib/perl5/5.8.0/i386-n=
etbsd-thread-multi/auto/DynaLoader/extralibs.ld
But the build succeeds on 3.0/i386 (judging from the bulk builds),
and gnumeric did build for me on 3.99.15/i386 before I upgraded to
the userland with newer binutils.
So what does libtool do differently with binutils 2.16.1
than with binutils 2.15-20041204?
Cheers,
Thomas