Skip to content

platform_triplet.c uses possibly undefined TARGET_OS_* macros #117886

Closed

Description

@jmroot

Bug report

Bug description:

The symptom is:

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.

CPython versions tested on:

3.13

Operating systems tested on:

macOS

Linked PRs

Activity

  1. added
    type-bugAn unexpected behavior, bug, or error
    on Apr 15, 2024
  2. added a commit that references this issue on Apr 15, 2024
  3. ronaldoussoren commented on Apr 15, 2024

    @ronaldoussoren
    Contributor

    @jmroot, Out of interest: How old are the old SDKs you mention? And which clang versions are problematic?

  4. jmroot commented on Apr 15, 2024

    @jmroot
    ContributorAuthor

    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.

  5. ned-deily commented on Apr 19, 2024

    @ned-deily
    Member

    Thanks again for the issue. As discussed in the associated PR #117887, the suggested change has been rolled up and merged in PR #118073.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-macbuildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions