Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 862109 - dev-lang/rust[system-llvm] fails to build with -flto: undefined reference to `LLVMRustLinkerAdd'
Summary: dev-lang/rust[system-llvm] fails to build with -flto: undefined reference to ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Rust Project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: lto
  Show dependency tree
 
Reported: 2022-07-29 16:12 UTC by Georgy Yakovlev
Modified: 2024-03-29 04:06 UTC (History)
4 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Georgy Yakovlev archtester gentoo-dev 2022-07-29 16:12:34 UTC
originally reported by mattst88 on IRC


     Running `CARGO=/usr/lib/rust/1.62.1/bin/cargo CARGO_BIN_NAME=rustc-main CARGO_CRATE_NAME=rustc_main CARGO_MANIFEST_DIR=/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/compiler/rustc CARGO_PKG_AUTHORS='' CARGO_PKG_DESCRIPTION='' CARGO_PKG_H
OMEPAGE='' CARGO_PKG_LICENSE='' CARGO_PKG_LICENSE_FILE='' CARGO_PKG_NAME=rustc-main CARGO_PKG_REPOSITORY='' CARGO_PKG_VERSION=0.0.0 CARGO_PKG_VERSION_MAJOR=0 CARGO_PKG_VERSION_MINOR=0 CARGO_PKG_VERSION_PATCH=0 CARGO_PKG_VERSION_PRE='' CARGO_PRIMARY_PACKAGE
=1 LD_LIBRARY_PATH='/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/release/deps:/usr/lib/rust/1.62.1/lib' /var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/bootstrap/debug/rustc 
--crate-name rustc_main --edition=2021 compiler/rustc/src/main.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type bin --emit=dep-info,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=0 --cfg 'feature="llvm"' -
-cfg 'feature="max_level_info"' -C metadata=e358f94d4cb15110 -C extra-filename=-e358f94d4cb15110 --out-dir /var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/de
ps --target powerpc64le-unknown-linux-gnu -C linker=powerpc64le-unknown-linux-gnu-gcc -L dependency=/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/deps -L d
ependency=/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/release/deps --extern rustc_codegen_ssa=/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/s
tage0-rustc/powerpc64le-unknown-linux-gnu/release/deps/librustc_codegen_ssa-fd80d4e613d93a2d.rlib --extern rustc_driver=/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-g
nu/release/deps/librustc_driver-b8f1645311e1b204.so -Lnative=/usr/lib/llvm/14/lib64 -C target-cpu=pwr9 -Csymbol-mangling-version=v0 -Zunstable-options '--check-cfg=names()' '--check-cfg=values()' '--check-cfg=values(bootstrap)' '--check-cfg=values(parallel
_compiler)' '--check-cfg=values(no_btreemap_remove_entry)' '--check-cfg=values(crossbeam_loom)' '--check-cfg=values(span_locations)' -Zmacro-backtrace -Zunstable-options -Csplit-debuginfo=off -Ztls-model=initial-exec -Zunstable-options '-Wrustc::internal' 
-Cprefer-dynamic -Z binary-dep-depinfo -L native=/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/build/psm-c3945a867155cf23/out -L native=/var/tmp/portage/de
v-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/build/rustc_llvm-41b4b46e87ace310/out -L native=/usr/lib/llvm/14/lib64 -L native=/usr/lib/gcc/powerpc64le-unknown-linux-gnu/11.3
.0`
error: linking with `powerpc64le-unknown-linux-gnu-gcc` failed: exit status: 1
  |
  = note: "powerpc64le-unknown-linux-gnu-gcc" "-m64" "/var/tmp/portage/dev-lang/rust-1.62.1/temp/rustcbKzeh3/symbols.o" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-
gnu/release/deps/rustc_main-e358f94d4cb15110.rustc_main.e5784bc6-cgu.0.rcgu.o" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/deps/rustc_main-e358f94d4cb15
110.rustc_main.e5784bc6-cgu.1.rcgu.o" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/deps/rustc_main-e358f94d4cb15110.rustc_main.e5784bc6-cgu.2.rcgu.o" "-W
l,--as-needed" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/deps" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64l
e-unknown-linux-gnu/stage0-rustc/release/deps" "-L" "/usr/lib/llvm/14/lib64" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/build/psm-c3945a867155cf23
/out" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/build/rustc_llvm-41b4b46e87ace310/out" "-L" "/usr/lib/llvm/14/lib64" "-L" "/usr/lib/gcc/powerpc64
le-unknown-linux-gnu/11.3.0" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-sysroot/lib/rustlib/powerpc64le-unknown-linux-gnu/lib" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-s
rc/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/deps" "-lrustc_driver-b8f1645311e1b204" "-Wl,--start-group" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stag
e0-sysroot/lib/rustlib/powerpc64le-unknown-linux-gnu/lib" "-lstd-857744c4ed6e7378" "-Wl,--end-group" "-Wl,-Bstatic" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-sysroot/lib/rustlib/powerpc64le-unkn
own-linux-gnu/lib/libcompiler_builtins-172f5b94ecf67c86.rlib" "-Wl,-Bdynamic" "-lLLVM-14" "-ldl" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1
-src/build/powerpc64le-unknown-linux-gnu/stage0-sysroot/lib/rustlib/powerpc64le-unknown-linux-gnu/lib" "-o" "/var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release/
deps/rustc_main-e358f94d4cb15110" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
  = note: /usr/lib/gcc/powerpc64le-unknown-linux-gnu/11.3.0/../../../../powerpc64le-unknown-linux-gnu/bin/ld: /var/tmp/portage/dev-lang/rust-1.62.1/work/rustc-1.62.1-src/build/powerpc64le-unknown-linux-gnu/stage0-rustc/powerpc64le-unknown-linux-gnu/release
/deps/librustc_driver-b8f1645311e1b204.so: undefined reference to `LLVMRustLinkerAdd'





Not sure what's going on yet, maybe it's because our llvm is no longer split into multiple libraries.
minimum we could do is to filter out -flto from *FLAGS, as it does not really matter for rust. gentooLTO overlay already does that for a long time.
Comment 1 Larry the Git Cow gentoo-dev 2022-07-29 18:24:09 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=04f61962c54e44fd37e34018f7be9bbef663d8dd

commit 04f61962c54e44fd37e34018f7be9bbef663d8dd
Author:     Georgy Yakovlev <gyakovlev@gentoo.org>
AuthorDate: 2022-07-29 18:16:07 +0000
Commit:     Georgy Yakovlev <gyakovlev@gentoo.org>
CommitDate: 2022-07-29 18:23:25 +0000

    dev-lang/rust: filter out -flto flags
    
    Bug: https://bugs.gentoo.org/862109
    Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>

 dev-lang/rust/rust-1.59.0.ebuild    | 2 ++
 dev-lang/rust/rust-1.60.0.ebuild    | 2 ++
 dev-lang/rust/rust-1.61.0-r2.ebuild | 2 ++
 dev-lang/rust/rust-1.62.0.ebuild    | 2 ++
 dev-lang/rust/rust-1.62.1.ebuild    | 2 ++
 5 files changed, 10 insertions(+)
Comment 2 Eli Schwartz 2024-03-29 04:06:38 UTC
Unclear why it was not closed at the time it was fixed.