From 58cd75350b635fe796586b0cbf73fac4bb864d30 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Thu, 27 Jun 2024 23:21:58 +0200 Subject: [PATCH] Allow `ODIN_CLANG_PATH=clang-path` overrides Link using `clang`, unless overridden by `ODIN_CLANG_PATH` environment variable. Fixes #3783 --- src/linker.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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);