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

Does not compile (macOS 12.6 / aarch64) #50

Closed
ndaniels opened this issue Sep 25, 2022 · 7 comments
Closed

Does not compile (macOS 12.6 / aarch64) #50

ndaniels opened this issue Sep 25, 2022 · 7 comments

Comments

@ndaniels
Copy link

ndaniels commented Sep 25, 2022

cargo install fails on macOS 12.6 on an M2 macbook air with Rust 1.64. Once all the dependencies compile, I get a huge list of successful compilation (exit 0) messages and then the fun begins:

error.log ``` running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/http-parser" "-I" "libgit2/deps/pcre" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libssh2-sys-e07d767d7ab8109f/out/include" "-fvisibility=hidden" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-o" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/build/libgit2/deps/pcre/pcre_exec.o" "-c" "libgit2/deps/pcre/pcre_exec.c" cargo:warning=In file included from libgit2/src/libgit2/streams/stransport.c:12: cargo:warning=In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:43: cargo:warning=In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:73: cargo:warning=/usr/local/include/Block.h:16:3: error: Never include this file directly. Use instead. cargo:warning=# error Never include this file directly. Use instead. cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:93:2: error: unknown type name 'lzma_check' cargo:warning= lzma_check check; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:148:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli compressed_size; cargo:warning= ^ exit status: 0 cargo:warning=/usr/local/include/Block.h:172:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli uncompressed_size; cargo:warning= ^ running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/http-parser" "-I" "libgit2/deps/pcre" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libssh2-sys-e07d767d7ab8109f/out/include" "-fvisibility=hidden" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-o" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/build/libgit2/deps/pcre/pcre_fullinfo.o" "-c" "libgit2/deps/pcre/pcre_fullinfo.c" cargo:warning=/usr/local/include/Block.h:200:2: error: unknown type name 'lzma_filter' cargo:warning= lzma_filter *filters; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:217:20: error: use of undeclared identifier 'LZMA_CHECK_SIZE_MAX' cargo:warning= uint8_t raw_check[LZMA_CHECK_SIZE_MAX]; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:231:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli reserved_int3; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:232:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli reserved_int4; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:233:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli reserved_int5; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:234:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli reserved_int6; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:235:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli reserved_int7; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:236:2: error: unknown type name 'lzma_vli' cargo:warning= lzma_vli reserved_int8; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:237:2: error: unknown type name 'lzma_reserved_enum' cargo:warning= lzma_reserved_enum reserved_enum1; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:238:2: error: unknown type name 'lzma_reserved_enum' cargo:warning= lzma_reserved_enum reserved_enum2; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:239:2: error: unknown type name 'lzma_reserved_enum' cargo:warning= lzma_reserved_enum reserved_enum3; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:240:2: error: unknown type name 'lzma_reserved_enum' cargo:warning= lzma_reserved_enum reserved_enum4; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:261:2: error: unknown type name 'lzma_bool' cargo:warning= lzma_bool ignore_check; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:263:2: error: unknown type name 'lzma_bool' cargo:warning= lzma_bool reserved_bool2; cargo:warning= ^ cargo:warning=/usr/local/include/Block.h:264:2: error: unknown type name 'lzma_bool' cargo:warning= lzma_bool reserved_bool3; cargo:warning= ^ exit status: 0 cargo:warning=fatal error: too many errors emitted, stopping now [-ferror-limit=] running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/http-parser" "-I" "libgit2/deps/pcre" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libssh2-sys-e07d767d7ab8109f/out/include" "-fvisibility=hidden" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-o" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/build/libgit2/deps/pcre/pcre_get.o" "-c" "libgit2/deps/pcre/pcre_get.c" exit status: 0 running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/http-parser" "-I" "libgit2/deps/pcre" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libssh2-sys-e07d767d7ab8109f/out/include" "-fvisibility=hidden" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-o" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/build/libgit2/deps/pcre/pcre_globals.o" "-c" "libgit2/deps/pcre/pcre_globals.c" exit status: 0 running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/http-parser" "-I" "libgit2/deps/pcre" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libssh2-sys-e07d767d7ab8109f/out/include" "-fvisibility=hidden" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-o" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/build/libgit2/deps/pcre/pcre_jit_compile.o" "-c" "libgit2/deps/pcre/pcre_jit_compile.c" cargo:warning=20 errors generated. exit status: 1 running: "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/http-parser" "-I" "libgit2/deps/pcre" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libssh2-sys-e07d767d7ab8109f/out/include" "-fvisibility=hidden" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\"" "-o" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/build/libgit2/deps/pcre/pcre_maketables.o" "-c" "libgit2/deps/pcre/pcre_maketables.c" exit status: 0 exit status: 0 exit status: 0 exit status: 0 exit status: 0 exit status: 0 exit status: 0 exit status: 0

--- stderr

error occurred: Command "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-arch" "arm64" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/include" "-I" "libgit2/src/libgit2" "-I" "libgit2/src/util" "-I" "libgit2/deps/http-parser" "-I" "libgit2/deps/pcre" "-I" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libssh2-sys-e07d767d7ab8109f/out/include" "-fvisibility=hidden" "-DGIT_REGEX_BUILTIN=1" "-DHAVE_STDINT_H=1" "-DHAVE_MEMMOVE=1" "-DNO_RECURSE=1" "-DNEWLINE=10" "-DPOSIX_MALLOC_THRESHOLD=10" "-DLINK_SIZE=2" "-DPARENS_NEST_LIMIT=250" "-DMATCH_LIMIT=10000000" "-DMATCH_LIMIT_RECURSION=MATCH_LIMIT" "-DMAX_NAME_SIZE=32" "-DMAX_NAME_COUNT=10000" "-DSHA1DC_NO_STANDARD_INCLUDES=1" "-DSHA1DC_CUSTOM_INCLUDE_SHA1_C="common.h"" "-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="common.h"" "-o" "/var/folders/ws/bntkf5_n1rjfl5gk0py4wqhw0000gn/T/cargo-installzOzfiA/release/build/libgit2-sys-9f995afbb98cc2a6/out/build/libgit2/src/libgit2/streams/stransport.o" "-c" "libgit2/src/libgit2/streams/stransport.c" with args "cc" did not execute successfully (status code exit status: 1).

</details>
@pacak
Copy link
Owner

pacak commented Sep 25, 2022

Looks like most of those error messages are all about libgit2. Can you compile anything else that uses it? cargo-edit, cargo-update, etc? You can find more examples here: https://crates.io/crates/git2/reverse_dependencies

@ndaniels
Copy link
Author

ndaniels commented Sep 25, 2022

No, interestingly. Basically the same errors with cargo-edit. I do have libgit2 installed, via homebrew. I am able to compile the git2 crate, as well. Weird. The git2-rs crate builds, but doesn't seem to when it's a dependency of cargo-edit or cargo-show-asm. Perhaps a version issue?

@pacak
Copy link
Owner

pacak commented Sep 25, 2022

Not sure, could be something related to feature unification. Probably worth reporting at their bug tracker.

@ndaniels
Copy link
Author

Will do.

@pacak
Copy link
Owner

pacak commented Sep 25, 2022

Can you try installing it as cargo install --git https://github.com/pacak/cargo-show-asm --branch vendored-libgit -F vendored-libgit2 -F vendored-openssl to see if it compiles any better for you?

@pacak
Copy link
Owner

pacak commented Sep 29, 2022

It's in master now, not yet released

cargo install --git https://github.com/pacak/cargo-show-asm -F vendored-libgit2,vendored-openssl

@pacak
Copy link
Owner

pacak commented Sep 29, 2022

Published 0.1.21, this should probably help:

cargo install cargo-show-asm -F vendored-libgit2,vendored-openssl

Feel free to reopen if it's still not working.

@pacak pacak closed this as completed Sep 29, 2022
bors added a commit to rust-lang/cargo that referenced this issue Sep 30, 2022
Expose libgit2-sys/vendored feature as vendored-libgit2

### What does this PR try to resolve?

Compiling cargo on MacOS can be problematic due present libraries, `cargo` already supports vendoring for openssl (and it helps pacak/cargo-show-asm#51 to some users). This pull request attempts to extend vendoring support to libgit2 in order to fix more foreign library issues: pacak/cargo-show-asm#50

While it is possible for me to enable it on my side (pacak/cargo-show-asm#52) a special care needs to keep versions in sync. Exposing this feature in `cargo` directly will make such fixes for my and other crates more robust.

### How should we test and review this PR?
Disabled by default means existing behavior is unchanged, testing with it enabled to confirm if it still works should do the trick.
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

2 participants