【问题标题】:Compiling tsocks-1.8 in Solaris 10 SPARC在 Solaris 10 SPARC 中编译 tsocks-1.8
【发布时间】:2019-11-03 18:58:00
【问题描述】:

我有一台安装了 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 操作系统中没有文件 ld.so.preload 接下来我该怎么办?

【问题讨论】:

    标签: gcc makefile solaris sparc tsocks


    【解决方案1】:

    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 构建的,那么它引用的任何内核接口都会从存档中提取并成为应用程序的一部分。因此,该应用程序只能在与所使用的内核接口同步的内核上运行。如果这些接口发生变化,应用程序将步履蹒跚。

    ...

    【讨论】:

    • 感谢您的意见,安德鲁。无论如何我可以在 Solaris 10 上安装 tsocks 吗?我问是因为即使我已经成功编译并安装了 Tor 源代码 0.2.1.21 - 当我在 PuTTY 终端中输入 torify 时,它说需要安装“tsocks”。如果有任何帮助,我会很高兴
    • @greenelephant 您需要深入研究tsocks 包并删除所有Linux 特定假设,例如尝试静态链接libc/etc/ld.so.conf 用法。
    • 很好。我得开始做正事了。感谢您的输入! :)
    猜你喜欢
    • 1970-01-01
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多