On Mon, 27 Apr 2020 at 17:51, Richard Purdie <richard.purdie@linuxfoundation.org> wrote:On Mon, 2020-04-27 at 16:13 +0300, Samuli Piippo wrote:meta-mingw is using Mingw-w64 but the host triplet does not match the expected pattern. config/os/mingw32-w64 enables more features that were not working with mingw32. Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> --- meta/recipes-devtools/gcc/gcc-9.3.inc | 1 + ...nfig-os-mingw32-w64-for-mingw-builds.patch | 36 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 meta/recipes-devtools/gcc/gcc-9.3/0040-Always-use-config-os-mingw32-w64-for-mingw-builds.patch diff --git a/meta/recipes-devtools/gcc/gcc-9.3.inc b/meta/recipes-devtools/gcc/gcc-9.3.inc index b0411078d3..4c8275bf2a 100644 --- a/meta/recipes-devtools/gcc/gcc-9.3.inc +++ b/meta/recipes-devtools/gcc/gcc-9.3.inc @@ -67,6 +67,7 @@ SRC_URI = "\ file://0037-CVE-2019-14250-Check-zero-value-in-simple_object_elf.patch \ file://0038-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \ file://0039-process_alt_operands-Don-t-match-user-defined-regs-o.patch \ + file://0040-Always-use-config-os-mingw32-w64-for-mingw-builds.patch \ " S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" SRC_URI[sha256sum] = "71e197867611f6054aa1119b13a0c0abac12834765fe2d81f35ac57f84f742d1" diff --git a/meta/recipes-devtools/gcc/gcc-9.3/0040-Always-use-config-os-mingw32-w64-for-mingw-builds.patch b/meta/recipes-devtools/gcc/gcc-9.3/0040-Always-use-config-os-mingw32-w64-for-mingw-builds.patch new file mode 100644 index 0000000000..5a167f252c --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-9.3/0040-Always-use-config-os-mingw32-w64-for-mingw-builds.patch @@ -0,0 +1,36 @@ +From 052f7e5db0d793155015530b639c4e42d37eb7eb Mon Sep 17 00:00:00 2001 +From: Samuli Piippo <samuli.piippo@qt.io> +Date: Fri, 23 Aug 2019 10:10:43 +0300 +Subject: [PATCH] Always use config/os/mingw32-w64 for mingw builds + +Make sure we use the w64 version of the configs, since that's what +meta-mingw is using. + +Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> +--- + libstdc++-v3/configure.host | 12 ++---------- + 1 file changed, 2 insertions(+), 10 deletions(-) + +diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host +index 155a3cdea..adbda8784 100644 +--- a/libstdc++-v3/configure.host ++++ b/libstdc++-v3/configure.host +@@ -277,16 +277,8 @@ case "${host_os}" in + os_include_dir="os/hpux" + ;; + mingw32*) +- case "$host" in +- *-w64-*) +- os_include_dir="os/mingw32-w64" +- error_constants_dir="os/mingw32-w64" +- ;; +- *) +- os_include_dir="os/mingw32" +- error_constants_dir="os/mingw32" +- ;; +- esac ++ os_include_dir="os/mingw32-w64" ++ error_constants_dir="os/mingw32-w64" + OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)"It might make things a bit more obvious and upstreamable to just change *-w64-*) to *-w64*) if I understand correct?With meta-mingw, the host triplet is actually either i686-pokysdk-mingw32 or x86_64-pokysdk-mingw32, depending on bitness in the SDKMACHINE value.
Hmm, it does indeed look like we are not correctly setting the
host in a way it can be detected by GCC. It's a little surprising
this hasn't caused any actual problems (at least up to this
point)... is this something new to gcc 9.3, and do we have any
idea why the AB MinGW tests aren't seeing any problems?
Either way, it would probably be better to figure out a way to make the host look correct in meta-mingw if at all possible.
Your commit message is also a little confusing because the first
few times I read it, I thought we were configuring for 64-bit when
32-bit is desired, but based on the current GCC code being
replaced and the value of the host-triplets, it would seem to be
the opposite (we are getting 32-bit when 64-bit is desired).