我的系统是旧glibc
版本。我将新版本[2.23]编译成/FaF/glibc
.
由于新glibc
版本与 SLES 11 SP2 和 SP3 不兼容,我必须使用链接器开关 [ --rpath=/FaF/glibc/lib
] 才能在我的程序中使用新版本。这非常有效!
glibc
我无法在文件中设置新版本的路径ld.so.confg
,因为所有系统程序都会尝试加载新glibc
版本,并且系统会严重崩溃。
我的问题:
有没有办法glibc
使用开关编译新版本的 Apache --rpath
?
答案1
最终答案就在Apache 构建文档 - 环境变量。
就我而言,非常严重的问题是我的系统 [SLES 11 SP2] 在版本glibc
2.23 时崩溃。
glibc
这意味着我无法在文件中设置新库的路径ld.so.conf
。
对我来说唯一的解决方案是设置$LDFLAGS
跑步时configure
和make
使用以下值,以便系统可以按正确的顺序加载 Apache 和所有新库,并显式设置加载器:
export LDFLAGS="-L/FaF/lib64 -L/FaF/glibc/lib -L/FaF/openssl-curl/lib
-Wl,--rpath=/FaF/glibc/lib -Wl,--rpath=/FaF/lib64
-Wl,--rpath=/FaF/lib -Wl,--rpath=/FaF/openssl-curl/lib
-Wl,--rpath=/usr/local/lib64/ -Wl,--rpath=/usr/lib64
-Wl,--rpath=/lib64/ -Wl,--dynamic-linker=/FaF/glibc/lib/ld-linux-x86-64.so.2"
所有使用新glibc
版本的程序都收集在/FaF
.