Date: Sun, 11 May 1997 12:07:45 -0700 From: John Polstra <jdp@polstra.com> To: dufault@hda.com Cc: hackers@freebsd.org Subject: Re: g++ shared library segfaults (SOLUTION) Message-ID: <199705111907.MAA15415@austin.polstra.com> In-Reply-To: <199705111143.HAA29259@hda.hda.com> References: <199705111143.HAA29259@hda.hda.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <199705111143.HAA29259@hda.hda.com>, Peter Dufault <dufault@hda.com> wrote: > Now back to the question at hand: David Nugent correctly guessed > that I wasn't linking the shared libraries properly and the > static constructors weren't executing. Yes - don't overlook > the prepending of ${DESTDIR}/usr/lib/c++rt0.o to SOBJS on older > systems or the or the use of "gcc -shared" in -current. The "right" way to do it on older systems is to set "CPLUSPLUSLIB=true" in the Makefile (assuming that <bsd.lib.mk> is being used). If you're not using <bsd.lib.mk> then yes, it's necessary to manually link in c++rt0.o for C++ shared libraries. As you mentioned, on recent -current systems, "gcc -shared" does the right thing, and CPLUSPLUSLIB is not needed. I'm going to bring that same functionality into the -2.2 branch soon. John -- John Polstra jdp@polstra.com John D. Polstra & Co., Inc. Seattle, Washington USA "Self-knowledge is always bad news." -- John Barth
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705111907.MAA15415>