【求助】关于LD_ASSUME_KERNEL环境变量的设置
在Redhat 9上安装了IDS 9.4,运行都能正常,但是每次都提示Incorrectly built binary which accesses errno, h_errno or _res directly. Needs to be fixed.
上网查找了一下相关信息好像是说跟LD_ASSUME_KERNEL这个环境变量有关,请教一下大虾米,这个变量的含义以及设置成2.4.19 (或2.2.5) 2.4.1这些都是依据什么,是不是跟内核版本有关? 请参阅“Red Hat Linux 9 发行注记”
Red Hat Linux 9 包括 Native POSIX Thread Library (NPTL),它是 Linux 的 POSIX 线程的新实现。该库为 i686 或更高的处理器提供了性能增进和增加了的可缩放性。
该线程库的设计目标是与原有的 LinuxThreads 实现在二进制上兼容;不过,依赖于脱离 POSIX 标准的 LinuxThreads 实现之处的应用程序将需要被修正。值得注意的不同之处包括:
- 信号处理已从每线程信号处理改成 POSIX 进程信号处理。
- getpid() 在所有的线程中返回相同值。
- 如果使用了 vfork(),用 pthread_atfork 注册的线程处理程序就不会运行。
使用 NPTL 时会遇到问题的已知应用程序包括:
- 版本 1.4.1 之前的 Sun JRE
- IBM JRE
如果某应用程序使用 NPTL 无法正确运行,它可以使用原有的 LinuxThreads 实现来运行,方法是设置以下的环境变量:
LD_ASSUME_KERNEL=<kernel-version>
可用的版本如下:
- 2.4.1 — 带有浮动堆栈的 Linuxthreads
- 2.2.5 — 没有浮动堆栈的 Linuxthreads
所有动态链接的程序的 NPTL 支持可以使用以下引导时间选项来禁用:
nosysinfo
页:
[1]