I forgot to update the relevant comments with the previous patch. This is a comment-only patch that brings them up-to-date.
On Tue, 28 Mar 2023 at 09:05, Jonathan Yong <10wa...@gmail.com> wrote: > On 3/27/23 17:17, Costas Argyris wrote: > > The patch attached to this email extends the UTF-8 support of the > > driver and compiler processes to the 32-bit mingw host. Initially, > > only the 64-bit host got it. > > > > About the changes in sym-mingw32.cc: > > > > Even though the 64-bit host was building fine with the symbol being > > simply declared as a char, the 32-bit host was failing to find the > > symbol at link time because a leading underscore was being added > > to it by the compiler. The asm keyword ensures that the symbol > > always appears with that exact name, such that the linker will > > always find it. > > > > The patch also includes Jacek's flag about adding the .manifest file > > as a prerequisite for the object file (this was actually done from before > > but an earlier version of the patch was pushed so it was missed). > > > > Tested building from master for both 32 and 64-bit mingw hosts using: > > > > 1) cross-compilation from a Debian machine using configure + make > > 2) native-compilation from a Windows machine using MSYS2 > > > Thanks, approved and pushed to master branch. > >
From 87da0323ec5b08d44f17713d8d4e19664d7a3aa6 Mon Sep 17 00:00:00 2001 From: Costas Argyris <costas.argy...@gmail.com> Date: Tue, 28 Mar 2023 11:29:06 +0100 Subject: [PATCH] mingw: Fix comments in x-mingw32-utf8 This is a comment-only change that I should have done with the previous commit (304c7d44a) but forgot to do so. --- gcc/config/i386/x-mingw32-utf8 | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/gcc/config/i386/x-mingw32-utf8 b/gcc/config/i386/x-mingw32-utf8 index cf5c3db3d8b..2783dd259a6 100644 --- a/gcc/config/i386/x-mingw32-utf8 +++ b/gcc/config/i386/x-mingw32-utf8 @@ -17,15 +17,15 @@ # <http://www.gnu.org/licenses/>. # # -# For 64-bit Windows host, embed a manifest that sets the active +# For mingw Windows hosts, embed a manifest that sets the active # code page of the driver and compiler proper processes to utf8. -# This only has an effect on Windows version 1903 (May 2019 Update) -# or later. +# This only has an effect when gcc is hosted on Windows version +# 1903 (May 2019 Update) or later. # The resource .rc file references the utf8 .manifest file. # Compile it into an object file using windres. # The resulting .o file gets added to host_extra_gcc_objs in -# config.host for x86_64-*-mingw* host and gets linked into +# config.host for mingw hosts 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 \ $(srcdir)/config/i386/winnt-utf8.manifest @@ -39,7 +39,7 @@ sym-mingw32.o : $(srcdir)/config/i386/sym-mingw32.cc # Combine the two object files into one which has both the # compiled utf8 resource and the HOST_EXTRA_OBJS_SYMBOL symbol. # The resulting .o file gets added to host_extra_objs in -# config.host for x86_64-*-mingw* host and gets archived into +# config.host for mingw hosts and gets archived into # libbackend.a which gets linked into the compiler proper. # If nothing references it into libbackend.a, it will not # get linked into the compiler proper eventually. @@ -54,4 +54,8 @@ utf8-mingw32.o : utf8rc-mingw32.o sym-mingw32.o # This is expected because the resource object is not supposed # to have any symbols, it just has to be linked into the # executable in order for Windows to use the utf8 code page. +# Some build environments are passing these flags to other +# programs as well, so make the symbol definition optional +# such that these programs don't fail to build when they +# don't find it. $(COMPILERS) : override LDFLAGS += -Wl,--undefined=HOST_EXTRA_OBJS_SYMBOL -- 2.30.2