You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
configure:6892: checking for the platform triplet based on compiler characteristics
configure:6900: result: none
which of course leads to all kinds of problems later in the build. The problem is that platform_triplet.c uses TARGET_OS_IOS, TARGET_OS_SIMULATOR and TARGET_OS_OSX without checking if they are defined. While this is valid according to the C standard with undefined macros evaluating to 0, it's a problem for two reasons: Older macOS SDKs don't define these, and the code assumes that TARGET_OS_OSX being false means it's not building for macOS, and secondly some clang versions will error if you use any macro starting with TARGET_OS_ without checking if it is defined.
We got a downstream report from a user on 10.11. AFAIK the very latest clang versions default to -Werror,-Wundef-prefix=TARGET_OS_ and it started doing that in version 11 or earlier.
Activity
pythongh-117886: platform_triplet.c: check if TARGET_OS_* defined
ronaldoussoren commentedon Apr 15, 2024
@jmroot, Out of interest: How old are the old SDKs you mention? And which clang versions are problematic?
jmroot commentedon Apr 15, 2024
We got a downstream report from a user on 10.11. AFAIK the very latest clang versions default to
-Werror,-Wundef-prefix=TARGET_OS_and it started doing that in version 11 or earlier.ned-deily commentedon Apr 19, 2024
Thanks again for the issue. As discussed in the associated PR #117887, the suggested change has been rolled up and merged in PR #118073.