【发布时间】:2021-06-30 12:24:04
【问题描述】:
我有一个来自旧硬件 (W315 from Moxa) 的工具链,当我在其库文件上运行 file 时,我得到了这个:
[bf@localhost arm-linux-gnueabi]$ file /usr/local/arm-linux/lib/libssl.so.0.9.8
/usr/local/arm-linux/lib/libssl.so.0.9.8: ELF 32-bit LSB shared object, ARM, version 1 (ARM), dynamically linked, not stripped
如您所见,这个 OpenSSL 库相当陈旧,不支持(至少)我需要的 TLSv1.2。因此,我试图找到该库的较新版本的 ARM 二进制文件。我从 Debian 找到了 1.0.0,但签名略有不同:
[bf@localhost arm-linux-gnueabi]$ file libssl.so.1.0.0
libssl.so.1.0.0: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=83c83f5d3da36759c7adc837405b28539569d26e, stripped
它们都是 32 位和 ELF,但我不确定“ARM”部分是否具有可比性。
我可以在我的应用程序中使用那个 1.0.0 库吗?如果没有,我应该在寻找正确的二进制文件时寻找什么?
来自cat /proc/cpuinfo的结果:
root@Moxa:/home/fabs# cat /proc/cpuinfo
Processor : ARM922Tid(wb) rev 1 (v4l)
BogoMIPS : 76.59
Features : swp half thumb
CPU implementer : 0x66
CPU architecture: 4
CPU variant : 0x0
CPU part : 0x526
CPU revision : 1
Cache type : VIVT write-back
Cache clean : cp15 c7 ops
Cache lockdown : format B
Cache format : Harvard
I size : 16384
I assoc : 2
I line length : 16
I sets : 512
D size : 16384
D assoc : 2
D line length : 16
D sets : 512
Hardware : Moxa CPU development platform
Revision : 0000
Serial : 0000000000000000
【问题讨论】:
-
您可能应该为您的目标交叉编译最近的 openssl (1.1.1k),因为不再支持 1.1.0、1.0.2、1.0.0。在您的 W315 系统上,命令
uname -a的输出是什么? -
@Frant
Linux Moxa 2.6.9-uc0 #4 Mon Jul 12 13:16:33 CST 2010 armv4tl unknown。我认为构建一个更新的 openssl 会很棘手。 -
cat /proc/cpuinfo的输出?我会为您提供正确的程序。 -
@Frant 查看更新的问题
-
ARM 绝对不是生来平等的。上面写着v4l,但看起来应该是armv5t。您需要确保二进制文件是为旧的东西制作的,和/或您必须重新编译它。您的系统不太可能拥有最先进的工具链,最近放弃了对 armv4 的支持(不确定 armv5),您可能需要一段时间才能担心它可能会发挥作用,并且您需要使用较旧的 gcc,例如 8。 x 或 9.x 或更早版本。 (一般在 5.x.x 之后输出质量变差了)