问题描述
使用 LLVM 主线与 LinxISA 后端构建工具链时,LLVM/Clang 主体可以完成编译,但完整安装目标在链接附加目标时失败。
复现环境
- llvm-project main @ 3d79447
- linx-toolchain-build main @ e6a31efb4cfb17f1f1c33265cbf6dbb61bbba156
- Ubuntu/WSL x86_64,CMake + Ninja,ninja -j4
- LLVM_EXPERIMENTAL_TARGETS_TO_BUILD=LinxISA
复现步骤
配置 LLVM 主线,启用 clang、lld,设置 LLVM_TARGETS_TO_BUILD 为空、LLVM_EXPERIMENTAL_TARGETS_TO_BUILD=LinxISA,然后执行:
ninja -j4 clang lld
ninja -j4 install
实际结果
clang 和 lld 可以完成链接,但 install 阶段失败:
undefined reference to llvm::OptimizationLevel::O0
undefined reference to llvm::OptimizationLevel::O1
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed
OptimizationLevel::O0/O1 符号实际存在于 lib/libLLVMPasses.a,但包含 LinxISATargetMachine.cpp 的链接目标没有正确带上 LLVMPasses 依赖。
期望结果
LinxISA 后端相关 target 正确声明并链接 LLVMPasses(或等价的 LLVM 组件依赖),使完整 ninja install 成功。
关联仓库:linx-toolchain-build 的构建脚本可能也需要同步适配。
问题描述
使用 LLVM 主线与 LinxISA 后端构建工具链时,LLVM/Clang 主体可以完成编译,但完整安装目标在链接附加目标时失败。
复现环境
复现步骤
配置 LLVM 主线,启用 clang、lld,设置 LLVM_TARGETS_TO_BUILD 为空、LLVM_EXPERIMENTAL_TARGETS_TO_BUILD=LinxISA,然后执行:
实际结果
clang 和 lld 可以完成链接,但 install 阶段失败:
OptimizationLevel::O0/O1 符号实际存在于 lib/libLLVMPasses.a,但包含 LinxISATargetMachine.cpp 的链接目标没有正确带上 LLVMPasses 依赖。
期望结果
LinxISA 后端相关 target 正确声明并链接 LLVMPasses(或等价的 LLVM 组件依赖),使完整 ninja install 成功。
关联仓库:linx-toolchain-build 的构建脚本可能也需要同步适配。