Hi
One comment which would fit here.
The difference between shared library and archive library (I realized it also reading some comment from other smarter guy, but I cannot recall the thread):
When you use shared library everything from it must be attached, as every program is allowed to use anything that was declared for it.
However archive libaries are resolved at compile time and thats the moment when everything is clear - what is used by the programmer, and what is not.
Basing on this knowledge linker is able to attach only really needed code, not always the whole library.
What I'm going to say is that:
Are there any references to shl_ functions inside libc.a? So what? It doesn't mean any of it will be really needed or linked to your executable.
Good luck
Adam
P.S.: Thanks to that Smart Someone who said it explicity in that some thread. I guess it was unbeatable A. Clay and the problem was related to the fact that size of executable compiled as shared version was bigger than executable compiled as compliete stand-alone (like yours).
I do everything perfectly, except from my mistakes