1
0
mirror of https://github.com/pyenv/pyenv.git synced 2025-11-11 13:03:46 -05:00

Disable coreutils on M1 Apple Silicon with arm64 (#2020)

* Disable coreutils on arm64-apple
* Only selectively apply to the affected CPython versions

Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
This commit is contained in:
Toshihiro Takushima
2021-09-09 21:53:00 +09:00
committed by GitHub
parent 58e2087967
commit 90d0d20508
10 changed files with 46 additions and 16 deletions

View File

@@ -112,6 +112,13 @@ is_mac() {
[ $# -eq 0 ] || [ "$(osx_version)" "$@" ]
}
is_arm64_apple() {
if [ "$(uname -s)" = "Darwin" ] && [ "$(uname -m)" = "arm64" ]; then
return 0
fi
return 1
}
# 9.1 -> 901
# 10.9 -> 1009
# 10.10 -> 1010
@@ -1516,6 +1523,29 @@ use_xcode_sdk_zlib() {
fi
}
# CPython 3.9.1+ and 3.8.10+ have old config.sub that doesn't support "arm64" arch
# which is what Gnu uname (but not Apple uname) produces on Apple M1
# (https://github.com/pyenv/pyenv/pull/2020#issuecomment-891911842)
build_package_arm64_apple_disable_homebrew_coreutils() {
if is_arm64_apple; then
local brew_coreutils="$(brew --prefix coreutils 2>/dev/null || true)"
if [ -d "$brew_coreutils" ]; then
local after_list=()
# Bash 3 ignores IFS set for command when doing expansions so have to set it separately
IFS=':'; local -a list=(${PATH}); IFS="$OLDIFS"
for str in "${list[@]}"; do
if [[ "$str" != "$brew_coreutils"/* ]]; then
after_list+=("$str")
else
echo "python-build: excluding \`$str' from PATH"
fi
done
# Bash 3 ignores IFS set for command when doing expansions so have to set it separately
IFS=':'; export PATH="${after_list[*]}"; IFS="$OLDIFS"
fi
fi
}
build_package_enable_shared() {
package_option python configure --enable-shared
}