Experiment and learn how compilers, linkers and C runtime work cooperatively
libc
A modern, standards compliant libc implementation consists of the following libraries, tools and sub-systems.
pthread.h
, unistd.h
etc.libc.a
or libc.so
.
However, for POSIX compliance, few parts of the libc implementation are grouped
into their own .a
or .so
files. For example, POSIX requires that the math
functions be packaged as libm.a
for static linking and libm.so
for dynamic
linking. Hence, though the C standard does not require such a packaging scheme,
all POSIX compliant libc implementations provide libm.a
and libm.so
separate
from libc.a
and libc.so
. Same is true with pthread
and a bunch of other
library files as well. Though they are packaged into separate library files,
they are all considered as part of, and provided by, a single libc
implementation.syscall.h
.