Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to detect compiler error on armv7 build #2189

Open
andrewdavidmackenzie opened this issue Dec 18, 2024 · 0 comments
Open

Unable to detect compiler error on armv7 build #2189

andrewdavidmackenzie opened this issue Dec 18, 2024 · 0 comments

Comments

@andrewdavidmackenzie
Copy link

When trying to build ring on my mac, for armv7, with armv gcc tools installed I get this error:

andrew@amackenz-mac ring % cargo build --target=armv7-unknown-linux-gnueabihf                                                                                 
   Compiling ring v0.17.8 (/Users/andrew/workspace/ring)
The following warnings were emitted during compilation:

warning: [email protected]: Compiler family detection failed due to error: ToolExecError: Command "arm-linux-gnueabihf-gcc" "-E" "/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/18273820895658169040detect_compiler_family.c" with args arm-linux-gnueabihf-gcc did not execute successfully (status code exit status: 1).
warning: [email protected]: Compiler family detection failed due to error: ToolExecError: Command "arm-linux-gnueabihf-gcc" "-E" "/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/6396566474068574259detect_compiler_family.c" with args arm-linux-gnueabihf-gcc did not execute successfully (status code exit status: 1).
warning: [email protected]: arm-linux-gnueabihf-gcc: error trying to exec 'cc1': execvp: No such file or directory

error: failed to run custom build command for `ring v0.17.8 (/Users/andrew/workspace/ring)`

Caused by:
  process didn't exit successfully: `/Users/andrew/workspace/ring/target/debug/build/ring-45d5ab41c1bb1a0a/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=CARGO_MANIFEST_DIR
  cargo:rerun-if-env-changed=CARGO_PKG_NAME
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_MAJOR
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_MINOR
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_PATCH
  cargo:rerun-if-env-changed=CARGO_PKG_VERSION_PRE
  cargo:rerun-if-env-changed=CARGO_MANIFEST_LINKS
  cargo:rerun-if-env-changed=RING_PREGENERATE_ASM
  cargo:rerun-if-env-changed=OUT_DIR
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_ARCH
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_OS
  cargo:rerun-if-env-changed=CARGO_CFG_TARGET_ENV
  cargo:rerun-if-env-changed=DEBUG
  cargo:rerun-if-env-changed=PERL_EXECUTABLE
  OPT_LEVEL = Some(0)
  OUT_DIR = Some(/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out)
  TARGET = Some(armv7-unknown-linux-gnueabihf)
  HOST = Some(aarch64-apple-darwin)
  cargo:rerun-if-env-changed=CC_armv7-unknown-linux-gnueabihf
  CC_armv7-unknown-linux-gnueabihf = None
  cargo:rerun-if-env-changed=CC_armv7_unknown_linux_gnueabihf
  CC_armv7_unknown_linux_gnueabihf = None
  cargo:rerun-if-env-changed=TARGET_CC
  TARGET_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  cargo:rerun-if-env-changed=CROSS_COMPILE
  CROSS_COMPILE = None
  RUSTC_LINKER = None
  cargo:rerun-if-env-changed=CC_ENABLE_DEBUG_OUTPUT
  cargo:warning=Compiler family detection failed due to error: ToolExecError: Command "arm-linux-gnueabihf-gcc" "-E" "/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/18273820895658169040detect_compiler_family.c" with args arm-linux-gnueabihf-gcc did not execute successfully (status code exit status: 1).
  RUSTC_WRAPPER = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some(true)
  CARGO_CFG_TARGET_FEATURE = None
  cargo:rerun-if-env-changed=CFLAGS_armv7-unknown-linux-gnueabihf
  CFLAGS_armv7-unknown-linux-gnueabihf = None
  cargo:rerun-if-env-changed=CFLAGS_armv7_unknown_linux_gnueabihf
  CFLAGS_armv7_unknown_linux_gnueabihf = None
  cargo:rerun-if-env-changed=TARGET_CFLAGS
  TARGET_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  CARGO_ENCODED_RUSTFLAGS = Some()
  cargo:warning=Compiler family detection failed due to error: ToolExecError: Command "arm-linux-gnueabihf-gcc" "-E" "/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/6396566474068574259detect_compiler_family.c" with args arm-linux-gnueabihf-gcc did not execute successfully (status code exit status: 1).
  cargo:warning=arm-linux-gnueabihf-gcc: error trying to exec 'cc1': execvp: No such file or directory

  --- stderr
  running "perl" "//Users/andrew/workspace/ring/crypto/fipsmodule/aes/asm/bsaes-armv7.pl" "linux32" "//Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/bsaes-armv7-linux32.S"
  running "perl" "//Users/andrew/workspace/ring/crypto/fipsmodule/aes/asm/vpaes-armv7.pl" "linux32" "//Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/vpaes-armv7-linux32.S"
  running "perl" "//Users/andrew/workspace/ring/crypto/fipsmodule/bn/asm/armv4-mont.pl" "linux32" "//Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/armv4-mont-linux32.S"
  running "perl" "//Users/andrew/workspace/ring/crypto/chacha/asm/chacha-armv4.pl" "linux32" "//Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/chacha-armv4-linux32.S"
  running "perl" "//Users/andrew/workspace/ring/crypto/fipsmodule/modes/asm/ghash-armv4.pl" "linux32" "//Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/ghash-armv4-linux32.S"
  running "perl" "//Users/andrew/workspace/ring/crypto/fipsmodule/sha/asm/sha256-armv4.pl" "linux32" "//Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/sha256-armv4-linux32.S"
  running "perl" "//Users/andrew/workspace/ring/crypto/fipsmodule/sha/asm/sha512-armv4.pl" "linux32" "//Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/sha512-armv4-linux32.S"


  error occurred in cc-rs: Command LC_ALL="C" "arm-linux-gnueabihf-gcc" "-O0" "-ffunction-sections" "-fdata-sections" "-fPIC" "-gdwarf-4" "-fno-omit-frame-pointer" "-march=armv7-a" "-mfpu=vfpv3-d16" "-mfloat-abi=hard" "-I" "/Users/andrew/workspace/ring/include" "-I" "/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out" "-Wall" "-Wextra" "-fvisibility=hidden" "-std=c1x" "-Wall" "-Wbad-function-cast" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wnested-externs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wstrict-prototypes" "-Wundef" "-Wuninitialized" "-g3" "-Werror" "-o" "/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/25ac62e5b3c53843-curve25519.o" "-c" "/Users/andrew/workspace/ring/crypto/curve25519/curve25519.c" with args arm-linux-gnueabihf-gcc did not execute successfully (status code exit status: 1).

There seems to kind of be two separate possible causes when I dig in a bit:

  • Command "arm-linux-gnueabihf-gcc" "-E" "/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/6396566474068574259detect_compiler_family.c" with args arm-linux-gnueabihf-gcc did not execute successfully
  • error trying to exec 'cc1': execvp: No such file or directory

Investigating the armv7 tools I have installed:

andrew@amackenz-mac ring % which arm-linux-gnueabihf-gcc
/usr/local/bin/arm-linux-gnueabihf-gcc

So it's installed.

andrew@amackenz-mac ring % file /usr/local/bin/arm-linux-gnueabihf-gcc
/usr/local/bin/arm-linux-gnueabihf-gcc: Mach-O 64-bit executable x86_64

It's a x86_64 binary on my Apple Silicon Mac.
I haven't been able to force homebrew to install arm64 version of those tools yet.

But it seems to run just fine (rosetta...):

andrew@amackenz-mac ring % /usr/local/bin/arm-linux-gnueabihf-gcc --version
arm-linux-gnueabihf-gcc (crosstool-NG 1.24.0) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The file that it is trying to compile doesn't exist (I think even generated files should remain after a build fail?):

andrew@amackenz-mac ring % more /Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/6396566474068574259detect_compiler_family.c
/Users/andrew/workspace/ring/target/armv7-unknown-linux-gnueabihf/debug/build/ring-5da4533007b2d19d/out/6396566474068574259detect_compiler_family.c: No such file or directory
andrew@amackenz-mac ring % 

I'm not sure about the " error trying to exec 'cc1': execvp: No such file or directory" error, if it's for real and how I can investigate it more.

Any ideas?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant