mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-03 11:52:19 +00:00
Merge pull request #5644 from roc-lang/aarch64-code-model-fix
aarch64 linux error fix
This commit is contained in:
commit
19fc7775c7
1 changed files with 7 additions and 10 deletions
|
@ -149,20 +149,17 @@ pub fn target_machine(
|
|||
|
||||
init_arch(target);
|
||||
|
||||
let code_model = match target.architecture {
|
||||
// LLVM 12 will not compile our programs without a large code model.
|
||||
// The reason is not totally clear to me, but my guess is a few special-cases in
|
||||
// llvm/lib/Target/AArch64/AArch64ISelLowering.cpp (instructions)
|
||||
// llvm/lib/Target/AArch64/AArch64Subtarget.cpp (GoT tables)
|
||||
// Revisit when upgrading to LLVM 13.
|
||||
Architecture::Aarch64(..) => CodeModel::Large,
|
||||
_ => CodeModel::Default,
|
||||
};
|
||||
// workaround for issue:
|
||||
#[cfg(all(target_arch = "aarch64", target_os = "macos"))]
|
||||
let code_model = CodeModel::Large;
|
||||
|
||||
#[cfg(not(all(target_arch = "aarch64", target_os = "macos")))]
|
||||
let code_model = CodeModel::Default;
|
||||
|
||||
Target::from_name(arch).unwrap().create_target_machine(
|
||||
&TargetTriple::create(target_triple_str(target)),
|
||||
"generic",
|
||||
"", // TODO: this probably should be TargetMachine::get_host_cpu_features() to enable all features.
|
||||
"",
|
||||
opt,
|
||||
reloc,
|
||||
code_model,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue