diff options
author | Costas Argyris <costas.argyris@gmail.com> | 2023-11-20 17:58:16 +0000 |
---|---|---|
committer | Jonathan Yong <10walls@gmail.com> | 2023-11-23 00:48:37 +0000 |
commit | 4f1ebd54380e16927cd0085be939165870354eac (patch) | |
tree | 5d3ae49b6ed65957000b72f22d4c3bf36fc4e745 /gcc | |
parent | e935151bad1c2a02dc6a31fce3cc21b17d616243 (diff) | |
download | gcc-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.host | 23 | ||||
-rwxr-xr-x | gcc/configure | 27 | ||||
-rw-r--r-- | gcc/configure.ac | 17 |
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 # -------------------------------------------------------- |