[compiler_wrapper] explicitly enables `libgcc` as the unwindlib

This is in preparation for our migration to libunwind.

BUG=b:187785190
TEST=Tested locally and on CQ

Disallow-Recycled-Builds: test-failures
Change-Id: I1b11d54de3d9550086ead05c3880f149e2e2f839
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2945100
Tested-by: Christopher Di Bella <cjdb@google.com>
Tested-by: Luis Lozano <llozano@chromium.org>
Auto-Submit: Christopher Di Bella <cjdb@google.com>
Commit-Queue: Luis Lozano <llozano@chromium.org>
Reviewed-by: Luis Lozano <llozano@chromium.org>
diff --git a/compiler_wrapper/config.go b/compiler_wrapper/config.go
index d602384..cd2eb1d 100644
--- a/compiler_wrapper/config.go
+++ b/compiler_wrapper/config.go
@@ -137,6 +137,7 @@
 		"-Wno-section",
 		"-static-libgcc",
 		"-fuse-ld=lld",
+		"--unwindlib=libgcc",
 		"-Wno-final-dtor-non-final-class",
 		"-Werror=poison-system-directories",
 		"-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/bisect.json b/compiler_wrapper/testdata/cros_hardened_golden/bisect.json
index 53cc598..fe1b895 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/bisect.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/bisect.json
@@ -35,6 +35,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -103,6 +104,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -174,6 +176,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json
index c7016ad..67cf66d 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_ftrapv_maincc_target_specific.json
@@ -26,6 +26,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -84,6 +85,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -142,6 +144,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -200,6 +203,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -257,6 +261,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -314,6 +319,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -371,6 +377,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -428,6 +435,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -485,6 +493,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json
index 4c7ebd0..efcc31f 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_maincc_target_specific.json
@@ -25,6 +25,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -81,6 +82,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -137,6 +139,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -193,6 +196,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -248,6 +252,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -303,6 +308,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -358,6 +364,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -413,6 +420,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -468,6 +476,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json
index 48ab0dd..5f8552a 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_path.json
@@ -25,6 +25,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -84,6 +85,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -143,6 +145,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -202,6 +205,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -268,6 +272,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -339,6 +344,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -405,6 +411,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -466,6 +473,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -522,6 +530,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -578,6 +587,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -634,6 +644,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -693,6 +704,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
index 30536e6..0d42e19 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_sanitizer_args.json
@@ -27,6 +27,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -85,6 +86,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -143,6 +145,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -201,6 +204,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -258,6 +262,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -317,6 +322,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -376,6 +382,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -433,6 +440,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json
index 973cf63..aad519f 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_specific_args.json
@@ -35,6 +35,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -100,6 +101,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -158,6 +160,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -216,6 +219,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -274,6 +278,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -332,6 +337,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -390,6 +396,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json b/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json
index f9fa152..72c3aa0 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clang_sysroot_wrapper_common.json
@@ -61,6 +61,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -120,6 +121,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -172,6 +174,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -227,6 +230,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -283,6 +287,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -337,6 +342,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json b/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json
index d2f2271..ee27b2a 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/clangtidy.json
@@ -40,6 +40,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -77,6 +78,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -144,6 +146,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -182,6 +185,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -251,6 +255,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -292,6 +297,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -362,6 +368,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -400,6 +407,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json b/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json
index 523d3df..4ce9681 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/force_disable_werror.json
@@ -28,6 +28,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -87,6 +88,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -132,6 +134,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -195,6 +198,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -240,6 +244,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json b/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json
index f3d487e..b74adf5 100644
--- a/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json
+++ b/compiler_wrapper/testdata/cros_hardened_golden/gcc_clang_syntax.json
@@ -25,6 +25,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -106,6 +107,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -182,6 +184,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -241,6 +244,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json
index 7b63df9..cd37bf2 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/bisect.json
@@ -35,6 +35,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -104,6 +105,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -176,6 +178,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json
index 97c1cbf..07f9daf 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clang_path.json
@@ -25,6 +25,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -85,6 +86,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -145,6 +147,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -205,6 +208,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -272,6 +276,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -344,6 +349,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -411,6 +417,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -473,6 +480,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -530,6 +538,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -587,6 +596,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -644,6 +654,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -704,6 +715,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json
index 482d9f5..346e62a 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/clangtidy.json
@@ -40,6 +40,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -78,6 +79,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -146,6 +148,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -185,6 +188,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -255,6 +259,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -297,6 +302,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -368,6 +374,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -407,6 +414,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json
index 3c3411e..fddd009 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/force_disable_werror.json
@@ -28,6 +28,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -88,6 +89,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -134,6 +136,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -198,6 +201,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -244,6 +248,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json
index 38a0fa5..189878d 100644
--- a/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json
+++ b/compiler_wrapper/testdata/cros_hardened_llvmnext_golden/gcc_clang_syntax.json
@@ -25,6 +25,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -107,6 +108,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -184,6 +186,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -244,6 +247,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json
index 5adec38..117384e 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/bisect.json
@@ -34,6 +34,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -98,6 +99,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -165,6 +167,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json
index ff41cec..e5c7ab3 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clang_path.json
@@ -24,6 +24,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -77,6 +78,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -130,6 +132,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -183,6 +186,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -243,6 +247,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -309,6 +314,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -374,6 +380,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -429,6 +436,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -479,6 +487,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -529,6 +538,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -579,6 +589,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -632,6 +643,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json
index d2f2271..ee27b2a 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/clangtidy.json
@@ -40,6 +40,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -77,6 +78,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -144,6 +146,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -182,6 +185,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -251,6 +255,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -292,6 +297,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -362,6 +368,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -400,6 +407,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json
index 46a56fa..246945b 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/force_disable_werror.json
@@ -27,6 +27,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -80,6 +81,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -119,6 +121,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -176,6 +179,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -215,6 +219,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
diff --git a/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json b/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json
index 0c937f2..27fd614 100644
--- a/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json
+++ b/compiler_wrapper/testdata/cros_hardened_noccache_golden/gcc_clang_syntax.json
@@ -25,6 +25,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -101,6 +102,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -177,6 +179,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",
@@ -236,6 +239,7 @@
             "-Wno-section",
             "-static-libgcc",
             "-fuse-ld=lld",
+            "--unwindlib=libgcc",
             "-Wno-final-dtor-non-final-class",
             "-Werror=poison-system-directories",
             "-fexperimental-new-pass-manager",