mingw: Support building with older gcc versions
Checks
Commit Message
This is proposed to fix PR109460 where an older version of
gcc (7.3) was used to build for windows (mingw) host.
Comments
On 4/12/23 13:39, Costas Argyris wrote:
> This is proposed to fix PR109460 where an older version of
> gcc (7.3) was used to build for windows (mingw) host.
>
Thanks, accepted and pushed to master branch.
From e5b608072f80a83cca65e88bb75ecc62ab0bbb87 Mon Sep 17 00:00:00 2001
From: Costas Argyris <costas.argyris@gmail.com>
Date: Wed, 12 Apr 2023 08:48:18 +0100
Subject: [PATCH] mingw: Support building with older gcc versions
The $@ argument to the compiler is causing
only a warning in some gcc versions but an
error in others. In any case, $@ was never
necessary so remove it completely, just like
the rules in x-mingw32 where the object file
gets named after the source file.
This fixes both warnings and errors about
sym-mingw32.o appearing in the command line
unnecessarily.
The -nostdlib flag is required along with -r
for older gcc versions that don't apply it
automatically with -r, resulting in main
functions erroneously entering a partial link.
---
gcc/config/i386/x-mingw32-utf8 | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
@@ -34,7 +34,7 @@ utf8rc-mingw32.o : $(srcdir)/config/i386/utf8-mingw32.rc \
# Create an object file that just exports the global symbol
# HOST_EXTRA_OBJS_SYMBOL
sym-mingw32.o : $(srcdir)/config/i386/sym-mingw32.cc
- $(COMPILER) -c $< $@
+ $(COMPILER) -c $<
# Combine the two object files into one which has both the
# compiled utf8 resource and the HOST_EXTRA_OBJS_SYMBOL symbol.
@@ -44,8 +44,10 @@ sym-mingw32.o : $(srcdir)/config/i386/sym-mingw32.cc
# If nothing references it into libbackend.a, it will not
# get linked into the compiler proper eventually.
# Therefore we need to request the symbol at compiler link time.
+# -nostdlib is required for supporting old gcc versions that
+# don't apply it automatically with -r.
utf8-mingw32.o : utf8rc-mingw32.o sym-mingw32.o
- $(COMPILER) -r utf8rc-mingw32.o sym-mingw32.o -o $@
+ $(COMPILER) -r -nostdlib utf8rc-mingw32.o sym-mingw32.o -o $@
# Force compilers to link against the utf8 resource by
# requiring the symbol to be defined.
--
2.30.2