Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Feb 2012 20:57:54 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Steve Kargl <sgk@troutmask.apl.washington.edu>
Cc:        freebsd-current@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: rtld or lang/gcc cannot find libgcc_s.so.1
Message-ID:  <20120221185754.GL55074@deviant.kiev.zoral.com.ua>
In-Reply-To: <20120221182850.GA20768@troutmask.apl.washington.edu>
References:  <20120221182850.GA20768@troutmask.apl.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help

--+svXpSx+RSEd8UhP
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Feb 21, 2012 at 10:28:50AM -0800, Steve Kargl wrote:
> Sorry about the cross post, but I can't tell if this
> a -current issue of a -ports issue.  Unfortunately,
> I updated my freebsd 10.0 systems and the lang/gcc
> port during the same timeframe.
>=20
> I have compiled my math library and several programs
> with gfortran, which is installed by lang/gcc (pkg_info=20
> shows gcc-4.6.2_1).  When I try running the program
> I get
>=20
> troutmask:kargl[210] halfspace
> /lib/libgcc_s.so.1: version GCC_4.6.0 required by /home/kargl/bin/halfspa=
ce
>  not foundtroutmask:kargl[211]
>=20
> (Note, the annoying absense of a newline character after the error
> message, which is a completely different issue.)
>=20
> I see this problem on both freebsd-i386 and freebsd-amd64.
>=20
> troutmask:kargl[212] ldd ~/bin/halfspace
> /home/kargl/bin/halfspace:
>         liblapack.so.4 =3D> /usr/local/lib/liblapack.so.4 (0x2008c3000)
>         libblas.so.2 =3D> /usr/local/lib/libblas.so.2 (0x201463000)
>         libgfortran.so.3 =3D> /usr/local/lib/gcc46/libgfortran.so.3 (0x20=
175d000)
>         libm.so.5 =3D> /lib/libm.so.5 (0x201a70000)
>         libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x201c95000)
>         libquadmath.so.0 =3D> /usr/local/lib/gcc46/libquadmath.so.0 (0x20=
1ea2000)
>         libc.so.7 =3D> /lib/libc.so.7 (0x2020d6000)
> troutmask:kargl[212] ldconfig -r | grep libgcc_s
>         29:-lgcc_s.1 =3D> /lib/libgcc_s.so.1
>         723:-lgcc_s.1 =3D> /usr/local/lib/gcc46/libgcc_s.so.1
>=20
> So, it appears that rtld is finding the wrong libgcc_s.so.1 or=20
> the lang/gcc port is no longer providing sufficient information
> for rtld to choose the correct library.
>=20
> I have reverted revisions 230784, 299768, and 229508 (and
> various combinitions of these revisions) from rtld-elf.  The
> result does not change the above error.
>=20
> I can work around the problem by specifying -static during
> the building of my programs.  Or, I can work around the
> problem by *explicitly* adding '-rpath /usr/local/lib' to the
> command line, which I have never had to do.
>=20
I highly suspect that you just happen to not need a symbol from the
newest namespace before.

The thing to look first is the library search path in the ld.so hints,
which is output at the second line of ldconfig -r. I think that you have
/lib before /usr/local/lib/gcc46 in your setup. This guess is confirmed
by the numeration of the two instances of gcc_s above. Either change
the config, or use -rpath. AFAIR, ldconfig -m adds the directory
at the end of the search list.

--+svXpSx+RSEd8UhP
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (FreeBSD)

iEYEARECAAYFAk9D6TEACgkQC3+MBN1Mb4hjugCfRXYXIAPgTsF+A2DKUq5bf1A2
A70AoMle3bjhdxU4Nw7+h5XYfzgi6/tP
=PhNe
-----END PGP SIGNATURE-----

--+svXpSx+RSEd8UhP--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120221185754.GL55074>