fix: add notes on requirements to run example#13
Conversation
Maybe there is a better way to fix or document this, but for devs currently using a cargo installed by package manager i.e homebrew the example commands will fail. Noting for now mostly if anyone else runs into this too :)
| - Ensure `echo $CC` returns `gcc` #prerequisites i.e apples gcc distributed with xcode and | ||
| - Ensure `which gcc` returns `/usr/bin/gcc` (MacOSX users) |
There was a problem hiding this comment.
Thanks. Damn. I had no idea $CC and gcc needed to be configured. Just thought xcrun would handle choosing the right stuff. Out of curiosity what happened when these were not configured?
There was a problem hiding this comment.
I'm maybe a little odd :) running gcc-11 because I use some stuff with my neovim that needs it. I would imagine typically this might not be an issue. Afaik typically CC=gcc for standard macos install.
Here is the full trace
❯ $HOME/.cargo/bin/cargo +nightly run -r -F parallel,asm,gpu --example brainfuck -- prove ./examples/brainfuck/hello_world.bf --dst ./hello_world.proof
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package: /Users/admin/Git_Downloads/Web3/Projects/ministark/gpu-poly/Cargo.toml
workspace: /Users/admin/Git_Downloads/Web3/Projects/ministark/Cargo.toml
warning: /Users/admin/Git_Downloads/Web3/Projects/ministark/gpu-poly/Cargo.toml: unused manifest key: target.cfg(target_arch = "aarch64").bench
Compiling serde v1.0.147
Compiling objc_exception v0.1.2
Compiling ark-ff v0.3.0 (https://github.com/arkworks-rs/algebra#a4362f92)
Compiling thiserror v1.0.37
Compiling textwrap v0.11.0
Compiling plotters-svg v0.3.3
Compiling clap_lex v0.2.4
Compiling heck v0.3.3
Compiling indexmap v1.9.1
Compiling ciborium-ll v0.2.0
The following warnings were emitted during compilation:
warning: extern/exception.m: In function 'RustObjCExceptionThrow':
warning: extern/exception.m:5:5: error: '-fobjc-exceptions' is required to enable Objective-C exception syntax
warning: 5 | @throw exception;
warning: | ^~~~~~
warning: extern/exception.m:4:32: warning: parameter 'exception' set but not used [-Wunused-but-set-parameter]
warning: 4 | void RustObjCExceptionThrow(id exception) {
warning: | ~~~^~~~~~~~~
error: failed to run custom build command for `objc_exception v0.1.2`
Caused by:
process didn't exit successfully: `/Users/admin/Git_Downloads/Web3/Projects/ministark/target/release/build/objc_exception-34f6154be5fcf3f7/build-script-build` (exit status: 1)
--- stdout
TARGET = Some("aarch64-apple-darwin")
OPT_LEVEL = Some("3")
HOST = Some("aarch64-apple-darwin")
cargo:rerun-if-env-changed=CC_aarch64-apple-darwin
CC_aarch64-apple-darwin = None
cargo:rerun-if-env-changed=CC_aarch64_apple_darwin
CC_aarch64_apple_darwin = None
cargo:rerun-if-env-changed=HOST_CC
HOST_CC = None
cargo:rerun-if-env-changed=CC
CC = Some("gcc-11")
cargo:rerun-if-env-changed=CFLAGS_aarch64-apple-darwin
CFLAGS_aarch64-apple-darwin = None
cargo:rerun-if-env-changed=CFLAGS_aarch64_apple_darwin
CFLAGS_aarch64_apple_darwin = 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("aes,crc,dit,dotprod,dpb,dpb2,fcma,fhm,flagm,fp16,frintts,jsconv,lor,lse,neon,paca,pacg,pan,pmuv3,ras,rcpc,rcpc2,rdm,sb,sha2,sha3,ssbs,vh")
running: "gcc-11" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-Wall" "-Wextra" "-o" "/Users/admin/Git_Downloads/Web3/Projects/ministark/target/release/build/objc_exception-ab1b56d750c21f1f/out/extern/exception.o" "-c" "extern/exception.m"
cargo:warning=extern/exception.m: In function 'RustObjCExceptionThrow':
cargo:warning=extern/exception.m:5:5: error: '-fobjc-exceptions' is required to enable Objective-C exception syntax
cargo:warning= 5 | @throw exception;
cargo:warning= | ^~~~~~
cargo:warning=extern/exception.m:4:32: warning: parameter 'exception' set but not used [-Wunused-but-set-parameter]
cargo:warning= 4 | void RustObjCExceptionThrow(id exception) {
cargo:warning= | ~~~^~~~~~~~~
exit status: 1
--- stderr
error occurred: Command "gcc-11" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-Wall" "-Wextra" "-o" "/Users/admin/Git_Downloads/Web3/Projects/ministark/target/release/build/objc_exception-ab1b56d750c21f1f/out/extern/exception.o" "-c" "extern/exception.m" with args "gcc-11" did not execute successfully (status code exit status: 1).
warning: build failed, waiting for other jobs to finish...
zsh: exit 101 $HOME/.cargo/bin/cargo +nightly run -r -F parallel,asm,gpu --example brainfuc
|
To add, here is the trace using |
|
@beauwilliams thanks for the trace. What Mac do you have? For now the In theory the gpu stuff should work on older macs but I just couldn't get it to work. I was originally developing miniSTARK on an older mac with a Radeon Pro GPU. Everything compiled but when I ran it it just didn't work as expected. I filed a bug with Apple at the time but never heard back. I was so fed up it's why I bought a M1 Mac and more or less everything has been working since then. |
Motivation
Solution