Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 682866

Summary: dev-lang/rust-1.33.0 fails to build with CFLAGS+="-flto"
Product: Gentoo Linux Reporter: Patrick Lauer <patrick>
Component: Current packagesAssignee: Gentoo Rust Project <rust>
Status: CONFIRMED ---    
Severity: normal CC: jstein, navi, randy, rust, steffen
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=866231
https://bugs.gentoo.org/show_bug.cgi?id=862109
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 618550    

Description Patrick Lauer gentoo-dev 2019-04-08 08:59:42 UTC
Compiling installer v0.0.0 (/var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/src/tools/rust-installer)
error: linking with `x86_64-pc-linux-gnu-gcc` failed: exit code: 1
  |
[...]
  = note: /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps/libxz2-cfeaafd5b6e554c4.rlib(xz2-cfeaafd5b6e554c4.xz2.bbodlphi-cgu.2.rcgu.o): in function `core::ptr::real_drop_in_place':
          xz2.bbodlphi-cgu.2:(.text._ZN4core3ptr18real_drop_in_place17ha274ac3bb5ed556eE+0x2): undefined reference to `lzma_end'
          /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps/libxz2-cfeaafd5b6e554c4.rlib(xz2-cfeaafd5b6e554c4.xz2.bbodlphi-cgu.2.rcgu.o): in function `xz2::stream::Stream::new_easy_encoder':
          xz2.bbodlphi-cgu.2:(.text._ZN3xz26stream6Stream16new_easy_encoder17h04f73be7aab6f52fE+0x5b): undefined reference to `lzma_easy_encoder'
          /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: xz2.bbodlphi-cgu.2:(.text._ZN3xz26stream6Stream16new_easy_encoder17h04f73be7aab6f52fE+0xb4): undefined reference to `lzma_end'
          /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps/libxz2-cfeaafd5b6e554c4.rlib(xz2-cfeaafd5b6e554c4.xz2.bbodlphi-cgu.2.rcgu.o): in function `xz2::stream::Stream::process_vec':
          xz2.bbodlphi-cgu.2:(.text._ZN3xz26stream6Stream11process_vec17h9a31af0227c6c918E+0x3b): undefined reference to `lzma_code'
          /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps/libxz2-cfeaafd5b6e554c4.rlib(xz2-cfeaafd5b6e554c4.xz2.bbodlphi-cgu.2.rcgu.o): in function `<xz2::stream::Stream as core::ops::drop::Drop>::drop':
          xz2.bbodlphi-cgu.2:(.text._ZN61_$LT$xz2..stream..Stream$u20$as$u20$core..ops..drop..Drop$GT$4drop17h28e438aac723e06fE+0x2): undefined reference to `lzma_end'
[...]
          /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: /var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps/libbacktrace-ff43a66c278440ab.rlib(backtrace-ff43a66c278440ab.backtrace.62dtk76r-cgu.2.rcgu.o): in function `backtrace::symbolize::resolve':
          backtrace.62dtk76r-cgu.2:(.text._ZN9backtrace9symbolize7resolve17h17d5503f0dcd253aE+0x96): undefined reference to `__rbt_backtrace_pcinfo'
          /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: backtrace.62dtk76r-cgu.2:(.text._ZN9backtrace9symbolize7resolve17h17d5503f0dcd253aE+0xb9): undefined reference to `__rbt_backtrace_syminfo'
          collect2: error: ld returned 1 exit status


error: aborting due to previous error

error: Could not compile `installer`.

To learn more, run the command again with --verbose.
command did not execute successfully: "/var/tmp/portage/dev-lang/rust-1.33.0/work/rust-stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-j" "8" "--release" "--locked" "--frozen" "--manifest-path" "/var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/src/tools/rust-installer/Cargo.toml" "--message-format" "json"
expected success, got: exit code: 101
Traceback (most recent call last):
  File "./x.py", line 11, in <module>
    bootstrap.main()
  File "/var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/src/bootstrap/bootstrap.py", line 843, in main
    bootstrap(help_triggered)
  File "/var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/src/bootstrap/bootstrap.py", line 829, in bootstrap
    run(args, env=env, verbose=build.verbose)
  File "/var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/src/bootstrap/bootstrap.py", line 141, in run
    raise RuntimeError(err)
RuntimeError: failed to run: /var/tmp/portage/dev-lang/rust-1.33.0/work/rustc-1.33.0-src/build/bootstrap/debug/bootstrap install -v
 * ERROR: dev-lang/rust-1.33.0::gentoo failed (install phase):
Comment 1 Patrick Lauer gentoo-dev 2019-04-08 09:00:23 UTC
Portage 2.3.62 (python 2.7.16-final-0, default/linux/amd64/17.0, gcc-8.3.0, glibc-2.29-r1, 5.0.4-gentoo x86_64)
=================================================================
System uname: Linux-5.0.4-gentoo-x86_64-AMD_FX-tm-8350_Eight-Core_Processor-with-gentoo-2.6
KiB Mem:    16438060 total,   5881280 free
KiB Swap:          0 total,         0 free
sh bash 5.0_p3-r1
ld GNU ld (Gentoo 2.32 p1) 2.32.0
app-shells/bash:          5.0_p3-r1::gentoo
dev-lang/perl:            5.28.0::gentoo
dev-lang/python:          2.7.16::gentoo, 3.5.7::gentoo, 3.6.8::gentoo, 3.7.3::gentoo
dev-util/cmake:           3.14.1::gentoo
dev-util/pkgconfig:       0.29.2::gentoo
sys-apps/baselayout:      2.6-r1::gentoo
sys-apps/openrc:          0.41.2::gentoo
sys-apps/sandbox:         2.17::gentoo
sys-devel/autoconf:       2.69-r4::gentoo
sys-devel/automake:       1.16.1-r1::gentoo
sys-devel/binutils:       2.32::gentoo
sys-devel/gcc:            8.3.0-r1::gentoo
sys-devel/gcc-config:     2.0::gentoo
sys-devel/libtool:        2.4.6-r5::gentoo
sys-devel/make:           4.2.1-r4::gentoo
sys-kernel/linux-headers: 5.0-r1::gentoo (virtual/os-headers)
sys-libs/glibc:           2.29-r1::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-metamanifest: no
    sync-rsync-extra-opts:
    sync-rsync-verify-max-age: 24

adjust
    location: /overlay/gentoo-overlay
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -flto -fuse-linker-plugin"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt"
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"
CXXFLAGS="-O2 -pipe -flto -fuse-linker-plugin"
DISTDIR="/usr/portage/distfiles"
ENV_UNSET="DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN 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 buildpkg 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 sandbox sfperms strict test 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="-O2 -flto"
MAKEOPTS="-j8"
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="acl amd64 berkdb bzip2 cli crypt cxx dri fortran gdbm iconv ipv6 libtirpc multilib ncurses nls nptl openmp pam pcre readline seccomp sqlite ssl tcpd test unicode xattr 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="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 isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" NETBEANS_MODULES="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6 php7-1" POSTGRES_TARGETS="postgres9_5 postgres10" PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_5 python3_6 python3_7 pypy pypy3" RUBY_TARGETS="ruby24" USERLAND="GNU" VIDEO_CARDS="dummy fbdev glint intel mach64 nouveau nv r128 radeon savage sis trident v4l vesa" 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
Comment 2 Georgy Yakovlev archtester gentoo-dev 2019-04-12 05:41:45 UTC
was lto ever working with previous versions of rust?


in 1.34.0 changelog I see:

You can now enable linker plugin LTO optimisations with -C linker-plugin-lto. This allows rustc to compile your Rust code into LLVM bitcode allowing LLVM to perform LTO optimisations across C/C++ FFI boundaries.


but it only works if other code is built with llvm/clang


https://github.com/rust-lang/rust/pull/58057/
Comment 3 Jonas Stein gentoo-dev 2020-03-18 20:57:35 UTC
*** Bug 622024 has been marked as a duplicate of this bug. ***