]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Extend UTF-8 support to the 32-bit mingw host.
authorCostas Argyris <costas.argyris@gmail.com>
Sun, 26 Mar 2023 10:32:13 +0000 (11:32 +0100)
committerJonathan Yong <10walls@gmail.com>
Tue, 28 Mar 2023 08:04:09 +0000 (08:04 +0000)
Prevent any name mangling in HOST_EXTRA_OBJS_SYMBOL
such that the linker always finds it by that name.

Also add the .manifest file as an explicit
dependency in the make rule such that the
object gets re-built if it changes.

gcc/ChangeLog:

* config.host: Pull in i386/x-mingw32-utf8 Makefile
fragment and reference utf8rc-mingw32.o explicitly
for mingw hosts.
* config/i386/sym-mingw32.cc: prevent name mangling of
stub symbol.
* config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
depend on manifest file explicitly.

Signed-off-by: Jonathan Yong <10walls@gmail.com>
gcc/config.host
gcc/config/i386/sym-mingw32.cc
gcc/config/i386/x-mingw32-utf8

index 4abb32ad73d3af2f332e0adc115c8d439a264ebb..5df85752ed42cf62f45f82862f2a921a5825f714 100644 (file)
@@ -232,10 +232,11 @@ case ${host} in
     ;;
   i[34567]86-*-mingw32*)
     host_xm_file=i386/xm-mingw32.h
-    host_xmake_file="${host_xmake_file} i386/x-mingw32"
+    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_gcc_objs="${host_extra_gcc_objs} driver-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*)
index f369698abc4155b10999900dd5186649c3a87ca0..2f8dee6c1ecd03f7b3311cdbb33b84d2e306b71b 100644 (file)
@@ -1 +1,3 @@
-char HOST_EXTRA_OBJS_SYMBOL;
+/* Prevent any name mangling to make sure that the linker
+   will always find the symbol. */
+char HOST_EXTRA_OBJS_SYMBOL asm ("HOST_EXTRA_OBJS_SYMBOL");
index 9de963d7965ef1fc6158109d85b601513392eed6..cf5c3db3d8bca97c5fffda01797ccef6074d7b81 100644 (file)
@@ -27,7 +27,8 @@
 # The resulting .o file gets added to host_extra_gcc_objs in
 # config.host for x86_64-*-mingw* host and gets linked into
 # the driver as a .o file, so it's lack of symbols is OK.
-utf8rc-mingw32.o : $(srcdir)/config/i386/utf8-mingw32.rc
+utf8rc-mingw32.o : $(srcdir)/config/i386/utf8-mingw32.rc \
+  $(srcdir)/config/i386/winnt-utf8.manifest
        $(WINDRES) $< $@
 
 # Create an object file that just exports the global symbol