Skip to content
This repository was archived by the owner on Jul 3, 2020. It is now read-only.
This repository was archived by the owner on Jul 3, 2020. It is now read-only.

wrong linker used #198

@s-d-m

Description

@s-d-m

when following the instruction to compile a small hello world, linking fails with the following error

/tmp/android-rs-glue_example 1 cargo-apk --verbose   build                                                                                   on w541 1 [23:57]
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/usr/share/java/groovy-all.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Compiling android_native_app_glue.c
Compiling injected-glue
Compiling glue_obj
Compiling crate
   Compiling android-rs-glue_example v0.1.0 (/tmp/android-rs-glue_example)
     Running `rustc --edition=2018 --crate-name android_rs_glue_example src/main.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 -C linker=/tmp/android-rs-glue_example/target/android-artifacts/linker_exe --extern cargo_apk_injected_glue=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libcargo_apk_injected_glue.rlib -C link-arg=--cargo-apk-gcc -C link-arg=/home/sam/code/android-ndk-r18b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc -C link-arg=--cargo-apk-gcc-sysroot -C link-arg=/home/sam/code/android-ndk-r18b/platforms/android-18/arch-arm64 -C link-arg=--cargo-apk-native-app-glue -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/android_native_app_glue.o -C link-arg=--cargo-apk-glue-obj -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/glue_obj.o -C link-arg=--cargo-apk-glue-lib -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libcargo_apk_injected_glue.rlib -C link-arg=--cargo-apk-linker-output -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/app/lib/arm64-v8a/libmain.so -C link-arg=--cargo-apk-libs-path-output -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/lib_paths -C link-arg=--cargo-apk-libs-output -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libs -C relocation-model=pic -C link-args=-no-pie -C link-args=-Wl,-Bsymbolic -C metadata=8fe9942fcafa106e -C extra-filename=-8fe9942fcafa106e --out-dir /tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps --target aarch64-linux-android -C incremental=/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/incremental -L dependency=/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps -L dependency=/tmp/android-rs-glue_example/target/debug/deps`
error: linking with `/tmp/android-rs-glue_example/target/android-artifacts/linker_exe` failed: exit code: 1
  |
  = note: "/tmp/android-rs-glue_example/target/android-artifacts/linker_exe" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-Wl,--allow-multiple-definition" "-L" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e.37i43j8jbrokw398.rcgu.o" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e.3zw5mel4fc8iqbo7.rcgu.o" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e.42qnlecgwcolhywt.rcgu.o" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e.4nzasu3yhbk5d6uo.rcgu.o" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e.4sxe9s4ytj2wzvi.rcgu.o" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e.s83i69i08sddqgh.rcgu.o" "-o" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps/android_rs_glue_example-8fe9942fcafa106e.1ipi7iaquy9lrzy4.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps" "-L" "/tmp/android-rs-glue_example/target/debug/deps" "-L" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/libstd-8b0397651fa43e12.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/libpanic_unwind-94066e43ecb3de72.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/libbacktrace_sys-52056b98a9eecffc.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/libunwind-b6080bd51f35fd8e.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/librustc_demangle-2ba62f36ea929418.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/liblibc-dfc5d93b58836279.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/liballoc-c8360312964cbc69.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/librustc_std_workspace_core-9186388f6da52053.rlib" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/libcore-e457e4a9fa25d197.rlib" "-Wl,--end-group" "/home/sam/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-linux-android/lib/libcompiler_builtins-f6b4f136e67787e4.rlib" "-Wl,-Bdynamic" "-ldl" "-llog" "-lgcc" "-lc" "-lm" "-Wl,-Bsymbolic" "--cargo-apk-gcc" "/home/sam/code/android-ndk-r18b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc" "--cargo-apk-gcc-sysroot" "/home/sam/code/android-ndk-r18b/platforms/android-18/arch-arm64" "--cargo-apk-native-app-glue" "/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/android_native_app_glue.o" "--cargo-apk-glue-obj" "/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/glue_obj.o" "--cargo-apk-glue-lib" "/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libcargo_apk_injected_glue.rlib" "--cargo-apk-linker-output" "/tmp/android-rs-glue_example/target/android-artifacts/app/lib/arm64-v8a/libmain.so" "--cargo-apk-libs-path-output" "/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/lib_paths" "--cargo-apk-libs-output" "/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libs"
  = note: clang: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument]
          /usr/bin/ld: unrecognised emulation mode: aarch64linux
          Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu elf_l1om elf_k1om i386pep i386pe
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          Error while executing gcc


error: aborting due to previous error

error: Could not compile `android-rs-glue_example`.

Caused by:
  process didn't exit successfully: `rustc --edition=2018 --crate-name android_rs_glue_example src/main.rs --color never --crate-type bin --emit=dep-info,link -C debuginfo=2 -C linker=/tmp/android-rs-glue_example/target/android-artifacts/linker_exe --extern cargo_apk_injected_glue=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libcargo_apk_injected_glue.rlib -C link-arg=--cargo-apk-gcc -C link-arg=/home/sam/code/android-ndk-r18b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc -C link-arg=--cargo-apk-gcc-sysroot -C link-arg=/home/sam/code/android-ndk-r18b/platforms/android-18/arch-arm64 -C link-arg=--cargo-apk-native-app-glue -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/android_native_app_glue.o -C link-arg=--cargo-apk-glue-obj -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/glue_obj.o -C link-arg=--cargo-apk-glue-lib -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libcargo_apk_injected_glue.rlib -C link-arg=--cargo-apk-linker-output -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/app/lib/arm64-v8a/libmain.so -C link-arg=--cargo-apk-libs-path-output -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/lib_paths -C link-arg=--cargo-apk-libs-output -C link-arg=/tmp/android-rs-glue_example/target/android-artifacts/aarch64-linux-android/libs -C relocation-model=pic -C link-args=-no-pie -C link-args=-Wl,-Bsymbolic -C metadata=8fe9942fcafa106e -C extra-filename=-8fe9942fcafa106e --out-dir /tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps --target aarch64-linux-android -C incremental=/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/incremental -L dependency=/tmp/android-rs-glue_example/target/aarch64-linux-android/debug/deps -L dependency=/tmp/android-rs-glue_example/target/debug/deps` (exit code: 1)

This happens with both aarch64-linux-android and arm-linux-androideabi as the target platform.
For information, this happens when compiling on linux with NDK_HOME set to the android-ndk-r18b folder and ANDROID_HOME set to the android-sdk-tools folder.

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