g++/GNU ld/position independent libraries

Jason Merrill jason@redhat.com
Fri Jan 18 08:05:00 GMT 2002


>>>>> "Bill" == Bill Hoffman <bill.hoffman@kitware.com> writes:

> At 12:39 PM 1/18/2002 +0000, Jason Merrill wrote:
>>>>>>> "William" == William A Hoffman <bill.hoffman@kitware.com> writes:
>> 
>>> At 10:47 AM 1/18/2002 +0000, Jason Merrill wrote:
>>>> GCC shared libraries should always be built with gcc -shared.  -nostdlib is
>>>> wrong.
>> 
>>> OK, I'll bite, how should they be built?  I guess you would have to figure
>>> out if the libstdc++ was built shared or
>>> not then add or remove the -nostdlib?   If libstdc++ is built static then
>>> you have to have the -nostdlib.
>> 
>> Why?  The gcc driver doesn't link against libstdc++.

> But for linking c++, I thought you should use the c++ driver.
> c++ -shared -o libfoo.so foo.o

> In previous versions of gcc, if you did this:
> gcc -shared -o libfoo.so foo.o

> Globals would not be initialized properly, (no constructor calls)

> At what version of gcc did that stop happening?

The gcc and c++ drivers have never been different in that respect; the only
differences are that the c++ driver treats .c files as C++ and links against
libstdc++.

Jason



More information about the Gcc mailing list