AIWintermuteAI / whispercpp

Pybind11 bindings for Whisper.cpp
Apache License 2.0
45 stars 9 forks source link

bug: wheel build did NOT complete successfully in mac silicon #85

Open roventine opened 5 months ago

roventine commented 5 months ago

Describe the bug

This happened when i build or install from source. compiling lib/concat-filename.c... compiling lib/findprog-in.c... ./lib/findprog-in.c:149:25: error: call to undeclared function 'eaccess'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] if (eaccess (progpathname, X_OK) == 0) ^ ./lib/findprog-in.c:149:25: note: did you mean 'access'? /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:431:6: note: 'access' declared here int access(const char *, int); ^ ./lib/findprog-in.c:301:21: error: call to undeclared function 'eaccess'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] if (eaccess (progpathname, XOK) == 0) ^ 2 errors generated. Compilation failed. ____ END BUILD LOGS _____ rules_foreign_cc: Build wrapper script location: bazel-out/darwin_arm64-opt-exec-2B5CBBC6/bin/external/rules_foreign_cc/toolchains/make_tool_foreign_cc/wrapper_build_script.sh rules_foreign_cc: Build script location: bazel-out/darwin_arm64-opt-exec-2B5CBBC6/bin/external/rules_foreign_cc/toolchains/make_tool_foreign_cc/build_script.sh rules_foreign_cc: Build log location: bazel-out/darwin_arm64-opt-exec-2B5CBBC6/bin/external/rules_foreign_cc/toolchains/make_tool_foreign_cc/BootstrapGNUMake.log

Target //:whispercpp_wheel failed to build Use --verbose_failures to see the command lines of failed build steps. INFO: Elapsed time: 13.996s, Critical Path: 13.63s INFO: 29 processes: 8 internal, 20 darwin-sandbox, 1 local. FAILED: Build did NOT complete successfully

To reproduce

Step to reproduce: 1、git clone https://github.com/AIWintermuteAI/whispercpp.git 2、cd whispercpp 3、git submodule update --init --recursive 4、there are two ways I have tried : 4.1、python3 -m pip install build
4.2、./tools/bazel build //:whispercpp_wheel

Expected behavior

No response

Environment

python 3.10 platfrom: mac os 14.4.1

AIWintermuteAI commented 5 months ago

Thanks for the report! I just received it, for some reason GH didn't notify me about an open issue. I'll see if I can reproduce. Meanwhile, would you like to try earlier version from this commit https://github.com/AIWintermuteAI/whispercpp/commit/e46fd2da91bab8cfd98a0af886230cc773afd982 I verified it manually that time, while the later commits were only tested with CI.

AIWintermuteAI commented 4 months ago

Looks like you're hitting https://github.com/bazelbuild/rules_foreign_cc/issues/859#issuecomment-2023706695 Try installing xcode (not the same as Xcode command line tools) and cleaning bazel cache afterwards?

AIWintermuteAI commented 3 months ago

Okay, so if you saw the discussion in rules_foregin_cc, the xcode version has nothing to do with it.

it seems very specific to a set of packages that are installed / aren't installed on the host and how the toolchain is configured.

It is definitely true, as I can reproduce the issue on my x86 Mac, but cannot on my M1 Mac, both running the same OS. Also the issue is not present in CI, as macos builds are green.

I'll leave this open and put label help-wanted, as I won't be fixing it by myself soon. Someone could follow the suggestion here

However I will state the same advice that I'll always give with regard to rules_foreign_cc; prefer to spend the effort you'd spend debugging issues with rules_foreign_cc on porting the project to native bazel BUILD files and submit those to the BCR; you'll benefit the wider ecosystem, achieving a more reliable scalable build.

and replace rules_foreign_cc with native bazel build for SDL. Or maybe (hopefully) I'll get rid of SDL completely.