ld.so 检测到不一致:elf_get_dynamic_info:断言“info[DT_RUNPATH] == NULL”失败!尝试使用 glibc-2.33 运行 qemu

ld.so 检测到不一致:elf_get_dynamic_info:断言“info[DT_RUNPATH] == NULL”失败!尝试使用 glibc-2.33 运行 qemu

为了教育目的,我想使用 glibc-2.33 运行最新版本的 qemu,而不是在 18.04 上默认安装的 glibc。最终目标是在安装了 ubuntu 18.04 的 jetson nano 上虚拟化 windows 10 arm64。所以这就是我所做的:

wget https://launchpad.net/glibc/head/2.33/+download/glibc-2.33.tar.gz

tar -xf glibc-2.33.tar.gz    

mkdir build-glibc-2.33

cd build-glibc-2.33

/root/Scrivania/Work/I9/win10arm/glibc-2.33/./configure --prefix=/opt/glibc-2.33

SYSROOT=/opt/glibc-2.33

LDFLAGS="-L${SYSROOT}/lib -Wl,-rpath=${SYSROOT}/lib -Wl,--dynamic-linker=${SYSROOT}/lib/ld-2.33.so" CFLAGS="-I${SYSROOT}/include --sysroot=${SYSROOT}" make

LDFLAGS="-L${SYSROOT}/lib -Wl,-rpath=${SYSROOT}/lib -Wl,--dynamic-linker=${SYSROOT}/lib/ld-2.33.so" CFLAGS="-I${SYSROOT}/include --sysroot=${SYSROOT}" make install
    
GLIBC=/root/Scrivania/Work/I9/win10arm/build-glibc-2.33

GCONV_PATH=${GLIBC}/iconvdata LC_ALL=C     \
${GLIBC}/elf/ld.so --library-path \
${GLIBC}:\
${GLIBC}/math:\
${GLIBC}/elf:\
${GLIBC}/dlfcn:\
${GLIBC}/nss:\
${GLIBC}/nis:\
${GLIBC}/rt:\
${GLIBC}/resolv:\
${GLIBC}/crypt:\
${GLIBC}/nptl:\
#${GLIBC}/dfp \

/root/Scrivania/Work/I9/win10arm/qemu/build/aarch64-softmmu/./qemu-system-aarch64 -M virt-2.12 -enable-kvm -cpu host -smp 2 -m 2048 -device qemu-xhci -device usb-kbd -device usb-mouse -drive file=/root/Scrivania/Work/isoarm/win10arm.qcow2,if=virtio -nic user,model=virtio -device usb-storage,drive=install -device usb-storage,drive=drivers -drive file="$isoname1",if=none,id=install,media=cdrom,readonly=on -drive file="$virtio",if=none,media=cdrom,readonly=on,id=drivers -bios /root/Scrivania/Work/I9/win10arm/QEMU_EFI.fd -device ramfb

但错误是:

**Inconsistency detected by ld.so: get-dynamic-info.h: 141: elf_get_dynamic_info: Assertion `info[DT_RUNPATH] == NULL' failed!**

但无论如何 qemu 运行正常。我不知道它是否能克服错误运行。

答案1

我安装glibc使用homebrew并遇到了这个问题:

Inconsistency detected by ld.so: get-dynamic-info.h: 143: elf_get_dynamic_info: Assertion `info[DT_RPATH] == NULL' failed!

这和你的类似,我参考了链接: Homebrew/讨论:glibc在 Centos 7 上安装 Homebrew 的困难 - GitHub。

最后,我使用命令patchelf --remove-rpath /my/libdir/ld-linux-x86-64.so.2来处理它。ld-linux-x86-64.so.2是的符号链接ld.so。希望这能帮到你。

相关内容