Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Dec 2015 18:56:48 +0100
From:      Dimitry Andric <dim@FreeBSD.org>
To:        "William A. Mahaffey III" <wam@hiwaay.net>
Cc:        FreeBSD toolchain mailing list !!!! <freebsd-toolchain@freebsd.org>
Subject:   Re: ongoing link issues
Message-ID:  <C6C832E1-4B6E-4CB1-A2EE-88CB2AD4179A@FreeBSD.org>
In-Reply-To: <56685C44.10802@hiwaay.net>
References:  <56685C44.10802@hiwaay.net>

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

--Apple-Mail=_0014845B-C282-4F1F-AE3A-394AD2E9DD21
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

On 09 Dec 2015, at 17:50, William A. Mahaffey III <wam@hiwaay.net> =
wrote:
>=20
> I am still trying to statically link my inhouse code. I switched to =
using g++5 in the link line:
...
> g++5 -o /usr/local/bin/PreBFCGL.opteron.TEST.static =
-Wl,-s,--allow-multiple-definition,-rpath=3D/usr/local/lib/gcc5 Main.o =
-L/home/wam/V8/Cnx/test/junk/cart/unstaggered/bfc/pre/../lib/R4/opteron =
-L/home/wam/lib/R4 -L/usr/lib64/openmotif -Wl,--start-group -lmaiPre =
-lPre -lPrecxx -lutils -lftndmp -lftnO2pre -lftnO2 -lBC_Phi -license =
-Wl,--end-group -lMemIO -lMotif -lStdHash -lmpi -ltet -lgomp -lMrm -lXm =
-lXt -lGL -lGLU -lGLw -lX11 -ljpeg -lpng -lz -lm -static-libgcc =
-static-libstdc++ -Bstatic -lgfortran -static-libgfortran && \rm -f =
Main.o

> [wam@kabini1, ~, 10:51:48am] 917 % PreBFCGL.TEST
> /lib/libgcc_s.so.1: version GCC_4.6.0 required by =
/usr/local/lib/gcc48/libgfortran.so.3 not found
> [wam@kabini1, ~, 10:51:52am] 918 % PreBFCGL.TEST.static
> /lib/libgcc_s.so.1: version GCC_4.6.0 required by =
/usr/local/lib/gcc48/libgfortran.so.3 not found
> [wam@kabini1, ~, 10:52:02am] 919 % PreBFCGL.bdver1.TEST.static
> /lib/libgcc_s.so.1: version GCC_4.6.0 required by =
/usr/local/lib/gcc48/libgfortran.so.3 not found
> [wam@kabini1, ~, 10:52:04am] 920 % uname -a

Instead of all the complicated stuff above, can't you simply use -static
while linking?  I'm not sure why you want a half-dynamic, half-static
executable?

If you want to link *some* of the libraries statically, you must enclose
these in a -Wl,-Bstatic ... -Wl,-Bdynamic pair.  For example:

-Wl,-Bstatic -lstdc++ -lgfortran -lgcc -Wl,-Bdynamic

Also, you should probably link using gcc5 instead of g++5, otherwise the
latter might add its own -lstdc++ arguments.

-Dimitry


--Apple-Mail=_0014845B-C282-4F1F-AE3A-394AD2E9DD21
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=signature.asc
Content-Type: application/pgp-signature;
	name=signature.asc
Content-Description: Message signed with OpenPGP using GPGMail

-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28

iEYEARECAAYFAlZoa2AACgkQsF6jCi4glqM2/wCeO6gIUfPoNXEP0KaDGhXLsvfA
FBoAn3Be4IfyG51ipDsctUItXHwi/FiH
=Fqw6
-----END PGP SIGNATURE-----

--Apple-Mail=_0014845B-C282-4F1F-AE3A-394AD2E9DD21--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C6C832E1-4B6E-4CB1-A2EE-88CB2AD4179A>