Hmm, I thought this was a fairly typical flto/gold linker failure, but it also looks like libtool is stripping my package.env/mesa no-lto config from the failing link command and letting -flto=4 go through? That said, I just built the silly thing by adding append-libs "-lstdc++" to the ebuild. So I do think the mesa build setup is still relying on bfd linker to link without the above so gold fails. Apart from libtool being insanely stupid, I think it's just another upstream example of not testing/fixing their build with gold linker. Also there is something wrong with this picture: libtool: link: (cd .libs/libEGL_common.lax/libloader_dri3_helper.a && ar x "/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/egl/../../src/loader/.libs/libloader_dri3_helper.a") libtool: link: (cd .libs/libEGL_common.lax/libwayland-drm.a && ar x "/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/egl/../../src/egl/wayland/wayland-drm/.libs/libwayland-drm.a") libtool: link: (cd .libs/libEGL_common.lax/libmesautil.a && ar x "/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/egl/../../src/util/.libs/libmesautil.a") libtool: link: (cd .libs/libEGL_common.lax/libloader.a && ar x "/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/egl/../../src/loader/.libs/libloader.a") libtool: link: ar cru .libs/libEGL_common.a main/.libs/eglapi.o main/.libs/eglarray.o main/.libs/eglconfig.o main/.libs/eglcontext.o main/.libs/eglcurrent.o main/.libs/egldisplay.o main/.libs/egldriver.o main/.libs/egl fallbacks.o main/.libs/eglglobals.o main/.libs/eglimage.o main/.libs/egllog.o main/.libs/eglsurface.o main/.libs/eglsync.o drivers/dri2/.libs/egl_dri2.o drivers/dri2/.libs/platform_x11.o drivers/dri2/.libs/platform_way land.o drivers/dri2/.libs/linux-dmabuf-unstable-v1-protocol.o drivers/dri2/.libs/platform_drm.o drivers/dri2/.libs/platform_surfaceless.o drivers/dri2/.libs/platform_x11_dri3.o .libs/libEGL_common.lax/libloader_dri3_ helper.a/loader_dri3_helper.o .libs/libEGL_common.lax/libwayland-drm.a/wayland-drm-protocol.o .libs/libEGL_common.lax/libwayland-drm.a/wayland-drm.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-bitscan.o .lib s/libEGL_common.lax/libmesautil.a/libmesautil_la-build_id.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-crc32.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-debug.o .libs/libEGL_common.lax/libmesautil. a/libmesautil_la-disk_cache.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-format_srgb.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-half_float.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-ha sh_table.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-mesa-sha1.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-ralloc.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-rand_xor.o .libs/libEGL_com mon.lax/libmesautil.a/libmesautil_la-register_allocate.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-rgtc.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-set.o .libs/libEGL_common.lax/libmesautil.a/libm esautil_la-sha1.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-slab.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-string_to_uint_map.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-strtod.o .lib s/libEGL_common.lax/libmesautil.a/libmesautil_la-u_atomic.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-u_queue.o .libs/libEGL_common.lax/libmesautil.a/libmesautil_la-u_vector.o .libs/libEGL_common.lax/libloa der.a/libloader_la-loader.o .libs/libEGL_common.lax/libloader.a/libloader_la-pci_id_driver_map.o .libs/libEGL_common.lax/libloader.a/libxmlconfig_la-xmlconfig.o libtool: link: ranlib .libs/libEGL_common.a libtool: link: rm -fr .libs/libEGL_common.lax libtool: link: ( cd ".libs" && rm -f "libEGL_common.la" && ln -s "../libEGL_common.la" "libEGL_common.la" ) /bin/sh ../../libtool --tag=CC --mode=link x86_64-pc-linux-gnu-gcc -m32 -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/include -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/s rc/egl/main -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/src/gbm/main -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/src -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STD C_LIMIT_MACROS -D_GNU_SOURCE -DUSE_SSE41 -DUSE_GCC_ATOMIC_BUILTINS -DNDEBUG -DTEXTURE_FLOAT_ENABLED -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_DLOPEN -DHAVE_DL_ITERATE_PHDR -DHAVE_POSIX_M EMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_X11_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_DRI3 -DENABLE_SHADER_ CACHE -DHAVE_MINCORE -DHAVE_ST_VDPAU -DHAVE_LLVM=0x0400 -DMESA_LLVM_VERSION_PATCH=1 -fvisibility=hidden -I/usr/include/libdrm -D_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11 -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/w ork/mesa-17.2.0-rc4/src/loader -I../../src/egl/drivers/dri2 -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/src/egl/drivers/dri2 -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/src/gbm/backends/dri -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/src/egl/wayland/wayland-egl -I../../src/egl/wayland/wayland-drm -I/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4/src/egl/wayland/wayland-drm -DDEFAULT_DRIVER_DIR=\"/usr/lib32/dri\" -D_EGL_BUILT_IN_DRIVER_DRI2 -march=athlon64 -mtune=amdfam10 -O2 -pipe -flto=4 -ftree-vectorize -ftree-loop-distribution -fvect-cost-model=cheap -floop-interchange -floop-strip-mine -floop-block -fno-lto -fno-use-linker-plugin -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-math-errno -fno-trapping-math -no-undefined -version-number 1:0 -Wl,-Bsymbolic -Wl,--gc-sections -Wl,--no-undefined -flto=4 -fuse-linker-plugin -fno-lto -fno-use-linker-plugin -o libEGL.la -rpath /usr/lib32 libEGL_common.la libtool: link: x86_64-pc-linux-gnu-gcc -m32 -shared -fPIC -DPIC -Wl,--whole-archive ./.libs/libEGL_common.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/gbm/.libs -lpthread -lxcb-dri2 -lX11-xcb -lX11 -lxcb -lxcb-dri3 -lxcb-xfixes -lxcb-present -lxcb-sync -lxshmfence -lz /var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/gbm/.libs/libgbm.so -lwayland-client -lwayland-server -lexpat -lm -ldl -ldrm -m32 -march=athlon64 -mtune=amdfam10 -O2 -flto=4 -Wl,-Bsymbolic -Wl,--gc-sections -Wl,--no-undefined -flto=4 -fuse-linker-plugin -pthread -Wl,-soname -Wl,libEGL.so.1 -o .libs/libEGL.so.1.0.0 ./.libs/libEGL_common.a(libmesautil_la-string_to_uint_map.o):string_to_uint_map.cpp:DW.ref.__gxx_personality_v0: error: undefined reference to '__gxx_personality_v0' collect2: error: ld returned 1 exit status make[4]: *** [Makefile:1017: libEGL.la] Error 1 make[4]: Leaving directory '/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/egl' make[3]: *** [Makefile:935: all] Error 2 make[3]: Leaving directory '/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src/egl' make[2]: *** [Makefile:853: all-recursive] Error 1 make[2]: Leaving directory '/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src' make[1]: *** [Makefile:644: all] Error 2 make[1]: Leaving directory '/var/tmp/portage/media-libs/mesa-17.2.0_rc4/work/mesa-17.2.0-rc4-abi_x86_32.x86/src' make: *** [Makefile:649: all-recursive] Error 1 * ERROR: media-libs/mesa-17.2.0_rc4::gentoo failed (compile phase): * emake failed
Portage 2.3.7 (python 3.4.6-final-0, default/linux/amd64/13.0/desktop, gcc-6.3.0, glibc-2.25-r3, 4.3.0-gentoo x86_64) ================================================================= System uname: Linux-4.3.0-gentoo-x86_64-AMD_Athlon-tm-_II_X4_640_Processor-with-gentoo-2.4.1 KiB Mem: 4046248 total, 1417328 free KiB Swap: 8388604 total, 7778044 free Timestamp of repository gentoo: Mon, 14 Aug 2017 03:00:01 +0000 Head commit of repository gentoo: 0f484e61b4156253876ff3a5d6f6ae5117da6220 Head commit of repository arm_support: b64243eb1a6b58660715f0bd3bf5a9733c854cf8 Head commit of repository nerdboy: 6adf15087117e9dd48e69130ffdad7e69f5c819f sh bash 4.3_p48-r1 ld GNU gold (Gentoo 2.28 p1.2 2.28) 1.14 distcc 3.2rc1 x86_64-pc-linux-gnu [disabled] ccache version 3.3.4 [enabled] app-shells/bash: 4.3_p48-r1::gentoo dev-java/java-config: 2.2.0-r3::gentoo dev-lang/perl: 5.24.2::gentoo dev-lang/python: 2.7.13::gentoo, 3.4.6::gentoo, 3.5.2::gentoo dev-util/ccache: 3.3.4::gentoo dev-util/cmake: 3.9.1::gentoo dev-util/pkgconfig: 0.29.2::gentoo sys-apps/baselayout: 2.4.1-r1::gentoo sys-apps/openrc: 0.28::gentoo sys-apps/sandbox: 2.10-r4::gentoo sys-devel/autoconf: 2.13::gentoo, 2.69-r4::gentoo sys-devel/automake: 1.9.6-r4::gentoo, 1.10.3-r1::gentoo, 1.11.6-r2::gentoo, 1.12.6-r1::gentoo, 1.13.4-r1::gentoo, 1.14.1-r1::gentoo, 1.15.1::gentoo sys-devel/binutils: 2.26.1::gentoo, 2.27-r1::gentoo, 2.28-r2::nerdboy, 2.28.1::gentoo sys-devel/gcc: 4.9.3::gentoo, 5.3.0::arm_support, 5.4.0::gentoo, 6.3.0::gentoo, 6.4.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.25-r3::gentoo Repositories: gentoo location: /usr/portage sync-type: rsync sync-umask: 022 sync-uri: rsync://foo.bar/gentoo-portage sync-user: portage:portage priority: -1000 eclass-overrides: nerdboy arm_support location: /usr/local/arm sync-type: git sync-umask: 022 sync-uri: https://github.com/gentoo/arm.git sync-user: portage:portage masters: gentoo nerdboy location: /usr/local/portage sync-type: git sync-umask: 022 sync-uri: https://github.com/sarnold/portage-overlay.git sync-user: portage:portage masters: gentoo jorgicio location: /var/lib/layman/jorgicio sync-type: laymansync sync-umask: 022 sync-uri: https://github.com/jorgicio/jorgicio-gentoo.git sync-user: portage:portage masters: gentoo priority: 50 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA @GPL-COMPATIBLE @OSI-APPROVED @EULA dlj-1.1 skype-eula googleearth AdobeFlash-10.1" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=athlon64 -mtune=amdfam10 -O2 -pipe -flto=4 -ftree-vectorize -ftree-loop-distribution -fvect-cost-model=cheap -floop-interchange -floop-strip-mine -floop-block" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.1/conf /usr/share/maven-bin-3.2/conf /usr/share/maven-bin-3.3/conf /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=athlon64 -mtune=amdfam10 -O2 -pipe -flto=4 -ftree-vectorize -ftree-loop-distribution -fvect-cost-model=cheap -floop-interchange -floop-strip-mine -floop-block" DISTDIR="/usr/portage/distfiles" FCFLAGS="-O2 -pipe" FEATURES="assume-digests binpkg-logs buildpkg ccache config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync multilib-strict news parallel-fetch preserve-libs protect-owned sandbox sfperms sign strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-O2 -pipe" GENTOO_MIRRORS="http://boo.far/gentoo/" LANG="en_US.utf8" LDFLAGS="-flto=4 -fuse-linker-plugin" MAKEOPTS="-j4" PKGDIR="/usr/portage/packages" PORTAGE_BZIP2_COMMAND="/bin/bzip2" 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="7zip X Xaw3d a52 aac aalib abiword accessibility acl acpi ada alsa ambiance amd64 amr amrnb ansi ao artworkextra aspell avahi avi berkdb bitmap-fonts bluetooth bluray branding browserplugin bzip2 bzlib cairo caps cdda cddb cdparanoia cdr cli consolekit corefonts cracklib crypt css cups curl cvs cxx daap dbus dga divx4linux djvu dnotify dri drm dts dv dvd dvdr dvdread dynagraph eds egl emboss emf enchant encode evo exif faac faad fam fame fbcon fftw firefox3 fits flac fluidsynth fontconfig fortran freetype freetype2 g3dvl gb gbm gd gdbm geos gif gimp git glade glamor glib glx gmp gnome-keyring gnome-online-accounts gnutls go gphoto2 gpm gps graphite graphviz grass gs gsm gstreamer gtk gtk3 gtkhtml gtkspell guile howl iconv icq id3 id3tag ifp imagemagick imap imlib inotify ios ipod ipv6 jabber jack jasper java jbig jikes jpeg jpeg2k jpg json junit ladspa lame lapack lash latex lcms ldap libav libnotify libsamplerate libsecret lm_sensors logrotate lto lua lzma mad midi mjpeg mng modules motif mp3 mp4 mpeg mplayer mtp multilib mythtv nas nautilus ncurses netcdf networking networkmanager nfs nls nolvmstatic normalize notification nptl nptlonly nsplugin numeric objc ogdi ogg oggvorbis opencl opengl openmp oss pam pango pcre pcsc-lite pda pdf perl phonon pic pkcs11 plotutils png policykit postgres ppds pulseaudio python qml qt5 quicktime r600-llvm-compiler rdp readline real replaygain rtc ruby samba sasl sdl seamonkey seccomp session shorten slp sndfile snmp sox spamassassin speex spell spice sqlite ssh ssl startup-notification subtitles subversion svg system-cairo system-harfbuzz system-icu system-jpeg system-libvpx system-sqlite taglib tcl tcpd theora threads tiff timidity tk tls truetype truetype-fonts type1-fonts udev udisks unicode upower usb v4l v4l2 vaapi vala vcd vdpau vim vorbis vpx wav wavpack wayland webkit webp weston wheel wifi wmf wxwidgets x264 xanim xattr xcb xcomposite xext xine xinerama xml xmp xorg xpm xrandr xscreensaver xv xvid xvmc zeitgeist zeo zeroconf zip zlib zvbi" ABI_X86="64 32" ALSA_CARDS="emu10k1 hda-intel usb-audio" APACHE2_MODULES="actions alias auth_digest auth_basic authn_alias access_compat authn_core authn_dbd authz_core cache_disk cern_meta cgi cgid charset_lite authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache 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 proxy proxy_connect proxy_http rewrite setenvif speling status unique_id userdir usertrack vhost_alias unixd socache_shmcb" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="adc65 agfa_cl20 aox ax203 barbie canon casio_qv clicksmart310 digigr8 digita dimagev dimera3500 directory enigma13 fuji gsmart300 hp215 iclick jamcam jd11 jl2005a jl2005c kodak_dc120 kodak_dc210 kodak_dc240 kodak_dc3200 kodak_ez200 konica konica_qm150 largan lg_gsm mars mustek panasonic_coolshot panasonic_l859 panasonic_dc1000 panasonic_dc1580 pccam300 pccam600 pentax polaroid_pdc320 polaroid_pdc640 polaroid_pdc700 ptp2 ricoh ricoh_g3 samsung sierra sipix_blink2 sipix_web2 smal sonix sony_dscf1 sony_dscf55 soundvision spca50x sq905 st2205 stv0674 stv0680 sx330z toshiba_pdrm11 topfield tp6801" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" CURL_SSL="openssl" ELIBC="glibc" GPSD_PROTOCOLS="aivdm ashtech earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 navcom ntrip oceanserver oncore rtcm104v2 rtcm104v3 sirf superstar2 tnt tripmate tsip ublox nmea nmea0183 nmea2000 passthrough" GRUB_PLATFORMS="efi-32 efi-64 pc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" L10N="en_US en" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-minimizer wiki-publisher" LINGUAS="en_US en" LLVM_TARGETS="AMDGPU BPF NVPTX X86 AArch64 ARM Hexagon MSP430 Mips PowerPC Sparc SystemZ XCore Lanai RISCV" NETBEANS_MODULES="apisupport java javafx profiler websvccommon cnd dlight ergonomics groovy mobility webcommon" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" POSTGRES_TARGETS="postgres9_5" PYTHON_SINGLE_TARGET="python3_4" PYTHON_TARGETS="python2_7 python3_4" QEMU_SOFTMMU_TARGETS="aarch64 arm i386 mips mipsel mips64 mips64el ppc ppc64 x86_64" QEMU_USER_TARGETS="aarch64 arm i386 mips mipsel mips64 mips64el ppc ppc64 x86_64" RUBY_TARGETS="ruby24 ruby23 ruby22" SANE_BACKENDS="net" USERLAND="GNU" VIDEO_CARDS="radeon r600" 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, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
See also: https://bugs.freedesktop.org/show_bug.cgi?id=101851
Thanks for the link; I'm pretty sure upstream doesn't fully grasp that libtool is stepping on their you-know-whats...
(In reply to Steve Arnold from comment #3) > Thanks for the link; I'm pretty sure upstream doesn't fully grasp that > libtool is stepping on their you-know-whats... Perhaps you could explain what the problem is? It's not at all clear to me.
I was talking about the missing flags from the actual link output, but regardless, to build with gcc-6/gold linker it needs the append-libs (or a patch) to link correctly (since rc5 has the same failure as rc4 without it. I think it's really on the gcc6 side rather than binutils, maybe it should be added to the tracker bug.
FWIW, a fix was committed upstream. C++ where there shouldn't have been C++.
Fixed in 17.2.0_rc6