Subject: pkg/33104: buildlink3 transform for DynaLoader.a causes problems
To: None <pkg-manager@netbsd.org, gnats-admin@netbsd.org,>
From: Thomas Klausner <wiz@NetBSD.org>
List: pkgsrc-bugs
Date: 03/20/2006 07:25:01
>Number: 33104
>Category: pkg
>Synopsis: buildlink3 transform for DynaLoader.a causes problems
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: pkg-manager
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Mar 20 07:25:01 +0000 2006
>Originator: Thomas Klausner
>Release: NetBSD 3.99.17
>Organization:
>Environment:
Architecture: i386
Machine: i386
>Description:
In mk/buildlink3.mk and wrapper/arg-pp-main, there is a transformation
rule for DynaLoader.a -> libDynaLoader_pic.a and back, so that libtool
recognizes it as a shared object.
However, at least for gnumeric, the transformed argument is passed off
to ar(1), which doesn't find it (and caused a build failure in gnumeric
before I disabled the perl plugin there).
>How-To-Repeat:
cd /usr/pkgsrc/math/gnumeric
enable the perl/bl3.mk inclusion again.
On -current after 3.99.16, 'make'.
(before that the same error happens but is disregarded by
the build system somehow):
-current:
*** Warning: Linking the shared library perl_loader.la against the
*** static library /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader/libDynaLoader_pic.a is not portable!
cc -shared .libs/boot.o .libs/perl-loader.o .libs/perl-gnumeric.o .libs/xsinit.o -L/usr/obj/math/gnumeric/work.i386/.buildlink/lib -L/usr/obj/math/gnumeric/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-multi/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 -lpthread -lm -Wl,-R/usr/pkg/lib -Wl,-R/usr/pkg/lib/python2.4/config -Wl,-R/usr/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-multi/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/libDynaLoader_pic.a: No such file or directory
gmake[3]: *** [perl_loader.la] Error 1
3.0:
*** Warning: Linking the shared library perl_loader.la against the
*** static library /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader/libDynaLoader_pic.a is not portable!
cc -shared .libs/boot.o .libs/perl-loader.o .libs/perl-gnumeric.o .libs/xsinit.o -L/usr/obj/math/gnumeric/work/.buildlink/lib -L
ESC[129CESCML/usr/obj/math/gnumeric/work/.buildlink/lib/python2.4/config -L/usr/obj/math/gnumeric/work/.x11-buildlink/lib /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader/libDynaLoader_pic.a -L/usr/obj/math/gnumeric/work/.buildlink/lib/perl5/5.8.0/i386-netbsd-thread-multi/CORE -lperl -lcrypt -lpthread -lm -Wl,-R/usr/pkg/lib -Wl,-R/usr/pkg/lib/python2.4/config -Wl,-R/usr/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-multi/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/libDynaLoader_pic.a': No such file
ar: '/usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/auto/DynaLoader/libDynaLoader_pic.a': No such file
ranlib .libs/perl_loader.a
creating perl_loader.la
(cd .libs && rm -f perl_loader.la && ln -s ../perl_loader.la perl_loader.la)
LC_ALL=C ../../intltool-merge -x -u -c ../../po/.intltool-merge-cache ../../po p
lugin.xml.in plugin.xml
Found cached translation database
...
>Fix:
Either teach libtool to recognize shared objects differently,
or at least identify DynaLoader.a as shared, or add handling for
ar(1) arguments. Or some other way?
>Unformatted: