-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
macos: try auto-detecting the SDK when building on Apple for Apple #16112
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
Conversation
|
I haven't been able to build stage3 zig on macOS Sonoma just yet; I get this error when building; $ cmake -G Ninja -B build -DCMAKE_PREFIX_PATH='/opt/llvm/16.0.1/;/opt/pkg/' -DCMAKE_BUILD_TYPE=ReleaseWithDebInfo
$ samu -j20 -C build install
samu: entering directory 'build'
[1/2] Building stage3
samu: job failed: cd /Users/haze/zig && /Users/haze/zig/build/zig2 build --prefix /Users/haze/zig/build/stage3 --zig-lib-dir /Users/haze/zig/lib -Dconfig_h=/Users/haze/zig/build/config.h -Denable-llvm -Doptimize=ReleaseFast -Dstrip -Dtarget=native -Dcpu=native -Dversion-string=0.11.0-dev.3736+2a910886e
error(link): undefined reference to symbol '_isatty'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_dup2'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pthread_attr_destroy'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_getenv'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_writev'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_abort'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '__dyld_image_count'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '__exit'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_exit'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pthread_attr_init'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '___ulock_wait2'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_fstat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_fstatat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_faccessat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_mkdirat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_openat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_unlinkat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_symlinkat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_renameat'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_futimens'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '___error'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_fchdir'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_chdir'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '__dyld_get_image_header'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pthread_threadid_np'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '__tlv_bootstrap'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_munmap'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_mmap'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_bzero'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_environ'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_sigaction'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pthread_join'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_posix_memalign'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_open'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_fcntl'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_poll'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '___stack_chk_fail'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_fork'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_lseek'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_os_unfair_lock_trylock'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_os_unfair_lock_unlock'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_flock'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_os_unfair_lock_lock'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_arc4random_buf'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pthread_attr_setstacksize'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pthread_attr_setguardsize'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_malloc_size'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_execve'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pwrite'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_write'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pthread_create'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_ftruncate'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pipe'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_clock_gettime'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_sysctlbyname'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '__dyld_get_image_name'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_sendfile'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '___ulock_wake'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_free'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '__dyld_get_image_vmaddr_slide'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '___stack_chk_guard'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_setreuid'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_waitpid'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_setregid'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_pread'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_read'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_msync'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_close$NOCANCEL'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '_wait4'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '___getdirentries64'
error(link): first referenced in '/Users/haze/zig/zig-cache/o/5c5681b3b424d5ecd0c1eb1c7e88cb9b/build.o'
error(link): undefined reference to symbol '__availability_version_check'
error(link): first referenced in '/Users/haze/.cache/zig/o/ae5b8bbe07c38d4a9ef82cd52e4ea880/libcompiler_rt.a(/Users/haze/.cache/zig/o/ae5b8bbe07c38d4a9ef82cd52e4ea880/libcompiler_rt.a.o)'
error(link): undefined reference to symbol '_sys_icache_invalidate'
error(link): first referenced in '/Users/haze/.cache/zig/o/ae5b8bbe07c38d4a9ef82cd52e4ea880/libcompiler_rt.a(/Users/haze/.cache/zig/o/ae5b8bbe07c38d4a9ef82cd52e4ea880/libcompiler_rt.a.o)'
error(link): undefined reference to symbol 'dyld_stub_binder'
error: UndefinedSymbolReference
samu: subcommand failedAttempting to use |
Nice, this is a step forward - YAML parser (aka TAPI) parser is outdated. Would you mind filing an issue and would you mind sending me a copy of your |
2a91088 to
ae881ed
Compare
|
That was my bad - the patch was wrong. Could try again @haze? |
…frameworks This is already guaranteed as frameworks are Apple-only concept, and when targeting Apple from Apple we always try linking against native SDK anyhow.
|
I think this detection logic should go inside |
Oh, that's a neat idea - lemme try that once we wrinkle out all failures on macOS 14 with @haze. |
|
Superseded by #16212 |
This patch tweaks Zig's behavior to prefer native SDK when compiling on an Apple platform for an Apple platform, if available. This also includes the
build.zigcode path inmain.zigwhich now auto-detects the presence of native SDK when compiling on an Apple platform.The latter was a surprise for me as I blindly assumed we use the same code path for
build-exe/build-lib/ccetc. as forzig buildbut the latter has its own, vastly simplifiedCompilationstruct. If we are to support beta macOS releases out-of-the-box without the necessity to patch Zig up, we need to patch both code paths:buildOutputTypeandcmdBuild. I was wondering if there perhaps is a better way to achieve this than this PR, but on the other hand this PR is the simplest way forward as far as I can see.Closes #16118