On Mon, 27 Apr 2020 at 23:20, Joshua Watt <[email protected]> wrote: > > > On 4/27/20 12:35 PM, Samuli Piippo wrote: > > On Mon, 27 Apr 2020 at 17:51, Richard Purdie > <[email protected]> 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 <[email protected]> > --- > 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 <[email protected]> > +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 <[email protected]> > +--- > + 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).
It's not actually the bitness that GCC is looking for here but the version of the MinGW. The MingGW-w64 is a fork of the original MinGW and can be used for both 32- and 64-bit builds. With the os/mingw32 config, GCC is using subset of the features that are available in os/mingw32-w64, so builds still work although perhaps not always optimally. I don't see clear way to change the host value in meta-mingw without breaking other layers and recipes. Only part that could be changed is the -mingw32 part (HOST_OS), but recipes that do mingw specific things already rely on that for the overrides.
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#137558): https://lists.openembedded.org/g/openembedded-core/message/137558 Mute This Topic: https://lists.openembedded.org/mt/73303435/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
