search for: dt_ver

Displaying 3 results from an estimated 3 matches for "dt_ver".

2020 Nov 12
1
Targeting old glibc
...symbol versioning with llvm-objcopy: > > * llvm-objcopy -R .gnu.version -R .gnu.version_r in.so out.so > * However, llvm-objcopy zeroes out the section content so at runtime glibc ld.so will error > "unsupported version 0 of Verneed record". > Thus we need to drop the DT_VERNEED tag as well. > To achieve this, we can rewrite the DT_VERNEED tag to DT_NULL (0), terminating > the dynamic table, effectively deleting all DT_VER* tags. DT_RELACOUNT is also > deleted. Fortunately its absence does not affect correctness. > This requires binary patching...
2020 Nov 11
2
Targeting old glibc
It did partially fix the issue but there is still one problem: llvm-objdump -sx gives: Version References: required from libpthread.so.0: 0x09691a75 0x00 05 GLIBC_2.2.5 0x09691972 0x00 09 GLIBC_2.3.2 0x09691973 0x00 07 GLIBC_2.3.3 0x06969192 0x00 12 GLIBC_2.12 required from libdl.so.2: 0x09691a75 0x00 21 GLIBC_2.2.5 required from libuuid.so.1: 0x09da27b0 0x00 19
2020 Nov 11
0
Targeting old glibc
...ue If you want to drop symbol versioning with llvm-objcopy: * llvm-objcopy -R .gnu.version -R .gnu.version_r in.so out.so * However, llvm-objcopy zeroes out the section content so at runtime glibc ld.so will error "unsupported version 0 of Verneed record". Thus we need to drop the DT_VERNEED tag as well. To achieve this, we can rewrite the DT_VERNEED tag to DT_NULL (0), terminating the dynamic table, effectively deleting all DT_VER* tags. DT_RELACOUNT is also deleted. Fortunately its absence does not affect correctness. This requires binary patching ... 0x0000000...