Subject: pkg/20697: gcc3 package needs to add its gcc-lib to the rpath
To: None <gnats-bugs@gnats.netbsd.org>
From: None <tls@netbsd.org>
List: netbsd-bugs
Date: 03/14/2003 00:46:37
>Number:         20697
>Category:       pkg
>Synopsis:       The gcc3 package doesn't add its gcc-lib directory to the rpath, causing Fortran and java programs to not work due to runtime linkage failures.
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 13 16:47:01 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Thor Lancelot Simon
>Release:        NetBSD 1.6K, pkgsrc as of 2003-03-05
>Organization:
	Stevens Institute of Technology
>Environment:
System: NetBSD doppelbock.hpcf.cs.stevens-tech.edu 1.6K NetBSD 1.6K (KLOSTER) #17: Wed Mar  5 18:59:25 EST 2003     tls@doppelbock.hpcf.cs.stevens-tech.edu:/share/src/sys/arch/i386/compile/KLOSTER i386
Architecture: i386
Machine: i386
>Description:
	GCC-compiled fortran programs require linkage with libg2c.
	GCC-compiled java programs require linkage with libgcj, and so
        forth.  Dynamically-linked programs require linkage against the
	corresponding .so libraries instead of the .a libraries a static
	executable would use.

	Unfortunately, the gcc3 package doesn't modify gcc's 'specs' file
	to add /usr/pkg/gcc-3.2.1/gcc-lib to the rpath at the link stage,
	so Fortran programs (for example) link fine but then fail to run.
	This is particularly obvious (and confusing!) when linking to a 
	GCC-compiled Fortran *library*, for example the MPE libraries.

>How-To-Repeat:
	Try to build a dynamically-linked Fortran executable, or a
	dynamically-linked *any language* executable that uses a 
	GCC3-compiled library requiring libg2c.  Note that it does not
	work because the dynamic linker can't resolve the dependency.
>Fix:
	I added %{!static:-rpath /usr/pkg/gcc-3.2.1/lib to the *link:
	line in gcc3's "specs" file.  I'm not sure if this is quite
	right; someone who actually understands the file syntax better
	should investigate this.
>Release-Note:
>Audit-Trail:
>Unformatted: