Created attachment 471908 [details] gcc-build-logs.tar.bz2 [ebuild NS *] sys-devel/gcc-7.1.0:7.1.0::gentoo [6.3.0:6.3.0::gentoo] USE="cxx fortran mpx (multilib) nls nptl objc objc++ objc-gc openmp pch pie sanitize ssp vtv (-altivec) (-awt) -cilk -debug -doc (-fixed-point) (-gcj) -go -graphite (-hardened) (-jit) (-libssp) -regression-test -vanilla" 0 KiB From the build.log: checking whether ln -s works... yes checking the maximum length of command line arguments... configure: error: system bdw-gc required but not found # emerge --info Portage 2.3.5 (python 3.4.6-final-0, default/linux/amd64/13.0, gcc-6.3.0, glibc-2.24-r1, 4.11.0-gentoo x86_64) ================================================================= System uname: Linux-4.11.0-gentoo-x86_64-Intel-R-_Core-TM-_i5-6500_CPU_@_3.20GHz-with-gentoo-2.3 KiB Mem: 16152684 total, 2839376 free KiB Swap: 12337144 total, 12322296 free Timestamp of repository gentoo: Sun, 07 May 2017 22:00:01 +0000 sh bash 4.4_p12 ld GNU ld (Gentoo 2.27 p1.0) 2.27 ccache version 3.3.4 [disabled] app-shells/bash: 4.4_p12::gentoo dev-java/java-config: 2.2.0-r3::gentoo dev-lang/perl: 5.24.1-r1::gentoo dev-lang/python: 2.7.13::gentoo, 3.4.6::gentoo dev-util/ccache: 3.3.4::gentoo dev-util/cmake: 3.8.1::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.3::gentoo sys-apps/openrc: 0.25::gentoo sys-apps/sandbox: 2.10-r4::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r3::gentoo sys-devel/automake: 1.11.6-r2::gentoo, 1.15-r2::gentoo sys-devel/binutils: 2.27::gentoo sys-devel/gcc: 6.3.0::gentoo sys-devel/gcc-config: 1.8-r1::gentoo sys-devel/libtool: 2.4.6-r4::gentoo sys-devel/make: 4.2.1-r1::gentoo sys-kernel/linux-headers: 4.10::gentoo (virtual/os-headers) sys-libs/glibc: 2.24-r1::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-uri: rsync://rsync.gentoo.org/gentoo-portage priority: -1000 x-portage location: /usr/local/portage masters: gentoo priority: 0 mv location: /var/lib/layman/mv sync-type: laymansync sync-uri: git://anongit.gentoo.org/user/mv.git masters: gentoo priority: 50 rust location: /var/lib/layman/rust sync-type: laymansync sync-uri: git://github.com/gentoo/gentoo-rust.git masters: gentoo priority: 50 steam-overlay location: /var/lib/layman/steam-overlay sync-type: laymansync sync-uri: git://github.com/anyc/steam-overlay.git masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA Intel-SDP Oracle-BCLA-JavaSE Oracle-EADLA" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe -fomit-frame-pointer -flto -fuse-linker-plugin" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.3/conf /var/spool/munin-async/.ssh" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.1/ext-active/ /etc/php/cgi-php7.1/ext-active/ /etc/php/cli-php7.1/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=native -pipe -fomit-frame-pointer -flto -fuse-linker-plugin" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--jobs=4 --load-average=4.5" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs candy cgroup clean-logs collision-protect config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync network-sandbox news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync webrsync-gpg xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="en_US.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -flto" MAKEOPTS="-j5" PKGDIR="/usr/portage/packages" 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 a52 aac aacs acl acpi aiglx alac alsa amd64 amr amrnb amrwb animation apache2 apng artworkextra asf aspnet2 asyncns authdaemond avahi avi bash-completion bcmath berkdb bitmap-fonts bluetooth bluray bmp bonjour bzip2 cairo caps cdda cddb cdparanoia cdr celt chm clang cli cracklib crypt cryptsetup css cups curl cxx daap dbus device-mapper dga dhclient dirac divx4linux dlloader dns dnssec dovecot-sasl dpms dri dri3 dts dv dvb dvd dvdr dvdread egl enca encode exif ext4 faac fam fame fat fbcondecor fbsplash ffmpeg fftw firefox flac fontconfig foomaticdb fortran freetype ftp fuse gaim gd gdbm geoip gif gimpprint glamor gles gles1 gles2 glib glibc-omitfp glitz glut gost gphoto2 gsm gstreamer gstreamer10 gtk gtk2 gudev hardenedphp hbci howl howl-compat http2 https hwdb iconv icu idn imagemagick imap imlib innodb ipv6 java java5 javafx jbig jce joystick jpeg jpeg2k junit kdbus kdehiddenvisibility kvm lapack lcms libfame libkms libnotify librtmp libusb lirc live llvm lm_sensors lvm lz4 lzma lzo mad maildir mdadm mdnsresponder-compat metalink mjpeg mmap mms mng modules motif mozilla mozsvg mp3 mpeg mpeg2 mplayer mpx multilib musepack mysql mythtv ncurses nemesi network networkmanager nls nptl nptlonly ntfs offensive ofx ogg oggvorbis openal opencl openexr opengl openmp openvg opus pam pango pcre pcre16 pcre32 pdf pdflib perl phonon pic pie plymouth png pnp policykit postgres ppd ppds pulseaudio python qt qt3 qt3support qt4 quicktime quvi rar readline resolvconf rtc rtmp samba schroedinger screensaver sctp sdl seccomp session sftp sharedmem shout smp sna sni sox speex spell sqlite ssh ssl steamruntime suspend2 svg systemd theora threads tiff tls transcode truetype truetype-fonts type-fonts udev udisks unicode unzip upnp ups usb user-session uxa v4l2 vaapi vcd videos virgl vorbis vpx vulkan wayland webdav webp webservices wifi win32codecs wmf wv x264 x265 xanim xattr xcb xcomposite xdg xinerama xml xml2 xpm xprint xrandr xv xvfb xvid xvmc zeroconf zip zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="actions alias auth_basic authn_core authz_core cache_disk authn_alias authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dconf deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias auth_digest proxy proxy_ajp proxy_connect proxy_http proxy_fcgi reqtimeout cgi cgid unixd socache_shmcb http2 proxy_html" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" CURL_SSL="openssl" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64 pc" INPUT_DEVICES="evdev joystick keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en" LIRC_DEVICES="userspace" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-0" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" QEMU_SOFTMMU_TARGETS="arm i386 x86_64" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby22" USERLAND="GNU" VIDEO_CARDS="intel i965" 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" USE_PYTHON="2.7 3.4" Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Actually, I had boehm-gc-7.6.0 installed.
(In reply to Michał Górny from comment #1) > Actually, I had boehm-gc-7.6.0 installed. That's surprising because above dependency is exactly what is missing. boehm-gc got debundled from gcc-7.1.0 and it now expects an external system copy. Installing boehm-gc prior to gcc installation fixes the configure error in the last stage.
Maybe it's another multilib-strict failure? i.e. try it without the lib->lib64 symlink.
commit 6f040a46b71eb17a7d7168c73825020b34fa691a Author: Matthias Maier <tamiko@gentoo.org> Date: Tue May 9 11:54:59 2017 -0500 toolchain.eclass: add DEPEND to dev-libs/boehm-gc, bug #617788 sys-devel/gcc-7.1.0 requires external dev-libs/boehm-gc, the internal copy got removed [1]. [1] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=242985
commit a0dc3491f9924262a600533744150277899fb521 Author: David Seifert <soap@gentoo.org> Date: Wed May 10 22:41:03 2017 +0200 dev-libs/boehm-gc: Make multilib compatible Bug: https://bugs.gentoo.org/show_bug.cgi?id=617788 Package-Manager: Portage-2.3.5, Repoman-2.3.2 commit 05eb2b2a092fbc693def470d7fc448aa784bc7e5 Author: David Seifert <soap@gentoo.org> Date: Wed May 10 22:24:45 2017 +0200 dev-libs/libatomic_ops: Make multilib compatible Bug: https://bugs.gentoo.org/show_bug.cgi?id=617788 Package-Manager: Portage-2.3.5, Repoman-2.3.2
Reminder: toolchain.eclass somehow needs to DEPEND on dev-libs/boehm-gc[${MULTILIB_USEDEP}] if USE=obj-gc and multilib are enabled. The short-term hack would be to check if via 'has_version' calls, which is ugly, and the long-term hack would be putting it in a proper multilib? obj-gc? () clause in DEPEND. Given the implicit nature of how toolchain works, the latter could require a significant reengineering of the toolchain eclass.
...or just replacing the implicit with explicit. For the meantime, I think it would be reasonable to enable abi_x86_* by default in appropriate profiles for those packages.
It might be worthwhile to finally clean up toolchain.eclass (with EAPI 5, or 6 support only) for gcc-7 and introduce proper multilib support.
The multiarch / boehm-gc / gcc objc-gc issue is starting to cause issues for users since gcc 7.2 has been unmasked. See https://bugs.gentoo.org/638666
*** Bug 638666 has been marked as a duplicate of this bug. ***
*** Bug 646416 has been marked as a duplicate of this bug. ***
*** Bug 646052 has been marked as a duplicate of this bug. ***
*** Bug 652890 has been marked as a duplicate of this bug. ***
Confirmed this can be fixed by setting ABI_X86 to include both 32 and 64 for boehm-gc. So changing the dependency to include [abi_x86_32,abi_x86_64] (or appropriate for the given target) would probably be the solution.
*** Bug 659048 has been marked as a duplicate of this bug. ***
*** Bug 663286 has been marked as a duplicate of this bug. ***
*** Bug 668758 has been marked as a duplicate of this bug. ***
same issue on gcc-8.2.2[multilib,obj-gc] will provide info on demand if needed.
Same for 'stable' sys-devel/gcc-8.3.0-r1. And for unstable sys-devel/gcc-9.2.0.
I ran into this problem while moving away from an indiscriminate USE=abi_x86_32 in make.conf to more refined package.use settings. Here are some things I discovered: (1) Rebuilding dev-libs/boehm-gc-8.0.4 after subtracting abi_x86_32 nevertheless results in the creation of 32 bit libraries /lib/libgc.so.1.4.3 and /lib/libgc.so.1. However, a /lib/libgc.so symlink is NOT created. Also, entries in preserved_libs_registry were created for the (re)installed 32-bit libraries despite the fact that library versions were not changed. (2) Manually creating the /lib/libgc.so symlink allowed all GCC packages > 7 to recompile during an emerge @preserved-rebuild but that did NOT clear preserved_libs_registry. However, reinstalling dev-libs/boehm-gc-8.0.4[abi_x86_32] did end up clearing preserved_libs_registry without the need for another emerge @preserved-rebuild. (3) Not related to this bug but possibly of interest to package maintainers: according to https://www.hboehm.info/gc/, "starting with 8.0, libatomic_ops is only required if the compiler does not understand C atomics". Perhaps the unconditonal dependency on dev-libs/libatomic_ops in dev-libs/boehm-gc should be changed to a conditional dependency? I am guessing that this bug is not affecting too many users.
*** Bug 725860 has been marked as a duplicate of this bug. ***
*** Bug 789645 has been marked as a duplicate of this bug. ***
*** Bug 789801 has been marked as a duplicate of this bug. ***
*** Bug 798999 has been marked as a duplicate of this bug. ***
*** Bug 801583 has been marked as a duplicate of this bug. ***
Another user reproduced this today on IRC. should be add a objc-gc? ( dev-libs/boehm-gc[abi_x86_64] ) etc
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a96b82a76b8d7fb824d4a7b47f6b70c1808936c commit 1a96b82a76b8d7fb824d4a7b47f6b70c1808936c Author: Michał Górny <mgorny@gentoo.org> AuthorDate: 2023-10-06 15:49:32 +0000 Commit: Sam James <sam@gentoo.org> CommitDate: 2023-11-26 23:36:10 +0000 profiles/arch: Force multilib flags on sys-devel/gcc deps Force enabling respective abi_* flags on sys-devel/gcc dependencies in profiles where multiple MULTILIB_ABIS are used by default. This prevents sys-devel/gcc build from failing late in the build with cryptic error messages when USE=multilib (that is forced on) is used along with USE=objc. Bug: https://bugs.gentoo.org/617788 Signed-off-by: Michał Górny <mgorny@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/33216 Signed-off-by: Sam James <sam@gentoo.org> profiles/arch/amd64/no-multilib/package.use.force | 7 ++++++- profiles/arch/amd64/package.use.force | 6 ++++++ profiles/arch/amd64/x32/package.use.force | 6 ++++++ profiles/arch/mips/mips64/multilib/package.use.force | 8 ++++++++ profiles/arch/mips/mipsel/mips64el/multilib/package.use.force | 8 ++++++++ 5 files changed, 34 insertions(+), 1 deletion(-)
objc is not a popular gcc build option, why not just handle this useflag requirement inside ebuild itself instead of forcing all profile users to comply, even those that don't use gcc[objc]?
(In reply to Gino McCarty from comment #28) > objc is not a popular gcc build option, > > why not just handle this useflag requirement inside ebuild itself instead of > forcing all profile users to comply, even those that don't use gcc[objc]? Because it's impossible.
(In reply to Gino McCarty from comment #28) > objc is not a popular gcc build option, > > why not just handle this useflag requirement inside ebuild itself instead of > forcing all profile users to comply, even those that don't use gcc[objc]? See the discussion above - there's no way to correctly specify it per platform. You're free to unforce it locally if you want, it's only for multilib profiles, and the two packages are very quick to build (and only depend on one of the others).
*** Bug 809203 has been marked as a duplicate of this bug. ***