-
Notifications
You must be signed in to change notification settings - Fork 212
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libcompiler_builtins.rlib for armv7-linux-androideabi
includes multiple definitions of __sync_fetch_and_add_4
#449
Comments
The comment above this
On https://doc.rust-lang.org/nightly/rustc/platform-support.html, the definition of |
The change in 186517b was intended to affect only arm-linux-androideabi but also affected `armv7-linux-androideabi` which is not a pre-ARMv6 architecture. Fixes rust-lang#449
The change in 186517b was intended to affect only `arm-linux-androideabi` but also affected `armv7-linux-androideabi` which is not a pre-ARMv6 architecture. Fixes rust-lang#449
I already published 0.1.67 with this change. |
Update compiler_builtins to fix duplicate symbols in `armv7-linux-androideabi` rlib I ran `./x.py dist --host= --target=armv7-linux-androideabi` before this diff: ``` $ nm build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/armv7-linux-androideabi/lib/libcompiler_builtins-3d9661a82c59c66a.rlib 2> /dev/null | grep __sync_fetch_and_add_4 | wc -l 2 ``` And after: ``` $ nm build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/armv7-linux-androideabi/lib/libcompiler_builtins-ffd2745070943321.rlib 2> /dev/null | grep __sync_fetch_and_add_4 | wc -l 1 ``` Fixes rust-lang#93310 See also rust-lang/compiler-builtins#449 and rust-lang/compiler-builtins#450
Update compiler_builtins to fix duplicate symbols in `armv7-linux-androideabi` rlib I ran `./x.py dist --host= --target=armv7-linux-androideabi` before this diff: ``` $ nm build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/armv7-linux-androideabi/lib/libcompiler_builtins-3d9661a82c59c66a.rlib 2> /dev/null | grep __sync_fetch_and_add_4 | wc -l 2 ``` And after: ``` $ nm build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/armv7-linux-androideabi/lib/libcompiler_builtins-ffd2745070943321.rlib 2> /dev/null | grep __sync_fetch_and_add_4 | wc -l 1 ``` Fixes rust-lang#93310 See also rust-lang/compiler-builtins#449 and rust-lang/compiler-builtins#450
Seeing this bug on cd /home/buildroot/buildroot/output/build/bat-0.18.3 && PATH="/home/buildroot/buildroot/output/per-package/bat/host/bin:/home/buildroot/buildroot/output/per-package/bat/host/sbin:/home/buildroot/bin:/home/buildroot/.local/bin:/home/buildroot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" PATH="/home/buildroot/buildroot/output/per-package/bat/host/bin:/home/buildroot/buildroot/output/per-package/bat/host/sbin:/home/buildroot/bin:/home/buildroot/.local/bin:/home/buildroot/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" AR="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-gcc-ar" AS="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-as" LD="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-ld" NM="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-gcc-nm" CC="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-gcc" GCC="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-gcc" CPP="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-cpp" CXX="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-g++" FC="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-gfortran" F77="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-gfortran" RANLIB="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-gcc-ranlib" READELF="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-readelf" STRIP="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-strip" OBJCOPY="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-objcopy" OBJDUMP="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-objdump" AR_FOR_BUILD="/usr/bin/ar" AS_FOR_BUILD="/usr/bin/as" CC_FOR_BUILD="/usr/bin/gcc" GCC_FOR_BUILD="/usr/bin/gcc" CXX_FOR_BUILD="/usr/bin/g++" LD_FOR_BUILD="/usr/bin/ld" CPPFLAGS_FOR_BUILD="-I/home/buildroot/buildroot/output/per-package/bat/host/include" CFLAGS_FOR_BUILD="-O2 -I/home/buildroot/buildroot/output/per-package/bat/host/include" CXXFLAGS_FOR_BUILD="-O2 -I/home/buildroot/buildroot/output/per-package/bat/host/include" LDFLAGS_FOR_BUILD="-L/home/buildroot/buildroot/output/per-package/bat/host/lib -Wl,-rpath,/home/buildroot/buildroot/output/per-package/bat/host/lib" FCFLAGS_FOR_BUILD="" DEFAULT_ASSEMBLER="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-as" DEFAULT_LINKER="/home/buildroot/buildroot/output/per-package/bat/host/bin/arm-none-linux-gnueabi-ld" CPPFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g0 -D_FORTIFY_SOURCE=1" CXXFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g0 -D_FORTIFY_SOURCE=1" LDFLAGS="" FCFLAGS=" -Os -g0" FFLAGS=" -Os -g0" PKG_CONFIG="/home/buildroot/buildroot/output/per-package/bat/host/bin/pkg-config" STAGING_DIR="/home/buildroot/buildroot/output/per-package/bat/host/arm-buildroot-linux-gnueabi/sysroot" INTLTOOL_PERL=/usr/bin/perl CARGO_HOME=/home/buildroot/buildroot/output/per-package/bat/host/share/cargo __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" CARGO_UNSTABLE_TARGET_APPLIES_TO_HOST="true" CARGO_TARGET_APPLIES_TO_HOST="false" CARGO_BUILD_TARGET="armv5te-unknown-linux-gnueabi" CARGO_TARGET_ARMV5TE_UNKNOWN_LINUX_GNUEABI_LINKER=arm-none-linux-gnueabi-gcc cargo build --offline --release --manifest-path Cargo.toml --locked
Compiling libc v0.2.95
Compiling autocfg v1.0.1
Compiling proc-macro2 v1.0.26
Compiling unicode-xid v0.2.2
Compiling syn v1.0.72
Compiling pkg-config v0.3.19
Compiling bitflags v1.2.1
Compiling memchr v2.4.0
Compiling serde_derive v1.0.126
Compiling cfg-if v1.0.0
Compiling serde v1.0.126
Compiling lazy_static v1.4.0
Compiling encoding_index_tests v0.1.4
Compiling tinyvec_macros v0.1.0
Compiling log v0.4.14
Compiling proc-macro-hack v0.5.19
Compiling matches v0.1.8
Compiling regex-syntax v0.6.25
Compiling byteorder v1.4.3
Compiling crc32fast v1.2.1
Compiling ryu v1.0.5
Compiling unicode-width v0.1.8
Compiling serde_json v1.0.64
Compiling percent-encoding v2.1.0
Compiling fnv v1.0.7
Compiling vec_map v0.8.2
Compiling hashbrown v0.9.1
Compiling ansi_term v0.11.0
Compiling adler v1.0.2
Compiling strsim v0.8.0
Compiling linked-hash-map v0.5.4
Compiling same-file v1.0.6
Compiling ucd-trie v0.1.3
Compiling safemem v0.3.3
Compiling version_check v0.9.3
Compiling xml-rs v0.8.3
Compiling itoa v0.4.7
Compiling bugreport v0.4.1
Compiling base64 v0.13.0
Compiling termcolor v1.1.2
Compiling shell-escape v0.1.5
Compiling lazycell v1.3.0
Compiling std_prelude v0.2.12
Compiling dtoa v0.4.8
Compiling wild v2.0.4
Compiling shell-words v1.0.0
Compiling ansi_term v0.12.1
Compiling tinyvec v1.2.0
Compiling unicode-bidi v0.3.5
Compiling encoding-index-singlebyte v1.20141219.5
Compiling encoding-index-japanese v1.20141219.5
Compiling encoding-index-tradchinese v1.20141219.5
Compiling encoding-index-korean v1.20141219.5
Compiling encoding-index-simpchinese v1.20141219.5
Compiling line-wrap v0.1.1
Compiling walkdir v2.3.2
Compiling pest v2.1.3
Compiling form_urlencoded v1.0.1
Compiling regex-automata v0.1.9
Compiling path_abs v0.5.1
Compiling yaml-rust v0.4.5
Compiling num-traits v0.2.14
Compiling num-integer v0.1.44
Compiling miniz_oxide v0.4.4
Compiling indexmap v1.6.2
Compiling error-chain v0.12.4
Compiling encoding v0.2.33
Compiling aho-corasick v0.7.18
Compiling bstr v0.2.16
Compiling content_inspector v0.2.4
Compiling quote v1.0.9
Compiling unicode-normalization v0.1.17
Compiling semver-parser v0.10.2
Compiling semver v0.11.0
Compiling chrono v0.4.19
Compiling atty v0.2.14
Compiling term_size v0.3.2
Compiling flate2 v1.0.20
Compiling dirs-sys-next v0.1.2
Compiling terminal_size v0.1.16
Compiling textwrap v0.11.0
Compiling dirs-next v2.0.0
Compiling clap v2.33.3
Compiling jobserver v0.1.22
Compiling idna v0.2.3
Compiling regex v1.5.4
Compiling cc v1.0.67
Compiling url v2.2.2
Compiling libz-sys v1.1.3
Compiling onig_sys v69.6.0
Compiling sys-info v0.9.0
Compiling libgit2-sys v0.12.21+1.1.0
Compiling ansi_colours v1.0.4
Compiling globset v0.4.8
Compiling console v0.14.1
Compiling grep-cli v0.1.6
Compiling git-version-macro v0.3.4
Compiling onig v6.1.1
Compiling bat v0.18.3 (/home/buildroot/buildroot/output/build/bat-0.18.3)
Compiling git-version v0.3.4
Compiling git2 v0.13.20
Compiling bincode v1.3.3
Compiling plist v1.1.0
Compiling serde_yaml v0.8.17
Compiling clircle v0.3.0
Compiling syntect v4.5.0
error: linking with `arm-none-linux-gnueabi-gcc` failed: exit status: 1
|
= note: "arm-none-linux-gnueabi-gcc" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/deps/bat-4471b2a57bffe2f9.bat.163418b7-cgu.0.rcgu.o" "-Wl,--as-needed" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/deps" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/release/deps" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/build/ansi_colours-decaa8786ef1e93b/out" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/build/sys-info-054f71f505bff363/out" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/build/libgit2-sys-8134ffc088f48930/out/build" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/build/libz-sys-cc637e64eac095d8/out/lib" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/build/libz-sys-cc637e64eac095d8/out/lib" "-L" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/build/onig_sys-95f6c166737927e5/out" "-L" "/home/buildroot/buildroot/output/per-package/bat/host/lib64/rustlib/armv5te-unknown-linux-gnueabi/lib" "-Wl,-Bstatic" "/tmp/rustceCyJcC/libsys_info-f4b8a5896d118176.rlib" "/tmp/rustceCyJcC/libansi_colours-11e556d34e4e4d91.rlib" "/tmp/rustceCyJcC/liblibgit2_sys-ea6e3bc9089d1a8a.rlib" "/tmp/rustceCyJcC/liblibz_sys-7272aef01f904e4e.rlib" "/tmp/rustceCyJcC/libonig_sys-0993d1993b1cbd53.rlib" "-Wl,--start-group" "-Wl,--end-group" "/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/buildroot/buildroot/output/per-package/bat/host/lib64/rustlib/armv5te-unknown-linux-gnueabi/lib" "-o" "/home/buildroot/buildroot/output/build/bat-0.18.3/target/armv5te-unknown-linux-gnueabi/release/deps/bat-4471b2a57bffe2f9" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
= note: /home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_add_4':
linux-atomic.c:(.text+0x0): multiple definition of `__sync_fetch_and_add_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_sub_4':
linux-atomic.c:(.text+0x38): multiple definition of `__sync_fetch_and_sub_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_or_4':
linux-atomic.c:(.text+0x70): multiple definition of `__sync_fetch_and_or_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_and_4':
linux-atomic.c:(.text+0xa8): multiple definition of `__sync_fetch_and_and_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_xor_4':
linux-atomic.c:(.text+0xe0): multiple definition of `__sync_fetch_and_xor_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_nand_4':
linux-atomic.c:(.text+0x118): multiple definition of `__sync_fetch_and_nand_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_add_2':
linux-atomic.c:(.text+0x154): multiple definition of `__sync_fetch_and_add_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_sub_2':
linux-atomic.c:(.text+0x1b8): multiple definition of `__sync_fetch_and_sub_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_or_2':
linux-atomic.c:(.text+0x21c): multiple definition of `__sync_fetch_and_or_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_and_2':
linux-atomic.c:(.text+0x280): multiple definition of `__sync_fetch_and_and_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_xor_2':
linux-atomic.c:(.text+0x2e4): multiple definition of `__sync_fetch_and_xor_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_nand_2':
linux-atomic.c:(.text+0x348): multiple definition of `__sync_fetch_and_nand_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_add_1':
linux-atomic.c:(.text+0x3b0): multiple definition of `__sync_fetch_and_add_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_sub_1':
linux-atomic.c:(.text+0x410): multiple definition of `__sync_fetch_and_sub_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_or_1':
linux-atomic.c:(.text+0x470): multiple definition of `__sync_fetch_and_or_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_and_1':
linux-atomic.c:(.text+0x4d0): multiple definition of `__sync_fetch_and_and_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_xor_1':
linux-atomic.c:(.text+0x530): multiple definition of `__sync_fetch_and_xor_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_fetch_and_nand_1':
linux-atomic.c:(.text+0x590): multiple definition of `__sync_fetch_and_nand_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_val_compare_and_swap_4':
linux-atomic.c:(.text+0xc48): multiple definition of `__sync_val_compare_and_swap_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:102: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_val_compare_and_swap_2':
linux-atomic.c:(.text+0xc94): multiple definition of `__sync_val_compare_and_swap_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:102: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_val_compare_and_swap_1':
linux-atomic.c:(.text+0xd14): multiple definition of `__sync_val_compare_and_swap_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:102: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_synchronize':
linux-atomic.c:(.text+0xdf4): multiple definition of `__sync_synchronize'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:209: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_lock_test_and_set_4':
linux-atomic.c:(.text+0xe08): multiple definition of `__sync_lock_test_and_set_4'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_lock_test_and_set_2':
linux-atomic.c:(.text+0xe40): multiple definition of `__sync_lock_test_and_set_2'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
/home/buildroot/buildroot/output/per-package/bat/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.8.3/libgcc.a(linux-atomic.o): In function `__sync_lock_test_and_set_1':
linux-atomic.c:(.text+0xea0): multiple definition of `__sync_lock_test_and_set_1'
/home/buildroot/buildroot/output/per-package/bat/host/lib/rustlib/armv5te-unknown-linux-gnueabi/lib/libcompiler_builtins-7c9e64595edaafe9.rlib(compiler_builtins-7c9e64595edaafe9.compiler_builtins.37b1fe12-cgu.100.rcgu.o):/cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.53/src/arm_linux.rs:94: first defined here
collect2: error: ld returned 1 exit status
error: could not compile `bat` due to previous error It appears this can be worked around with but that's not really a proper fix: diff --git a/package/pkg-cargo.mk b/package/pkg-cargo.mk
index e74a8358bc..dca2fdb8c1 100644
--- a/package/pkg-cargo.mk
+++ b/package/pkg-cargo.mk
@@ -44,7 +44,8 @@ PKG_CARGO_ENV = \
CARGO_UNSTABLE_TARGET_APPLIES_TO_HOST="true" \
CARGO_TARGET_APPLIES_TO_HOST="false" \
CARGO_BUILD_TARGET="$(RUSTC_TARGET_NAME)" \
- CARGO_TARGET_$(call UPPERCASE,$(RUSTC_TARGET_NAME))_LINKER=$(notdir $(TARGET_CROSS))gcc
+ CARGO_TARGET_$(call UPPERCASE,$(RUSTC_TARGET_NAME))_LINKER="$(notdir $(TARGET_CROSS))gcc" \
+ CARGO_TARGET_$(call UPPERCASE,$(RUSTC_TARGET_NAME))_RUSTFLAGS="-Clink-arg=-Wl,--allow-multiple-definition"
HOST_PKG_CARGO_ENV = \
$(PKG_COMMON_CARGO_ENV) |
@jameshilliard that looks potentially different. My symptom was duplicate symbols in the binary artifact distribution, but I only see 1 symbol for the ones where you are getting duplicate symbols during linking.
|
hmm, guess I'm getting a symbol conflict between compiler-builtins and the cross libgcc or something? |
Hopefully this should be fixed by #452 which will be included in rust-lang/rust#93696. Please try it in the next nightly once that is merged. |
The change in 186517b was intended to affect only `arm-linux-androideabi` but also affected `armv7-linux-androideabi` which is not a pre-ARMv6 architecture. Fixes rust-lang#449
This may be related to #420 and #412, but this seems pretty straightforward. In investigating rust-lang/rust#93310 I determined it was a bug with compiler-builtins and root caused it to 186517b. By making a small change, I was able to compile a rust toolchain which did not have the duplicate symbols:
The change in 186517b seems intended to affect only
arm-linux-androideabi
by the comment, but it ended up affectingarmv7-linux-androideabi
. Anyway, it looks like after the changearm-linux-androideabi
properly only has the symbols once, butarmv7-linux-androideabi
is defining them twice:I'm not sure exactly how
x.py
ends up compiling compiler_builtins, since I was unable to reproduce the duplicate symbol issue in this repo alone (I triedcargo build --target armv7-linux-androideabi
). I think there must be additional features enabled that cause the duplication in the end.The text was updated successfully, but these errors were encountered: