You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LLVM+SLH编译Asahi Fedora内核时遇Clang退出码139错误

解决M1 Mac Mini上Fedora Asahi内核启用SLH编译时Clang崩溃问题

问题概述

克隆适配Apple Silicon的Fedora Asahi内核仓库后,在M1 Mac Mini(AArch64架构)环境下尝试启用SLH(Speculative Load Hardening)保护编译内核,执行命令:

make LLVM=1 CFLAGS_KERNEL="-mspeculative-load-hardening -Wno-slh-asm-goto" Image

Clang前端崩溃并返回退出码139,后续编译错误定位到init/main.c的start_kernel函数。使用gcc编译,或不添加-mspeculative-load-hardening参数用LLVM编译时,均可正常完成。

环境信息

  • 硬件:M1 Mac Mini(AArch64)
  • 内核源码:Fedora Asahi适配内核
  • 编译工具:LLVM/Clang(存在SLH编译崩溃问题)

已验证的有效操作

  • 使用gcc编译内核:无异常,编译完成
  • 移除-mspeculative-load-hardening参数后用LLVM编译:无异常,编译完成

可行解决方案

1. 升级LLVM/Clang版本

退出码139对应段错误,大概率是当前Clang版本对AArch64架构的SLH优化存在未修复的bug。建议升级到LLVM 17及以上的稳定版本,新版本通常会修复架构相关的编译逻辑漏洞。

2. 调整SLH编译参数

  • 尝试移除-Wno-slh-asm-goto参数,该警告抑制选项可能与SLH的代码生成逻辑冲突;
  • 若Clang支持,添加-mllvm -slh-disable-asm-goto参数,直接跳过asm-goto语句的SLH处理,避免触发崩溃逻辑。

3. 排查内核配置冲突

使用Fedora Asahi内核的默认配置进行编译测试,排除自定义配置中与SLH优化冲突的选项。如果默认配置下编译正常,再逐步添加自定义配置项,定位冲突点。

4. 提交bug报告

若上述方法均无效,说明问题可能是Clang的AArch64 SLH支持缺陷,或Fedora Asahi内核与SLH的适配问题。可向对应项目提交包含预处理文件、运行脚本的bug报告,协助开发者定位修复。

内容的提问来源于stack exchange,提问作者rcplusplus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 13:08:23