When building mingw crosscompilers by instructions at [1] crossdev fails to build both i686-w64-mingw32 and x86_64-w64-mingw32 targets. [1] https://wiki.gentoo.org/wiki/DXVK Reproducible: Always Steps to Reproduce: 1. emerge crossdev 2. crossdev --stable --target i686-w64-mingw32 3. crossdev --stable --target x86_64-w64-mingw32 Actual Results: crossdev fails both on steps 2 and 3. Logs indicate that it failed to emerge packages 'cross-i686-w64-mingw32/mingw64-runtime' and 'cross-x86_64-w64-mingw32/mingw64-runtime' due to keywords. Expected Results: Successful emerge of i686-w64-mingw32 and x86_64-w64-mingw32 crosscompilers. Stable x86_64-w64-mingw32 target looks affected as well. If target is unstable, it should work. Following 2 files are generated by crossdev: # cat /etc/portage/package.accept_keywords/cross-i686-w64-mingw32 cross-i686-w64-mingw32/binutils x86 -amd64 -~amd64 cross-i686-w64-mingw32/gcc x86 -amd64 -~amd64 cross-i686-w64-mingw32/mingw64-runtime x86 -amd64 -~amd64 cross-i686-w64-mingw32/gdb x86 ~x86 -amd64 -~amd64 # cat /etc/portage/package.accept_keywords/cross-x86_64-w64-mingw32 cross-x86_64-w64-mingw32/binutils amd64 cross-x86_64-w64-mingw32/gcc amd64 cross-x86_64-w64-mingw32/mingw64-runtime amd64 cross-x86_64-w64-mingw32/gdb amd64 ~amd64 I think ~x86 keyword should be added by crossdev for stable i686-w64-mingw32 target's cross-i686-w64-mingw32/mingw64-runtime package, and ~amd64 keyword should be added by crossdev for stable x86_64-w64-mingw32 target's cross-x86_64-w64-mingw32/mingw64-runtime package. Adding these keywords manually into separate file fixes this issue for me. # LC_ALL=C eix mingw64-runtime [I] cross-i686-w64-mingw32/mingw64-runtime [1] Available versions: (~)6.0.0-r3^s (~)7.0.0^s (~)7.0.0-r1^s {headers-only idl libraries +secure-api tools} Installed versions: 7.0.0-r1^s(19:31:49 07/20/20)(-headers-only -idl -libraries -tools) Homepage: http://mingw-w64.sourceforge.net/ Description: Free Win64 runtime and import library definitions [I] cross-x86_64-w64-mingw32/mingw64-runtime [1] Available versions: (~)6.0.0-r3^s (~)7.0.0^s (~)7.0.0-r1^s {headers-only idl libraries +secure-api tools} Installed versions: 7.0.0-r1^s(20:09:49 07/20/20)(-headers-only -idl -libraries -tools) Homepage: http://mingw-w64.sourceforge.net/ Description: Free Win64 runtime and import library definitions * dev-util/mingw64-runtime Available versions: [M]~6.0.0-r3^s [M]~7.0.0^s [M]~7.0.0-r1^s {headers-only idl libraries +secure-api tools} Homepage: http://mingw-w64.sourceforge.net/ Description: Free Win64 runtime and import library definitions [1] "crossdev" /var/db/repos/localrepo-crossdev System information: # emerge --info crossdev Portage 2.3.103 (python 3.7.8-final-0, default/linux/amd64/17.1, gcc-9.3.0, glibc-2.30-r8, 5.4.48-gentoo-x86_64 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-5.4.48-gentoo-x86_64-x86_64-Intel-R-_Core-TM-_i5-6500_CPU_@_3.20GHz-with-gentoo-2.6 KiB Mem: 4030728 total, 1137876 free KiB Swap: 0 total, 0 free Timestamp of repository gentoo: Mon, 20 Jul 2020 07:00:01 +0000 Head commit of repository gentoo: 90676fe69d185198af32d2cb938d888fc4b936c1 sh bash 5.0_p17 ld GNU ld (Gentoo 2.33.1 p2) 2.33.1 app-shells/bash: 5.0_p17::gentoo dev-lang/perl: 5.30.3::gentoo dev-lang/python: 2.7.18-r1::gentoo, 3.7.8-r2::gentoo, 3.8.4-r1::gentoo dev-util/cmake: 3.16.5::gentoo sys-apps/baselayout: 2.6-r1::gentoo sys-apps/openrc: 0.42.1::gentoo sys-apps/sandbox: 2.18::gentoo sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.16.1-r1::gentoo sys-devel/binutils: 2.33.1-r1::gentoo sys-devel/gcc: 9.3.0-r1::gentoo sys-devel/gcc-config: 2.3::gentoo sys-devel/libtool: 2.4.6-r6::gentoo sys-devel/make: 4.2.1-r4::gentoo sys-kernel/linux-headers: 5.4-r1::gentoo (virtual/os-headers) sys-libs/glibc: 2.30-r8::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 sync-rsync-verify-max-age: 24 sync-rsync-verify-metamanifest: yes sync-rsync-verify-jobs: 1 sync-rsync-extra-opts: crossdev location: /var/db/repos/localrepo-crossdev masters: gentoo priority: 10 dt-overlay-public location: /var/lib/layman/dt-overlay-public masters: gentoo priority: 50 tastytea location: /var/lib/layman/tastytea masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="@FREE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -pipe" DISTDIR="/var/cache/distfiles" ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j3" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/var/tmp" USE="X acl amd64 berkdb bzip2 cli crypt dri elogind fortran gdbm iconv ipv6 libtirpc multilib ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl tcpd unicode xattr zlib" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-2 php7-3" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" RUBY_TARGETS="ruby25" USERLAND="GNU" VIDEO_CARDS="vesa vga virtualbox" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CC, CPPFLAGS, CTARGET, CXX, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS ================================================================= Package Settings ================================================================= sys-devel/crossdev-20200131::gentoo was built with the following: USE="" ABI_X86="(64)"
(In reply to i.Dark_Templar from comment #0) > Logs indicate [...] Please attach those build logs.
Created attachment 651694 [details] cross-x86_64-w64-mingw32-info.log /var/log/portage/cross-x86_64-w64-mingw32-info.log generated by command 'crossdev --stable --target x86_64-w64-mingw32'.
Created attachment 651696 [details] cross-x86_64-w64-mingw32-mingw64-runtime-headers.log uncompressed file /var/log/portage/cross-x86_64-w64-mingw32-mingw64-runtime-headers.log.xz generated by command 'crossdev --stable --target x86_64-w64-mingw32'.
Created attachment 651700 [details] cross-i686-w64-mingw32-info.log /var/log/portage/cross-i686-w64-mingw32-info.log generated by command 'crossdev --stable --target i686-w64-mingw32'.
Created attachment 651702 [details] cross-i686-w64-mingw32-mingw64-runtime-headers.log uncompressed file /var/log/portage/cross-i686-w64-mingw32-mingw64-runtime-headers.log.xz generated by command 'crossdev --stable --target i686-w64-mingw32'.
Yeah, we dropped mingw64-runtime stable keywords a while ago. I'd rather not restore those. One option would be to tweak crossdev to always add mingw64-runtime into package.accept-keywords. Another is to always forbid --stable variant of mingw toolchains in crossdev itself.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=e17747e23e4b38b545658687b4ca2553717ac02a commit e17747e23e4b38b545658687b4ca2553717ac02a Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-08-01 19:49:34 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-08-01 19:49:34 +0000 crossdev: default to latest mingw64-runtime even for stable toolchains. ::gentoo does not have stable keywords for mingw64-runtime for a while. Let's default to 'latest' to make standard use case to just work.. Reported-by: i.Dark_Templar Bug: https://bugs.gentoo.org/733346 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> crossdev | 8 ++++++++ 1 file changed, 8 insertions(+)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a3b8c3bdaef90ef089563b299a014ee57a12aca commit 6a3b8c3bdaef90ef089563b299a014ee57a12aca Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2020-08-01 19:52:45 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2020-08-01 19:52:53 +0000 sys-devel/crossdev: bump up to 2020801 Reported-by: i.Dark_Templar Closes: https://bugs.gentoo.org/733346 Package-Manager: Portage-3.0.1, Repoman-2.3.23 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> sys-devel/crossdev/Manifest | 1 + sys-devel/crossdev/crossdev-20200801.ebuild | 36 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+)
(In reply to Sergei Trofimovich from comment #6) > Yeah, we dropped mingw64-runtime stable keywords a while ago. I'd rather not > restore those. > > One option would be to tweak crossdev to always add mingw64-runtime into > package.accept-keywords. Another is to always forbid --stable variant of > mingw toolchains in crossdev itself. Or you could, you know, instead of further breaking crossdev by disabling some of it's functionality (i.e. --stable option for mingw targets), actually fix crossdev by making crossdev in such cases also add testing keywords for mingw64-runtime packages. I added it manually to my configuration and it works perfectly, I assure you. But I guess that might be too hard.
(In reply to i.Dark_Templar from comment #9) > (In reply to Sergei Trofimovich from comment #6) > > Yeah, we dropped mingw64-runtime stable keywords a while ago. I'd rather not > > restore those. > > > > One option would be to tweak crossdev to always add mingw64-runtime into > > package.accept-keywords. Another is to always forbid --stable variant of > > mingw toolchains in crossdev itself. > > Or you could, you know, instead of further breaking crossdev by disabling > some of it's functionality (i.e. --stable option for mingw targets), > actually fix crossdev by making crossdev in such cases also add testing > keywords for mingw64-runtime packages. I don't see how your suggestion differs from first option.
(In reply to Sergei Trofimovich from comment #10) > I don't see how your suggestion differs from first option. My suggestion involves keywording testing mingw64-runtime and stable gcc and binutils. Your change forces to use testing gcc and binutils too even when stable packages were requested and are usually available.
(In reply to i.Dark_Templar from comment #11) > (In reply to Sergei Trofimovich from comment #10) > > I don't see how your suggestion differs from first option. > > My suggestion involves keywording testing mingw64-runtime and stable gcc and > binutils. Your change forces to use testing gcc and binutils too even when > stable packages were requested and are usually available. I'm sorry. I looked into commit and thought that "[latest]" was used for all involved packages. I guess it's used only for 'mingw64-runtime' and I misread commit. I'm sorry for my little rant.