Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 617788 - sys-devel/gcc-7.2.0[multilib,obj-gc]: missing abi DEPEND on dev-libs/boehm-gc: configure: error: system bdw-gc required but not found
Summary: sys-devel/gcc-7.2.0[multilib,obj-gc]: missing abi DEPEND on dev-libs/boehm-gc...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 2 votes (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords: PullRequest
: 638666 646052 646416 652890 659048 663286 668758 725860 789645 789801 798999 801583 (view as bug list)
Depends on:
Blocks:
 
Reported: 2017-05-08 02:54 UTC by Craig Andrews
Modified: 2023-11-27 18:56 UTC (History)
24 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gcc-build-logs.tar.bz2 (gcc-build-logs.tar.bz2,400.59 KB, application/x-bzip)
2017-05-08 02:54 UTC, Craig Andrews
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Craig Andrews gentoo-dev 2017-05-08 02:54:09 UTC
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
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-05-09 06:11:49 UTC
Actually, I had boehm-gc-7.6.0 installed.
Comment 2 Matthias Maier gentoo-dev 2017-05-09 15:27:47 UTC
(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.
Comment 3 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-05-09 15:29:15 UTC
Maybe it's another multilib-strict failure? i.e. try it without the lib->lib64 symlink.
Comment 4 Matthias Maier gentoo-dev 2017-05-10 16:14:58 UTC
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
Comment 5 David Seifert gentoo-dev 2017-05-10 22:36:35 UTC
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
Comment 6 David Seifert gentoo-dev 2017-05-11 06:41:22 UTC
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.
Comment 7 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-05-11 07:07:29 UTC
...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.
Comment 8 Matthias Maier gentoo-dev 2017-05-11 07:22:23 UTC
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.
Comment 9 Bernie Hackett 2017-12-04 23:49:25 UTC
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
Comment 10 Andreas K. Hüttel archtester gentoo-dev 2017-12-16 23:03:56 UTC
*** Bug 638666 has been marked as a duplicate of this bug. ***
Comment 11 Jeroen Roovers (RETIRED) gentoo-dev 2018-02-05 16:30:16 UTC
*** Bug 646416 has been marked as a duplicate of this bug. ***
Comment 12 Jeroen Roovers (RETIRED) gentoo-dev 2018-02-05 16:30:26 UTC
*** Bug 646052 has been marked as a duplicate of this bug. ***
Comment 13 Sergei Trofimovich (RETIRED) gentoo-dev 2018-04-10 19:12:00 UTC
*** Bug 652890 has been marked as a duplicate of this bug. ***
Comment 14 Luke-Jr 2018-05-22 19:55:25 UTC
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.
Comment 15 Pacho Ramos gentoo-dev 2018-06-27 10:07:46 UTC
*** Bug 659048 has been marked as a duplicate of this bug. ***
Comment 16 Sergei Trofimovich (RETIRED) gentoo-dev 2018-08-12 18:38:09 UTC
*** Bug 663286 has been marked as a duplicate of this bug. ***
Comment 17 Tomáš Mózes 2018-10-16 03:41:51 UTC
*** Bug 668758 has been marked as a duplicate of this bug. ***
Comment 18 Jakub Hrbek 2019-03-21 22:54:53 UTC
same issue on gcc-8.2.2[multilib,obj-gc] 

will provide info on demand if needed.
Comment 19 Sven E. 2019-09-14 11:04:42 UTC
Same for 'stable' sys-devel/gcc-8.3.0-r1.
And for unstable sys-devel/gcc-9.2.0.
Comment 20 Vincent Reher 2019-11-03 16:23:44 UTC
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.
Comment 21 Jeroen Roovers (RETIRED) gentoo-dev 2020-05-28 10:23:22 UTC
*** Bug 725860 has been marked as a duplicate of this bug. ***
Comment 22 Tupone Alfredo gentoo-dev 2021-05-12 17:09:08 UTC
*** Bug 789645 has been marked as a duplicate of this bug. ***
Comment 23 Tupone Alfredo gentoo-dev 2021-05-13 08:36:47 UTC
*** Bug 789801 has been marked as a duplicate of this bug. ***
Comment 24 Toralf Förster gentoo-dev 2021-06-28 07:48:07 UTC
*** Bug 798999 has been marked as a duplicate of this bug. ***
Comment 25 Sergei Trofimovich (RETIRED) gentoo-dev 2021-07-12 00:01:19 UTC
*** Bug 801583 has been marked as a duplicate of this bug. ***
Comment 26 Arsen Arsenović gentoo-dev 2023-04-12 15:39:16 UTC
Another user reproduced this today on IRC.

should be add a objc-gc? ( dev-libs/boehm-gc[abi_x86_64] ) etc
Comment 27 Larry the Git Cow gentoo-dev 2023-11-26 23:36:48 UTC
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(-)
Comment 28 Gino McCarty 2023-11-27 18:52:18 UTC
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]?
Comment 29 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-11-27 18:54:46 UTC
(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.
Comment 30 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-11-27 18:56:52 UTC
(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).