https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81358

--- Comment #6 from joseph at codesourcery dot com <joseph at codesourcery dot 
com> ---
The design of what's in separate libraries is historical; since it 
probably predates shared libraries, the reason isn't obvious (with shared 
libraries, before --as-needed, it avoided unnecessary runtime 
dependencies).  The conformance documentation for an implementation as a 
whole (compiler plus libraries) would of course specify using -std=c11 
-pedantic -lm -latomic, or whatever.  For a new libc implementation for 
Unix-like systems it would be natural just to use libc.so for everything, 
subject to performance issues from causing everything to be (potentially) 
multithreaded by linking with pthreads functions.  Note e.g. glibc moved 
some clock/timer functions from librt to libc a while back to avoid such 
issues from linking in librt.

The POSIX rules for the c99 utility, which correspond more or less to the 
traditional division into libraries on Unix-like systems, are at: 
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/c99.html

Reply via email to