wtklbm / crm

Cargo registry manager (Cargo 注册表管理器),用于方便的管理和更换 Rust 国内镜像源
https://crates.io/crates/crm
Apache License 2.0
395 stars 24 forks source link

Apple M1 编译失败:failed to run custom build command for `ring v0.14.6` #2

Closed kingfree closed 3 years ago

kingfree commented 3 years ago

经查,应该是你依赖的 mrq = 0.1.0 间接依赖了一个 ring = 0.14 不能在 M1 芯片上编译。 ring 最新版 0.16 已经解决了这个问题。mrq 这个库我看了一下两年多没有维护了,建议换一个稳定的 HTTP Client 库。

工具链是:

➜  ~ rustup toolchain list
stable-aarch64-apple-darwin (default)
nightly-aarch64-apple-darwin

日志如下:

➜  ~ cargo install crm
    Updating crates.io index
  Downloaded crm v0.1.2
  Downloaded 1 crate (16.9 KB) in 2.50s
  Installing crm v0.1.2
  Downloaded sct v0.5.0
  Downloaded webpki-roots v0.16.0
  Downloaded mrq v0.1.0
  Downloaded rustc-demangle v0.1.20
  Downloaded webpki v0.19.1
  Downloaded rustls v0.15.2
  Downloaded ring v0.14.6
  Downloaded 7 crates (6.1 MB) in 3.48s (largest was `ring` at 5.4 MB)
   Compiling cc v1.0.68
   Compiling libc v0.2.97
   Compiling proc-macro2 v1.0.27
   Compiling unicode-xid v0.2.2
   Compiling memchr v2.4.0
   Compiling untrusted v0.6.2
   Compiling syn v1.0.73
   Compiling autocfg v1.0.1
   Compiling spin v0.5.2
   Compiling cfg-if v1.0.0
   Compiling failure_derive v0.1.8
   Compiling adler v1.0.2
   Compiling gimli v0.24.0
   Compiling log v0.4.14
   Compiling byteorder v1.4.3
   Compiling rustc-demangle v0.1.20
   Compiling serde v1.0.126
   Compiling miniz_oxide v0.4.4
   Compiling ring v0.14.6
   Compiling backtrace v0.3.60
   Compiling base64 v0.10.1
   Compiling addr2line v0.15.2
   Compiling object v0.25.3
   Compiling quote v1.0.9
error: failed to run custom build command for `ring v0.14.6`

Caused by:
  process didn't exit successfully: `/var/folders/1y/gqyz57v11bbbxjj_lwzkb7xh0000gn/T/cargo-installyjeplb/release/build/ring-aebe766e0ef64897/build-script-build` (exit status: 101)
  --- stdout
  CARGO: /Users/tjf/.rustup/toolchains/stable-aarch64-apple-darwin/bin/cargo
  CARGO_CFG_TARGET_ARCH: aarch64
  CARGO_CFG_TARGET_ENDIAN: little
  CARGO_CFG_TARGET_ENV:
  CARGO_CFG_TARGET_FAMILY: unix
  CARGO_CFG_TARGET_OS: macos
  CARGO_CFG_TARGET_POINTER_WIDTH: 64
  CARGO_CFG_TARGET_VENDOR: apple
  CARGO_CFG_UNIX:
  CARGO_FEATURE_DEFAULT: 1
  CARGO_FEATURE_DEV_URANDOM_FALLBACK: 1
  CARGO_FEATURE_USE_HEAP: 1
  CARGO_HOME: /Users/tjf/.cargo
  CARGO_MAKEFLAGS: -j --jobserver-fds=3,16 --jobserver-auth=3,16
  CARGO_MANIFEST_DIR: /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6
  CARGO_MANIFEST_LINKS: ring-asm
  CARGO_PKG_AUTHORS: Brian Smith <brian@briansmith.org>
  CARGO_PKG_DESCRIPTION: Safe, fast, small crypto using Rust.
  CARGO_PKG_HOMEPAGE:
  CARGO_PKG_LICENSE:
  CARGO_PKG_LICENSE_FILE: LICENSE
  CARGO_PKG_NAME: ring
  CARGO_PKG_REPOSITORY: https://github.com/briansmith/ring
  CARGO_PKG_VERSION: 0.14.6
  CARGO_PKG_VERSION_MAJOR: 0
  CARGO_PKG_VERSION_MINOR: 14
  CARGO_PKG_VERSION_PATCH: 6
  CARGO_PKG_VERSION_PRE:
  COLORFGBG: 7;0
  COLORTERM: truecolor
  COMMAND_MODE: unix2003
  DEBUG: false
  DYLD_FALLBACK_LIBRARY_PATH: /var/folders/1y/gqyz57v11bbbxjj_lwzkb7xh0000gn/T/cargo-installyjeplb/release/deps:/var/folders/1y/gqyz57v11bbbxjj_lwzkb7xh0000gn/T/cargo-installyjeplb/release:/Users/tjf/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib:/Users/tjf/.rustup/toolchains/stable-aarch64-apple-darwin/lib:/Users/tjf/lib:/usr/local/lib:/usr/lib
  HOME: /Users/tjf
  HOMEBREW_CELLAR: /opt/homebrew/Cellar
  HOMEBREW_PREFIX: /opt/homebrew
  HOMEBREW_REPOSITORY: /opt/homebrew
  HOST: aarch64-apple-darwin
  INFOPATH: /opt/homebrew/share/info:
  ITERM_PROFILE: Default
  ITERM_SESSION_ID: w1t0p0:311776CF-6614-4C89-9A1F-F8D84BC9ED5A
  LANG: zh_CN.UTF-8
  LC_TERMINAL: iTerm2
  LC_TERMINAL_VERSION: 3.4.8
  LESS: -R
  LOGNAME: tjf
  LSCOLORS: Gxfxcxdxbxegedabagacad
  MANPATH: /usr/share/man:/usr/local/share/man:/Applications/Wireshark.app/Contents/Resources/share/man:/opt/homebrew/share/man
  NUM_JOBS: 8
  OLDPWD: /Users/tjf
  OPT_LEVEL: 3
  OUT_DIR: /var/folders/1y/gqyz57v11bbbxjj_lwzkb7xh0000gn/T/cargo-installyjeplb/release/build/ring-3001ad4864b1e0f7/out
  PAGER: less
  PATH: /Users/tjf/.cargo/bin:/Users/tjf/.pyenv/shims:/opt/homebrew/opt/m4/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/Applications/Wireshark.app/Contents/MacOS:/Users/tjf/.cargo/bin:/opt/homebrew/bin:/opt/homebrew/sbin
  PROFILE: release
  PWD: /Users/tjf
  PYENV_SHELL: zsh
  RUSTC: rustc
  RUSTDOC: rustdoc
  RUSTUP_HOME: /Users/tjf/.rustup
  RUSTUP_TOOLCHAIN: stable-aarch64-apple-darwin
  RUST_RECURSION_COUNT: 1
  SHELL: /bin/zsh
  SHLVL: 1
  SSH_AUTH_SOCK: /private/tmp/com.apple.launchd.dAo3KyCO7a/Listeners
  TARGET: aarch64-apple-darwin
  TERM: xterm-256color
  TERM_PROGRAM: iTerm.app
  TERM_PROGRAM_VERSION: 3.4.8
  TERM_SESSION_ID: w1t0p0:311776CF-6614-4C89-9A1F-F8D84BC9ED5A
  TMPDIR: /var/folders/1y/gqyz57v11bbbxjj_lwzkb7xh0000gn/T/
  USER: tjf
  XPC_FLAGS: 0x0
  XPC_SERVICE_NAME: 0
  ZSH: /Users/tjf/.oh-my-zsh
  _: /Users/tjf/.cargo/bin/cargo
  __CFBundleIdentifier: com.googlecode.iterm2
  __CF_USER_TEXT_ENCODING: 0x1F5:0x19:0x34
  OPT_LEVEL = Some("3")
  TARGET = Some("aarch64-apple-darwin")
  HOST = Some("aarch64-apple-darwin")
  CC_aarch64-apple-darwin = None
  CC_aarch64_apple_darwin = None
  HOST_CC = None
  CC = None
  CFLAGS_aarch64-apple-darwin = None
  CFLAGS_aarch64_apple_darwin = None
  HOST_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = None
  running "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-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-declarations" "-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" "-D_XOPEN_SOURCE=700" "-c" "-o/var/folders/1y/gqyz57v11bbbxjj_lwzkb7xh0000gn/T/cargo-installyjeplb/release/build/ring-3001ad4864b1e0f7/out/aesv8-armx-linux64.o" "/Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S"

  --- stderr
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:17:17: error: unexpected token in '.section' directive
  .section .rodata
                  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:27:1: error: unknown directive
  .hidden GFp_aes_hw_set_encrypt_key
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:28:1: error: unknown directive
  .type GFp_aes_hw_set_encrypt_key,%function
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:160:1: error: unknown directive
  .size GFp_aes_hw_set_encrypt_key,.-GFp_aes_hw_set_encrypt_key
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:162:1: error: unknown directive
  .hidden GFp_aes_hw_encrypt
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:163:1: error: unknown directive
  .type GFp_aes_hw_encrypt,%function
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:190:1: error: unknown directive
  .size GFp_aes_hw_encrypt,.-GFp_aes_hw_encrypt
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:192:1: error: unknown directive
  .hidden GFp_aes_hw_decrypt
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:193:1: error: unknown directive
  .type GFp_aes_hw_decrypt,%function
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:220:1: error: unknown directive
  .size GFp_aes_hw_decrypt,.-GFp_aes_hw_decrypt
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:222:1: error: unknown directive
  .hidden GFp_aes_hw_ctr32_encrypt_blocks
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:223:1: error: unknown directive
  .type GFp_aes_hw_ctr32_encrypt_blocks,%function
  ^
  /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/pregenerated/aesv8-armx-linux64.S:402:1: error: unknown directive
  .size GFp_aes_hw_ctr32_encrypt_blocks,.-GFp_aes_hw_ctr32_encrypt_blocks
  ^
  thread 'main' panicked at 'execution failed', /Users/tjf/.cargo/registry/src/github.com-1ecc6299db9ec823/ring-0.14.6/build.rs:638:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: failed to compile `crm v0.1.2`, intermediate artifacts can be found at `/var/folders/1y/gqyz57v11bbbxjj_lwzkb7xh0000gn/T/cargo-installyjeplb`

Caused by:
  build failed
wtklbm commented 3 years ago

感谢反馈,不行就再换一个小的 http 客户端

wtklbm commented 3 years ago

您好,crm 更新到了 v0.1.3,现在所依赖 ring 的版本为 v0.16.20。我这边没有 m1 版本的 mac,没有办法测试,如果有问题,可以再联系我。

kingfree commented 3 years ago

您好,crm 更新到了 v0.1.3,现在所依赖 ring 的版本为 v0.16.20。我这边没有 m1 版本的 mac,没有办法测试,如果有问题,可以再联系我。

验证 0.1.3 版本在 M1 上可以正常编译运行,这个 issue 可以关闭了