aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2026-02-02 11:10:43 +0000
committerGitHub <noreply@github.com>2026-02-02 11:10:43 +0000
commitaf86c5963d5fd6a3a7e86a22b2941734949e2f52 (patch)
treed184cdb9b114d05d5212bac024bc1c76a12b0ceb /src/main.cpp
parentf45ca2d03e46886d52641b6f40763e0c95ebc3c8 (diff)
parent1a7f78b66578492103607628d2cd4a2de70b29ec (diff)
Merge pull request #6208 from JesseRMeyer/lto-support
Add ThinLTO support via -lto:thin and -lto:thin-files flags
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 624869e65..feaf55f4b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -413,6 +413,7 @@ enum BuildFlagKind {
BuildFlag_Tilde,
BuildFlag_Sanitize,
+ BuildFlag_LTO,
#if defined(GB_SYSTEM_WINDOWS)
BuildFlag_IgnoreVsSearch,
@@ -643,6 +644,7 @@ gb_internal bool parse_build_flags(Array<String> args) {
#endif
add_flag(&build_flags, BuildFlag_Sanitize, str_lit("sanitize"), BuildFlagParam_String, Command__does_build, true);
+ add_flag(&build_flags, BuildFlag_LTO, str_lit("lto"), BuildFlagParam_String, Command__does_build);
#if defined(GB_SYSTEM_WINDOWS)
@@ -1636,6 +1638,18 @@ gb_internal bool parse_build_flags(Array<String> args) {
}
break;
+ case BuildFlag_LTO:
+ GB_ASSERT(value.kind == ExactValue_String);
+ if (str_eq_ignore_case(value.value_string, str_lit("thin"))) {
+ build_context.lto_kind = LTO_Thin;
+ } else if (str_eq_ignore_case(value.value_string, str_lit("thin-files"))) {
+ build_context.lto_kind = LTO_Thin_Files;
+ } else {
+ gb_printf_err("-lto:<string> options are 'thin' and 'thin-files'\n");
+ bad_flags = true;
+ }
+ break;
+
#if defined(GB_SYSTEM_WINDOWS)
case BuildFlag_IgnoreVsSearch: {