NetBSD Problem Report #33104

From wiz@hiro.nih.at  Mon Mar 20 07:22:49 2006
Return-Path: <wiz@hiro.nih.at>
Received: from viefep17-int.chello.at (viefep14-int.chello.at [213.46.255.14])
	by narn.netbsd.org (Postfix) with ESMTP id 4B46A63B8F3
	for <gnats-bugs@gnats.NetBSD.org>; Mon, 20 Mar 2006 07:22:48 +0000 (UTC)
Message-Id: <20060320072246.35318E135D@hiro.nih.at>
Date: Mon, 20 Mar 2006 08:22:46 +0100 (CET)
From: Thomas Klausner <wiz@NetBSD.org>
Reply-To: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@netbsd.org
Subject: buildlink3 transform for DynaLoader.a causes problems
X-Send-Pr-Version: 3.95

>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
>Last-Modified:  Sun Mar 21 16:10:06 +0000 2010
>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?

>Release-Note:

>Audit-Trail:

Responsible-Changed-From-To: pkg-manager->jlam
Responsible-Changed-By: wiz@netbsd.org
Responsible-Changed-When: Mon, 20 Mar 2006 07:26:51 +0000
Responsible-Changed-Why:
buildlink3 problem, over to its maintainer.


Responsible-Changed-From-To: jlam->pkg-manager
Responsible-Changed-By: wiz@NetBSD.org
Responsible-Changed-When: Sun, 21 Mar 2010 16:10:06 +0000
Responsible-Changed-Why:
Back to role account, jlam lost his commit bit.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.