On 2/25/26 6:07 PM, Saurabh Jha via Sourceware Forge wrote:
From: Saurabh Jha <[email protected]>
Fixes regression in C++ support without exception handling by:
1. Creating Makefile fragments, t-seh-eh and t-sjlj-eh, that configures
C++ exception handling. This is sufficient to fix the regression
even if the exception handling itself is not implemented yet.
2. Adding the new Makefile fragments, t-sjlj-eh and t-seh-eh, in
libgcc/config.host.
With these changes, the compiler can now be built with C and C++.
This patch doesn't add support for Structured Exception Handling (SEH)
which will be done separately.
libgcc/ChangeLog:
* config.host: Set tmake_eh_file for aarch64-*-mingw*.
* config/aarch64/t-no-eh: Removed.
* config/aarch64/t-seh-eh: New file.
* config/aarch64/t-sjlj-eh: New file.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/mingw/mingw.exp: Add support for .cc files.
* gcc.target/aarch64/mingw/minimal_new_del.cc: New test.
Why not use .C extension like other C++ tests? Presumably any issues
with windows case handling would affect other tests as well.
diff --git a/libgcc/config.host b/libgcc/config.host
index 850a37b05558..d46019f363dd 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -463,7 +463,14 @@ aarch64-*-mingw*)
tmake_thr_file="mingw/t-mingw-mcfgthread"
;;
esac
- tmake_file="${tmake_file} ${cpu_type}/t-no-eh ${tmake_thr_file}"
+ # This has to match the logic for DWARF2_UNWIND_INFO in
+ # gcc/config/aarch64/cygming.h
All I see in that file is
#define DWARF2_UNWIND_INFO 0
+ if test x$ac_cv_sjlj_exceptions = xyes; then
+ tmake_eh_file="aarch64/t-sjlj-eh"
+ else
+ tmake_eh_file="aarch64/t-seh-eh"
+ fi
+ tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_thr_file}"
tmake_file="${tmake_file} t-dfprules"
tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
tmake_file="${tmake_file} ${cpu_type}/t-mingw"