Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Dec 2015 14:21:08 -0553.75
From:      "William A. Mahaffey III" <wam@hiwaay.net>
Cc:        FreeBSD toolchain mailing list !!!! <freebsd-toolchain@FreeBSD.org>
Subject:   Re: ongoing link issues
Message-ID:  <56688BEA.1080708@hiwaay.net>
In-Reply-To: <C6C832E1-4B6E-4CB1-A2EE-88CB2AD4179A@FreeBSD.org>
References:  <56685C44.10802@hiwaay.net> <C6C832E1-4B6E-4CB1-A2EE-88CB2AD4179A@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 12/09/15 12:03, Dimitry Andric wrote:
> On 09 Dec 2015, at 17:50, William A. Mahaffey III <wam@hiwaay.net> wrote:
>> 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=/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


Thanks for your reply. I tried '-static' earlier (see posts last week) & 
the linker couldn't find static libraries for LibGL, libGLU & libGLw.


I also tried gcc5 to link (see earlier posts today) & it seemed to still 
dynamically link libstdc++, even w/ the '-static-libstdc++' argument. 
Your suggestion to use the explicit linker arguments -Bstatic & 
-Bdynamic is the next thing to try, however they will require a bit more 
mods to my Makefile & I thought my attempts using various 
'-static-lib<whatever>' should/would work, based on my read of the man 
pages.


-- 

	William A. Mahaffey III

  ----------------------------------------------------------------------

	"The M1 Garand is without doubt the finest implement of war
	 ever devised by man."
                            -- Gen. George S. Patton Jr.




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