-shared does the following things:
- invoke the linker with -G -dy -z text (the latter only if
-mimpure-text was not given)
- drop crt1.o from the list of objects being linked
- drop -lc from the list of libraries being linked
OTOH, -G is just passed through to the linker.
The things that -shared does are necessary: crt1.o defines _start, and
requires main, so it should not be present in a shared library.
Likewise, -z text should be used to detect position-dependent code at
compile time.
SunOS/4*) LDSHARED="ld";;
SunOS/5*)
if test "$GCC" = "yes"
- then LDSHARED='$(CC) -G'
+ then LDSHARED='$(CC) -shared'
else LDSHARED="ld -G";
fi ;;
hp*|HP*) LDSHARED="ld -b";;