Skip to content

cc doesn't seem to respect CARGO_TARGET_{TARGET_TRIPLE}_LINKER on Android #555

Closed
@JohnTitor

Description

@JohnTitor

I've found cc >= 1.0.53 doesn't seem to respect CARGO_TARGET_{TARGET_TRIPLE}_LINKER.
In the libc crate, e pass aarch64-linux-android28-clang as CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER here: https://github.com/rust-lang/libc/blob/4d0643b769a4c1051908419e3cf25e6b46762dea/ci/docker/aarch64-linux-android/Dockerfile#L30-L33
But the test emits this failure (full log: https://github.com/rust-lang/libc/runs/1266042807?check_suite_focus=true):

  running: "aarch64-linux-android21-clang" "-O0" "-DANDROID" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-Wall" "-Wextra" "-Wall" "-Wextra" "-Werror" "-Wno-unused-parameter" "-Wno-type-limits" "-Wno-address-of-packed-member" "-Wno-unknown-warning-option" "-Wno-deprecated-declarations" "-D_GNU_SOURCE" "-o" "/checkout/target/aarch64-linux-android/debug/build/libc-test-1fbfc2c2b96c32dc/out/main.o" "-c" "/checkout/target/aarch64-linux-android/debug/build/libc-test-1fbfc2c2b96c32dc/out/main.c"
  cargo:warning=/checkout/target/aarch64-linux-android/debug/build/libc-test-1fbfc2c2b96c32dc/out/main.c:4442:24: error: use of undeclared identifier 'fmemopen'; did you mean 'freopen'?
  cargo:warning=                return fmemopen;
  cargo:warning=                       ^~~~~~~~
  cargo:warning=                       freopen
  cargo:warning=/android/ndk-aarch64/bin/../sysroot/usr/include/stdio.h:286:7: note: 'freopen' declared here
  cargo:warning=FILE* freopen(const char* __path, const char* __mode, FILE* __fp);
  cargo:warning=      ^

This means the build uses aarch64-linux-android21-clang, i.e., API 21 NDK.

I think #495 is the cause since it's released as 1.0.53, cc @Dushistov.

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