I've got sys-devel/binutils-2.23.2 installed, I choosed ld.gold as default linker (`binutils-config --linker ld.gold`). After upgrade default was changed to linker "bfd". Reproducible: Always # emerge --info Portage 2.2.7 (default/linux/amd64/13.0/desktop/kde, gcc-4.8.2, glibc-2.17, 3.12.5-gentoo x86_64) ================================================================= System uname: Linux-3.12.5-gentoo-x86_64-Intel-R-_Core-TM-2_Duo_CPU_E8400_@_3.00GHz-with-gentoo-2.2 KiB Mem: 3079124 total, 87532 free KiB Swap: 5242812 total, 5015240 free Timestamp of tree: Thu, 02 Jan 2014 07:00:01 +0000 ld GNU gold (GNU Binutils 2.24) 1.11 ccache version 3.1.9 [enabled] app-shells/bash: 4.2_p45 dev-java/java-config: 2.2.0 dev-lang/python: 2.7.6, 3.2.5-r3, 3.3.3 dev-util/ccache: 3.1.9-r3 dev-util/cmake: 2.8.12.1-r2 dev-util/pkgconfig: 0.28 sys-apps/baselayout: 2.2 sys-apps/openrc: 0.12.4 sys-apps/sandbox: 2.6-r1 sys-devel/autoconf: 2.13, 2.69 sys-devel/automake: 1.12.6, 1.14.1 sys-devel/binutils: 2.24 sys-devel/gcc: 4.5.4, 4.7.3-r1, 4.8.2 sys-devel/gcc-config: 1.8 sys-devel/libtool: 2.4.2 sys-devel/make: 4.0-r1 sys-kernel/linux-headers: 3.12 (virtual/os-headers) sys-libs/glibc: 2.17 Repositories: gentoo sunrise gnustep ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA AdobeFlash-11.x PUEL Q3AEULA dlj-1.1 Oracle-BCLA-JavaSE" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe -fpeel-loops -frename-registers -frecord-gcc-switches -fno-unwind-tables -fno-asynchronous-unwind-tables -fpredictive-commoning -fweb -ftree-vectorize -floop-interchange -fivopts -floop-block -floop-strip-mine -fira-loop-pressure -floop-interchange -ftree-loop-linear -Wdisabled-optimization -fuse-linker-plugin" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/config /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 -march=native -pipe -fpeel-loops -frename-registers -frecord-gcc-switches -fno-unwind-tables -fno-asynchronous-unwind-tables -fpredictive-commoning -fweb -ftree-vectorize -floop-interchange -fivopts -floop-block -floop-strip-mine -fira-loop-pressure -floop-interchange -ftree-loop-linear -Wdisabled-optimization -fuse-linker-plugin" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="Xfail-clean Xkeepwork Xunmerge-backup assume-digests binpkg-logs ccache collision-protect compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LDFLAGS="-Wl,-O1 -Wl,--as-needed -z relro -Wl,--sort-common" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_EXTRA_OPTS="-O" 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" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/layman/sunrise /usr/local/portage/layman/horhe /usr/local/portage/layman/gnustep /usr/local/portage/miro-overlay/in_sunrise /usr/local/portage/miro-overlay/staging /usr/local/portage/miro-overlay/portage /home/marcin/workdir/svn-cadera/trunk/Gentoo/overlay" SYNC="rsync://192.168.138.254/gentoo-portage" USE="X a52 aac acl acpi aio alsa amd64 apm async bash-completion bittorrent branding bzip2 cairo caps cdda cdr chroot cli consolekit crypt cups cxx dbus declarative dmx dri dvd dvdr emboss encode exif fam firefox ftp gif glibc-omitfp gpm graphite gstreamer iconv idn iproute2 ipv6 ithreads jpeg kde kipi laptop lcms libnotify lightning logrotate mad mmap mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib ncurses network-cron nls nptl nsplugin nspluginwrapper objc ogg opengl openmp openssl optimization optimized-qmake pam pango pch pcre pdf phonon plasma png policykit ppds python3 qt3support qt4 readline samba sdl semantic-desktop session sharedmem smp spell sse sse2 sse3 sse4_1 ssl ssse3 startup-notification svg threads threadsafe tiff tools truetype udev udisks unicode upower urandom usb vim vim-pager vim-syntax vorbis wxwidgets x264 xattr xcb xcomposite xinerama xml xscreensaver xv xvid zip zlib" ABI_X86="64" 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="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 cgid dav dbd deflate dir env expires ext_filter filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id usertrack vhost_alias" APACHE2_MPMS="worker" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="caps lvm mdraid" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl en es es_ES" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-3 php5-4" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2 python3_3" RUBY_TARGETS="ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" 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: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, USE_PYTHON
confirm! same here after (re)install binutils.
(In reply to Alex Turbov from comment #1) > confirm! same here after (re)install binutils. root@gentop〉.../x86_64-pc-linux-gnu/binutils-bin/2.24〉ll ld* -rwxr-xr-x 2 root root 832K Jan 5 20:21 ld -rwxr-xr-x 2 root root 832K Jan 5 20:21 ld.bfd -rwxr-xr-x 1 root root 3,5M Jan 5 20:21 ld.gold
toolchain-binutils.eclass is being phased out. However, I suspect this bug is still present in current binutils anyway... Needs research.
I guess the problem here is that binutils-config does not persist user's choice anywhere and just tweaks symlinks installed by binutils-config itself. There are a few ways to do it: 1. infer it from existing installed symlinks, a bit fragile 2. store users' preference separately somewhere in /etc/env.d or /var/ 3. phase out binutils-config --linker support in favour of another mechanism, like binutils's --enable-gold=default set via USE-flag.
Most people testing gold linker will likely have added ECONF_EXTRA="--enable-gold=default" to package.env for binutils itself, so if you're willing to add a compile switch based on a useflag, that mimics best practice anyway.
I didn't realize we have a wiki page that advises package.env: https://wiki.gentoo.org/wiki/Gold It should certainly be a use flag.
It's the only sensible thing to do, because if you want to test and doing an emerge @system after changing linker with binutils-config, well, binutils gets merged and resets itself to ld.bfd It might be possible to solve this via binutils-config, but as long as there is the compile switch and a possible useflag, it might not be that pressing of an issue.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bcf3b906fdf9380837d462e56aca0da1f2388f2c commit bcf3b906fdf9380837d462e56aca0da1f2388f2c Author: Sergei Trofimovich <slyfox@gentoo.org> AuthorDate: 2019-02-12 23:01:16 +0000 Commit: Sergei Trofimovich <slyfox@gentoo.org> CommitDate: 2019-02-12 23:01:33 +0000 sys-devel/binutils: add USE=default-gold, bug #496760 binutils allows you to set ld=ld.bfd (default) and ld=ld.gold. Expose this override as USE=default-gold. Reported-by: Marcin Mirosław Bug: https://bugs.gentoo.org/496760 Package-Manager: Portage-2.3.60, Repoman-2.3.12 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> sys-devel/binutils/binutils-2.31.1-r3.ebuild | 8 ++++++-- sys-devel/binutils/binutils-9999.ebuild | 5 ++++- sys-devel/binutils/metadata.xml | 1 + 3 files changed, 11 insertions(+), 3 deletions(-)
After emerging binutils-2.31.1-r3 with default-gold flag it still appears in my case that i need to reset to gold using binutils-config, despite having /etc/portage/env/gold.conf. While sys-devel/binutils-2.31.1-r4 is skipped due to a dependency conflict. sys-devel/binutils:2.31 (sys-devel/binutils-2.31.1-r4:2.31/2.31::gentoo, ebuild scheduled for merge) conflicts with >=sys-devel/binutils-2.22:*[cxx] required by (sys-devel/llvm-7.0.1:7/7::gentoo, installed)