mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
loongarch: use medium code model for zig loongarch64 binary (#21153)
This commit is contained in:
parent
96daca7b3b
commit
c34cfe486d
1 changed files with 18 additions and 0 deletions
18
build.zig
18
build.zig
|
|
@ -647,6 +647,24 @@ fn addCompilerStep(b: *std.Build, options: AddCompilerStepOptions) *std.Build.St
|
|||
.strip = options.strip,
|
||||
.sanitize_thread = options.sanitize_thread,
|
||||
.single_threaded = options.single_threaded,
|
||||
.code_model = switch (options.target.result.cpu.arch) {
|
||||
// NB:
|
||||
// For loongarch, LLVM supports only small, medium and large
|
||||
// code model. If we don't explicitly specify the code model,
|
||||
// the default value `small' will be used.
|
||||
//
|
||||
// Since zig binary itself is relatively large, using a `small'
|
||||
// code model will cause
|
||||
//
|
||||
// relocation R_LARCH_B26 out of range
|
||||
//
|
||||
// error when linking a loongarch64 zig binary.
|
||||
//
|
||||
// Here we explicitly set code model to `medium' to avoid this
|
||||
// error.
|
||||
.loongarch64 => .medium,
|
||||
else => .default,
|
||||
},
|
||||
});
|
||||
exe.root_module.valgrind = options.valgrind;
|
||||
exe.stack_size = stack_size;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue