aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-06-27 23:36:39 +0200
committerGitHub <noreply@github.com>2024-06-27 23:36:39 +0200
commitaba274cf753f76dcfb20b71bb128ff37781805b1 (patch)
tree9c4f26d8b819cf3a813171fc272a44f81c2aa883 /src
parent140ee036cef1857feca1444178a3700108e61698 (diff)
parent58cd75350b635fe796586b0cbf73fac4bb864d30 (diff)
Merge pull request #3821 from Kelimion/clang_override
Allow `ODIN_CLANG_PATH=clang-path` overrides for link stage.
Diffstat (limited to 'src')
-rw-r--r--src/linker.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/linker.cpp b/src/linker.cpp
index 9eed14ea9..b9769e0e7 100644
--- a/src/linker.cpp
+++ b/src/linker.cpp
@@ -578,9 +578,16 @@ gb_internal i32 linker_stage(LinkerData *gen) {
}
}
- gbString link_command_line = gb_string_make(heap_allocator(), "clang -Wno-unused-command-line-argument ");
+ // Link using `clang`, unless overridden by `ODIN_CLANG_PATH` environment variable.
+ const char* clang_path = gb_get_env("ODIN_CLANG_PATH", permanent_allocator());
+ if (clang_path == NULL) {
+ clang_path = "clang";
+ }
+
+ gbString link_command_line = gb_string_make(heap_allocator(), clang_path);
defer (gb_string_free(link_command_line));
+ link_command_line = gb_string_appendc(link_command_line, " -Wno-unused-command-line-argument ");
link_command_line = gb_string_appendc(link_command_line, object_files);
link_command_line = gb_string_append_fmt(link_command_line, " -o \"%.*s\" ", LIT(output_filename));
link_command_line = gb_string_append_fmt(link_command_line, " %s ", platform_lib_str);