Unverified Commit da919262 authored by biergaizi's avatar biergaizi Committed by GitHub
Browse files

fix: remove -stdlib=libc++ from setup helpers, not needed on modern Pythons (#4639)



* Inject -stdlib=libc++ on macOS only when it's supported, close #4637.

On macOS, by default, pybind11 currently unconditionally set the compiler
flag "-stdlib=libc++" in Pybind11Extension.__init__(), regardless of which
compiler is used. This flag is required for clang, but is invalid for GCC.
If GCC is used, it causes compilation failures in all Python projects that
use pybind11, with the error message:

    arm64-apple-darwin22-gcc: error: unrecognized command-line option -stdlib=libc++.

This commit uses has_flag() to detect whether "-stdlib=libc++" on macOS,
and injects this flag from build_ext.build_extensions(), rather than
setting it unconditionally.

Signed-off-by: default avatarYifeng Li <tomli@tomli.me>

* revert: just remove flags

---------

Signed-off-by: default avatarYifeng Li <tomli@tomli.me>
Co-authored-by: default avatarHenry Schreiner <HenrySchreinerIII@gmail.com>
parent 956390a8
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment