Skip to content

aarch64-linux-android target fails if using rust nightly #1128

Closed
@Nohac

Description

@Nohac

Checklist

Describe your issue

I'm not sure if this belongs here, since the same thing happens if I try compiling without cross, but I figured I'd start here and work my way down.

If I try to build any rust project using the latest rust nightly, I'm getting the following linking error:

cross build --target aarch64-linux-android
   Compiling androidbuild v0.1.0 (/project)
error: linking with `aarch64-linux-android-gcc` failed: exit status: 1
  |
  = note: "aarch64-linux-android-gcc" "/tmp/rustcZXuIpd/symbols.o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c.28jvuwflw0ats6rm.rcgu.o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c.2u3srmfk0bv538y4.rcgu.o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c.3pby2ewnttqmnytk.rcgu.o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c.41d8uq9xy8r5uuh1.rcgu.o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c.okc32n2krtvmwrv.rcgu.o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c.snltws6l1csb9t2.rcgu.o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c.if8dlr15e5s0nn.rcgu.o" "-Wl,--as-needed" "-L" "/target/aarch64-linux-android/debug/deps" "-L" "/target/debug/deps" "-L" "/rust/lib/rustlib/aarch64-linux-android/lib" "-Wl,-Bstatic" "/rust/lib/rustlib/aarch64-linux-android/lib/libstd-ca201f8924e1a745.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libpanic_unwind-7a65eafe14f452ef.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libobject-9edec975292b096b.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libmemchr-7101bcf92ac73e01.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libaddr2line-133819781a63c739.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libgimli-47df885212c9ec97.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/librustc_demangle-7b8caa98eca7572d.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libstd_detect-9a1b49175d4e38cb.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libhashbrown-0ffd5b9fedd3b1ae.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libminiz_oxide-995414520fa49f31.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libadler-3c86b51ab749f965.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_alloc-28b6d4e7d7c1f355.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libunwind-394e28c2f903c2e9.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libcfg_if-3ed771790aba2d34.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/liblibc-f211a911193b255a.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/liballoc-11386607a3accfa5.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_core-001d5bd9a65e4337.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libcore-088bc0b43b3ec677.rlib" "/rust/lib/rustlib/aarch64-linux-android/lib/libcompiler_builtins-78ef6e03d835568c.rlib" "-Wl,-Bdynamic" "-ldl" "-llog" "-lunwind" "-ldl" "-lm" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/rust/lib/rustlib/aarch64-linux-android/lib" "-o" "/target/aarch64-linux-android/debug/deps/androidbuild-3f3983647d92fd8c" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs"
  = note: /android-ndk/bin/../lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin/ld: cannot find -lunwind
          collect2: error: ld returned 1 exit status
          

error: could not compile `androidbuild` due to previous error

This works using rust stable, and it used to work with nightly, maybe one or two month ago.
I've been stuck on this for a while now, so any help would be greatly appreciated.

What target(s) are you cross-compiling for?

aarch64-linux-android

Which operating system is the host (e.g computer cross is on) running?

  • macOS
  • Windows
  • Linux / BSD
  • other OS (specify in description)

What architecture is the host?

  • x86_64 / AMD64
  • arm32
  • arm64 (including Mac M1)

What container engine is cross using?

  • docker
  • podman
  • other container engine (specify in description)

cross version

cross 0.2.4

Example

rustup update
rustup default nightly
mkdir androidbuild && cd androidbuild
cargo init .
cross build --target aarch64-linux-android

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions