【发布时间】:2021-09-20 07:10:01
【问题描述】:
我已经构建了一个自定义版本的 glibc。它引入了一些我在自定义共享库中使用的新符号。为此,我添加了一个新版本:SHIM
我使用gcc -g -o my_test my_test.c -l my_so.so -Wl,-dynamic-linker=/local/home/me/glibc-build/ld-linux-x86-64.so.2 来构建一个测试可执行文件。它需要使用我的自定义 glibc 构建的运行时链接器,以便它可以链接 my_so.so 中使用的自定义 glibc 符号。这确实有效。
但是当我使用gdb调试可执行文件时,我发现使用了默认的运行时链接器。我收到以下错误:
/bin/bash: /lib64/ld-linux-x86-64.so.2: 找不到版本“SHIM”(/local/home/me/glibc-build/libc.so.6 需要)
如何让 gdb 使用我的自定义运行时链接器?我尝试使用gdb --args /local/home/me/glibc-build/ld-linux-x86-64.so.2 ./my_test,但我最终得到了同样的错误
【问题讨论】: