<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/85856>85856</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Compiling Linux kernel with LLVM and SLH results in "clang frontend command failed with exit code 139"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
rchoudhary
</td>
</tr>
</table>
<pre>
I cloned `https://gitlab.com/fedora-asahi/kernel-asahi.git` and attempted to build it by first running `make LLVM=1 CFLAGS_KERNEL="-mspeculative-load-hardening -Wno-slh-asm-goto" Image`. However, I got the following error message
```
Stack dump:
0. Program arguments: clang -Wp,-MMD,fs/.open.o.d -nostdinc -I./arch/arm64/include -I./arch/arm64/include/generated -I./include -I./arch/arm64/include/uapi -I./arch/arm64/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ --t a#0r g0x0000ffff6946c5e8e tllvm::sys::PrintStackTrace(llvm::raw_ostream&, int)= a(a/lib64/libLLVM-17.sor+c0x91c5e8h)6
4 -#1l i0x0000ffff6946a358n ullvm::sys::RunSignalHandlers()x -(g/lib64/libLLVM-17.son+u0x91a358 )-
f i#2n t0x0000ffff693ac460e g(r/lib64/libLLVM-17.soa+t0x85c460e)d
- a#3s 0x0000ffff734cc800- W(elinux-vdso.so.1r+r0x800o)r
= u#4n k0x0000ffff6b34eb30n o(w/lib64/libLLVM-17.son+-0x27feb30w)a
r n#5i n0x0000ffff6b34d5ccg -(o/lib64/libLLVM-17.sop+t0x27fd5cci)o
n #6- W0x0000ffff69875a98e rllvm::MachineFunctionPass::runOnFunction(llvm::Function&)r o(r/lib64/libLLVM-17.so=+i0xd25a98g)n
o r#7e d0x0000ffff695e1b40- ollvm::FPPassManager::runOnFunction(llvm::Function&)p t(i/lib64/libLLVM-17.som+i0xa91b40z)a
t i#8o n0x0000ffff695e8dbc- allvm::FPPassManager::runOnModule(llvm::Module&)r g(u/lib64/libLLVM-17.som+e0xa98dbcn)t
-#9W e0x0000ffff695e2150r rllvm::legacy::PassManagerImpl::run(llvm::Module&)o r(=/lib64/libLLVM-17.soo+p0xa92150t)i
o#10n -0x0000ffff712d47f8i gclang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>)n o(r/lib64/libclang-cpp.so.17e+d0x19d47f8 )-
W#11e r0x0000ffff715dfe20r o(r/lib64/libclang-cpp.so.17=+u0x1cdfe20n)u
s#12e d0x0000ffff70344aa8- cclang::ParseAST(clang::Sema&, bool, bool)o m(m/lib64/libclang-cpp.so.17a+n0xa44aa8d)-
l#13i n0x0000ffff71fc33b4e -clang::FrontendAction::Execute()a r(g/lib64/libclang-cpp.so.17u+m0x26c33b4e)n
t#14 -0x0000ffff71f53b00m lclang::CompilerInstance::ExecuteAction(clang::FrontendAction&)i t(t/lib64/libclang-cpp.so.17l+e0x2653b00-)e
n#15d i0x0000ffff7203d554a nclang::ExecuteCompilerInvocation(clang::CompilerInstance*) -(D/lib64/libclang-cpp.so.17C+C0x273d554_)U
S#16I N0x0000000000418470G _cc1_main(llvm::ArrayRef<char const*>, char const*, void*)P A(T/usr/bin/clang-17C+H0x418470A)B
L#17E _0x0000000000415eb0F U(N/usr/bin/clang-17C+T0x415eb0I)O
N#18_ E0x0000ffff71c2a604N T(R/lib64/libclang-cpp.so.17Y+ 0x232a604-)D
K#19A S0x0000ffff693ac140A Nllvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)_ S(H/lib64/libLLVM-17.soA+D0x85c140O)W
_#20S C0x0000ffff71c29b98A Lclang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) constE _(S/lib64/libclang-cpp.so.17H+I0x2329b98F)T
=#21 -0x0000ffff71bf7ac0f mclang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) consta c(r/lib64/libclang-cpp.so.17o+-0x22f7ac0p)r
e#22f i0x0000ffff71bf7cd4x -clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) constm a(p/lib64/libclang-cpp.so.17=+.0x22f7cd4/)=
#23- s0x0000ffff71c0fa60t dclang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&)= g(n/lib64/libclang-cpp.so.17u+10x230fa601)
-#24f s0x00000000004155f8h oclang_main(int, char**, llvm::ToolContext const&)r t(-/usr/bin/clang-17w+c0x4155f8h)a
r#25 -0x0000000000421578f umainn s(i/usr/bin/clang-17g+n0x421578e)d
-#26c h0x0000ffff687509dca r__libc_start_call_main -(f/lib64/libc.so.6n+o0x309dc-)c
o#27m m0x0000ffff68750ab0o n__libc_start_main@GLIBC_2.17 -(f/lib64/libc.so.6n+o0x30ab0-)P
I#28E 0x0000000000412bf0- f_startn o(-/usr/bin/clang-17s+t0x412bf0r)i
ct-aliasing -mgeneral-regs-only -DCONFIG_CC_HAS_K_CONSTRAINT=1 -Wnoclang-: perror: sclang frontend command failed with exit code 139 (use -v to see invocation)a
bi -fnclang version 17.0.6 (Fedora 17.0.6-2.fc39)o
-Target: aaarch64-unknown-linux-gnus
yThread model: nposixc
hInstalledDir: r/usr/bino
nous-unwind-tables -fno-unwind-tables -mbranch-protection=pac-ret+bti -Wa,-march=armv8.5-a -DARM64_ASM_ARCH=\"armv8.5-a\" -DKASAN_SHADOW_SCALE_SHIFT= -fno-delete-null-pointer-checks -O2 -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -fpatchable-function-entry=2 -fsanitize=kcfi -falign-functions=4 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -Wall -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wframe-larger-than=2048 -Wno-gnu -Wno-unused-but-set-variable -Wno-unused-const-variable -Wvla -Wno-pointer-sign -Wcast-function-type -Wimplicit-fallthrough -Werror=date-time -Werror=incompatible-pointer-types -Wenum-conversion -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-pointer-to-enum-cast -Wno-tautological-constant-out-of-range-compare -Wno-unaligned-access -Wno-cast-function-type-strict -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-initializer-overrides -Wno-sign-compare -g -DRANDSTRUCT -frandomize-layout-seed-file=./scripts/basic/randstruct.seed -mstack-protector-guard=sysreg -mstack-protector-guard-reg=sp_el0 -mstack-protector-guard-offset=2648 -mspeculative-load-hardening -Wno-slh-asm-goto -DKBUILD_MODFILE=\"fs/open\" -DKBUILD_BASENAME=\"open\" -DKBUILD_MODNAME=\"open\" -D__KBUILD_MODNAME=kmod_open -c -o fs/open.o fs/open.c
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module 'fs/open.c'.
4. Running pass 'AArch64 speculation hardening pass' on function '@__arm64_sys_openat2'
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
```
I'm not sure what is causing this issue. I can build the kernel just fine with `gcc` and with LLVM sans SLH. So it looks like the `-mspeculative-load-hardening` flag is the problem.
I've attached the full build log here: [BUILD_OUTPUT.txt](https://github.com/llvm/llvm-project/files/14655612/BUILD_OUTPUT.txt)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Wktz46q2_jX0hMIlIz-kQQaOHe_k7Lwqzj6pO1IhhGROEOgCSpz9628tkGM7naR7n8Ht6mrbsFjrY72BZs7JRgtxhqbnaLr6wXq_NfbM8q3pqy2zbz9KU72dXWGujBYVRrNk633nULpAdI3oupFesXLETYvouhaVsYwwx7YS0fWzsFqo-HPUSI9mCWa6wsx70XZeVNgbXPZSVVh6XL7hWlrnse21lroBWS17Fvj6-t83KF2N8XJ9vfhjU_x58XB7cY3SFaKUtK4TvFfMyxdBlGEV2TJbicCAPGlDnNoS5lrSGG8QpfiqZY1As2SEL82reBEW0SW-wo3x2G8Fro1S5hVWC2uNxa1wDhYkK5Qshn9nyfA3_Nx4xp9x1bcdKCUMJSOU5PfWNJa1mNmmb4X2oDPMFQvAOkSX5OZmheiydoiuR6YTemRGFSbaOF9JzTG5GiG6ZpZvw0c7myC6lpqrvhLfToJZhBaWgYoj4W8u61knf5v1Kf2nTL5btYd0Sqek7neIrrlpO6mEJS_COmn0aPurFc_c6Fo2vybcsy78Wycc0K-KwamKAhPiMUM0TSxukl2SJEld1_Usn8z4VGQCe6VeWrB0unBvLn65t1L74AePlnGBaHYgsuy1MM5bwVpEZ-BsUntEc5SuQE7GArIyKFnJEpydjOcjZyyi5zzZ5WOQu0U0n0XnmmCCaDpWWJ7CY-k007j_BN5Drzey0UxdMl0pYR2iGaL5DhhlzVfyNaLnPcgHxhjRnET5NZaIplRjfyw_ZXwySwRuEM3sVywZouc-2WXTQItoXkWWJGg8dfjAcZ5OOM-ShOAnRDMRbEdeKmdGzozGoBub7LIkMYjmdojLdIV7RNOJxs9H0Mp0Iso00dggmr1-t1uS7Oi8BuJXRHMWuVqsEU2nEutTntWU8yZo0HzFs4vbpfMaiCWiuYk8NcaIpjOCn45VmM2nLM8EtgcT3jC-lVqse829NPqeucGkttd3ej984m-HwRmoJuz6S4OEJHouk11FQXaDaK4jRIMtoulc4OoY4lSMy0lCsDmSdw-obphmjbD_DFyHPaKZ_ApcG6GxHGT-fbCIDw6YmROL5FORVSUnmP0a2o2penUapfuhqDNw4v47WAJggTyNaO4jLBziMn_C4hQWHU8Te2xUJRrG34bMcQB41XbqHeSX4IJdsmC3z-EZRM87gAdyIdHIwaCQNBKNyVGMjWk1mdeZxE2oS1HaRSv9OePPQld3ve96sNHR9EqyBkqU5O5CN1KLIasdkVwKVgm7EVBC7jqwt8PcaOd_Jl2aSvwh9C-oHplthP8F0TXTzWckBz1uvJW6eRD16fBevYsPDAclLAaPPV5ypb3tnXwRD6Jean_vLUqXh-mXegjTtVRi8-a8aFF6ASycr-JMr-X_9qLoPqyEatG9WulFsa8ZR4sqUbNe-aISSnjxi4XpRZCZ689SQNgm4V0X0ulcIHpeJbtxHvzhKNk_gdeMBbbHXjOtakGTT1PLB74xv_TJbszDGgiXPnJ2wJme5Jd5kk4mjGUE8yMz3DPrxGLzeOqGG9GywcClMerwmRvcIpq13-KCQqSTHQviqsN2FYBKT3L9fFzzNC0nApMj8WtrtD84RwycneC9F7G4shCnzbcoekTP22RHZ1HAIfl6gDHBp7FaT9MySVqsTsIntjJX2nmmuTgBsnfc7GvcIaXIkIb9t1BVTHp0FkAQRPOhJYbiOJ5Wx83InCZpNZ1OGNbHaSWCOiB-MZz9DPCnHUFY5qHOrr5FuET0fAnFNsguEM3_GvpzQDi7wrcRYfwzGWeTefIHLjgfFy2Tpwl3YS17gzyRLvmW2X06WQxBfDpGl_jFyCoCvccLRLNHaHIdhEYJnNcRasR4meyicCA_jxCvAeL8AhenEKeiTNb4L0Sz228YPgJDIL1CNL-LDG-BYVbgi2MH4pTNkskthkh6-FaX_4PoOU52NA0rwNqryPdP4Jsv8OZD6zeeJAt8e1Dg0jK3fRDcvAj7tgSX2_lDL8pqod5OFF4PfUFhg9JBnzjGUcxhBd4gml1-VfMWiJ6vQl85niR3iOZPEW4BjWqywctTNeRlni3w9ZHXVVa-7FuE5XK8NG3LdPUxrD91kPfkbELtYeokLR9KzpCOj7J5UfDdbjyOP0rmJIfULQFTcLsTYhgovGUSzpFx-gM7phRElLFH80CyOOTGEErBcS9wgWi2-dYLLhE9vwpeAApbI5o_vjfaoNjxhwRV1nPGkxq3Xyk2hDb7KWHutX2SBz4sBIKvCv83pIuTEjHsnWH-y8JlhuMADXvqDocMATun9Um-g53zarI7qRC_s_N_mdJ9ve1_mfJaOv9VM9Mypf4tuDdD53jwxI5JcIJwzvx9TQ3u8rO-2nBO7X6j0I-ixng1CZdDcMYdemPQWkqwOwnEpGazxOPqC4Sro-8n1eOTsvGVtv8ftRZO9HBy0L8s-mOIqrD7MWh5OASDjib1XkfvRWBaZ1tsApd9pdpjDEliMYT4YZOPxqgh6R45T25DnSdflJLXeN0wCDw6_wKs6XuoD7DoeDrPatwDII3dcIz7jG8TW6244vjMD3xnHG-PSkk2nyZ5xRm2RQGaK5xn1hecKRW2Ho5YWf1Bv6DXGZzfTbJLYT0ULH449dB5i9sPUliZGKxPpATdTpI_rq_OlwUdjee_IYyVoRe6j8KuQFh2gfGpBWlZJwTXUUzsxr8ygos3BnGNPRzeuCdMSebCrWYb79IUsaJxxGj1hslqeXe7vvqjWC6Ly8Wm-LNY3t1uHh8WV7eP4eqUPOnoQgSlC9yFu0345uKFZD20hZgP_l0zqUSFX6XfYrGT4EeVwOM0h7LcO4HJC_YGOyGwPOrk9k5TSkzq2P3h4QIPj-ejZDSD9etwTTwMEDqqeZofLkdIPO0BOsbgCDmbkF4_a_OqSbwGanTvIu3b49YKVuHWVAIOz1h3xsndYPxtaCKVEtVKht3aY7Xv72JM70ivX6WuiGelEg6gm49DbWmZ5lvSWePF0PSvOsaJFR7R89JLTJ4YokvShpvTdMVs-5KNpoRhslo83MwmxWJzUywelpeQFqdLROk7SfyJyerPxWZxW2wuF6u7p2KzXFxfFJvLqzUYMcKKRz-ie6VIZ6T2whK-FfzZYXJHMamdZ_x5D9NY4rw14DWw2LTSk9qyVuzXDuOdl638WxAnSyUhWzGlQA_eyhfJFGG9N-SFWSK19Chd_S2swaTumOdbUBDZN3BEaG_fULoKUJiWXv4tULp65jW4BFOy0e_EDqWrSYBsJfekVmJHGHRWMJFGaMMcNJK1Mq_7Qdhj2DZoXSlMnnpdiRqTp8G1V7LtlOSw3z20SnDFbPDUz-ik9kfDVvjeauLfOnE0OqAB7ZpwexzfGGpjW-aJE7y30r_FQW9lY1m33dMEtbOqssINQ8MPYmrSMf4sKtKKtgSjPEVqBZFgid8y8DaaTLK4sNF9_NLr3omKlD0I92AhCeY4mQwV4HjqRbFIsPcfJxvQCGfuSFvDzg9qZEr5rTV9sz1SSMW8IF62x0qSmpu2Y16CY-xl7LUldN8CpH1W-O-3cbQBb0jky5wflA8eq0wjOVNxKdOemN6Dsi3TjSABpH0XElxTVIRx_m6gnzUy-GOcbqWDjExqKVQVQkMyJf8WdlgeFijZSj8MuK2sPdGiic9VL0z1g_yjxcHXraz2zgXWOYBtMFk9LG5Xm8eHv5aPGNxKVyYEr2JvJmhQVKSWCsJuhOjacSs77yDpwRkD0TUscd723I-AGJP2Y9JoemYr8Pc3Z0XzFQEUICDqCqGSL4lMXTtI5ys6A__9Rw92kBHP_7q6XhU3d6v11fXFe-oMr2amE_qQOiPh-WJzcbu4OVB-RnRzt_qapih-onpuTVUAESYcE4PfpY-Ovw9lZzxCSY7SpTBw6sMds05YzDyGAmtqHGwTKClQLqGyDs9jUFbCTAozD8NDaMecw4jO97fn-B4G9vfadI6NhgrYKwFUx3jofDQ8Gn3Gb7EI1RW_W8RofDAGUA3M9yEAi9AkKYrwKli4NxeUwjyFiSDo_vpisbnAri9b6THDZd9gKzpjPfQLP70db_v923FoX-MHuNB_BPeIrqVzvYANhYfj_bue3wrMLXNbXDL-7OOb2xJ3VnTWQPiKCjvT2zgcnpydM1yGB1HbaxxjYvTpe-57LzdvsTYeu94K_LplHkuHOetDE-a30uEAboSvMGd6eMcGZPHZG_-ndx7XUovYRaFZ0nC-fwIPQ9fX_77BjmmHN9eXI7wxWHqsjHl2WMnnuE00S74LGeBXK9YANiDvrCmVaEcft_IiMPOe8a2IGOteqQGyMg3eCiugQULT8-j6d3893v_1OPI7j6YrRLN_bDhwcrDbeDKbTmdjiuj6J840_1GdpVWe5uyHOBvPx0k2n2fT5Mf2jFUV5ZzOJ3xSl8l4Wk2qJJtleclFWU6S5Ic8owmdJOk4H-fTZJqM8lk5E3w-q2o2y-tJiiaJaJlUIwA2Mrb5Ecx1lk2z6eyHYqVQLvyvB0rjWY9SNF39sGdhI2XfODRJlHTeHTh46ZU4i-dL8IJraEf39j6YFAy8ub7EVrheeYclBA79p502ovRHb9XZfx8zYav_FwAA__-e65fU">