Jonathan Wakely <jwakely....@gmail.com> writes:

>> All of them have the same root cause:
>>
>> Excess errors:
>> Undefined                       first referenced
>>  symbol                             in file
>> nanosleep /var/tmp//ccQhmiwd.o (symbol belongs to implicit dependency
>> /lib/librt.so.1)
>> ld: fatal: symbol referencing errors. No output written to ./54297.exe
>> collect2: error: ld returned 1 exit status
>>
>> It seems that now every single C++ program needs to be linked with -lrt,
>> not only libstdc++.so.  This will also happen on Solaris 9 (bootstrap
>> still running), while on Solaris 11 nanosleep and the others were
>> integrated into libc.so.1.
>
> I see.  Would you prefer to disable use of nanosleep on Solaris 9 and
> 10, or to keep using it and link to librt?

I think it's fine for both C++11 programs and libstdc++.so to depend
on librt.  Maybe one could restrict linking with -lrt to C++11 mode?
But I doubt that: you can probably link both C++99 and C++11 objects
into a single executable, and with libstdc++.so already depending on
librt, there's not much point in the added complexity.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to