ports/129518: g++42 uses wrong libstdc++.so and libgcc_s.so
Olaf Seibert
olafs at cs.ru.nl
Tue Dec 9 09:40:02 UTC 2008
>Number: 129518
>Category: ports
>Synopsis: g++42 uses wrong libstdc++.so and libgcc_s.so
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Dec 09 09:40:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Olaf Seibert
>Release: FreeBSD 6.1-RELEASE amd64
>Organization:
Radboud University Nijmegen
>Environment:
System: FreeBSD twoquid.cs.ru.nl 6.1-RELEASE FreeBSD 6.1-RELEASE #2: Mon Mar 19 15:05:26 CET 2007 root at twoquid.cs.ru.nl:/usr/src/sys/amd64/compile/TWOQUID amd64
>Description:
If you have both gcc 4.1 and gcc 4.2 installed (gcc-4.1.3_20080630
and gcc-4.2.5_20080702 in my example), then programs created with
g++4.2 will use the wrong libstdc++.so and libgcc_s.so.
>How-To-Repeat:
Script started on Tue Dec 9 10:17:38 2008
$ cat hello.cc
#include <iostream>
int main()
{
std::cout << "Hello, world!\n";
return 0;
}
$ g++42 hello.cc
$ ldd ./a.out
./a.out:
libstdc++.so.6 => /usr/local/lib/gcc-4.1.3/libstdc++.so.6 (0x80062b000)
libm.so.4 => /lib/libm.so.4 (0x800825000)
libgcc_s.so.1 => /usr/local/lib/gcc-4.1.3/libgcc_s.so.1 (0x800941000)
libc.so.6 => /lib/libc.so.6 (0x800a4d000)
$ exit
Script done on Tue Dec 9 10:17:59 2008
Note the "gcc-4.1.3" in those paths. These files do indeed differ
significantly between versions:
-rw-r--r-- 1 root wheel 220755 Oct 1 21:37 /usr/local/lib/gcc-4.1.3/libgcc_s.so.1
-r--r--r-- 1 root wheel 238659 Oct 1 00:00 /usr/local/lib/gcc-4.2.5/libgcc_s.so.1
-rwxr-xr-x 1 root wheel 1228873 Oct 1 21:37 /usr/local/lib/gcc-4.1.3/libstdc++.so.6
-rwxr-xr-x 1 root wheel 1313164 Oct 1 00:00 /usr/local/lib/gcc-4.2.5/libstdc++.so.6
>Fix:
Proper RPATH options should be used for all compilations.
G++ should pass the correct -R (aka --rpath) options to the linker,
and global library search paths should not be used.
Global RPATHs (ldconfig!) are evil and cannot work properly.
-Olaf.
--
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list