LA32 does not support extreme code mode, change to normal code model.
libgcc/ChangeLog:
* configure: Regenerate.
* configure.ac: Use different tmake_file for LA32 and LA64.
* config/loongarch/t-crtstuff-la32: New file for LA32.
---
libgcc/config/loongarch/t-crtstuff-la32 | 5 +++++
.../config/loongarch/{t-crtstuff => t-crtstuff-la64} | 0
libgcc/configure | 12 ++++++++++++
libgcc/configure.ac | 12 ++++++++++++
4 files changed, 29 insertions(+)
create mode 100644 libgcc/config/loongarch/t-crtstuff-la32
rename libgcc/config/loongarch/{t-crtstuff => t-crtstuff-la64} (100%)
diff --git a/libgcc/config/loongarch/t-crtstuff-la32
b/libgcc/config/loongarch/t-crtstuff-la32
new file mode 100644
index 00000000000..b8c36eb66b7
--- /dev/null
+++ b/libgcc/config/loongarch/t-crtstuff-la32
@@ -0,0 +1,5 @@
+# -fasynchronous-unwind-tables is on by default for LoongArch.
+# We turn it off for crt*.o because it would make __EH_FRAME_BEGIN__ point
+# to .eh_frame data from crtbeginT.o instead of the user-defined object
+# during static linking.
+CRTSTUFF_T_CFLAGS += -fno-omit-frame-pointer -fno-asynchronous-unwind-tables
diff --git a/libgcc/config/loongarch/t-crtstuff
b/libgcc/config/loongarch/t-crtstuff-la64
similarity index 100%
rename from libgcc/config/loongarch/t-crtstuff
rename to libgcc/config/loongarch/t-crtstuff-la64
diff --git a/libgcc/configure b/libgcc/configure
index d5e80d227ff..cb572c26cdd 100755
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -5345,6 +5345,18 @@ case ${host} in
esac
+case ${host} in
+loongarch32*-*-*)
+ tmake_file="${tmake_file} loongarch/t-crtstuff-la32"
+ ;;
+esac
+
+case ${host} in
+loongarch64*-*-*)
+ tmake_file="${tmake_file} loongarch/t-crtstuff-la64"
+ ;;
+esac
+
# Check if xtensa target is configured for windowed ABI and thus needs to use
# custom unwind code.
# This is after config.host so we can augment tmake_file.
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index 65cd3c6aa1a..d25243010d6 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -518,6 +518,18 @@ case ${host} in
esac
AC_SUBST(solaris_ld_v2_maps)
+case ${host} in
+loongarch32*-*-*)
+ tmake_file="${tmake_file} loongarch/t-crtstuff-la32"
+ ;;
+esac
+
+case ${host} in
+loongarch64*-*-*)
+ tmake_file="${tmake_file} loongarch/t-crtstuff-la64"
+ ;;
+esac
+
# Check if xtensa target is configured for windowed ABI and thus needs to use
# custom unwind code.
# This is after config.host so we can augment tmake_file.
--
2.34.1