<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/152883>152883</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[LLD] Crash in Machine Block Frequency Analysis when linking AMD GPU drivers with LTO
</td>
</tr>
<tr>
<th>Labels</th>
<td>
lld
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
svan71
</td>
</tr>
</table>
<pre>
## Bug Description
LLD crashes with segfault when linking Linux kernel with LTO enabled, specifically when processing AMD GPU driver code.
## Environment
- **LLVM Version:** [run `ld.lld --version`]
- **Target:** x86_64-unknown-linux-gnu
- **Kernel Version:** 6.16
- **GPU:** AMD RX 6950 XT (Navi 21)
- **Distribution:** CachyOS
## Crash Details
Stack dump:
0. Program arguments: ld.lld -m elf_x86_64 -mllvm -import-instr-limit=5 -z noexecstack -r -o drivers/gpu/drm/amd/amdgpu/amdgpu.o @drivers/gpu/drm/amd/amdgpu/amdgpu.mod
Running pass 'Function Pass Manager' on module 'ld-temp.o'.
Running pass 'Machine Block Frequency Analysis' on function '@gfx_v9_0_update_coarse_grain_clock_gating' #0 0x00007fe1734ea01d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/libLLVM.so.20.1+0x8ea01d) #1 0x00007fe1734e7647 (/usr/lib/libLLVM.so.20.1+0x8e7647) #2 0x00007fe17243e540 (/usr/lib/libc.so.6+0x3e540) #3 0x00007ffc5a2b6110 make[6]: *** [scripts/Makefile.build:502: drivers/gpu/drm/amd/amdgpu/amdgpu.o] Error 139## Reproduction Steps
1. Clone CachyOS kernel: `git clone https://github.com/CachyOS/linux-cachyos.git`
2. Enable LTO in PKGBUILD: `_use_llvm_lto=full` or `_use_llvm_lto=thin`
3. Run `makepkg` to build kernel
4. Crash occurs during AMD GPU driver linking
## Workaround
Using GNU linker (`export LLVM=0`) instead of LLD avoids the crash.
## Additional Info
- Crash is deterministic and always occurs at same function
- Only affects builds with LTO enabled
- AMD GPU drivers load successfully in current running kernel
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVk1v2zgQ_TX0ZSCBoj598EGJ66Co0wZp0u3NoEla5poivfxw4v31C0pyk7TB7hYIHFuceZx5w_co6pzstBALVF6hcjmjwe-NXbgT1XU22xp-XiCSI5LDVehgKRyz8uil0Qi36_USmKVuLxw8Sb8HJ7odDcrD015oUFIfpO5gLXV4hoOwWqgxbv3wBYSmWyU4ItfgjoLJnWRUqfOYerSGCedidnu7hJu7R-BWnoQFZrhIEW7j31jXB32S1uheaI9wmwAiLSLtev3tFr4J62KpeTs-BFRe2aABVVjxVCkOSXKaYiqMyuUrgAdqO-FfUp-balMVSdAHbZ50omJTSacDwKukT2OTv-xbpVn1Kuzm7vFlLTZ4_x2qeYnh-wMg0nymJwkkQ2T-KmcpnbdyG_wb4GvK9ucvX98Qch1HAkvhqVRuXPnqKTsAD_0xpuIWp3BnTWdpD9R2IXLnUN7ChZUehNptxpYh6ZU69ZDI_misT6R23iZK9tKjfFlC8jdoI54Fc8MmiYXETNNyiKy6Y0BkxW2PyIr2fPwcH45fUgOowL-T0Bs-tnUftI5n5EidA0TqVdAs8gN38cEt1bQTFpEajIbe8KBEjFI88aI_pgaROn0H5ZayvdQCrpRhB1hZ8VcQmp2h1VSdnXQT4O6yGSI1KnC3e96c5hu8CUdOvdgwQ60Tm85SqTcsQm066qXuYjoiOQb8jDHG9U5kdV4IijMOkeg4obx1Zzd-ubNS-2F-D5YygUjzEmTp08Y4bwXtEamilKT2iMzjIUJkFZxFZKXkdvyMkkidSQlOM0Su8HMzbDrG59lP9dRVUf9vnBg84ZDXOKTIRVng93FYBKkGhCFqAsh_AOxYScm2yjIMPT0IVF5VUaN5O0liUvRoSfHo3NKD2Ekl0m2QiqO8LTGJ4b91GlG5hA_WGgtZPp8kdS-O1vAwzvurF8eoqyyFa2W0uIhwsrihvgp30gMblvfeH4dhklWsQPp92KbMxBIu8o18RD9h8bdxaSd9NCTckhQ-DEY5eKbUcPfp5urx43o57bIJTmzigdgob1C-3AWlUIXB2PdW_V7qETdP4X40wsjs8dDFJG9gIO7SCG6LdHITw1iwDniw73jyZPRvTOgPYw_UmqCjVB8HJ7_5_DiECjuchwqL52goEM8Typc4VkbmEP1FUA5mB_GCoScjuQO_F-Nd89b8W85lHApV8FHvzOCXY8XSARde2F5q6bxkQDUHqp7o2V26oR4c7cUPJQ_ZX7Q6A93tBPNupMP9emnFwLckOFCGcnCBxYsrjuEcx8WCtUJ7sJPH_GAW4XbGFzmf53M6E4usLou6rpusme0XTca226qs5w3G25rO59uCFQUrG1HWJZvXM7kgmJS4wXNCsqpsUlEXnNZlRXCeNXPeoAKLnkqVxuGnxnYz6VwQi6wkTZPPFN0K5YYrnxClOCIk3v12EcOTbegcKrCSzrsXAC-9Gt4S1utllMjEsob_ssu3LwM_s3ahdhasWvyLUgbTG_8lR2v-FMwjshq6irqeGjstyD8BAAD__zXNwUY">