Skip to content
Snippets Groups Projects
Unverified Commit 8da432fe authored by Stephen Kitt's avatar Stephen Kitt
Browse files

Switch to Dwarf2 exception handling

Closes: #540782
parent 3bd7d45a
No related branches found
No related tags found
No related merge requests found
gcc-mingw-w64 (24) UNRELEASED; urgency=medium
* This release of gcc-mingw-w64 changes the 32-bit exception handling
mechanism from SJLJ to Dwarf2, to match MSYS2, Fedora, and other
toolchains, and to allow the Rust toolchain to provide 32-bit
cross-compilers.
This will require rebuilding all artifacts built with previous
releases of the toolchain. Shared binaries will need to be shipped
with the dw2 DLL instead of the sjlj DLL.
-- Stephen Kitt <skitt@debian.org> Sat, 21 Nov 2020 14:55:37 +0100
gcc-mingw-w64 (24) UNRELEASED; urgency=medium
* Following MSYS2 and Fedora’s example (among others), switch from SJLJ
exception handling to Dwarf2; this will help the Rust toolchain in
particular. Closes: #540782.
-- Stephen Kitt <skitt@debian.org> Thu, 19 Nov 2020 09:00:39 +0100
gcc-mingw-w64 (23) unstable; urgency=medium
* Enable gnat on architectures where gnat-10 is available.
......
......@@ -24,7 +24,9 @@
export NO_PKG_MANGLE=1
target_version := 10
targets := i686-w64-mingw32 x86_64-w64-mingw32
target32 := i686-w64-mingw32
target64 := x86_64-w64-mingw32
targets := $(target32) $(target64)
threads := posix win32
gnat_arches := alpha amd64 arm64 armel armhf hppa i386 mips64el mipsel ppc64 ppc64el riscv64 s390x sh4 sparc64 x32
......@@ -294,6 +296,7 @@ mingw-w64-patch-stamp: $(patch_stamp)
xargs -0r touch --no-dereference --date='@$(SOURCE_DATE_EPOCH)'
touch $@
# 32- and 64-bit targets are split: 32-bit uses Dwarf2, 64-bit the default SEH
configure: configure-stamp
configure-stamp: debian/control mingw-w64-patch-stamp
dh_testdir
......@@ -302,23 +305,31 @@ configure-stamp: debian/control mingw-w64-patch-stamp
echo ======================================================================
ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
set -e; \
for target in $(targets); do \
for threads in $(threads); do \
echo $(base_version)-$$threads > $(upstream_dir)/gcc/BASE-VER && \
dh_auto_configure \
-B$(build_dir)/$$target-$$threads \
-D$(upstream_dir) -- \
$(CONFFLAGS); \
done; \
done
else
set -e; \
for target in $(targets); do \
for threads in $(threads); do \
echo $(base_version)-$$threads > $(upstream_dir)/gcc/BASE-VER; \
target=$(target32); \
dh_auto_configure \
-B$(build_dir)/$(target32)-$$threads \
-D$(upstream_dir) -- \
$(CONFFLAGS) --disable-sjlj-exceptions --with-dwarf2; \
target=$(target64); \
dh_auto_configure \
-B$(build_dir)/$$target \
-B$(build_dir)/$(target64)-$$threads \
-D$(upstream_dir) -- \
$(CONFFLAGS); \
done
else
set -e; \
target=$(target32); \
dh_auto_configure \
-B$(build_dir)/$(target32) \
-D$(upstream_dir) -- \
$(CONFFLAGS) --disable-sjlj-exceptions --with-dwarf2; \
target=$(target64); \
dh_auto_configure \
-B$(build_dir)/$(target64) \
-D$(upstream_dir) -- \
$(CONFFLAGS)
endif
touch $@
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment