Giter Club home page Giter Club logo

cargo-zigbuild's Introduction

cargo-zigbuild

CI Crates.io docs.rs PyPI Docker Image

๐Ÿš€ Help me to become a full-time open-source developer by sponsoring me on GitHub

Compile Cargo project with zig as linker for easier cross compiling.

Installation

cargo install cargo-zigbuild

You can also install it using pip which will also install ziglang automatically:

pip install cargo-zigbuild

We also provide a Docker image which has macOS SDK pre-installed in addition to cargo-zigbuild and Rust, for example to build for x86_64 macOS:

docker run --rm -it -v $(pwd):/io -w /io messense/cargo-zigbuild \
  cargo zigbuild --release --target x86_64-apple-darwin

Packaging status

Usage

  1. Install zig following the official documentation, on macOS, Windows and Linux you can also install zig from PyPI via pip3 install ziglang
  2. Install Rust target via rustup, for example, rustup target add aarch64-unknown-linux-gnu
  3. Run cargo zigbuild, for example, cargo zigbuild --target aarch64-unknown-linux-gnu

Specify glibc version

cargo zigbuild supports passing glibc version in --target option, for example, to compile for glibc 2.17 with the aarch64-unknown-linux-gnu target:

cargo zigbuild --target aarch64-unknown-linux-gnu.2.17

Note

There are various caveats with the glibc version targeting feature:

  • If you do not provide a --target, Zig is not used and the command effectively runs a regular cargo build.
  • If you specify an invalid glibc version, cargo zigbuild will not relay the warning emitted from zig cc about the fallback version selected.
  • This feature does not necessarily match the behaviour of dynamically linking to a specific version of glibc on the build host.
    • Version 2.32 can be specified, but runs on a host with only 2.31 available when it should instead abort with an error.
    • Meanwhile specifying 2.33 will correctly be detected as incompatible when run on a host with glibc 2.31.
  • Certain RUSTFLAGS like -C linker opt-out of using Zig, while -L path/to/files will have Zig ignore -C target-feature=+crt-static.
  • -C target-feature=+crt-static for statically linking to a glibc version is not supported (upstream zig cc lacks support)

macOS universal2 target

cargo zigbuild supports a special universal2-apple-darwin target for building macOS universal2 binaries/libraries on Rust 1.64.0 and later.

rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-darwin
cargo zigbuild --target universal2-apple-darwin

Note

Note that Cargo --message-format option doesn't work with universal2 target currently.

Caveats

  1. Currently only Linux, macOS and Windows gnu targets are supported, other target platforms can be added if you can make it work, pull requests are welcome.
  2. Only current Rust stable and nightly versions are regularly tested on CI, other versions may not work.

Known upstream zig issues:

  1. zig cc: parse -target and -mcpu/-march/-mtune flags according to clang: Some Rust targets aren't recognized by zig cc, for example armv7-unknown-linux-gnueabihf, workaround by using -mcpu=generic and explicitly passing target features in #58
  2. ability to link against darwin frameworks (such as CoreFoundation) when cross compiling: Set the SDKROOT environment variable to a macOS SDK path to workaround it
  3. zig misses some compiler_rt functions that may lead to undefined symbol error for certain targets. See also: zig compiler-rt status.
  4. CPU features are not passed to clang

License

This work is released under the MIT license. A copy of the license is provided in the LICENSE file.

cargo-zigbuild's People

Contributors

breezewish avatar calavera avatar chawyehsu avatar cpick avatar dependabot[bot] avatar env25 avatar haohaolee avatar hyunggyujang avatar kawadakk avatar lifthrasiir avatar lriesebos avatar matteojoliveau avatar messense avatar polarathene avatar reubenmiller avatar rtldg avatar skanehira avatar sylvestre avatar theonlyartz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cargo-zigbuild's Issues

ring fails to cross-compile to arm-unknown-linux-musleabihf

error: failed to run custom build command for `ring v0.16.20`

Caused by:
  process didn't exit successfully: `/media/psf/Home/spline/splinelogo-server-ng/target/debug/build/ring-495cf840d1f530b9/build-script-build` (exit status: 101)
  --- stdout
  OPT_LEVEL = Some("0")
  TARGET = Some("arm-unknown-linux-musleabihf")
  HOST = Some("aarch64-unknown-linux-gnu")
  CC_arm-unknown-linux-musleabihf = None
  CC_arm_unknown_linux_musleabihf = None
  TARGET_CC = Some("/home/user/.cache/cargo-zigbuild/0.6.6/zigcc-arm-unknown-linux-musleabihf.sh")
  CFLAGS_arm-unknown-linux-musleabihf = None
  CFLAGS_arm_unknown_linux_musleabihf = None
  TARGET_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("true")
  CARGO_CFG_TARGET_FEATURE = None

  --- stderr
  running "/home/user/.cache/cargo-zigbuild/0.6.6/zigcc-arm-unknown-linux-musleabihf.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-march=armv6" "-marm" "-mfpu=vfp" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-g3" "-U_FORTIFY_SOURCE" "-DNDEBUG" "-c" "-o/media/psf/Home/spline/splinelogo-server-ng/target/arm-unknown-linux-musleabihf/debug/build/ring-4cb7192578057057/out/aesv8-armx-linux32.o" "/home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/aesv8-armx-linux32.S"
  info: Available CPUs for architecture 'arm':
   arm1020e
   arm1020t
   arm1022e
   arm10e
   arm10tdmi
   arm1136j_s
   arm1136jf_s
   arm1156t2_s
   arm1156t2f_s
   arm1176jz_s
   arm1176jzf_s
   arm710t
   arm720t
   arm7tdmi
   arm7tdmi_s
   arm8
   arm810
   arm9
   arm920
   arm920t
   arm922t
   arm926ej_s
   arm940t
   arm946e_s
   arm966e_s
   arm968e_s
   arm9e
   arm9tdmi
   baseline
   cortex_a12
   cortex_a15
   cortex_a17
   cortex_a32
   cortex_a35
   cortex_a5
   cortex_a53
   cortex_a55
   cortex_a57
   cortex_a7
   cortex_a72
   cortex_a73
   cortex_a75
   cortex_a76
   cortex_a76ae
   cortex_a77
   cortex_a78
   cortex_a78c
   cortex_a8
   cortex_a9
   cortex_m0
   cortex_m0plus
   cortex_m1
   cortex_m23
   cortex_m3
   cortex_m33
   cortex_m35p
   cortex_m4
   cortex_m55
   cortex_m7
   cortex_r4
   cortex_r4f
   cortex_r5
   cortex_r52
   cortex_r7
   cortex_r8
   cortex_x1
   cyclone
   ep9312
   exynos_m1
   exynos_m2
   exynos_m3
   exynos_m4
   exynos_m5
   generic
   iwmmxt
   krait
   kryo
   mpcore
   mpcorenovfp
   neoverse_n1
   neoverse_n2
   neoverse_v1
   sc000
   sc300
   strongarm
   strongarm110
   strongarm1100
   strongarm1110
   swift
   xscale

  error: Unknown CPU: 'armv6'
  thread 'main' panicked at 'execution failed', /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/build.rs:656:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed

This same error also occurs for several other related ARMv6 targets.

Compiling for aarch64-unknown-linux-musl, x86_64-unknown-linux-musl and several other tested targets works fine.

System details:

$ cargo --version
cargo 1.59.0 (49d8809dc 2022-02-10)
$ rustup --version
rustup 1.24.3 (ce5817a94 2021-05-31)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.59.0 (9d1b2106e 2022-02-23)`
$ lsb_release --all 
LSB Version:    :core-4.1-aarch64:core-4.1-noarch
Distributor ID: Fedora
Description:    Fedora release 35 (Thirty Five)
Release:        35
Codename:       ThirtyFive

Hardcoded shebang doesn't work on NixOS

Hi! I use a Linux distro called NixOS which has a very particular filesystem layout and package management.
Tl;dr, executable are not found in the usual locations (e.g. /bin or /usr/local/bin) but must be sourced from PATH. The only executable in a standard location is /usr/bin/env.

This means that the scripts cargo-zigbuild generates do not work on NixOS because the shebang declare #!/bin/bash as the interpreter, which cannot be found.

Would you be willing to accept a PR that changes those headers to #!/usr/bin/env bash? This will work on all Linux distros and, in addition to supporting NixOS as a platform, would also cover any system with non-standard or customized bash installs.

Windows username with space breaks linking

My Windows username contains a space, resulting in this profile directory: "C:\Users\Marco Brieden".

Trying to compile my code results in this error:

โฏ cargo zigbuild --release --target x86_64-unknown-linux-gnu
   Compiling rust-resolver v0.1.0 (D:\Development\vp360\rust)
error: linking with `C:\Users\Marco Brieden\AppData\Local\cargo-zigbuild\0.16.3\zigcc-x86_64-unknown-linux-gnu.bat` failed: exit code: 1
  |
  = note: "cmd" "/c" "C:\\Users\\Marco Brieden\\AppData\\Local\\cargo-zigbuild\\0.16.3\\zigcc-x86_64-unknown-linux-gnu.bat" "-m64" "D:\\Temp\\rustcEc453k\\symbols.o" "D:\\Development\\vp360\\rust\\target\\x86_64-unknown-linux-gnu\\release\\deps\\rust_resolver-f8bda55ce059fbe0.rust_resolver.ff2b47e7-cgu.0.rcgu.o" "-Wl,--as-needed" "-L" "D:\\Development\\vp360\\rust\\target\\x86_64-unknown-linux-gnu\\release\\deps" "-L" "D:\\Development\\vp360\\rust\\target\\release\\deps" "-L" "C:\\Users\\Marco Brieden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\Marco Brieden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libcompiler_builtins-87185c5e58e44fea.rlib" "-Wl,-Bdynamic" "-llibpq" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "C:\\Users\\Marco Brieden\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib" "-o" "D:\\Development\\vp360\\rust\\target\\x86_64-unknown-linux-gnu\\release\\deps\\rust_resolver-f8bda55ce059fbe0" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-Wl,--strip-all" "-nodefaultlibs"
  = note: 'C:\Users\Marco' is not recognized as an internal or external command,
          operable program or batch file.


error: could not compile `rust-resolver` due to previous error

[bug] - Zigbuilds fails - when static linking pkg-config

Description

cargo build --target aarch64-unknown-linux-gnu -r works fine โœ…
but
cargo zigbuild --target aarch64-unknown-linux-gnu -r โŒ

Steps to reproduce

Command

rustup target add aarch64-unknown-linux-gnu
cargo zigbuild --target aarch64-unknown-linux-gnu -r

Error

The following warnings were emitted during compilation:

warning: In file included from build/expando.c:1:
warning: In file included from /usr/include/openssl/opensslv.h:109:
warning: /usr/include/openssl/macros.h:14:10: fatal error: 'openssl/opensslconf.h' file not found
warning: #include <openssl/opensslconf.h>
warning:          ^~~~~~~~~~~~~~~~~~~~~~~
warning: 1 error generated.

error: failed to run custom build command for `openssl-sys v0.9.80`

Caused by:
  process didn't exit successfully: `/app/target/release/build/openssl-sys-bc542764a529c6f7/build-script-main` (exit status: 101)
  --- stdout
  cargo:rustc-cfg=const_fn
  cargo:rustc-cfg=openssl
  cargo:rerun-if-env-changed=AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
  AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
  OPENSSL_LIB_DIR = /usr/lib/aarch64-linux-gnu
  cargo:rerun-if-env-changed=AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
  AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset
  cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
  OPENSSL_INCLUDE_DIR = /usr/include
  cargo:rustc-link-search=native=/usr/lib/aarch64-linux-gnu
  cargo:include=/usr/include
  cargo:rerun-if-changed=build/expando.c
  OPT_LEVEL = Some("3")
  TARGET = Some("aarch64-unknown-linux-gnu")
  HOST = Some("aarch64-unknown-linux-gnu")
  cargo:rerun-if-env-changed=CC_aarch64-unknown-linux-gnu
  CC_aarch64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CC_aarch64_unknown_linux_gnu
  CC_aarch64_unknown_linux_gnu = Some("/root/.cache/cargo-zigbuild/0.16.0/zigcc-aarch64-unknown-linux-gnu.sh")
  cargo:rerun-if-env-changed=CFLAGS_aarch64-unknown-linux-gnu
  CFLAGS_aarch64-unknown-linux-gnu = None
  cargo:rerun-if-env-changed=CFLAGS_aarch64_unknown_linux_gnu
  CFLAGS_aarch64_unknown_linux_gnu = None
  cargo:rerun-if-env-changed=HOST_CFLAGS
  HOST_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("neon")
  running: "/root/.cache/cargo-zigbuild/0.16.0/zigcc-aarch64-unknown-linux-gnu.sh" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-I" "/usr/include" "-Wall" "-Wextra" "-E" "build/expando.c"
  cargo:warning=In file included from build/expando.c:1:
  cargo:warning=In file included from /usr/include/openssl/opensslv.h:109:
  cargo:warning=/usr/include/openssl/macros.h:14:10: fatal error: 'openssl/opensslconf.h' file not found
  cargo:warning=#include <openssl/opensslconf.h>
  cargo:warning=         ^~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=1 error generated.
  exit status: 1

  --- stderr
  thread 'main' panicked at '
  Header expansion error:
  Error { kind: ToolExecError, message: "Command \"/root/.cache/cargo-zigbuild/0.16.0/zigcc-aarch64-unknown-linux-gnu.sh\" \"-O3\" \"-ffunction-sections\" \"-fdata-sections\" \"-fPIC\" \"-I\" \"/usr/include\" \"-Wall\" \"-Wextra\" \"-E\" \"build/expando.c\" with args \"zigcc-aarch64-unknown-linux-gnu.sh\" did not execute successfully (status code exit status: 1)." }

  Failed to find OpenSSL development headers.

  You can try fixing this setting the `OPENSSL_DIR` environment variable
  pointing to your OpenSSL installation or installing OpenSSL headers package
  specific to your distribution:

      # On Ubuntu
      sudo apt-get install libssl-dev
      # On Arch Linux
      sudo pacman -S openssl
      # On Fedora
      sudo dnf install openssl-devel
      # On Alpine Linux
      apk add openssl-dev

  See rust-openssl documentation for more information:

      https://docs.rs/openssl
  ', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.80/build/main.rs:185:13
  stack backtrace:
     0: rust_begin_unwind
               at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/std/src/panicking.rs:575:5
     1: core::panicking::panic_fmt
               at /rustc/d5a82bbd26e1ad8b7401f6a718a9c57c96905483/library/core/src/panicking.rs:64:14
     2: build_script_main::validate_headers
     3: build_script_main::postprocess
     4: build_script_main::main
     5: core::ops::function::FnOnce::call_once
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
warning: build failed, waiting for other jobs to finish...

Cannot allocate memory in static TLS block

Hi! Thanks for a great project, it has helped us a lot when building and deploying to AWS Lambda.

I get a similar error as discussed in #4,
target/release/deps/libthiserror_impl-c21f6147db4ecc92.so: cannot allocate memory in static TLS block

when I'm building with
cargo +nightly zigbuild -p lambda --release --target aarch64-unknown-linux-gnu.2.26

in a Docker container from

ARG RUST_VERSION=1.60
FROM rust:$RUST_VERSION as builder

RUN curl "https://ziglang.org/download/0.9.1/zig-linux-aarch64-0.9.1.tar.xz" | tar -J -x -C /usr/local/bin && \
    cargo install cargo-lambda --version 0.5.3 && \
    cargo install cargo-zigbuild --version 0.8.1

FROM rust:$RUST_VERSION
COPY --from=builder /usr/local/cargo/bin/cargo-lambda \
    /usr/local/cargo/bin/cargo-zigbuild \
    /usr/local/cargo/bin/
COPY --from=builder /usr/local/bin/zig-linux-aarch64-0.9.1 \
    /usr/local/bin/zig-linux-aarch64-0.9.1
RUN rustup default nightly-aarch64-unknown-linux-gnu && \
    ln -s /usr/local/bin/zig-linux-aarch64-0.9.1/zig /usr/local/bin/zig

Building without explicit glibc-version works fine, both on nightly and stable channel.

I'm not sure what the culprit is. Moving the failing code to another package does not reproduce the error, so I guess it's not the code per se. Any ideas what's the cause? Searching the internet indicates it's related to jemalloc?

I'll see if I can recreate the error with some sample code.

paths with spaces or on a secondary drive

I've discovered that I'm unable to build if the path contains spaces or is on a secondary drive.

When I run the following command in the following locations on Windows 10 x64:
cargo zigbuild --release --target aarch64-unknown-linux-gnu

  • c:\HelloWorld builds fine

  • c:\Hello World gets truncated:

error: linking with C:\Users\User\AppData\Local\cargo-zigbuild\0.9.0\zigcc-aarch64-unknown-linux-gnu.bat failed: exit code: 1

warning: FileNotFound: C:\Hello

  • d:\HelloWorld gives renaming errors:

warning: /usr/bin/ar: unable to rename 'd:\HelloWorld\target\aarch64-unknown-linux-gnu\release\build\ring-f728d5470a7d5974\out\libring-core.a'; reason: Invalid cross-device link

error: failed to run custom build command for ring v0.16.20

Issue using `async_trait` with `zigbuild` for x86_64-unknown-linux-gnu

Hi! ๐Ÿ‘‹ First of all, thanks a lot for this awesome project!

I'm trying to use cargo zigbuild with this project that uses the async_trait crate from Ubuntu on x86_64.

When I use cargo zigbuild --target aarch64-unknown-linux-gnu, it works without any error. Same with cargo build --target x86_64-unknown-linux-gnu.
However, when I run cargo zigbuild --target x86_64-unknown-linux-gnu, I get a pretty lengthy error about async functions not supported in traits, and that thiserror cannot allocate memory in static TLS block.

Error trace from compilation:

error[E0706]: functions in traits cannot be declared `async`
  --> src/event_bus/eventbridge/mod.rs:32:5
   |
32 |     #[instrument(skip(self))]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
33 |     async fn send_event(&self, event: &Self::E) -> Result<(), Error> {
   |     ----- `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
   = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0706]: functions in traits cannot be declared `async`
  --> src/event_bus/eventbridge/mod.rs:45:5
   |
45 |     #[instrument(skip(self, events))]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
46 |     async fn send_events(&self, events: &[Self::E]) -> Result<(), Error> {
   |     ----- `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
   = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0706]: functions in traits cannot be declared `async`
  --> src/event_bus/void.rs:18:5
   |
18 |       async fn send_event(&self, _: &Self::E) -> Result<(), Error> {
   |       ^----
   |       |
   |  _____`async` because of this
   | |
19 | |         Err(Error::InternalError("send_event is not supported"))
20 | |     }
   | |_____^
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/event_bus/void.rs:22:5
   |
22 |       async fn send_events(&self, _: &[Self::E]) -> Result<(), Error> {
   |       ^----
   |       |
   |  _____`async` because of this
   | |
23 | |         Err(Error::InternalError("send_events is not supported"))
24 | |     }
   | |_____^
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/event_bus/mod.rs:14:5
   |
14 |     async fn send_event(&self, event: &Self::E) -> Result<(), Error>;
   |     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |     |
   |     `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/event_bus/mod.rs:15:5
   |
15 |     async fn send_events(&self, events: &[Self::E]) -> Result<(), Error>;
   |     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |     |
   |     `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/dynamodb/mod.rs:32:5
   |
32 |     #[instrument(skip(self))]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
33 |     async fn all(&self, next: Option<&str>) -> Result<ProductRange, Error> {
   |     ----- `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
   = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/dynamodb/mod.rs:60:5
   |
60 |     #[instrument(skip(self))]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
61 |     async fn get(&self, id: &str) -> Result<Option<Product>, Error> {
   |     ----- `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
   = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/dynamodb/mod.rs:81:5
   |
81 |     #[instrument(skip(self))]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
82 |     async fn put(&self, product: &Product) -> Result<(), Error> {
   |     ----- `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
   = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/dynamodb/mod.rs:98:5
   |
98 |     #[instrument(skip(self))]
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
99 |     async fn delete(&self, id: &str) -> Result<(), Error> {
   |     ----- `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait
   = note: this error originates in the attribute macro `instrument` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/memory.rs:28:5
   |
28 |       async fn all(&self, _: Option<&str>) -> Result<ProductRange, Error> {
   |       ^----
   |       |
   |  _____`async` because of this
   | |
29 | |         Ok(ProductRange {
30 | |             products: self
31 | |                 .data
...  |
38 | |         })
39 | |     }
   | |_____^
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/memory.rs:44:5
   |
44 |       async fn get(&self, id: &str) -> Result<Option<Product>, Error> {
   |       ^----
   |       |
   |  _____`async` because of this
   | |
45 | |         Ok(self.data.read().unwrap().get(id).cloned())
46 | |     }
   | |_____^
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/memory.rs:51:5
   |
51 |       async fn put(&self, product: &Product) -> Result<(), Error> {
   |       ^----
   |       |
   |  _____`async` because of this
   | |
52 | |         self.data
53 | |             .write()
54 | |             .unwrap()
55 | |             .insert(product.id.clone(), product.clone());
56 | |         Ok(())
57 | |     }
   | |_____^
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/memory.rs:62:5
   |
62 |       async fn delete(&self, id: &str) -> Result<(), Error> {
   |       ^----
   |       |
   |  _____`async` because of this
   | |
63 | |         self.data.write().unwrap().remove(id);
64 | |         Ok(())
65 | |     }
   | |_____^
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/mod.rs:22:5
   |
22 |     async fn all(&self, next: Option<&str>) -> Result<ProductRange, Error>;
   |     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |     |
   |     `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/mod.rs:28:5
   |
28 |     async fn get(&self, id: &str) -> Result<Option<Product>, Error>;
   |     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |     |
   |     `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/mod.rs:34:5
   |
34 |     async fn put(&self, product: &Product) -> Result<(), Error>;
   |     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |     |
   |     `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error[E0706]: functions in traits cannot be declared `async`
  --> src/store/mod.rs:40:5
   |
40 |     async fn delete(&self, id: &str) -> Result<(), Error>;
   |     -----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |     |
   |     `async` because of this
   |
   = note: `async` trait functions are not currently supported
   = note: consider using the `async-trait` crate: https://crates.io/crates/async-trait

error: /home/CENSORED/projects/serverless-rust-demo/target/debug/deps/libthiserror_impl-83b2547aa6b39328.so: cannot allocate memory in static TLS block
 --> src/event_bus/eventbridge/ext.rs:2:5
  |
2 | use aws_sdk_eventbridge::model::PutEventsRequestEntry;
  |     ^^^^^^^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0706`.
error: could not compile `products` due to 19 previous errors
warning: build failed, waiting for other jobs to finish...
error: build failed

For reference, here is one of the traits that cargo zigbuild complains about:

#[async_trait]
pub trait EventBus {
    type E;

    async fn send_event(&self, event: &Self::E) -> Result<(), Error>;
    async fn send_events(&self, events: &[Self::E]) -> Result<(), Error>;
}

rust program with openssl dependencies does not work

thanks for the great project, it works like a charm for cross with linux-musl target

however, when there is openssl involved, it is no luck

take https-dns for instance

it has reqwest = { version = "0.11.10", features = ["json", "gzip", "brotli"] } which depends on openssl by default.

my host is apple m1 macOS, the command i run is

OPENSSL_DIR=/opt/homebrew/opt/openssl cargo-zigbuild zigbuild -r --target aarch64-unknown-linux-musl

the error messages are here, it is too long.

https://0x0.st/oEw_.txt

Doesn't seem to work with mustang

I tried using https://github.com/sunfishcode/mustang but I can't even manage to build the Hello World

(base) PS C:\Users\steve\rust\mustang-fun> cargo +nightly zigbuild -Z build-std --target=x86_64-mustang-linux-gnu --release                                                                                                                                                                                            
   Compiling compiler_builtins v0.1.82
   Compiling core v0.0.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
   Compiling libc v0.2.135
   Compiling cc v1.0.73
   Compiling memchr v2.5.0
   Compiling std v0.0.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std)
   Compiling libc v0.2.137
   Compiling autocfg v1.1.0
   Compiling io-lifetimes v0.7.4
   Compiling rustix v0.35.12
   Compiling log v0.4.17
   Compiling libm v0.2.5
   Compiling const_fn v0.4.9
   Compiling c-scape v0.5.1 (https://github.com/sunfishcode/mustang#77438049)
   Compiling dlmalloc v0.2.4
   Compiling mustang v0.5.1 (https://github.com/sunfishcode/mustang#77438049)                                                                                                                                                                                                                                           
   Compiling lock_api v0.4.9                                                                                                                                                                                                                                                                                           
   Compiling memoffset v0.6.5
   Compiling unwind v0.0.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\unwind)                                                                                                                                                                                      
   Compiling rustc-std-workspace-core v1.99.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)                                                                                                                                                 
   Compiling alloc v0.0.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc)                                                                                                                                                                                        
   Compiling cfg-if v0.1.10
   Compiling cfg-if v1.0.0
   Compiling adler v0.2.3
   Compiling rustc-demangle v0.1.21
   Compiling rustc-std-workspace-alloc v1.99.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-alloc)                                                                                                                                               
   Compiling panic_abort v0.0.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_abort)
   Compiling panic_unwind v0.0.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_unwind)
   Compiling gimli v0.25.0                                                                                                                                                                                                                                                                                             
   Compiling hashbrown v0.12.3
   Compiling miniz_oxide v0.4.0
   Compiling std_detect v0.1.5 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\stdarch\crates\std_detect)
   Compiling object v0.26.2
   Compiling addr2line v0.16.0                                                                                                                                                                                                                                                                                         
   Compiling proc_macro v0.0.0 (C:\Users\steve\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\proc_macro)                                                                                                                                                                              
   Compiling bitflags v1.3.2                                                                                                                                                                                                                                                                                           
   Compiling tinyvec_macros v0.1.0
   Compiling ppv-lite86 v0.2.16
   Compiling tinyvec v1.6.0                                                                                                                                                                                                                                                                                            
   Compiling unicode-bidi v0.3.8
   Compiling linux-raw-sys v0.0.46                                                                                                                                                                                                                                                                                     
   Compiling itoa v1.0.4                                                                                                                                                                                                                                                                                               
   Compiling scopeguard v1.1.0
   Compiling matches v0.1.9                                                                                                                                                                                                                                                                                            
   Compiling either v1.8.0                                                                                                                                                                                                                                                                                             
   Compiling cty v0.2.2                                                                                                                                                                                                                                                                                                
   Compiling itertools v0.9.0                                                                                                                                                                                                                                                                                          
   Compiling gimli v0.26.2                                                                                                                                                                                                                                                                                             
   Compiling getrandom v0.2.8                                                                                                                                                                                                                                                                                          
   Compiling errno v0.2.8                                                                                                                                                                                                                                                                                              
   Compiling rand_core v0.6.4                                                                                                                                                                                                                                                                                          
   Compiling realpath-ext v0.1.2                                                                                                                                                                                                                                                                                       
   Compiling cstr_core v0.2.6
   Compiling unicode-normalization v0.1.22                                                                                                                                                                                                                                                                             
   Compiling rand_chacha v0.3.1
   Compiling printf-compat v0.1.1                                                                                                                                                                                                                                                                                      
   Compiling tz-rs v0.6.14                                                                                                                                                                                                                                                                                             
   Compiling rand v0.8.5                                                                                                                                                                                                                                                                                               
   Compiling idna v0.2.3                                                                                                                                                                                                                                                                                               
   Compiling unwinding v0.1.5                                                                                                                                                                                                                                                                                          
   Compiling sync-resolve v0.3.0                                                                                                                                                                                                                                                                                       
   Compiling origin v0.5.1 (https://github.com/sunfishcode/mustang#77438049)                                                                                                                                                                                                                                           
   Compiling c-gull v0.5.1 (https://github.com/sunfishcode/mustang#77438049)                                                                                                                                                                                                                                           
   Compiling mustang-fun v0.1.0 (C:\Users\steve\rust\mustang-fun)                                                                                                                                                                                                                                                      
error: linking with `C:\Users\steve\AppData\Local\cargo-zigbuild\0.10.2\zigcc-x86_64-mustang-linux-gnu.bat` failed: exit code: 1                                                                                                                                                                                       
  |
  = note: "cmd" "/c" "C:\\Users\\steve\\AppData\\Local\\cargo-zigbuild\\0.10.2\\zigcc-x86_64-mustang-linux-gnu.bat" "-m64" "-nostartfiles" "-Wl,--undefined=_Unwind_Backtrace" "C:\\Users\\steve\\AppData\\Local\\Temp\\rustcEm1ile\\symbols.o" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\
release\\deps\\mustang_fun-81f011ff9a905cdf.mustang_fun.8bae9d4b-cgu.0.rcgu.o" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\mustang_fun-81f011ff9a905cdf.mustang_fun.8bae9d4b-cgu.1.rcgu.o" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\d
eps\\mustang_fun-81f011ff9a905cdf.mustang_fun.8bae9d4b-cgu.2.rcgu.o" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\mustang_fun-81f011ff9a905cdf.2a4lej0isk61iyoa.rcgu.o" "-Wl,--as-needed" "-L" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release
\\deps" "-L" "C:\\Users\\steve\\rust\\mustang-fun\\target\\release\\deps" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\
.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users
\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "
C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_6
4" "-L" "C:\\Users\\steve\\.cargo\\git\\checkouts\\mustang-602e93abf7520381\\7743804\\mustang\\empty\\x86_64" "-L" "src/backend/linux_raw/arch/outline/release" "-L" "C:\\Users\\steve\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-mustang-linux-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\ste
ve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libmustang-9c9a5a151a07b852.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libdlmalloc-9f40bb53198e0ee1.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\dep
s\\libunwinding-333a61a950a85e5d.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libgimli-a16f009c7c9a3b68.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libc_gull-70662ed358ccd146.rlib" "C:\\Users\\steve\\rust\\mustang-f
un\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libtz-bfa1784ea4240b79.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libprintf_compat-6d82154a92df2465.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libitertools-323
b773a9d13d913.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libeither-1f0516b6a08dbe80.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libcstr_core-3d5ed413254a8e9e.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86
_64-mustang-linux-gnu\\release\\deps\\libcty-a008847bb4948bf4.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libc_scape-c237ba384299c797.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libmemchr-80658ff1fed81db7.rlib" "C:
\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liblibm-da2c798d52935826.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\librealpath_ext-54536edc8ca8ab8e.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\
\release\\deps\\libsync_resolve-1ddc09c8ebae03c2.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liblog-976692777a8e2dbb.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\librand-c151c77c5dbc6d4b.rlib" "C:\\Users\\steve\\rus
t\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\librand_chacha-963565ec9b9f4659.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libppv_lite86-69ca4433667e852c.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps
\\librand_core-d2f276006bafe5a2.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libgetrandom-e46598fe93244a39.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libcfg_if-e6bf33a1db1e7c2d.rlib" "C:\\Users\\steve\\rust\\mustan
g-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libidna-e10e9df255fc48f5.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libunicode_normalization-c149af0bfda1c5d5.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\lib
tinyvec-624a681948e683e9.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libtinyvec_macros-071c74c36cec0892.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libunicode_bidi-3a5cdbbe87732781.rlib" "C:\\Users\\steve\\rust\\mu
stang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libmatches-a1686b25304cd99e.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liberrno-2df8716e603191e0.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liborigin-6b
3a250f89ad8254.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libmemoffset-1f2fc5bbc8e6ed8b.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\librustix-3398a1b416077203.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x8
6_64-mustang-linux-gnu\\release\\deps\\libitoa-f470785203c272f9.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libio_lifetimes-b94026a4ffd5492f.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libbitflags-795cae0878763c76.
rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liblinux_raw_sys-d868205100c5dad1.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liblock_api-025315700fe41766.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-must
ang-linux-gnu\\release\\deps\\libscopeguard-79bd3e7a4c1d35fa.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liblibc-28f551a1e485be97.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libstd-455bf6bae5554cb0.rlib" "C:\\Users
\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libpanic_unwind-d782516bc7d77e20.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libobject-d7333001febf0ec6.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\rele
ase\\deps\\libmemchr-6663ef22751588b8.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libaddr2line-251bdf24e581b8fe.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libgimli-64ba5549dd059b84.rlib" "C:\\Users\\steve\\rust\\m
ustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\librustc_demangle-10a9eae9ea300813.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libstd_detect-98d6bf123f1a144a.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\
\libcfg_if-ed86a8bdd22fcb69.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libhashbrown-53f516e050095dc3.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libminiz_oxide-bdfc826bd19bc71d.rlib" "C:\\Users\\steve\\rust\\musta
ng-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libadler-50cdd4b30489d61d.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\librustc_std_workspace_alloc-5b50d789d9d6b1de.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\dep
s\\libunwind-95af007b459b44ce.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libcfg_if-d71f1b216d47dbd1.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liblibc-0b2816f8bd5a829a.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\
target\\x86_64-mustang-linux-gnu\\release\\deps\\liballoc-323e18ddaa01be80.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\librustc_std_workspace_core-b6b74dc67f2f372c.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libcor
e-0ce2aacf5c708a33.rlib" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\libcompiler_builtins-a0bdf4cac6710abe.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "C:\\Users\\steve\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-mustang-linux-gnu\\lib" "-o" "C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\mustang_fun-81f011ff9a905cdf" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
  = note: warning: unsupported linker arg: --undefined
          warning: unsupported linker arg: _Unwind_Backtrace
          warning: unsupported linker arg: -znoexecstack
          warning: unsupported linker arg: -zrelro
          warning: unsupported linker arg: -znow
          ld.lld: error: duplicate symbol: _start
          >>> defined at C:\Users\steve\AppData\Local\zig\o\5b9314caf068aef7fbc29a6f5c9faa91\Scrt1.o:(_start)
          >>> defined at origin.4849e9ae-cgu.15
          >>>            origin-6b3a250f89ad8254.origin.4849e9ae-cgu.15.rcgu.o:(.text._start+0x0) in archive C:\\Users\\steve\\rust\\mustang-fun\\target\\x86_64-mustang-linux-gnu\\release\\deps\\liborigin-6b3a250f89ad8254.rlib
          
          C:\Users\steve\rust\mustang-fun>C:\Users\steve\.cargo\bin\cargo-zigbuild.exe zig cc -- -target x86_64-linux-gnu -g -Wl,--version-script=C:\Users\steve\AppData\Local\cargo-zigbuild\0.10.2\fcntl.map -include C:\Users\steve\AppData\Local\cargo-zigbuild\0.10.2\fcntl.h @C:\Users\steve\AppData\Local\Temp\rustcEm1ile\linker-arguments


error: could not compile `mustang-fun` due to previous error


Support custom CC/CXX args

Currently, in order to cross-compile macos targets, additional arguments are required (see ziglang/zig#1349 (comment)).
As a cargo zigbuild user, I have to manually modify the generated linker script ~/.cargo/bin/cargo-zigbuild zig c++ -- -target aarch64-macos-gnu -g $@
to e.g. ~/.cargo/bin/cargo-zigbuild zig cc -- -target aarch64-macos --sysroot=${MACOS_SDK} -I${MACOS_SDK}/usr/include -L${MACOS_SDK}/usr/lib -F${MACOS_SDK}/System/Library/Frameworks -framework Corefoundation -g $@ when I want to compile to a macos target, and link a framework. Then I manually add it to .cargo/config as the linker, along with the CC/CXX env vars, instead of simply running running cargo zigbuild --cc-args ... or something.

It would be nice to support this feature, I think, or maybe even have a couple of macos-only flags.

Can a wrapper for `cargo run` be added, too?

It would be helpful if a wrapper for cargo run was added, like how cargo zigbuild wraps cargo build. I'm running the cross-compiled binaries using qemu, and it would be a lot more seamless if something like cargo zigbuild run or cargo zig run worked. Thanks!

Panic at UnrecognizedArchitecture("native")', src/zig.rs:338:46

I had previously used zig cc with zig cc -target native-native-gnu.2.17 $@. If i try the same with cargo-zigbuild, I'm getting a panic:

$ cargo zigbuild --target native-native-gnu.2.17
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: UnrecognizedArchitecture("native")', src/zig.rs:338:46

compile failed with target `aarch64-linux-android`

Error message:

  = note: warning: unsupported linker arg: -znoexecstack
          warning: unsupported linker arg: -zrelro
          warning: unsupported linker arg: -znow
          error: libc not available
              error: run 'zig libc -h' to learn about libc installations
              error: run 'zig targets' to see the targets for which zig can always provide libc

And here is my step:

$ cargo new android-test
$ cd android-test
$ rustup target add aarch64-linux-android
$ cargo zigbuild --target aarch64-linux-android

Use `x86` instead of `i386` when compiling for i586- and i686- Rust targets on Linux

New Zig versions use x86 instead of i386 as an architecture name: ziglang/zig#13101

For Windows there is already a check for new Zig:

cargo-zigbuild/src/zig.rs

Lines 735 to 738 in f2c70a1

if zig_version.major == 0 && zig_version.minor >= 11 {
"x86"
} else {
"i386"

It was introduced in #110

For Linux cargo-zigbuild still uses "i386" unconditionally:

cargo-zigbuild/src/zig.rs

Lines 713 to 714 in f2c70a1

"i586" => ("i386", "-mcpu=pentium"),
"i686" => ("i386", "-mcpu=pentium4"),

I am filing the issue so it is easier to find the reason for those who try to compile for i686 on Linux using nightly Zig builds. There is however no need to fix this now as I plan to switch from cargo-zigbuild to my own simple wrapper here: deltachat/deltachat-core-rust#4243 Maybe it is easier to wait until Zig 0.11 release and switch to using x86 unconditionally or at least wait for someone requesting this bug to be fixed in the comment to this issue.

Is there anyway to invoke arbitary external `cargo` cmd, such as the `cargo-auditable` with `cargo-zigbuild`?

In cargo-quickinstall, we use cargo-auditable to build the crates to embed dependencies versions into the final binary so that it is auditable by crates like cargo-audit.

Currently, we creates a file called zig.sh which then calls cargo-zigbuild zig cc -- and specify it as the CC and -C linker
cargo-bins/cargo-quickinstall#180 .

It would be great if we can directly call cargo-zigbuild with cargo-auditable, e.g. cargo-zigbuild auditable ...

Question on Using `cargo-zigbuild` on Github Actions

We're currently integrating cargo-zigbuild into cross so users can use Zig as a build option. However, we're having issues with our tests on Github Actions only, and not on other platforms. You can see the branch here, and the Dockerfile, install script and the unit test.

This all works locally, however, remotely we get the following error:

 linking with `/target/.zig-cache/cargo-zigbuild/0.11.0/zigcc-aarch64-unknown-linux-gnu.sh` failed: exit status: 1
  |
  = note: "/target/.zig-cache/cargo-zigbuild/0.11.0/zigcc-aarch64-unknown-linux-gnu.sh" "/tmp/rustcnFDA50/symbols.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.hellopp.b314e6c4-cgu.0.rcgu.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.hellopp.b314e6c4-cgu.1.rcgu.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.hellopp.b314e6c4-cgu.2.rcgu.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.hellopp.b314e6c4-cgu.3.rcgu.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.hellopp.b314e6c4-cgu.4.rcgu.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.hellopp.b314e6c4-cgu.5.rcgu.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.hellopp.b314e6c4-cgu.6.rcgu.o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b.10fzz8b4ho7iorr3.rcgu.o" "-Wl,--as-needed" "-L" "/target/aarch64-unknown-linux-gnu/debug/deps" "-L" "/target/debug/deps" "-L" "/target/aarch64-unknown-linux-gnu/debug/build/hellopp-b4a65d93ae4b90e2/out" "-L" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "-lhellopp" "-Wl,-Bdynamic" "-lstdc++" "-Wl,-Bstatic" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libprofiler_builtins-b4bb8a40a3bce56c.rlib" "-Wl,--start-group" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-b812d6379bd75baf.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_unwind-c5cf7d82d7a597a0.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libobject-ce2a5d924aa49c24.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libmemchr-bdbdcabccd4adfad.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libaddr2line-32067fbbacfe8083.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgimli-d82d17b787655934.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_demangle-705e8d6262b6eeab.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd_detect-8aea905fd8ff2140.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libhashbrown-b7ecbbe7cf3e6987.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libminiz_oxide-1e24b50adc3afbb8.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libadler-370397c4344bd6c7.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-88481b0ef653f36e.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunwind-e1d352ef10278be8.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcfg_if-c683666299058001.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/liblibc-858c77b132af81a4.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/liballoc-09564a414b1e3dc2.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_core-29986b3e66a93e59.rlib" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcore-3f2c37f52ad5a7db.rlib" "-Wl,--end-group" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcompiler_builtins-722618853e6812fb.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/rust/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-o" "/target/aarch64-unknown-linux-gnu/debug/deps/hellopp-7138865ce567f34b" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs" "-u" "__llvm_profile_runtime"
  = note: warning: unsupported linker arg: -znoexecstack
          warning: unsupported linker arg: -zrelro
          warning: unsupported linker arg: -znow
          error: FileNotFound

Specifically, it seems /target/.zig-cache/cargo-zigbuild/0.11.0/zigcc-aarch64-unknown-linux-gnu.sh isn't created, for some weird reason. Everything works locally, so I'm very confused on how this works. Here's a link to the failing action. I was wondering if you had any experience with this.

The specific PR is cross-rs/cross#880, in case if the context helps. The only special things cross does here is it mounts CARGO_HOME to /cargo, and the target directory to /target. Github Actions doesn't have a Docker-in-Docker situation, so this is quite unexpected. The other is we invoke cargo-zigbuild directly, rather than use cargo zigbuild, since we download it for a specific architecture rather than build from source.

Regression: Link failed on `armv7-unknown-linux-{gnu, musl}eabihf` due to missing symbols

release-builds / armv7-unknown-linux-musleabihf

release-builds / armv7-unknown-linux-gnueabihf

This can be reproduced by running:

git clone https://github.com/cargo-bins/cargo-binstall
cd cargo-binstall

export CI=true
export JUST_FOR_RELEASE=true
export CARGO_BUILD_TARGET="armv7-unknown-linux-gnueabihf"
export GLIBC_VERSION='2.17'
export JUST_USE_CARGO_ZIGBUILD=true
just build

Or by running the following cmds on the clone:

export RUSTFLAGS='-Z share-generics -C linker-plugin-lto -C link-arg=-static-libgcc -C link-arg=-Wl,--icf=safe'

cargo-zigbuild build  --release --target armv7-unknown-linux-musleabihf -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --config='profile.release.split-debuginfo="packed"' --config=profile.release.debug=2 --features static,rustls,trust-dns,fancy-no-backtrace,zstd-thin,log_release_max_level_debug,cross-lang-fat-lto

The CI failed with several missing symbols.

Also, cargo-zigbuild failed to handle several link args:

  = note: warning: unsupported linker arg: -znoexecstack
          warning: unsupported linker arg: -plugin-opt
          warning: unsupported linker arg: O2
          warning: unsupported linker arg: -plugin-opt
          warning: unsupported linker arg: mcpu=generic
          warning: unsupported linker arg: -zrelro
          warning: unsupported linker arg: -znow
          warning: unsupported linker arg: --icf
          warning: unsupported linker arg: safe

Compiling to i686-pc-windows-gnu fails

I'm on a x86_64 Windows 10 machine trying to cross-compile my project to i686-pc-windows-gnu, but I get compile errors about unsupported linker args:

cargo new my_crate
cd my_crate
cargo zigbuild --target i686-pc-windows-gnu
   Compiling my_crate v0.1.0 (C:\Users\Glenn\my_crate)
error: linking with `C:\Users\Glenn\AppData\Local\cargo-zigbuild\0.16.2\zigcc-i686-pc-windows-gnu.bat` failed: exit code: 1
  |
  = note: "cmd" "/c" "C:\\Users\\Glenn\\AppData\\Local\\cargo-zigbuild\\0.16.2\\zigcc-i686-pc-windows-gnu.bat" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-Wl,--large-address-aware" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\rsbegin.o" "C:\\Users\\Glenn\\AppData\\Local\\Temp\\rustcDxHFJE\\symbols.o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.23lyyn0sndxnhybz.rcgu.o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.2nz5un9808a2dnge.rcgu.o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.2vq162wxuck5t53z.rcgu.o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.3xxntam8vkgyxcie.rcgu.o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.4tpb0d7omiqeb91y.rcgu.o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.55yr7govwo7idip.rcgu.o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.56jm7u0zmuzr2gq5.rcgu.o" "-L" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps" "-L" "C:\\Users\\Glenn\\my_crate\\target\\debug\\deps" "-L" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libstd-d88d969107e34835.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libpanic_unwind-7aea2d1ea53846da.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libobject-af1b81a8c2bced70.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libmemchr-a52acfeeeefbd002.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libaddr2line-259ae2238b7d7222.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libgimli-7c39f9becff746f3.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\librustc_demangle-39a14a0f9e5e3818.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libstd_detect-2f23f88d8eeb7c82.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libhashbrown-b09f7cfe8cde02a9.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libminiz_oxide-adf995cf93b93e9a.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libadler-f53887c1cc202bae.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\librustc_std_workspace_alloc-2b99a7c985d9ef87.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libunwind-7c7024dd15865d7d.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libcfg_if-a01d1a776286560f.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\liblibc-dd91bcb0fea09a87.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\liballoc-f271d1841ad4086c.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\librustc_std_workspace_core-5e6258b1c24f2e94.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libcore-e8cbede5689dc631.rlib" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\libcompiler_builtins-285d1926e3c40c9c.rlib" "-Wl,-Bdynamic" "-lkernel32" "-ladvapi32" "-luserenv" "-lkernel32" "-lws2_32" "-lbcrypt" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-L" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib" "-o" "C:\\Users\\Glenn\\my_crate\\target\\i686-pc-windows-gnu\\debug\\deps\\my_crate-9004880e2a79c5c4.exe" "-Wl,--gc-sections" "-no-pie" "-nodefaultlibs" "C:\\Users\\Glenn\\.rustup\\toolchains\\nightly-x86_64-pc-windows-gnu\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\rsend.o"
  = note: error: unsupported linker arg: --large-address-aware

Looking at the zigcc-i686-pc-windows-gnu.bat file that seems to be generated by cargo-zigbuild:

C:\Users\Glenn\.cargo\bin\cargo-zigbuild.exe zig cc -- -target i386-windows-gnu -g %*

Looks like not only that the script doesn't filter out unsupported arguments, it also provides incorrect target triplet:

> zig cc hi.c -o hi.exe -target i386-windows-gnu
error: UnknownArchitecture

The correct triplet should be x86-windows-gnu:

> zig cc hi.c -o hi.exe -target x86-windows-gnu
> hi
Hello, world!

Possibly relevant information:

> zig version
0.11.0-dev.1812+26196be34
> zig cc --version
clang version 15.0.7 (https://github.com/ziglang/zig-bootstrap a836b63c1ae8e734a0f94cc4031610adfb4bedf7)
Target: x86_64-unknown-windows-gnu
Thread model: posix
InstalledDir: C:/Users/Glenn
> cargo-zigbuild --version
cargo-zigbuild 0.16.2
> rustc --version
rustc 1.69.0-nightly (34e6673a0 2023-02-25)

rust-rocksdb cross compile failed

Hi, thanks for this awesome project, I tried build tikv forked rust-rocksdb with zigbuild on my m1 mbp with following command

git clone --recurse-submodules [email protected]:tikv/rust-rocksdb.git
cargo zigbuild --target x86_64-unknown-linux-gnu

It will throw following errors:

  running: "/Users/jiacai/Library/Caches/cargo-zigbuild/0.16.0/zigcxx-x86_64-unknown-linux-gnu.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPI
C" "-gdwarf-4" "-fno-omit-frame-pointer" "-m64" "-I" "/Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/include" "-I" "/Users/jiacai/code/mi
sc/rust-rocksdb/librocksdb_sys/rocksdb" "-I" "/Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/libtitan_sys/titan/include" "-I" "/Users/jiacai/code
/misc/rust-rocksdb/librocksdb_sys/libtitan_sys/titan" "-std=c++11" "-fno-rtti" "-DROCKSDB_PLATFORM_POSIX" "-DOS_MACOSX" "-DROCKSDB_SUPPORT_THREAD_LOCA
L" "-o" "/Users/jiacai/code/misc/rust-rocksdb/target/x86_64-unknown-linux-gnu/debug/build/librocksdb_sys-4be3ca20ecfe783e/out/crocksdb/c.o" "-c" "croc
ksdb/c.cc"
  cargo:warning=In file included from crocksdb/c.cc:16:
  cargo:warning=In file included from /Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/db/column_family.h:17:
  cargo:warning=In file included from /Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/db/memtable_list.h:16:
  cargo:warning=In file included from /Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/db/memtable.h:20:
  cargo:warning=In file included from /Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/db/dbformat.h:21:
  cargo:warning=In file included from /Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/util/coding.h:22:
  cargo:warning=In file included from /Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/port/port.h:18:
  cargo:warning=/Users/jiacai/code/misc/rust-rocksdb/librocksdb_sys/rocksdb/port/port_posix.h:30:12: fatal error: 'machine/endian.h' file not found
  cargo:warning=  #include <machine/endian.h>
  cargo:warning=           ^~~~~~~~~~~~~~~~~~
  cargo:warning=1 error generated.
  exit status: 1

  --- stderr
  CMake Warning (dev) at /opt/homebrew/Cellar/cmake/3.24.0/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:68 (mark_as_advanced):
    Policy CMP0102 is not set: The variable named "CMAKE_CXX_COMPILER" is not
    in the cache.  This results in an empty cache entry which is no longer
    created when policy CMP0102 is set to NEW.  Run "cmake --help-policy
    CMP0102" for policy details.  Use the cmake_policy command to set the
    policy and suppress this warning. 
  Call Stack (most recent call first):
    CMakeLists.txt:41 (project)
  This warning is for project developers.  Use -Wno-dev to suppress it.

Any ideas?

Cross compiling for windows from linux with lto doesn't work with nightly

Terminal output:

> cargo zigbuild --target x86_64-pc-windows-gnu --release
   Compiling mini v0.1.0 (/home/<name>/Development/rust/mini)
error: linking with `/home/<name>/.cache/cargo-zigbuild/0.12.3/zigcc-x86_64-pc-windows-gnu.sh` failed: exit status: 1
  |
  = note: "/home/<name>/.cache/cargo-zigbuild/0.12.3/zigcc-x86_64-pc-windows-gnu.sh" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "/home/<name>/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/rsbegin.o" "/tmp/rustc1jh004/symbols.o" "/home/<name>/Development/rust/mini/target/x86_64-pc-windows-gnu/release/deps/mini-8047c42c6d704752.mini.382c5343-cgu.2.rcgu.o" "-L" "/home/<name>/Development/rust/mini/target/x86_64-pc-windows-gnu/release/deps" "-L" "/home/<name>/Development/rust/mini/target/release/deps" "-L" "/home/<name>/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib" "-Wl,-Bstatic" "/home/<name>/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/libcompiler_builtins-1749d80d0a5949a6.rlib" "-Wl,-Bdynamic" "-lkernel32" "-ladvapi32" "-luserenv" "-lkernel32" "-lws2_32" "-lbcrypt" "-lgcc_eh" "-l:libpthread.a" "-lmsvcrt" "-lmingwex" "-lmingw32" "-lgcc" "-lmsvcrt" "-luser32" "-lkernel32" "-Wl,--nxcompat" "-L" "/home/<name>/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib" "-o" "/home/<name>/Development/rust/mini/target/x86_64-pc-windows-gnu/release/deps/mini-8047c42c6d704752.exe" "-Wl,--gc-sections" "-no-pie" "-Wl,-O1" "-nodefaultlibs" "/home/<name>/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-pc-windows-gnu/lib/rsend.o"
  = note: warning: unsupported linker arg: --disable-auto-image-base
          lld-link: error: undefined symbol: rust_oom
          >>> referenced by /tmp/rustc1jh004/symbols.o
          
          lld-link: error: undefined symbol: rust_begin_unwind
          >>> referenced by /tmp/rustc1jh004/symbols.o

Code:

fn main() {
    println!("Hello, world!");
}

Cargo.toml:

[package]
name = "mini"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[profile.release]
lto = true

[dependencies]

Error when building .cu files from build.rs through cc-rs

I just tried to build my project with zigbuild and got this error:

  running: "nvcc" "-ccbin=/home/user/.cache/cargo-zigbuild/0.14.3/zigcxx-x86_64-unknown-linux-musl.sh" "-Xcompiler" "-O3" "-Xcompiler" "-ffunction-sections" "-Xcompiler" "-fdata-sections" "-Xcompiler" "-fPIC" "-m64" "-I" "./src/kernels" "-Xcompiler" "-Wall" "-Xcompiler" "-Wextra" "-O2" "-gencode" "arch=compute_86,code=sm_86" "-o" "/home/user/dev/project/target/x86_64-unknown-linux-musl/release/build/project-6c65464849db21e5/out/src/kernels/cuda_kernel.o" "-c" "src/kernels/cuda_kernel.cu"
  cargo:warning=zig: warning: '-x c++' after last input file has no effect [-Wunused-command-line-argument]
  cargo:warning=zig: warning: CUDA version is newer than the latest supported version 11.5 [-Wunknown-cuda-version]
  cargo:warning=zig: error: cannot specify -o when generating multiple output files
  exit status: 1

  --- stderr

  error occurred: Command "nvcc" "-ccbin=/home/user/.cache/cargo-zigbuild/0.14.3/zigcxx-x86_64-unknown-linux-musl.sh" "-Xcompiler" "-O3" "-Xcompiler" "-ffunction-sections" "-Xcompiler" "-fdata-sections" "-Xcompiler" "-fPIC" "-m64" "-I" "./src/kernels" "-Xcompiler" "-Wall" "-Xcompiler" "-Wextra" "-O2" "-gencode" "arch=compute_86,code=sm_86" "-o" "/home/user/rustdev/project/target/x86_64-unknown-linux-musl/release/build/project-6c65464849db21e5/out/src/kernels/cuda_kernel.o" "-c" "src/kernels/cuda_kernel.cu" with args "nvcc" did not execute successfully (status code exit status: 1).

Am I doing something wrong?

Pass linker arguments on Windows with a linker @-file

When attempting to spawn the linker, Rust might go over the size limits for spawning new processes because of the large amount of information passed in the arguments list. To prevent this from happening, specially on windows where the limit is 32K, Rust will put the linker arguments in an @-file.

There are cases where Rust won't put the arguments in an @-file, but cargo-zigbuild will still fail because of going over this limit. This is caused because Zig adds additional arguments to the linker execution, which makes the execution fail.

I'd like to propose to change how the linker is spawned on Windows to capture the list of arguments and always pass them in an @-file. This way, it's be easier to prevent this problem.

The implementation could be the same that Rust uses, but implemented before calling zig cc: https://github.com/rust-lang/rust/blob/1dcff2d5077244f49687ea25070958f23bd9edc6/compiler/rustc_codegen_ssa/src/back/link.rs#L1345

You can see those failures following these links:

cargo-lambda/cargo-lambda#77
https://ci.appveyor.com/project/AWSSAMCLI/aws-lambda-builders/builds/44107059

reqwest can not cross build for target x86_64-unknown-linux-musl with tokio library

This a minimal example to reproduce the problem.

  • Cargo.toml

    [package]
    name = "reqwest-demo"
    version = "0.1.0"
    edition = "2021"
    
    [dependencies]
    reqwest = { version = "0.11.9", features = ["json", "multipart", "native-tls-vendored"] }
    tokio = { version = "1.0", features = [ "full" ] }
    
  • main.rs

    #[tokio::main]
    async fn main() {
        let response = reqwest::Client::new()
            .post("http://www.baidu.com")
            .form(&[("one", "1")])
            .send()
            .await
            .expect("send");
        println!("Response status {}", response.status());
    }
    

Notice that reqwest enables feature native-tls-vendored to let us build tls library source using zig.

To build the example, using command below

cargo-zigbuild zigbuild --target x86_64-unknown-linux-musl

The generated error is here

ld.lld: error: undefined symbol: _$LT$libc..unix..linux_like..linux..musl..sigaction$u20$as$u20$core..clone..Clone$GT$::clone::h5d005990411f7b3b
      >>> referenced by lib.rs:196 (~/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/signal-hook-registry-1.4.0/src/lib.rs:196)
      >>>               signal_hook_registry-bdc7223cbb468750.signal_hook_registry.c6e8fee1-cgu.3.rcgu.o:(_$LT$signal_hook_registry..Prev$u20$as$u20$core..clone..Clone$GT$::clone::h3790061594f1b072)

And line 196 is here

can not cross build for aarch64-apple-darwin and x86_64-apple-darwin

Rust version: rustc 1.62.1 (e092d0b6b 2022-07-16)
OS: macOS Monterey
Arch: aarch64

It fails on cross build (x86_64-apple-darwin and aarch64-apple-darwin)

$ cargo zigbuild --release --target x86_64-apple-darwin
...
error: linking with `/Users/dreamacro/Library/Caches/cargo-zigbuild/0.11.2/zigcc-x86_64-apple-darwin.sh` failed: exit status: 1
  |
  = note: "/Users/dreamacro/Library/Caches/cargo-zigbuild/0.11.2/zigcc-x86_64-apple-darwin.sh" "-m64" "-arch" "x86_64" "/var/folders/ht/jj81z6n17gv271vm6bllrz8w0000gn/T/rustcYEWEOm/symbols.o" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitchd-7ef0ef6677cc18c2.glitchd.66a11018-cgu.0.rcgu.o" "-L" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps" "-L" "/Users/dreamacro/Dev/projects/glitch-rs/target/release/deps" "-L" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/build/ring-a894445f88a9a04c/out" "-L" "/Users/dreamacro/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/var/folders/ht/jj81z6n17gv271vm6bllrz8w0000gn/T/rustcYEWEOm/libring-cc28e94b2a7ffb3d.rlib" "/Users/dreamacro/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-68d0fd74539b07e1.rlib" "-framework" "Security" "-liconv" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/dreamacro/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitchd-7ef0ef6677cc18c2" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: warning: unsupported linker arg: -dead_strip
          warning(link): framework not found for '-framework Security'
          warning(link): Framework search paths:
          warning(link): unable to resolve dependency /usr/lib/libcharset.1.dylib
          error(link): undefined reference to symbol '_kSecRandomDefault'
          error(link):   first referenced in '/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitchd-7ef0ef6677cc18c2.glitchd.66a11018-cgu.0.rcgu.o'
          error(link): undefined reference to symbol '_SecRandomCopyBytes'
          error(link):   first referenced in '/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitchd-7ef0ef6677cc18c2.glitchd.66a11018-cgu.0.rcgu.o'
          error: UndefinedSymbolReference
          
  = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

error: could not compile `glitch` due to previous error
warning: build failed, waiting for other jobs to finish...
error: linking with `/Users/dreamacro/Library/Caches/cargo-zigbuild/0.11.2/zigcc-x86_64-apple-darwin.sh` failed: exit status: 1
  |
  = note: "/Users/dreamacro/Library/Caches/cargo-zigbuild/0.11.2/zigcc-x86_64-apple-darwin.sh" "-m64" "-arch" "x86_64" "/var/folders/ht/jj81z6n17gv271vm6bllrz8w0000gn/T/rustcztjxHF/symbols.o" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitch-4648c56b6280f928.glitch.de0635cd-cgu.0.rcgu.o" "-L" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps" "-L" "/Users/dreamacro/Dev/projects/glitch-rs/target/release/deps" "-L" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/build/ring-a894445f88a9a04c/out" "-L" "/Users/dreamacro/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "/var/folders/ht/jj81z6n17gv271vm6bllrz8w0000gn/T/rustcztjxHF/libring-cc28e94b2a7ffb3d.rlib" "/Users/dreamacro/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-68d0fd74539b07e1.rlib" "-framework" "Security" "-liconv" "-lSystem" "-lresolv" "-lc" "-lm" "-liconv" "-L" "/Users/dreamacro/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitch-4648c56b6280f928" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: warning: unsupported linker arg: -dead_strip
          warning(link): framework not found for '-framework Security'
          warning(link): Framework search paths:
          warning(link): unable to resolve dependency /usr/lib/libcharset.1.dylib
          error(link): undefined reference to symbol '_kSecRandomDefault'
          error(link):   first referenced in '/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitch-4648c56b6280f928.glitch.de0635cd-cgu.0.rcgu.o'
          error(link): undefined reference to symbol '_SecRandomCopyBytes'
          error(link):   first referenced in '/Users/dreamacro/Dev/projects/glitch-rs/target/x86_64-apple-darwin/release/deps/glitch-4648c56b6280f928.glitch.de0635cd-cgu.0.rcgu.o'
          error: UndefinedSymbolReference
          
  = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

seems it's a zig linker args issue: ziglang/zig#10999?

DLL import library for -lwindows not found

Failed to compile crates with windows-rs dependency for x86_64-pc-windows-gnu target:

 = note: warning: unsupported linker arg: --disable-auto-image-base
          error(link): DLL import library for -lwindows not found
          error: DllImportLibraryNotFound

related link arguments:

"-Wl,-Bdynamic" "-lkernel32" "-lwindows"

Looks like libwindows.a should be statically linked but somehow -Wl,-Bdynamic instructs it to link dynamically.

[Question] failing cargo install in docker container

@messense thank you so much for making this project.

I am rust-lang newbie, trying to install cargo install cargo-zigbuild in alpine:3.17 docker container. The cargo install fails technically getting killed, I also don't see any logs :( . the same steps works on a arm64 setup.

any thoughts here is appreciated.

is bash really required?

hi :)

I am using cargo-zigbuild within my container-image and i was wondering if using sh instead of bash would be a more platform-agnostic solution.

Aweome project! Thanks a lot for that!

be more specific on missing compiler_rt functions/compiler_rt support status

Would be nice to mention which ones are supported can be derived from https://github.com/ziglang/zig/blob/master/lib/compiler_rt/README.md

More concrete, from the libgcc runtime functions (Integer library routines and Soft float library routines all except addv, subv, mulv are supported.
See in the table __addvsi3 and the followup symbols.

Reason being is that the build system changes alot, so I haven't integrated the panic testrunner yet ziglang/zig#14351 (besides other shennanigans I'd like to cleanup first like os.zig still containing the non-portable posix stuff).

The following deviating compiler_rt symbols are (partially) supported: ARM , PPC and SPARC but support is incomplete. For example, there is ziglang/zig#14634 for ARM (albeit my list is not complete).

That way, if somebody has a use case, they can just drop by and implement the missing ones.

WASM/WASI support

Consider adding support to build for WASM/WASI rust targets.

I might PR for this in the future, but I am not sure at the moment.

Hyper doesn't compile on Windows

I'm trying to get lambda's cross compiled from Windows, but Hyper doesn't compile. This is the command I'm running:

cargo zigbuild --target x86_64-unknown-linux-gnu

This is the error I get:

error: linking with `C:\Users\David\AppData\Local\cargo-zigbuild\0.7.1\zigcc-x86_64-unknown-linux-gnu.bat` failed: exit code: 1
  |
  = note: "cmd" "/c" "C:\\Users\\David\\AppData\\Local\\cargo-zigbuild\\0.7.1\\zigcc-x86_64-unknown-linux-gnu.bat" "-Wl,--version-script=C:\\Users\\David\\AppData\\Local\\Temp\\rustcBfSKrw\\list" "-m64" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.0.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.1.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.10.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.11.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.12.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.13.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.14.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.15.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.2.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.3.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.4.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.5.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.6.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.7.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.8.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.hyper.9c56e948-cgu.9.rcgu.o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\hyper-a3ceaca0fe19e4ae.30iiph2vv7xf7rj3.rcgu.o" "-Wl,--as-needed" "-L" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps" "-L" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\debug\\deps" "-L" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib" "-Wl,-Bstatic" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libwant-6f6b80b5acd6c333.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libtry_lock-d463028f546b77d8.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libhttparse-17e6cd9c9d51a0f7.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libtower_service-9d10274c59f79817.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libtracing-b31a734a14e07ca7.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libtracing_core-ce0522a06afb5ff6.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\liblazy_static-a101dcbbd9208dc9.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libfutures_channel-205b405aa09a03de.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libhttp_body-969942b67bff3876.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libfutures_util-1585f325ea9e543d.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libfutures_task-f187086c1382bed4.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libpin_utils-069dd472515e27fe.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libfutures_core-15a58419a1ec4e10.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libtokio-d644474d183ff20e.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libsignal_hook_registry-a577d5a4ebbd1072.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libnum_cpus-ac82136655d3b0cb.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libsocket2-ba9247de89691139.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libmemchr-87d6a79ae26f3690.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libonce_cell-cccc8673477a2884.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libmio-e55bd982eca75091.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\liblog-c7f1d40649fa6c96.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libparking_lot-53e7b6602ffa37b3.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libparking_lot_core-f5bba565300ff4c6.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\liblibc-d9d14f13c12dd44d.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libcfg_if-d9ef7e33fd9e2d30.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libsmallvec-1aeb4da4e0546b65.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\liblock_api-f8c63b790cdbfec6.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libscopeguard-396d00592f4faa1b.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libpin_project_lite-faeddb0124ad0b51.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libhttpdate-40a77750eec4a429.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libhttp-286f538cab86a69e.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libitoa-b42473cb0ca0ae86.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libbytes-19ce06722923fd7f.rlib" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libfnv-f5d9b62de96e69dc.rlib" "-Wl,--start-group" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libstd-a46a068050a12a4b.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libpanic_unwind-1df56095db9453cb.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libminiz_oxide-9062de483386e50b.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libadler-b988ab269ff13602.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libobject-1bc822d886d4f7bd.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libmemchr-963eca8df4c224a6.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libaddr2line-d805b480c9102e58.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libgimli-06dfdbc22b935051.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libstd_detect-d7523a4d118e6572.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\librustc_demangle-5d7898c7fac3a07d.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libhashbrown-8c2bdbab4845bf3d.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\librustc_std_workspace_alloc-d578639df0547b30.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libunwind-58bbb7b1efa3a5e2.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libcfg_if-4c9b082d197c16f8.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\liblibc-70f9ed6d8e7a5ce6.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\liballoc-8c0a241d0360fa53.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\librustc_std_workspace_core-bad7ed93fdd31371.rlib" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libcore-98b4d121af2b7335.rlib" "-Wl,--end-group" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib\\libcompiler_builtins-1d9f7e5920635d15.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "C:\\Users\\David\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\x86_64-unknown-linux-gnu\\lib" "-o" "C:\\Users\\David\\source\\repos\\basic-lambda\\target\\x86_64-unknown-linux-gnu\\debug\\deps\\libhyper-a3ceaca0fe19e4ae.so" "-Wl,--gc-sections" "-shared" "-Wl,-zrelro,-znow" "-nodefaultlibs"
  = note: Error: Failed to run `zig cc`

          Caused by:
              program not found

          C:\Users\David\.cargo\registry\src\github.com-1ecc6299db9ec823\hyper-0.14.17>C:\Users\David\.cargo\bin\cargo-zigbuild.exe zig cc -- -target x86_64-linux-gnu -g -Wl,--version-script=C:\Users\David\AppData\Local\cargo-zigbuild\0.7.1\fcntl.map -include C:\Users\David\AppData\Local\cargo-zigbuild\0.7.1\fcntl.h @C:\Users\David\AppData\Local\Temp\rustcBfSKrw\linker-arguments


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

I put the code I'm trying to compile in a github repo, it's a basic lambda function: https://github.com/calavera/basic-lambda

It's probably the same problem that I solved in #22, but I don't know why it fails when it arrives to Hyper, and not before.

Mac linking fails

At Action run https://github.com/C0D3-M4513R/magma_tag_scraper/actions/runs/4126353910/jobs/7128168745
for commit C0D3-M4513R/magma_tag_scraper@a607c6b:

error: linking with `/home/runner/.cache/cargo-zigbuild/0.15.0/zigcc-x86_64-apple-darwin.sh` failed: exit status: 1
  |
  = note: "/home/runner/.cache/cargo-zigbuild/0.15.0/zigcc-x86_64-apple-darwin.sh" "-arch" "x86_64" "-m64" "/tmp/rustckLJ6nL/symbols.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.0.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.1.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.10.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.11.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.12.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.13.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.14.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.15.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.2.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.3.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.4.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.5.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.6.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.7.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.8.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.magma_scraper.bfbdf11d-cgu.9.rcgu.o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64.n93lho7jlob5mge.rcgu.o" "-L" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps" "-L" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/release/deps" "-L" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/build/ring-ebf615c7c786b125/out" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libserde_json-9e8d57fb94768537.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libsimple_logger-39df21bdfa85c60e.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtime-7c565cc516514ca6.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libnum_threads-e7d9e38134761c66.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtime_core-41b16529597ec41d.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libcolored-20370cae6f5f5bfe.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/liblazy_static-f6fbdce769962b55.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libatty-3f77a26f4cca28cb.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libreqwest-3abbc580e57fc343.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/librustls_pemfile-a6c6f0875e3d115a.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libhyper_rustls-5430000a2aff6d61.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libserde_urlencoded-ebedba5b59a7ed71.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libryu-979d0ccc44566af7.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libwebpki_roots-b32918ff49ae448d.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libbase64-993548f300f35987.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libipnet-a6ade232cfebb362.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtokio_rustls-654c6a016f509b39.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libmime-6f6cf583163c407c.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libencoding_rs-e92bc8270e0e4e38.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/librustls-4d6a64715686f70b.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libsct-0da43142338277db.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libwebpki-3863b5856648a49d.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libring-5f725e75f23e84b6.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libspin-e8a97fc3dce99efc.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libuntrusted-73bb4862df7f489d.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libhyper-b7abfa7c79070278.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libwant-cb93cf12a956d0af.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtry_lock-be88ac22f0d21c21.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libhttparse-cc54d7f30c2124a1.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libh2-2b3ca86777bffbc8.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libindexmap-a0ac185e8fbe43a0.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libhashbrown-57ff20ac1d591ba8.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libslab-a083f4e24e62a2bd.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtokio_util-98d1176fbafdea7b.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libfutures_sink-31fe32433bd5637a.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtower_service-f90eb9734d5a9945.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtracing-5e3f326a06f4a9de.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtracing_core-970d9dd557eeef1f.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libonce_cell-8e56fe255edb04d5.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libfutures_channel-b4b26e62278c50c0.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libfutures_util-a2e34836ab97f8fb.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libfutures_task-bc5a2021863707ae.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libpin_utils-f036faf71461f927.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libhttp_body-f65dbe9412997982.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libfutures_core-3c9abdeefe3b793c.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/liburl-9039cad82d8f0fea.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libidna-8a9f88f9e585b7f2.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libunicode_normalization-3be88727850732ee.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtinyvec-c1b2b0fa73721d19.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtinyvec_macros-3c6760529605e2ad.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libunicode_bidi-bb9619592a052fb8.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libform_urlencoded-47b4a0323ddf1870.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libpercent_encoding-7b05b4bf915ff1ec.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libhttp-7910b2bf60cee37b.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libitoa-1c9ff784a4925115.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libfnv-63d693ba6bb6068a.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libserde-a05baa2c67e38a70.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libtokio-36925738f246f5fc.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libsignal_hook_registry-adaba1078411a21f.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libnum_cpus-c65dcd61ba83f3ea.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libsocket2-dbd24d2521794a93.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libmemchr-6a9bf602abf98d2e.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libbytes-17a6038d14c9c69b.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libmio-ff716c0833c2c1d5.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/liblog-f5b2b4f0f086eb3c.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libpin_project_lite-b3c66766dad0adfc.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libparking_lot-d560787bce88baa2.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libparking_lot_core-4ec55c340dffed7f.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/liblibc-735eab5c808bc38a.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libcfg_if-7545b77b83a8ad66.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libsmallvec-57c8b656126353c0.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/liblock_api-e0f1d5490ada61a2.rlib" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libscopeguard-e2ff0a1b523369d3.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libstd-c84f81b3d1a36b6e.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-5398d4db8ed2ff6f.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libobject-478a76a3581fca81.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libmemchr-6876f637b366443d.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libaddr2line-539c7e906abde336.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libgimli-83399a3f8aaf8f32.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/librustc_demangle-ffb3dc98877a45b4.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libstd_detect-067f58df60a72a89.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libhashbrown-faef232906858087.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libminiz_oxide-4f1ed014f3c75703.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libadler-749b556aef66aa6c.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_alloc-0b3b0361e5f0a714.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libunwind-72e9a1e277d7769c.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libcfg_if-357e8106cf3b63d5.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/liblibc-90980575ee007a80.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/liballoc-b73946858ff9839c.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/librustc_std_workspace_core-6dd5c0cef5b5f8b3.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libcore-7d2b712101daf86c.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-9b0bf4523e9805e9.rlib" "-framework" "Security" "-liconv" "-lSystem" "-lc" "-lm" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-apple-darwin/lib" "-o" "/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/magma_scraper-163a2593437bde64" "-Wl,-dead_strip" "-nodefaultlibs"
  = note: warning(link): framework not found for '-framework Security'
          warning(link): Framework search paths:
          error(link): undefined reference to symbol '_kSecRandomDefault'
          error(link):   first referenced in '/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libring-5f725e75f23e84b6.rlib(ring-5f725e75f23e84b6.ring.5c7820ff-cgu.1.rcgu.o)'
          error(link): undefined reference to symbol '_SecRandomCopyBytes'
          error(link):   first referenced in '/home/runner/work/magma_tag_scraper/magma_tag_scraper/target/x86_64-apple-darwin/release/deps/libring-5f725e75f23e84b6.rlib(ring-5f725e75f23e84b6.ring.5c7820ff-cgu.1.rcgu.o)'
          error: UndefinedSymbolReference
          
  = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
  = note: use the `-l` flag to specify native libraries to link
  = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)

error: could not compile `magma-scraper` due to previous error
Error: The process '/home/runner/.cargo/bin/cargo' failed with exit code 101

Include path weirdness with SDKROOT

Hi there! ๐Ÿ‘‹

I'm trying to use cargo-zigbuild for cross-compilation, and running into problems that look like headers are being (I think) inappropriately included from the build host's sysroot. But I don't really understand what's going on, so I don't even know if the issue is with cargo-zigbuild or somewhere else.

Environment

Build host is Linux on x86-64:

~/Projects/scratch/macos-cross-issue took 2s> uname -a
Linux prism 5.13.0-37-generic #42-Ubuntu SMP Tue Mar 15 14:34:06 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
~/Projects/scratch/macos-cross-issue> cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=21.10
DISTRIB_CODENAME=impish
DISTRIB_DESCRIPTION="Ubuntu 21.10"

Versions of things:

~/Projects/scratch/cross-compilation-is-hard> rustc --version
rustc 1.60.0 (7737e0b5c 2022-04-04)
~/Projects/scratch/cross-compilation-is-hard> cargo --version
cargo 1.60.0 (d1fd9fe 2022-03-01)
~/Projects/scratch/cross-compilation-is-hard> zig version
0.9.1
~/Projects/scratch/cross-compilation-is-hard> which zig
/snap/bin/zig
~/Projects/scratch/cross-compilation-is-hard> cargo-zigbuild --version
cargo-zigbuild 0.8.1

I am targeting M1 (aarch64) Mac.

Minimal reproduction

cargo new cross-compilation-is-hard
cd cross-compilation-is-hard/
echo '"libz-sys" = "1.1.3"' >> Cargo.toml
SDKROOT=/opt/MacOSX11.3.sdk cargo zigbuild --target=aarch64-apple-darwin

That gives me this output:

Expand for full build output
~/Projects/scratch/cross-compilation-is-hard> SDKROOT=/opt/MacOSX11.3.sdk cargo zigbuild --target=aarch64-apple-darwin
Compiling pkg-config v0.3.25
Compiling libc v0.2.122
Compiling cc v1.0.73
Compiling libz-sys v1.1.5
The following warnings were emitted during compilation:

warning: In file included from src/zlib/adler32.c:8:
warning: In file included from src/zlib/zutil.h:22:
warning: In file included from src/zlib/zlib.h:34:
warning: In file included from src/zlib/zconf.h:418:
warning: /usr/include/limits.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
warning: #include <bits/libc-header-start.h>
warning:          ^~~~~~~~~~~~~~~~~~~~~~~~~~
warning: 1 error generated.

error: failed to run custom build command for `libz-sys v1.1.5`

Caused by:
process didn't exit successfully: `/home/jeff/Projects/scratch/cross-compilation-is-hard/target/debug/build/libz-sys-20f025d1dcfd6497/build-script-build` (exit status: 1)
--- stdout
cargo:rerun-if-env-changed=LIBZ_SYS_STATIC
cargo:rerun-if-changed=build.rs
cargo:rerun-if-env-changed=ZLIB_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS_aarch64_apple_darwin
cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_ALLOW_CROSS
cargo:rerun-if-env-changed=PKG_CONFIG_ALLOW_CROSS
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_aarch64_apple_darwin
cargo:rerun-if-env-changed=TARGET_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64-apple-darwin
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_aarch64_apple_darwin
cargo:rerun-if-env-changed=TARGET_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
cargo-warning=pkg-config has not been configured to support cross-compilation.

Install a sysroot for the target platform and configure it via
PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_PATH, or install a
cross-compiling wrapper for pkg-config and set it via
PKG_CONFIG environment variable.
TARGET = Some("aarch64-apple-darwin")
OPT_LEVEL = Some("0")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
running: "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "src/zlib" "-fvisibility=hidden" "-DSTDC" "-D_LARGEFILE64_SOURCE" "-D_POSIX_SOURCE" "-D_C99_SOURCE" "-o" "/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/libz-sys-2dcaba7036833c35/out/lib/src/zlib/adler32.o" "-c" "src/zlib/adler32.c"
cargo:warning=In file included from src/zlib/adler32.c:8:
cargo:warning=In file included from src/zlib/zutil.h:22:
cargo:warning=In file included from src/zlib/zlib.h:34:
cargo:warning=In file included from src/zlib/zconf.h:418:
cargo:warning=/usr/include/limits.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
cargo:warning=#include <bits/libc-header-start.h>
cargo:warning=         ^~~~~~~~~~~~~~~~~~~~~~~~~~
cargo:warning=1 error generated.
exit status: 1

--- stderr


error occurred: Command "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "src/zlib" "-fvisibility=hidden" "-DSTDC" "-D_LARGEFILE64_SOURCE" "-D_POSIX_SOURCE" "-D_C99_SOURCE" "-o" "/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/libz-sys-2dcaba7036833c35/out/lib/src/zlib/adler32.o" "-c" "src/zlib/adler32.c" with args "zigcc-aarch64-apple-darwin.sh" did not execute successfully (status code exit status: 1).

The most interesting part seems to be:

warning: In file included from src/zlib/adler32.c:8:
warning: In file included from src/zlib/zutil.h:22:
warning: In file included from src/zlib/zlib.h:34:
warning: In file included from src/zlib/zconf.h:418:
warning: /usr/include/limits.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
warning: #include <bits/libc-header-start.h>
warning:          ^~~~~~~~~~~~~~~~~~~~~~~~~~
warning: 1 error generated.

...and...

cargo-warning=pkg-config has not been configured to support cross-compilation.

Install a sysroot for the target platform and configure it via
PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_PATH, or install a
cross-compiling wrapper for pkg-config and set it via
PKG_CONFIG environment variable.

And indeed if I change the invocation to this:

PKG_CONFIG_SYSROOT_DIR=/opt/MacOSX11.3.sdk cargo zigbuild --target=aarch64-apple-darwin

Or this:

PKG_CONFIG_SYSROOT_DIR=/opt/MacOSX11.3.sdk SDKROOT=/opt/MacOSX11.3.sdk cargo zigbuild --target=aarch64-apple-darwin

Then the minimal reproduction builds. So my first question would be: should cargo-zigbuild be settings the PKG_CONFIG_SYSROOT_DIR based on SDKROOT?

Second, this workaround doesn't work for all dependencies. If I replace "libz-sys" with "ring"...

# "libz-sys" = "1.1.3"
ring = "0.16.20"

...then I get this:

Expand for full build output
cargo clean && PKG_CONFIG_SYSROOT_DIR=/opt/MacOSX11.3.sdk SDKROOT=/opt/MacOSX11.3.sdk cargo zigbuild --target=aarch64-apple-darwin
Compiling cc v1.0.73
Compiling untrusted v0.7.1
Compiling ring v0.16.20
error: failed to run custom build command for `ring v0.16.20`

Caused by:
process didn't exit successfully: `/home/jeff/Projects/scratch/cross-compilation-is-hard/target/debug/build/ring-f696b55488b2d439/build-script-build` (exit status: 101)
--- stdout
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None
OPT_LEVEL = Some("0")
TARGET = Some("aarch64-apple-darwin")
HOST = Some("x86_64-unknown-linux-gnu")
CC_aarch64-apple-darwin = None
CC_aarch64_apple_darwin = Some("/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh")
CFLAGS_aarch64-apple-darwin = None
CFLAGS_aarch64_apple_darwin = None
TARGET_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
DEBUG = Some("true")
CARGO_CFG_TARGET_FEATURE = None

--- stderr
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/aesv8-armx-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/aesv8-armx-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/ghashv8-armx-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/ghashv8-armx-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/vpaes-armv8-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/vpaes-armv8-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/armv8-mont-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/armv8-mont-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/chacha-armv8-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/chacha-armv8-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/ecp_nistz256-armv8-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/ecp_nistz256-armv8-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/ghash-neon-armv8-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/ghash-neon-armv8-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/sha512-armv8-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/sha512-armv8-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/sha256-armv8-ios64.o" "/home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/pregenerated/sha256-armv8-ios64.S"
running "/home/jeff/.cache/cargo-zigbuild/0.8.1/zigcc-aarch64-apple-darwin.sh" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-g" "-fno-omit-frame-pointer" "-arch" "arm64" "-I" "include" "-Wall" "-Wextra" "-std=c1x" "-Wbad-function-cast" "-Wnested-externs" "-Wstrict-prototypes" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-fstack-protector" "-gfull" "-DNDEBUG" "-c" "-o/home/jeff/Projects/scratch/cross-compilation-is-hard/target/aarch64-apple-darwin/debug/build/ring-9e849a6d6158d1f2/out/aes_nohw.o" "crypto/fipsmodule/aes/aes_nohw.c"
In file included from crypto/fipsmodule/aes/aes_nohw.c:15:
In file included from include/GFp/aes.h:52:
In file included from include/GFp/base.h:66:
/usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
#include <bits/libc-header-start.h>
        ^~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
thread 'main' panicked at 'execution failed', /home/jeff/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.16.20/build.rs:656:9
stack backtrace:
    0: std::panicking::begin_panic
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/std/src/panicking.rs:616:12
    1: build_script_build::run_command
            at ./build.rs:656:9
    2: build_script_build::compile
            at ./build.rs:512:13
    3: build_script_build::build_library::{{closure}}
            at ./build.rs:447:18
    4: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:280:13
    5: core::option::Option<T>::map
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/option.rs:906:29
    6: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/iter/adapters/map.rs:103:9
    7: alloc::vec::Vec<T,A>::extend_desugared
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/alloc/src/vec/mod.rs:2649:35
    8: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/alloc/src/vec/spec_extend.rs:18:9
    9: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/alloc/src/vec/spec_from_iter_nested.rs:43:9
    10: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/alloc/src/vec/spec_from_iter.rs:33:9
    11: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/alloc/src/vec/mod.rs:2552:9
    12: core::iter::traits::iterator::Iterator::collect
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/iter/traits/iterator.rs:1778:9
    13: build_script_build::build_library
            at ./build.rs:443:16
    14: build_script_build::build_c_code::{{closure}}
            at ./build.rs:416:9
    15: <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::for_each
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/slice/iter/macros.rs:211:21
    16: build_script_build::build_c_code
            at ./build.rs:415:5
    17: build_script_build::ring_build_rs_main
            at ./build.rs:279:5
    18: build_script_build::main
            at ./build.rs:240:13
    19: core::ops::function::FnOnce::call_once
            at /rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Again, the most interesting bit here seems to be this:

  In file included from crypto/fipsmodule/aes/aes_nohw.c:15:
  In file included from include/GFp/aes.h:52:
  In file included from include/GFp/base.h:66:
  /usr/include/stdint.h:26:10: fatal error: 'bits/libc-header-start.h' file not found
  #include <bits/libc-header-start.h>
           ^~~~~~~~~~~~~~~~~~~~~~~~~~

So I'm left wondering... should anything even be able to include /usr/include/stdint.h at all here? And if not, how is that happening?

Also, this might be a red herring, but I found that it seemed to happen for more dependencies if the zig on my path was the actual zig compiler rather than the Snap wrapper, which made no sense to me because I couldn't figure out how the Snap wrapper would be altering the environment in any meaningful way. I can dig in and make a minimal reproduction of that weirdness if you think that might be helpful.

Thanks! ๐Ÿ˜Š

Add `zig ar` and `zig ranlib` support

warning: /usr/bin/ar: unable to rename 'd:\HelloWorld\target\aarch64-unknown-linux-gnu\release\build\ring-f728d5470a7d5974\out\libring-core.a'; reason: Invalid cross-device link

This might be caused by whatever is providing that /usr/bin/ar/ar.exe.

I ended up making a zigar.bat file with zig ar --format=gnu %* inside to be my AR environment variable and that seems to work fine with my D:/ code folder builds.

Originally posted by @rtldg in #42 (comment)

New linking error on `cargo-zigbuild` 0.16.2: Different target armv7 and armv6kz is linked together

From rust-lang/rust#108392 (comment)

echo "env RUSTFLAGS=$RUSTFLAGS"
env RUSTFLAGS=-Z share-generics -C linker-plugin-lto  -C link-arg=-Wl,--icf=safe
cargo-zigbuild build  --release --target armv7-unknown-linux-gnueabihf.2.17 -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --config='profile.release.split-debuginfo="packed"' --config=profile.release.debug=2 --features static,rustls,trust-dns,fancy-no-backtrace,zstd-thin,log_release_max_level_debug,cross-lang-fat-lto
   Compiling cargo-binstall v0.20.1 (/Users/nobodyxu/Dev/cargo-binstall/crates/bin)
error: linking with `/Users/nobodyxu/Library/Caches/cargo-zigbuild/0.16.2/zigcc-armv7-unknown-linux-gnueabihf.2.17.sh` failed: exit status: 1
  |
  = note: LC_ALL="C" PATH="/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin:/Users/nobodyxu/.wasmer/bin:/Users/nobodyxu/.wasmtime/bin:/Users/nobodyxu/.local/bin:/Users/nobodyxu/Library/Python/3.10/bin:/Users/nobodyxu/Library/Python/3.9/bin:/opt/homebrew/opt/llvm/bin:/Users/nobodyxu/Library/Python/3.8/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/nobodyxu/.cargo/bin:/Users/nobodyxu/.wasmer/globals/wapm_packages/.bin" VSLANG="1033" "/Users/nobodyxu/Library/Caches/cargo-zigbuild/0.16.2/zigcc-armv7-unknown-linux-gnueabihf.2.17.sh" "/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/symbols.o" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/deps/cargo_binstall-034005960a70ec2c.cargo_binstall.c1e0cf3f-cgu.0.rcgu.o" "-Wl,--as-needed" "-L" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/deps" "-L" "/Users/nobodyxu/Dev/cargo-binstall/target/release/deps" "-L" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/build/bzip2-sys-e260e71e9683d6c2/out/lib" "-L" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/build/lzma-sys-7bf6d81e3ac313d8/out" "-L" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/build/zstd-sys-a94ed1b6652639e9/out" "-L" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/build/ring-4a2871aa10ce2276/out" "-L" "/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "-Wl,-Bstatic" "/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib" "/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/liblzma_sys-3f4791b9f78b1a3d.rlib" "/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libbzip2_sys-f100c6f9c714fbe5.rlib" "/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libring-92a2bff5da05ef49.rlib" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/deps/libcompiler_builtins-ea9bd470e6fc855d.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-Wl,-plugin-opt=O2,-plugin-opt=mcpu=generic" "-L" "/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/armv7-unknown-linux-gnueabihf/lib" "-o" "/Users/nobodyxu/Dev/cargo-binstall/target/armv7-unknown-linux-gnueabihf/release/deps/cargo_binstall-034005960a70ec2c" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-Wl,--strip-all" "-nodefaultlibs" "-Wl,--icf=safe"
  = note: warning: unsupported linker arg: -plugin-opt
          warning: unsupported linker arg: O2
          warning: unsupported linker arg: -plugin-opt
          warning: unsupported linker arg: mcpu=generic
          warning: unsupported linker arg: --icf
          warning: unsupported linker arg: safe
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(zstd_common.o at 119596)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(error_private.o at 47236)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(zstd_decompress.o at 2073264)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(zstd_ddict.o at 2035772)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(huf_decompress.o at 1966936)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(entropy_common.o at 12076)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(fse_decompress.o at 54884)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: warning: Linking two modules of different target triples: '/var/folders/4h/3pck4_r16tn6960znvv4w0nw0000gn/T/rustccZtFJh/libzstd_sys-64f575b0c38a9396.rlib(zstd_decompress_block.o at 2257684)' is 'armv6kz-unknown-linux-gnueabihf' whereas 'ld-temp.o' is 'armv7-unknown-linux-gnueabihf'
          
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..TryInto$LT$U$GT$$GT$::try_into::h162454b1bee8ad3c
          >>> referenced by unix.rs:29 (/Users/nobodyxu/.cargo/registry/src/github.com-1ecc6299db9ec823/command-group-2.0.1/src/tokio/child/unix.rs:29)
          >>>               lto.tmp:(binstalk::ops::resolve::resolution::ResolutionSource::install::_$u7b$$u7b$closure$u7d$$u7d$::h0b4a5b4e0291ee15)
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$::into::hccc33318f84d4a0f
          >>> referenced by value.rs:476 (/Users/nobodyxu/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.7.2/src/value.rs:476)
          >>>               lto.tmp:(_$LT$serde..__private..de..content..ContentRefDeserializer$LT$E$GT$$u20$as$u20$serde..de..Deserializer$GT$::deserialize_any::h1383e06dbfc9c9e5)
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..TryInto$LT$U$GT$$GT$::try_into::h89552025043e439b
          >>> referenced by uint_macros.rs:942 (/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:942)
          >>>               lto.tmp:(bytes::bytes_mut::BytesMut::reserve_inner::h02eb8cadf8c50b3e)
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$::into::h55dd6fa0ceaae35e
          >>> referenced by unix.rs:31 (/Users/nobodyxu/.cargo/registry/src/github.com-1ecc6299db9ec823/terminal_size-0.1.17/src/unix.rs:31)
          >>>               lto.tmp:(miette::eyreish::get_default_printer::h279f3e817bba8be1)
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$::into::h4eb04d05023f007e
          >>> referenced by pacing.rs:78 (/Users/nobodyxu/.cargo/registry/src/github.com-1ecc6299db9ec823/quinn-proto-0.8.4/src/connection/pacing.rs:78)
          >>>               lto.tmp:(_$LT$quinn..connection..ConnectionDriver$u20$as$u20$core..future..future..Future$GT$::poll::hcde9dd238955be6a)
          >>> referenced by varint.rs:95 (src/varint.rs:95)
          >>>               lto.tmp:(_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$::into::h47468ab1c2dfccac)
          >>> referenced by varint.rs:95 (src/varint.rs:95)
          >>>               lto.tmp:(_$LT$quinn_proto..config..TransportConfig$u20$as$u20$core..default..Default$GT$::default::h1dc2b3eaf7c62822)
          >>> referenced 8 more times
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..TryInto$LT$U$GT$$GT$::try_into::h046479349e85827a
          >>> referenced by uint_macros.rs:942 (/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:942)
          >>>               lto.tmp:(quinn_proto::connection::Connection::handle_decode::hab52476dcdc20b11)
          >>> referenced by uint_macros.rs:942 (/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:942)
          >>>               lto.tmp:(_$LT$futures_util..future..try_future..try_flatten..TryFlatten$LT$Fut$C$$LT$Fut$u20$as$u20$futures_core..future..TryFuture$GT$..Ok$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h48fbc6afd2817205)
          >>> referenced by uint_macros.rs:990 (/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:990)
          >>>               lto.tmp:(_$LT$futures_util..future..try_future..try_flatten..TryFlatten$LT$Fut$C$$LT$Fut$u20$as$u20$futures_core..future..TryFuture$GT$..Ok$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h48fbc6afd2817205)
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..TryInto$LT$U$GT$$GT$::try_into::h10407e5d2dbaeec1
          >>> referenced by uint_macros.rs:942 (/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:942)
          >>>               lto.tmp:(_$LT$futures_util..future..try_future..try_flatten..TryFlatten$LT$Fut$C$$LT$Fut$u20$as$u20$futures_core..future..TryFuture$GT$..Ok$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h48fbc6afd2817205)
          >>> referenced by uint_macros.rs:990 (/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/core/src/num/uint_macros.rs:990)
          >>>               lto.tmp:(_$LT$futures_util..future..try_future..try_flatten..TryFlatten$LT$Fut$C$$LT$Fut$u20$as$u20$futures_core..future..TryFuture$GT$..Ok$GT$$u20$as$u20$core..future..future..Future$GT$::poll::h48fbc6afd2817205)
          >>> referenced by parser.rs:25 (/Users/nobodyxu/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/src/rust/library/std/src/net/parser.rs:25)
          >>>               lto.tmp:(trust_dns_proto::quic::quic_client_stream::QuicClientStreamBuilder::connect::_$u7b$$u7b$closure$u7d$$u7d$::hf734dfd91c9bf3ac)
          >>> referenced 1 more times
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..TryInto$LT$U$GT$$GT$::try_into::h8018dd4223bc8a68
          >>> referenced by parser.rs:25 (src/net/parser.rs:25)
          >>>               lto.tmp:(std::net::parser::Parser::read_ipv4_addr::h602025f872c7eb38)
          >>> referenced by parser.rs:29 (src/net/parser.rs:29)
          >>>               lto.tmp:(std::net::parser::Parser::read_ipv4_addr::h602025f872c7eb38)
          
          ld.lld: error: undefined symbol: _$LT$T$u20$as$u20$core..convert..TryInto$LT$U$GT$$GT$::try_into::hf96b91c8ce55ce84
          >>> referenced by parser.rs:29 (src/net/parser.rs:29)
          >>>               lto.tmp:(std::net::parser::Parser::read_number::had37b5d438f58ade)
          >>> referenced by parser.rs:25 (src/net/parser.rs:25)
          >>>               lto.tmp:(std::net::parser::Parser::read_number::had37b5d438f58ade)
          

error: could not compile `cargo-binstall` due to previous error
error: Recipe `build` failed on line 158 with exit code 101

failed to run custom build command for openssl-sys v0.9.82

I compile raspberry pie on windows10
i using cargo zigbuild --target armv7-unknown-linux-musleabihf still reports an error:
failed to run custom build command for openssl-sys v0.9.82
failed to run custom build command for zstd-sys v2.0.7+zstd.1.5.4
But I will not achieve similar problems by running directly or cargo build --release

Is it possible to use a custom strip path?

Because the strip in SDKROOT sucks, it will fail to strip when building aarch64-apple-darwin/x86_64-apple-darwin. llvm-strip works well.

warning: stripping debug info with `strip` failed: exit status: 1
  |
  = note: /Library/Developer/CommandLineTools/usr/bin/strip: fatal error: file not in an order that can be processed (function starts data out of place): /Users/dreamacro/Dev/projects/****/target/x86_64-apple-darwin/release/deps/ctl-274200c28898526f

I tried to use TARGET_STRIP=llvm-strip cargo zigbuild --release --target universal2-apple-darwin but it doesn't work, is this possible?

Build i686-pc-windows-gnu failed

When using cargo build i686-pc-windows-gnu, the architecture for zig should be i386-windows-gnu instead of i686-windows-gnu

> cargo zigbuild --target i686-pc-windows-gnu
...
error: UnknownArchitecture

> cat /Users/x/Library/Caches/cargo-zigbuild/0.12.2/zigcc-i686-pc-windows-gnu.sh
#!/usr/bin/env sh
/Users/x/.cargo/bin/cargo-zigbuild zig cc -- -target i686-windows-gnu -g $@

`note: error: unsupported linker arg: -znoexecstack`

This error just started popping up in my CI several days ago after not seeing it before. I noticed 0.16.0 was released recently, but based on the changelog this issue looks unrelated. I just wanted to check here, but I am guessing this is just a missing linker arg over in zig and I should open an issue there?

2023-02-20T10:26:48.9582960Z error: linking with `/home/runner/.cache/cargo-zigbuild/0.16.0/zigcc-aarch64-unknown-linux-gnu.sh` failed: exit status: 1
2023-02-20T10:26:48.9583350Z   |
2023-02-20T10:26:48.9637380Z   = note: "/home/runner/.cache/cargo-zigbuild/0.16.0/zigcc-aarch64-unknown-linux-gnu.sh" "-Wl,--version-script=/tmp/rustceSg9YK/list" "/tmp/rustceSg9YK/symbols.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.0.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.1.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.10.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.11.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.12.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.13.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.14.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.15.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.2.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.3.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.4.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.5.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.6.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.7.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.8.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.embedded_milli.4606c769-cgu.9.rcgu.o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/embedded_milli.z7a85olpne1xt4u.rcgu.o" "-Wl,--as-needed" "-L" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps" "-L" "/home/runner/work/mimir/mimir/target/release/deps" "-L" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/build/dart-sys-e54c42564856e8e7/out" "-L" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/build/zstd-sys-024b340c35f45352/out" "-L" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/build/lmdb-rkv-sys-383c4f700aef444b/out" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libmilli-78889ae32779a938.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libgeoutils-661c11c91e161d19.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsmallstr-20034d91546abb84.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libflatten_serde_json-c5ef72c2de5b1a91.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libjson_depth_checker-44a5b8d9508590a3.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libuuid-3ec480abaa19c09a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblogging_timer-f45ee5f70de9b290.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libdeserr-2fc052003ed114db.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libserde_cs-7754441890ffe928.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libstrsim-7f6570c3a031564c.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures-eb2516d7b7026163.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures_executor-e260532ace9c599b.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_web-d74d559635019dce.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcookie-9cb8c4c510f4e897.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liburl-789df5cd9c8ca4af.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libidna-c82cd1bc9a6e311a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libunicode_bidi-0841a0bc31edae52.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libserde_urlencoded-53b6a48e00370ebf.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libform_urlencoded-8359707928fda0c6.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_server-2e305fa233105cea.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_router-e3fe80d444a435ce.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_http-b9df2f0049b97f10.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/librand-2e8b7e98e4b987ac.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/librand_chacha-8ca34b7ed0798968.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libppv_lite86-a1e6c3a0f800c9a0.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/librand_core-097389585294ecf9.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libhttparse-1f79e668066630cd.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbrotli-dcd2b3d9cc686e1e.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbrotli_decompressor-faf9124717f56c6b.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liballoc_stdlib-23a3ca9094988f83.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liballoc_no_stdlib-12b2a21dca7bc47c.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libhttpdate-8f3c257dcd9fbdf1.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsha1-22ca9cbaa560c73d.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libdigest-e19ace176289ab94.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libblock_buffer-738b3e2935103632.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcrypto_common-f23407b32b2284fe.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libgeneric_array-1fe0fbfefd75d644.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtypenum-c94d8e268410f7de.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbase64-d605c674f818b081.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblocal_channel-a053b5e69c971b63.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbytestring-279794d4fbeabe15.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblanguage_tags-29de741bfb253c4a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libmime-1551e822f3118bb1.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libpercent_encoding-398a47023ca3633e.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libh2-3b7197fbd7caca01.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures_util-dde012da63b90dc8.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures_io-34594296af6bb818.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libslab-f79dac7fab23e45f.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures_channel-28966328960166dd.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures_task-19260abc4d6e3799.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libpin_utils-4471ca8522c257d5.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libzstd-6e0411994ee74b90.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libzstd_safe-7ea5cc8eee8f1bd2.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libzstd_sys-adb338e985feb3ca.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_service-b81094f1108a3fa4.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_codec-2cb1b3a126f35f0d.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtokio_util-491ae972c858b1d7.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtracing-cbf6be295b13e356.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtracing_core-1c7ba3b060556ec1.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures_sink-ca67d0e595d2623e.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_utils-e38e19fa34048447.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblocal_waker-d936d12b1ab2d21a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libactix_rt-f7318cd1a360360d.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtokio-7b42cf394cf55764.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsignal_hook_registry-11e8cea65cfe9932.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsocket2-c373f88721d12f45.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libmio-9065f23cff9d54a6.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libpin_project_lite-b364139afe9d3ede.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfutures_core-20d5614be63a5998.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libhttp-1a8367871701770f.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbytes-251ed37d830dffdb.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfnv-ea960c8c78180c6b.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsmartstring-2292e1a10ead4893.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libstatic_assertions-44b042bc47d255c8.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libmemmap2-5f2f0c2fd79a7e09.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfilter_parser-126f4dba4564794c.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libnom_locate-39633e63ce630d45.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbytecount-7cb7d2133222d1e5.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libnom-a728d0934ee8fddc.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libitertools-49bf16cb4c361e3d.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblevenshtein_automata-9430184188409fd1.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcharabia-93167e8a55737856.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libirg_kvariants-09d8383936386e64.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libwhatlang-35aa15071631ab65.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera-903dade768694117.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libunicode_blocks-d67154f0591d9f43.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_dictionary-2899fe582c5cd83a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_ko_dic-e86b2a8644b1cb35.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_ipadic-2b5373f8d874b176.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libkanaria-6c71880d7ef83852.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbitflags-8cbf5a36997f93b3.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_unidic_builder-b4aa5972abe3b258.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_ko_dic_builder-b1a754ab594042d3.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_ipadic_builder-f4b56349bd04a61d.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_compress-109a6f77a214be05.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libencoding_rs_io-d62aa350952390ea.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_cc_cedict_builder-533cda6169124999.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_decompress-0753789e9406b1d4.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libflate2-4088203268299daf.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libminiz_oxide-64d1f48c0037dc66.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libadler-ff9d93279e48eeca.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcrc32fast-eb89a295305efd3d.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libglob-380089541f3a84db.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcsv-ca7b1d607dbde52f.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcsv_core-94b866383e246b02.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblindera_core-e858c0815e19aee9.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libyada-1d8c8ea992b1c90c.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libencoding_rs-e5fb507bfc3bbead.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libunicode_segmentation-6099a0f352703395.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libjieba_rs-4641b9c2d9d255e6.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libphf-f58d92372d0b0ff7.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libphf_shared-bff673b0348c0100.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsiphasher-72f038c56cf7a001.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfxhash-5dc26500d7e0c0f3.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libregex-3b3069af791e55e2.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libaho_corasick-3460c881dc7b21d0.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libmemchr-48668ddc57a206ff.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libregex_syntax-4461fc22edf1ebde.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcedarwood-c2318febc5162ae8.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libslice_group_by-954129982da446a8.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libunicode_normalization-37d1787f8841a802.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtinyvec-0ac1f75cf9612ea7.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtinyvec_macros-aa1c4a407894231f.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libpinyin-b450fd8020c19d06.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libdeunicode-40139e0e0b57193b.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtime-688404d3caeab795.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtime_core-5d3088db85ce135c.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/librstar-1b8f25727c8081c3.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libheapless-1ce261315331c306.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libstable_deref_trait-da082ac621a41ef2.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libhash32-b092908333d95416.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libordered_float-a468702bf46dc179.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libroaring-f2d256debc2fdf05.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libretain_mut-de41fd342cc2a3e9.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfst-7e5547fad01447c0.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/librayon-e1ca8ccc0c792079.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/librayon_core-d318269e7348b48c.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcrossbeam_deque-f6a7c479aa68887b.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcrossbeam_epoch-f75534b00586697a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libmemoffset-1bd3289742916692.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcrossbeam_channel-200c3a7e31a65fc3.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libeither-da7b83e210b70f0f.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libheed-5f9b7db2bf58b7f2.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libpage_size-b3890b7d48d31b3f.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libheed_types-52afca5d55623a85.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbincode-d1fadac8b1c51d7c.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libzerocopy-78992fde7c5434d0.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libheed_traits-16e57cba5b0304fc.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblmdb_sys-67456595fb6148f5.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsynchronoise-9f28925b5970a151.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcrossbeam_queue-1bcd26ed55432d86.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcrossbeam_utils-b7a0236075c7e862.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libthiserror-21dba7be049afe54.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbimap-bdf8aeb3fa36a7f1.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libobkv-54326b65e467272d.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libserde_json-9fdf19a8656dd56a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libryu-31578f8cf0e7fb46.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libitoa-d792c45add243025.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libindexmap-0ee49570b9453715.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libhashbrown-00eb73b5a78728b4.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libahash-ab7b208ebee77e91.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libgetrandom-2fe7f14ed7b2fdc6.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libonce_cell-6b066bd6c2f68f34.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libserde-2af62a785b144229.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libgrenad-9ef1af9b06caa898.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtempfile-cfd2692e2c99c556.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libfastrand-68763ce593761666.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libremove_dir_all-d5ea9894f67de237.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbyteorder-011a4162e1f64873.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libflutter_rust_bridge-1fdb61ed748f94a0.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libbytemuck-d6f77312726ed689.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libthreadpool-c4e13ee51ae95d32.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libnum_cpus-0a3a1e063d35c03a.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libparking_lot-7bfd77f4971cf5c8.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libparking_lot_core-bc8763646b9d8059.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libsmallvec-5c0eb257e2506b43.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblock_api-29bb290fc856a6a0.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libscopeguard-9945dbf5df0481ed.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblazy_static-0f316e715724b586.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liballo_isolate-5e2e1b417b7d2363.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libchrono-fcf3a25ecccf5417.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libiana_time_zone-007f55d25a0df3e5.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libnum_integer-f1c189d69195ff2f.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libnum_traits-baac0e439d904533.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libtime-6e9026502c544c0b.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblibc-9fcac05ffa5478eb.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libatomic-7870f163ea3092cd.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/liblog-241e85a0d774d7ca.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libcfg_if-7dd256e4d0f319f2.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libdart_sys-d682d8d52bb23e02.rlib" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libanyhow-184e7dd6b4db2030.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd-349359eac2fa563a.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libpanic_unwind-31b7d9c39d332e7e.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libobject-e4755e7cc0cf32f6.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libmemchr-c59c0931456a5895.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libaddr2line-2432e11c5ed85293.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libgimli-50b014f97ec65d7d.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_demangle-468eeeab1fbb28f5.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libstd_detect-79bb703ad54035f1.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libhashbrown-c9ca678db2065aa7.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libminiz_oxide-dea3338d69b31db5.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libadler-2026069c2dbb325f.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-695157849b64d0eb.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libunwind-2c8634584bb07fc7.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcfg_if-c0f43e9dad65e1d1.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/liblibc-3e8addf800b23be6.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/liballoc-a086bb9c64e768ff.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/librustc_std_workspace_core-52080b0ee07e3678.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcore-3d08762e2121fc67.rlib" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib/libcompiler_builtins-f3aa9c6bb7bdaf49.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/runner/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/aarch64-unknown-linux-gnu/lib" "-o" "/home/runner/work/mimir/mimir/target/aarch64-unknown-linux-gnu/release/deps/libembedded_milli.so" "-Wl,--gc-sections" "-shared" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
2023-02-20T10:26:48.9671668Z   = note: error: unsupported linker arg: -znoexecstack
2023-02-20T10:26:48.9671908Z           
2023-02-20T10:26:48.9672017Z 
2023-02-20T10:26:48.9672023Z 
2023-02-20T10:26:49.0491105Z error: could not compile `embedded_milli` due to previous error

Atomics are not linked into the binary

I have a minimal example at https://github.com/link2xt/openssl-cross-example
It is a binary which links against OpenSSL via openssl-sys which in turn depends on the C code of OpenSSL provided in openssl-src crate.

There is a build script scripts/build.sh in the repository which calls cargo-build.

The build fails with errors like this:

          ld.lld: error: undefined symbol: __atomic_load
          >>> referenced by bio_lib.c:689 (crypto/bio/bio_lib.c:689)
          >>>               bio_lib.o:(BIO_free_all) in archive ...

even though Zig should provide __atomic_load.

`riscv64gc-unknown-linux-gnu` - error: unknown directive

I attempted to build a simple project made in rust and also in zig for riscv64.
However, when trying to build the rust version with zigbuild this error happens:

Project: https://github.com/kassane/hello-linux-rv64 - GH action error

cargo zigbuild --release --target riscv64gc-unknown-linux-gnu.2.32
   Compiling io-lifetimes v0.4.4
   Compiling bitflags v1.3.2
   Compiling linux-raw-sys v0.0.36
   Compiling rustix v0.31.3
   Compiling hello-rust v0.1.0 (/home/kassane/Documentos/Projetos/hello-linux-rv64)
error: linking with `/home/kassane/.cache/cargo-zigbuild/0.14.1/zigcc-riscv64gc-unknown-linux-gnu.2.32.sh` failed: exit status: 1
  |
  = note: "/home/kassane/.cache/cargo-zigbuild/0.14.1/zigcc-riscv64gc-unknown-linux-gnu.2.32.sh" "/tmp/rustcc6cuHp/symbols.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.0.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.1.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.10.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.11.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.12.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.13.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.14.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.15.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.2.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.3.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.4.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.5.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.6.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.7.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.8.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.hello_rust.df98c22f-cgu.9.rcgu.o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a.39k4fzmcggnbsji4.rcgu.o" "-Wl,--as-needed" "-L" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps" "-L" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/release/deps" "-L" "src/imp/linux_raw/arch/outline/release" "-L" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/librustix-b55e0ba406f29812.rlib" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/libio_lifetimes-718b553007295bf1.rlib" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/libbitflags-167aa79ec9302bb3.rlib" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/liblinux_raw_sys-c906ae973a719ac8.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libstd-0fe40874fc16816b.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libpanic_unwind-d414f5a7ba737802.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libobject-5f7d4e1af311c4bd.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libmemchr-fb493ec640c014df.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libaddr2line-ba7f2aa39915a516.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libgimli-9896fc7c9e68c489.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/librustc_demangle-e470ba0ad762832b.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libstd_detect-4db88d80ffa8c3ef.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libhashbrown-e7032066f192cc6a.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libminiz_oxide-9099b0da3eaaffe0.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libadler-e2f64e570256a439.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/librustc_std_workspace_alloc-189778bf6febddbd.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libunwind-c5ee724841ac217f.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcfg_if-29879d3f122083df.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/liblibc-d17e328c319247a5.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/liballoc-7f4daea9170e03fb.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/librustc_std_workspace_core-4f78799ea3a69a63.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcore-ad65717bda80ba71.rlib" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib/libcompiler_builtins-075fd5c332df05a6.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/home/kassane/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/riscv64gc-unknown-linux-gnu/lib" "-o" "/home/kassane/Documentos/Projetos/hello-linux-rv64/target/riscv64gc-unknown-linux-gnu/release/deps/hello_rust-220b93fcc93c590a" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro,-znow" "-Wl,-O1" "-nodefaultlibs"
  = note: warning: unsupported linker arg: -znoexecstack
          warning: unsupported linker arg: -zrelro
          warning: unsupported linker arg: -znow
          /home/kassane/.local/lib/zig/libc/glibc/sysdeps/riscv/start-2.33.S:48:2: error: unknown directive
           .cfi_label .Ldummy
           ^

Build error on 0.12.0.beta-3 on Windows 11

With this new version, I get this error on Windows 11:

  = note: warning: unsupported linker arg: -znoexecstack
          warning: unsupported linker arg: -zrelro
          warning: unsupported linker arg: -znow
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\x86_64\crti.S:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\x86_64\crtn.S:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\csu\abi-note.S:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\x86_64\start-2.33.S:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\pthread\pthread_atfork.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\stdlib\at_quick_exit.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\stdlib\atexit.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\io\mknod.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\csu\elf-init-2.33.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\csu\errno.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\debug\stack_chk_fail_local.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\fstat.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\lstat64.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\fstat64.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\lstat.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\fstatat.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\mknodat.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\stat.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\stat64.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\fstatat64.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libc\glibc\sysdeps\unix\sysv\linux\stat_t64_cp.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\UnwindRegistersSave.S:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\UnwindRegistersRestore.S:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\Unwind-EHABI.cpp:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\gcc_personality_v0.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\Unwind-sjlj.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\UnwindLevel1-gcc-ext.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\UnwindLevel1.c:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\Unwind-seh.cpp:1:1: unable to build C object: InvalidFormat
          error(compilation): C:\Users\David\scoop\apps\zig\current\lib\libunwind\src\libunwind.cpp:1:1: unable to build C object: InvalidFormat
          error: unable to build glibc CRT file: BuildingLibCObjectFailed
          error: unable to build libunwind: BuildingLibCObjectFailed

          C:\Users\David\src\test-12>C:\Users\David\.cargo\bin\cargo-lambda.exe zig cc -- -target x86_64-linux-gnu -g -Wl,--version-script=C:\Users\David\AppData\Local\cargo-zigbuild\0.12.0-beta.3\fcntl.map -include C:\Users\David\AppData\Local\cargo-zigbuild\0.12.0-beta.3\fcntl.h @C:\Users\David\AppData\Local\Temp\rustc8xI9rH\linker-arguments

Steps to reproduce:

  1. Download the source for cargo-lambda: https://github.com/cargo-lambda/cargo-lambda
  2. Update the Zigbuild version in the build crate: https://github.com/cargo-lambda/cargo-lambda/blob/main/crates/cargo-lambda-build/Cargo.toml#L21
  3. Install cargo-lambda locally: make install-local
  4. Create a new function: cargo lambda new test-zigbuild-12
  5. Compile: cd test-zigbuild-12 && cargo lambda build --release

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.