tsocks
makes many, many Linux-specific assumptions, such as /etc/ld.so.preload
being used, and attempting to statically link portions of the tsocks
package.
Solaris 10 does not have a static libc.a
. You can not statically link any executable on Solaris 10 and later against system libraries such as libc
and libm
.
See Static Linking - where did it go?:
With Solaris 10 you can no longer build a static executable. It's not that ld(1)
doesn't allow static linking, or using archives, it's just that libc.a
, the archive version of libc.so.1
, is no longer provided. This library provides the interfaces between user land and the kernel, and without this library it is rather hard to create any form of application.
We've been warning users against static linking for some time now, and linking against libc.a
has been especially problematic. Every solaris release, or update (even some patches) has resulted in some application that was built against libc.a
, failing. The problem is that libc
is supposed to isolate an application from the user/kernel boundary, a boundary which can undergo changes from release to release.
If an application is built against libc.a
, then any kernel interface it references is extracted from the archive and becomes a part of the application. Thus, this application can only run on a kernel that is in-sync with the kernel interfaces used. Should these interfaces change, the application is treading on shaky ground.
...