Problems with ld, libc, and "struct stat"
markand at malikania.fr
Wed Oct 16 11:44:33 UTC 2019
Le 16/10/2019 à 13:15, Jan Behrens a écrit :
> Do you know any link where I find a more detailed explanation about why
> I need to use "cc" instead of "ld" to create shared libraries? I assume
> that "cc" adds the necessary options to "ld" that are otherwise
> missing. But I don't see where this is documented.
Yes, many :-)
See output of clang -v when creating your shared library:
"/usr/bin/ld" --eh-frame-hdr -Bshareable --hash-style=both
--enable-new-dtags -o libfoo.so /usr/lib/crti.o /usr/lib/crtbeginS.o
-L/usr/lib test.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc
--as-needed -lgcc_s --no-as-needed /usr/lib/crtendS.o /usr/lib/crtn.o
> When I search the man page for "cc" (clang - the Clang C, C++, and
> Objective-C compiler), I even do not find any "-shared" option at all.
-shared is a linker option, it's documented in gcc but basically clang
is usually retro-compatible with most of the GCC option. In fact,
-shared is just a shortcut to pass the appropriate shared arguments to
the underlying linker in that case -Bshareable (but may add additional
options as well).
Clang's manual page is not as full as gcc, that's true though.
More information about the freebsd-questions