mirror of
https://github.com/pyenv/pyenv.git
synced 2025-12-08 15:31:26 +09:00
Fix "ld: symbol(s) not found" for some C system calls in MacOS if XCode is for a newer major MacOS version (#3362)
Citing https://www.postgrespro.ru/list/id/E1kfzRR-0001EH-Ph@gemulon.postgresql.org fixing the same problem: We previously put the -isysroot switch only into CPPFLAGS, theorizing that it was only needed to find the right copies of include files. However, it seems that we also need to use it while linking programs, to find the right stub ".tbd" files for libraries. We got away without that up to now, but apparently that was mostly luck. It may also be that failures are only observed when the Xcode version is noticeably out of sync with the host macOS version; the case that's prompting action right now is that builds fail when using latest Xcode (12.2) on macOS Catalina, even though it's fine on Big Sur. Specifically, the problem arises for `preadv' and `pwritev' (new in MacOS 11 Big Sur) when building with XCode 12.4 (supporting Big Sur) in MacOS 10.15 Catalina.
This commit is contained in:
parent
a30c26ddf5
commit
94e4bf0ae8
@ -1861,6 +1861,9 @@ use_xcode_sdk_zlib() {
|
||||
|
||||
#distutils.unixcompiler and setup.py specifically search CFLAGS for "-isysroot"
|
||||
export CFLAGS="${CFLAGS:+$CFLAGS }-isysroot ${sdkroot}"
|
||||
#while one can get away with adding it just to CFLAGS, this may cause linker failures
|
||||
#if XCode is for a different major MacOS version (e.g. reported for XCode 12.4 on MacOS 10.15)
|
||||
export LDFLAGS="${LDFLAGS:+$LDFLAGS }-isysroot ${sdkroot}"
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user