aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorCostas Argyris <costas.argyris@gmail.com>2023-11-20 17:58:16 +0000
committerJonathan Yong <10walls@gmail.com>2023-11-23 00:48:37 +0000
commit4f1ebd54380e16927cd0085be939165870354eac (patch)
tree5d3ae49b6ed65957000b72f22d4c3bf36fc4e745 /gcc
parente935151bad1c2a02dc6a31fce3cc21b17d616243 (diff)
downloadgcc-4f1ebd54380e16927cd0085be939165870354eac.zip
gcc-4f1ebd54380e16927cd0085be939165870354eac.tar.gz
gcc-4f1ebd54380e16927cd0085be939165870354eac.tar.bz2
mingw: Exclude utf8 manifest [PR111170, PR108865]
Make the utf8 manifest optional (on by default and explicitly off with --disable-win32-utf8-manifest) in the mingw hosts. Also eliminate duplication between the 32-bit and 64-bit mingw hosts by putting them both in the same branch and special-case only the 64-bit long long setting. PR mingw/111170 PR mingw/108865 Signed-off-by: Costas Argyris <costas.argyris@gmail.com> Signed-off-by: Jonathan Yong <10walls@gmail.com> gcc/Changelog: * configure.ac: Handle new --enable-win32-utf8-manifest option. * config.host: allow win32 utf8 manifest to be disabled by user. * configure: Regenerate.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config.host23
-rwxr-xr-xgcc/configure27
-rw-r--r--gcc/configure.ac17
3 files changed, 51 insertions, 16 deletions
diff --git a/gcc/config.host b/gcc/config.host
index 5df8575..21a988e 100644
--- a/gcc/config.host
+++ b/gcc/config.host
@@ -230,24 +230,19 @@ case ${host} in
host_exeext=.exe
host_lto_plugin_soname=cyglto_plugin.dll
;;
- i[34567]86-*-mingw32*)
+ i[34567]86-*-mingw32* | x86_64-*-mingw*)
host_xm_file=i386/xm-mingw32.h
- host_xmake_file="${host_xmake_file} i386/x-mingw32 i386/x-mingw32-utf8"
+ host_xmake_file="${host_xmake_file} ${host_xmake_mingw} i386/x-mingw32"
+ host_extra_gcc_objs="${host_extra_gcc_objs} ${host_extra_gcc_objs_mingw} driver-mingw32.o"
+ host_extra_objs="${host_extra_objs} ${host_extra_objs_mingw}"
host_exeext=.exe
out_host_hook_obj=host-mingw32.o
- host_extra_objs="${host_extra_objs} utf8-mingw32.o"
- host_extra_gcc_objs="${host_extra_gcc_objs} driver-mingw32.o utf8rc-mingw32.o"
- host_lto_plugin_soname=liblto_plugin.dll
- ;;
- x86_64-*-mingw*)
- use_long_long_for_widest_fast_int=yes
- host_xm_file=i386/xm-mingw32.h
- host_xmake_file="${host_xmake_file} i386/x-mingw32 i386/x-mingw32-utf8"
- host_exeext=.exe
- out_host_hook_obj=host-mingw32.o
- host_extra_objs="${host_extra_objs} utf8-mingw32.o"
- host_extra_gcc_objs="${host_extra_gcc_objs} driver-mingw32.o utf8rc-mingw32.o"
host_lto_plugin_soname=liblto_plugin.dll
+ case ${host} in
+ x86_64-*-*)
+ use_long_long_for_widest_fast_int=yes
+ ;;
+ esac
;;
aarch64*-*-darwin*)
out_host_hook_obj="${out_host_hook_obj} host-aarch64-darwin.o"
diff --git a/gcc/configure b/gcc/configure
index cc0c3aa..fa110c5 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -1009,6 +1009,7 @@ enable_rpath
with_libiconv_prefix
with_libiconv_type
enable_sjlj_exceptions
+enable_win32_utf8_manifest
with_gcc_major_version_only
enable_nls
with_libintl_prefix
@@ -1740,6 +1741,11 @@ Optional Features:
--disable-rpath do not hardcode runtime library paths
--enable-sjlj-exceptions
arrange to use setjmp/longjmp exception handling
+ --disable-win32-utf8-manifest
+ disable embedding a utf8 manifest on mingw hosts
+ --enable-win32-utf8-manifest
+ enable embedding a utf8 manifest on mingw hosts
+ (default)
--disable-nls do not use Native Language Support
--enable-secureplt enable -msecure-plt by default for PowerPC
--enable-mingw-wildcard Set whether to expand wildcard on command-line.
@@ -13046,6 +13052,23 @@ _ACEOF
fi
+# Windows32 UTF-8 manifest support for running the driver and compiler
+# executables with the UTF-8 active code page on mingw hosts.
+# Non-mingw hosts ignore this option.
+# The shell variables this sets are picked up from the mingw branches
+# of config.host so they have to be set before it gets sourced.
+# Check whether --enable-win32-utf8-manifest was given.
+if test "${enable_win32_utf8_manifest+set}" = set; then :
+ enableval=$enable_win32_utf8_manifest;
+fi
+
+
+if test "x$enable_win32_utf8_manifest" != xno; then
+ host_xmake_mingw=i386/x-mingw32-utf8
+ host_extra_gcc_objs_mingw=utf8rc-mingw32.o
+ host_extra_objs_mingw=utf8-mingw32.o
+fi
+
# --------------------------------------------------------
# Build, host, and target specific configuration fragments
# --------------------------------------------------------
@@ -21602,7 +21625,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 21605 "configure"
+#line 21628 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -21708,7 +21731,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 21711 "configure"
+#line 21734 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
diff --git a/gcc/configure.ac b/gcc/configure.ac
index d9a3506..5679bef 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -1894,6 +1894,23 @@ if test $force_sjlj_exceptions = yes; then
[Define 0/1 to force the choice for exception handling model.])
fi
+# Windows32 UTF-8 manifest support for running the driver and compiler
+# executables with the UTF-8 active code page on mingw hosts.
+# Non-mingw hosts ignore this option.
+# The shell variables this sets are picked up from the mingw branches
+# of config.host so they have to be set before it gets sourced.
+AC_ARG_ENABLE(win32-utf8-manifest,
+[AS_HELP_STRING([--disable-win32-utf8-manifest],
+ [disable embedding a utf8 manifest on mingw hosts])
+AS_HELP_STRING([--enable-win32-utf8-manifest],
+ [enable embedding a utf8 manifest on mingw hosts (default)])],,)
+
+if test "x$enable_win32_utf8_manifest" != xno; then
+ host_xmake_mingw=i386/x-mingw32-utf8
+ host_extra_gcc_objs_mingw=utf8rc-mingw32.o
+ host_extra_objs_mingw=utf8-mingw32.o
+fi
+
# --------------------------------------------------------
# Build, host, and target specific configuration fragments
# --------------------------------------------------------