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