Subject: pkg/26109: buildlink3 clobbers gcc rpath on Solaris
To: None <gnats-bugs@gnats.NetBSD.org>
From: None <grant@NetBSD.org>
List: pkgsrc-bugs
Date: 06/29/2004 21:15:48
>Number:         26109
>Category:       pkg
>Synopsis:       buildlink3 clobbers gcc rpath on Solaris
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jun 29 11:16:00 UTC 2004
>Closed-Date:
>Last-Modified:
>Originator:     grant beattie
>Release:        pkgsrc-current
>Organization:
>Environment:
System: SunOS u10 5.9 Generic_117171-02 sun4u sparc SUNW,Ultra-5_10
Architecture: sparc
Machine: sun4u
>Description:
when buildlink3 is being used, binaries linked against gcc shared
libraries can't find them at runtime because buildlink3 has clobbered
the one of the rpath arguments.

from .work.log of a buildlink3 package:

[*] /work/pkgbuild/archivers/unrar/work/.buildlink/bin/g++ -o unrar -L/usr/pkg/gcc-2.95.3/lib/gcc-lib/sparc-sun-solaris2/2.95.3 -Wl,-R/usr/pkg/gcc-2.95.3/lib/gcc-lib/sparc-sun-solaris2/2.95.3 -L/usr/pkg/gcc-2.95.3/lib -Wl,-R/usr/pkg/gcc-2.95.3/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib rar.o strlist.o strfn.o pathfn.o int64.o savepos.o global.o file.o filefn.o filcreat.o archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o resource.o match.o timefn.o rdwrfn.o consio.o options.o ulinks.o errhnd.o rarvm.o rijndael.o getbits.o sha1.o extinfo.o extract.o volume.o list.o find.o unpack.o cmddata.o filestr.o recvol.o rs.o scantree.o
<.> /work/pkgbuild/archivers/unrar/work/.gcc/bin/g++ -o unrar -Wl,-R/usr/pkg/gcc-2.95.3/lib/gcc-lib/sparc-sun-solaris2/2.95.3 -Wl,-R/usr/pkg/lib rar.o strlist.o strfn.o pathfn.o int64.o savepos.o global.o file.o filefn.o filcreat.o archive.o arcread.o unicode.o system.o isnt.o crypt.o crc.o rawread.o encname.o resource.o match.o timefn.o rdwrfn.o consio.o options.o ulinks.o errhnd.o rarvm.o rijndael.o getbits.o sha1.o extinfo.o extract.o volume.o list.o find.o unpack.o cmddata.o filestr.o recvol.o rs.o scantree.o -I/work/pkgbuild/archivers/unrar/work/.buildlink/include -L/work/pkgbuild/archivers/unrar/work/.buildlink/gcc-2.95.3/lib/gcc-lib/sparc-sun-solaris2/2.95.3 -L/work/pkgbuild/archivers/unrar/work/.buildlink/gcc-2.95.3/lib -L/work/pkgbuild/archivers/unrar/work/.buildlink/lib

-Wl,-R/usr/pkg/gcc-2.95.3/lib is missing from the command after
buildlink3.

without buildlink3, the rpath above is passed to g++ and it works:

        libstdc++.so.4.0 =>      /usr/pkg/gcc-2.95.3/lib/libstdc++.so.4.0

this is also confirmed with devel/ncurses which uses buildlink3 and
libtool.

I'm send-pr'ing this because it is critical this gets fixed on the
2004Q2 branch.

>How-To-Repeat:
build a c++ package with gcc on Solaris.
>Fix:
looking..
>Release-Note:
>Audit-Trail:
>Unformatted: