在Solaris 10 SPARC中编译tsocks-1.8

时间:2019-06-20 22:40:53

标签: gcc makefile solaris sparc tsocks

我有一个安装了Solaris 10 SPARC OS的ORACLE / Sun SPARC服务器 我正在尝试将tsocks-1.8beta4.tar.gz安装到Solaris 但是在我的PuTTY终端中是以下错误。...

ld: fatal: library -lc not found

此错误由tsocks目录中的saveme.c文件生成。它包含以下行,我认为是造成故障的原因

unlink("/etc/ld.so.preload")

我的Solaris 10 SPARC OS中没有ld.so.preload文件 接下来我该怎么办?

1 个答案:

答案 0 :(得分:0)

tsocks做出许多许多特定于Linux的假设,例如使用/etc/ld.so.preload,并尝试静态链接tsocks包的各个部分。

Solaris 10没有静态的libc.a。您无法在Solaris 10及更高版本上针对libclibm之类的系统库静态链接任何可执行文件。

请参见Static Linking - where did it go?

  

在Solaris 10中,您不能再构建静态可执行文件。并不是说ld(1)不允许静态链接或使用存档,而不仅仅是不再提供libc.a的存档版本libc.so.1。该库提供了用户域和内核之间的接口,如果没有该库,则很难创建任何形式的应用程序。

     

一段时间以来,我们一直在警告用户不要进行静态链接,而针对libc.a的链接尤其成问题。每个solaris版本或更新(甚至是某些补丁)都导致针对libc.a构建的某些应用程序失败。问题在于,libc应该将应用程序与用户/内核边界隔离开,该边界可能会随着发行版本的变化而变化。

     

如果应用程序是根据libc.a构建的,那么它引用的任何内核接口都将从归档中提取出来并成为应用程序的一部分。因此,此应用程序只能在与使用的内核接口同步的内核上运行。如果这些接口发生更改,则应用程序将步履蹒跚。

     

...