<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/89534>89534</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
llvm-readelf crash when reading .tbd files
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
truboxl
</td>
</tr>
</table>
<pre>
I installed llvm-18-dev from https://apt.llvm.org on Ubuntu 22.04.4 LTS
https://github.com/ziglang/zig/blob/master/lib/libc/darwin/libSystem.tbd
https://github.com/ziglang/zig/blob/f3ff0b6e6df1148978bab32c9f37bfcd3452fad0/lib/libc/darwin/libSystem.11.tbd
https://github.com/ziglang/zig/blob/f3ff0b6e6df1148978bab32c9f37bfcd3452fad0/lib/libc/darwin/libSystem.12.tbd
https://github.com/ziglang/zig/blob/f3ff0b6e6df1148978bab32c9f37bfcd3452fad0/lib/libc/darwin/libSystem.13.tbd
```
$ /usr/lib/llvm-18/bin/llvm-readelf --version
Ubuntu LLVM version 18.1.3
Optimized build.
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.11.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.11.tbd
#0 0x00007f13b404b256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
#1 0x00007f13b4049210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
#2 0x00007f13b404b91b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
#3 0x00007f13aff40520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f13b58830bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
#5 0x000055f595d0e078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
#6 0x000055f595cfcbde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
#7 0x000055f595d150f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
#8 0x00007f13aff27d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#9 0x00007f13aff27e40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007f13aff27e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x000055f595bae7b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.12.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.12.tbd
#0 0x00007fbeab0f1256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
#1 0x00007fbeab0ef210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
#2 0x00007fbeab0f191b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
#3 0x00007fbea6fe6520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007fbeac9290bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
#5 0x00005619081fc078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
#6 0x00005619081eabde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
#7 0x00005619082030f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
#8 0x00007fbea6fcdd90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#9 0x00007fbea6fcde40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007fbea6fcde40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x000056190809c7b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.13.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.13.tbd
#0 0x00007f77c7d3d256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
#1 0x00007f77c7d3b210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
#2 0x00007f77c7d3d91b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
#3 0x00007f77c3c32520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f77c95750bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
#5 0x0000564d020ac078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
#6 0x0000564d0209abde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
#7 0x0000564d020b30f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
#8 0x00007f77c3c19d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#9 0x00007f77c3c19e40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007f77c3c19e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x0000564d01f4c7b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault
$ /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.tbd
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/lib/llvm-18/bin/llvm-readelf -h libSystem.tbd
#0 0x00007f242c2a4256 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be9256)
#1 0x00007f242c2a2210 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be7210)
#2 0x00007f242c2a491b (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x3be991b)
#3 0x00007f2428199520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
#4 0x00007f242dadc0bc llvm::object::WindowsResource::getHeadEntry() (/usr/lib/llvm-18/bin/../lib/libLLVM.so.18.1+0x54210bc)
#5 0x000055b59c725078 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c0078)
#6 0x000055b59c713bde (/usr/lib/llvm-18/bin/llvm-readelf+0x1aebde)
#7 0x000055b59c72c0f6 (/usr/lib/llvm-18/bin/llvm-readelf+0x1c70f6)
#8 0x00007f2428180d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#9 0x00007f2428180e40 call_init ./csu/../csu/libc-start.c:128:20
#10 0x00007f2428180e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#11 0x000055b59c5c57b5 (/usr/lib/llvm-18/bin/llvm-readelf+0x607b5)
Segmentation fault
```
This is not an issue with GNU readelf though.
```
~$ readelf --version
GNU readelf (GNU Binutils for Ubuntu) 2.38
Copyright (C) 2022 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
~$ readelf -h libSystem*.tbd
File: libSystem.11.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
File: libSystem.12.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
File: libSystem.13.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
File: libSystem.tbd
readelf: Error: Not an ELF file - it has the wrong magic bytes at the start
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkml1v4zYWhn-NfHMQgTrU54UvMp24LZDtDprp7mXAL8ncypRBUuO4F_vbF6SUiR0k2yKwUw8mCAzJMt_z8pwjPoZo5pzujFLLpPiQFB8XbPTrwS69Hfnw0C_4IPfLn0Eb51nfKwl9_2VzldVXUn2B1g4bWHu_dQm9TnCV4IptfRo-kg62g8HAb3w0fgTElORpDref7xLyMSHXx6M67dcjT8WwSXD1h-56ZrrpKMEV7wee4GrDnFc2wVWv-fQqElxJZnfaTOd3e-fVJvVcvjVGS9uW8FKVss2yvG6qmjNOUTQtrXgrJM0LbJkkf8FFll2KEbwUI_TJSFKS-X86xRwSXI3uoL5TnwUnk044t4pJ1bdwdfVFWacHMw2fm-z29l__gPkCZHWapXS6Dv_cer3RfygJfNS9TN8YdQ0v1_fT7c313Q24kW-0BwZ87MCq7WA9-AH-T9KD_GOUrR3-o4RPcKWdG5VLcAXMSNBG9KNU4NcKhGVuDZyJ371lQs3zuPNM_A5y3GxDlPgWSSH-fbJDZ9kGmO3GjTI--DjNnCFBSoA8EEJI1WaU5yTnWJRxgQg-6LXbu-ngk9XGR5efg-0E66cPWba7H5y3im0SLBP8AbTxCTaQYP0nRtP0sOtC9VM3pKHwCX4gD5SrBosywebJcfbMcYMZecnxr6O5051h_U_MyF5ZF92cxlSFGTkyhc_T2GT8NNNvMn4UiR5EYm2bkwLJHGkSeqjL-zK_6rUZH646M843dBAuo2qOBR67zw_dF3VNCRcHKR147Op4_G9t5LBzvyo3jFao6c1O-Z8UkzfG2_2pslzkmJGwDh34LGafRdEWTSGJIlX9FyId3g1ROxOEVPWRdHkkLVrBpXqTNFNcqiPp6th1VpC2fJvrirTH90J93AxYyYbA_X2o973zzPp7wfr-fsO0gZBu4cbHzLu9k2obliiz9f3cJM8HpeuEXhd1Qq-z8ilq8zyqygnEMdpo_zzQdBjUr6J6KoIcBlH8yg6akZdEj6by0ixeFKdVE2w_aWdHFeBMVbx4SwVKUvHiawHuVBfWY-YDq1o29v4UTMLvkEn4GpO4Ypy02TfEpOhYtZfFpDmN78AkrljZqvKkTOKKiQabS2dSmTWkzlpxBiZN0oqdgUlRGgk9B5NiMwj5zkyao56WSQeip2ZSrABpxAUziX6HTKKvMamqRCWp_IaYNDnml8WkOY3vwKSqElRQPCmTqko0RVVcPJNySZCwszApSjdnYVKU5mdhUmyGrHlnJs1RT8ukA9GTMymXJGvzC2bSdwekV2iEOQpk-TdEo8kxXhaN5jS-A40wxzprmpPSCHOUTIpLp1HBi0ZUWJzjqV2Uzug5ntpNrsU5aBSboSbvTKM56mlpdCB68qd2oQKFKM5Lo-PtrM9r7UA7MIMHZiBiAXbar-HHX36DxxXar4exW6cvKvw38O2V3a5DjQTrcPpBm9Hr3kE72HnLNdyRmNJ6GvPDsN1b3a19GPFDvEYQYWWVgruh9TtmFayG0cg4t7Cg_2xEejCd7Qwk7aANo9w8KqEfYD-MsGF7sEpq563mo1egPYxGKhv555XdOBjaSTC8E2z_qIyyrIdPI--1gFstlHHq6xYehcEGv8yHCBaG7eStAWb20DOv7ONnX3K6Zg4Yd0M_etXvwQywY9Yy4_fpS0k-4GWC1wdblfF1pfuw8r2yGfbYMfQabqwdbDj4ZSr-ze0KWt0ruAoZCZ7C7Hd2MB1sWKcF8L1XDpiPF2JL_0lg_LsC078p8JmjPt56C7mksqENW6hlVmW0rClt6GK9lIpwSUklVc7yjNSE1RnPUNVUSkYLvtBLJJiTwK-KNAVNCRJZ1k2byxwFzXmSE7Vhuv_624hFXBSWdVPQfNEzrnoXf4GBaNRuWjESxKT4uLDLuCjxsXNJTnrtvHtS8dr3ann0xW_6qrlbKxN7W5sOQgJjctxitP3y7d9ro93_BQAA__-iqhgt">