Skip to content

RUSTFLAGS breaks linker #219

@rva3

Description

@rva3

RUSTFLAGS environment variable breaks linker , e.g RUSTFLAGS="-Ctarget-cpu=cortex-a55" x build --platform android --arch arm64 --format apk -r (happens on both master and release)

Log:
[1/3] Fetch precompiled artifacts
info: component 'rust-std' for target 'aarch64-linux-android' is up to date
[1/3] Fetch precompiled artifacts [177ms]
[2/3] Build rust `xtest`
   Compiling jni-sys v0.3.0
   Compiling bytes v1.10.1
   Compiling memchr v2.7.4
   Compiling log v0.4.27
   Compiling libc v0.2.172
   Compiling thiserror v1.0.69
   Compiling raw-window-handle v0.6.2
   Compiling bitflags v2.9.0
   Compiling cfg-if v1.0.0
   Compiling cesu8 v1.1.0
   Compiling pin-project-lite v0.2.16
   Compiling tracing-core v0.1.33
   Compiling ndk-context v0.1.1
   Compiling android-properties v0.2.2
   Compiling num_enum v0.7.3
   Compiling android-activity v0.6.0
   Compiling winit v0.30.10
   Compiling dpi v0.1.2
   Compiling smol_str v0.2.2
   Compiling ndk-sys v0.6.0+11769913
   Compiling cursor-icon v1.1.0
   Compiling tracing v0.1.41
   Compiling combine v4.6.7
   Compiling ndk v0.9.0
   Compiling jni v0.21.1
   Compiling xtest v0.1.0 (/home/user/projects/xtest)
warning: unused variable: `app`
 --> src/lib.rs:2:17
  |
2 | fn android_main(app: winit::platform::android::activity::AndroidApp) {
  |                 ^^^ help: if this is intentional, prefix it with an underscore: `_app`
  |
  = note: `#[warn(unused_variables)]` on by default

error: linking with `clang` failed: exit status: 1
  |
  = note:  "clang" "-Wl,--version-script=/tmp/rustcHNwBIP/list" "-Wl,--no-undefined-version" "/tmp/rustcHNwBIP/symbols.o" "<2 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/home/user/projects/xtest/target/x/release/android/arm64/cargo/aarch64-linux-android/release/deps/{libwinit-2d0d06393b0532b2.rlib,libtracing-fa22f4f7a3c74579.rlib,libpin_project_lite-8c02c0c8121277bc.rlib,libtracing_core-b14b3c5b20e3b021.rlib,libandroid_activity-95d9d4acda35c272.rlib,libandroid_properties-86f90dd59382ac44.rlib,libndk_context-7afdd6d37142ed81.rlib,libjni-1870b546a7cddd7f.rlib,libcesu8-275e35db99e5f8e8.rlib,libcombine-6bc08c0f2216f6d7.rlib,libmemchr-fae525c0d294fe4e.rlib,libbytes-e232ddd7ba4cafd3.rlib,libndk-be97ebade109e8d1.rlib,libndk_sys-dd40e89905e0beea.rlib,liblog-01ff5d3cf4346918.rlib,libjni_sys-679338b93a9821e2.rlib,libthiserror-922c5551c6972e69.rlib,libnum_enum-f5a9aa2efb69bebe.rlib,liblibc-cd11e0bae91f144d.rlib,libbitflags-67ddfff8af95bb2b.rlib,libsmol_str-2db20c8117ecb1e5.rlib,libcursor_icon-49d01c142604477d.rlib,libdpi-09fd2f0da5cb9f48.rlib,libraw_window_handle-3831b38bb83ea891.rlib}.rlib" "<sysroot>/lib/rustlib/aarch64-linux-android/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,libcfg_if-*,liblibc-*,liballoc-*,librustc_std_workspace_core-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-landroid" "-ldl" "-llog" "-lunwind" "-ldl" "-lm" "-lc" "-L" "/tmp/rustcHNwBIP/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-o" "/home/user/projects/xtest/target/x/release/android/arm64/cargo/aarch64-linux-android/release/deps/libxtest.so" "-Wl,--gc-sections" "-shared" "-Wl,-z,relro,-z,now" "-Wl,-O1" "-Wl,--strip-debug" "-nodefaultlibs"
  = note: some arguments are omitted. use `--verbose` to show all linker arguments
  = note: ld.lld: error: unable to find library -landroid
          ld.lld: error: unable to find library -llog
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

warning: `xtest` (lib) generated 1 warning
error: could not compile `xtest` (lib) due to 1 previous error; 1 warning emitted
Steps to reproduce:
  • cargo new xtest --lib
  • cargo add winit --features android-native-activity
  • src/lib.rs contents:
#[unsafe(no_mangle)]
fn android_main(app: winit::platform::android::activity::AndroidApp) {
    println!("test");
}
  • Cargo.toml contents:
[package]
name = "xtest"
version = "0.1.0"
edition = "2024"

[lib]
crate-type = ["cdylib"]

[dependencies]
winit = { version = "0.30.10", features = ["android-native-activity"] }
x doctor output:
--------------------clang/llvm toolchain--------------------
clang                +pgo,               /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/clang
clang++              +pgo,               /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/clang++
llvm-ar              unknown             /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar
llvm-lib             unknown             /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-lib
llvm-readobj         20.0.0              /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-readobj
lld                  20.0.0              /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/lld
lld-link             20.0.0              /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/lld-link
lldb                 unknown             /home/user/Android/Sdk//ndk/29.0.13113456//toolchains/llvm/prebuilt/linux-x86_64/bin/lldb
lldb-server          unknown             /usr/bin/lldb-server

----------------------------rust----------------------------
rustup               1.28.2              /usr/bin/rustup
cargo                1.88.0-nightly      /usr/bin/cargo

--------------------------android---------------------------
adb                  1.0.41              /usr/bin/adb
javac                17.0.15             /usr/bin/javac
java                 17.0.15             /usr/bin/java
kotlin               not found
gradle               not found

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions