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>
;;
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*)
-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");
# 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