diff --git build/config/compiler/BUILD.gn build/config/compiler/BUILD.gn index 88109264ea962..6f7255b07f159 100644 --- build/config/compiler/BUILD.gn +++ build/config/compiler/BUILD.gn @@ -132,6 +132,9 @@ declare_args() { # The cache can lead to non-determinism: https://crbug.com/1486045 thin_lto_enable_cache = true + # Whether to use thin archives in combination with lld. + use_thin_archives = use_lld + # Initialize all local variables with a pattern. This flag will fill # uninitialized floating-point types (and 32-bit pointers) with 0xFF and the # rest with 0xAA. This makes behavior of uninitialized memory bugs consistent, @@ -2315,6 +2318,7 @@ config("export_dynamic") { # 2. Remove the thin_archive config, so that the .a file actually contains all # .o files, instead of just references to .o files in the build directoy config("thin_archive") { + if (use_thin_archives) { if ((is_apple && use_lld) || (is_linux && !is_clang)) { # The macOS and iOS linker ld64.ldd doesn't support thin archive without # symbol table, gcc on linux also throws the error `archive has no index`. @@ -2332,6 +2336,7 @@ config("thin_archive") { } else if (is_win && use_lld) { arflags = [ "/llvmlibthin" ] } + } } # exceptions -------------------------------------------------------------------