如何解决加载库依赖项时出现分段错误
我已经为 mips64_Cavium 平台交叉编译了 openssh-8.4p1,同时与 openssl-1.1.1h 和 zlib_v1.2.11 动态链接。这里的问题是,这样创建的二进制文件在我尝试运行时立即获得以下 SigSEGV:
--- SIGSEGV {si_signo=SIGSEGV,si_code=SEGV_MAPERR,si_addr=0x575749a0} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault
使用LD_DEBUG=files调试加载时崩溃日志如下:
31232:
31232: file=libc.so.6 [0]; needed by /mnt/cf/sshd_dyn [0]
31232: file=libc.so.6 [0]; generating link map
31232: dynamic: 0x2b3091b0 base: 0x2b309000 size: 0x00164c00
31232: entry: 0x2b31fb58 phdr: 0x2b309034 phnum: 11
31232:
Segmentation fault (core dumped)
... 并且使用 LD_DEBUG=symbols 崩溃日志如下:
31271: symbol=islower; lookup in file=/lib32/octeon2/libpthread.so.0 [0]
31271: symbol=islower; lookup in file=/mnt/cf/libc.so.6 [0]
31271: symbol=EVP_aes_256_ctr; lookup in file=/mnt/cf/sshd_dyn [0]
31271: symbol=EVP_aes_256_ctr; lookup in file=/lib32/octeon2/libresolv.so.2 [0]
31271: symbol=EVP_aes_256_ctr; lookup in file=/mnt/cf/libcrypto.so.1.1 [0]
Segmentation fault (core dumped)
我不知道为什么会发生崩溃。
注意 zlib的编译是用
完成的CFLAGS="-mabi=n32 -fPIC"
openssl 配置的地方
CFLAGS="-mabi=n32" ./Configure no-hw linux-generic64 shared
OpenSSH8.4 配置了
CC="mips64-octeon-linux-gnu-gcc" --with-cflags="-mabi=n32" --with-ldflags="-mabi=n32 -pthread"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。