Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relaxed ABI tagging #778

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Relaxed ABI tagging #778

wants to merge 1 commit into from

Conversation

wjakob
Copy link
Owner

@wjakob wjakob commented Nov 5, 2024

This commit incorporates some of the suggestions from pybind11 PR pybind/pybind11#4953 (and linked discussion) to relax ABI tagging for libstdc++ and MSVC. The goal is to ensure that ABI-incompatible extensions are separated from each other. These checks were previously too fine-grained and caused isolation in cases where an actual ABI incompatibility was not present. This is a long-standing problem in both pybind11 and nanobind causing inconvenience for users.

While looking into this topic, I realized that libc++ has an opt-in unstable ABI feature (https://libcxx.llvm.org/DesignDocs/ABIVersioning.html). The PR also adds checks for this.

Merging this PR will imply an ABI version bump for nanobind due to the differnt naming convention of the associated ABI tag.

This commit incorporates some of the suggestions from pybind11 PR
pybind/pybind11#4953 (and linked discussion) to
relax ABI tagging for libstdc++ and MSVC. The goal is to ensure that
ABI-incompatible extensions are separated from each other. These checks
were previously too fine-grained and caused isolation in cases where an
actual ABI incompatibility was not present. This is a long-standing
problem in both pybind11 and nanobind causing inconvenience for users.

While looking into this topic, I realized that libc++ has an opt-in
unstable ABI feature
(https://libcxx.llvm.org/DesignDocs/ABIVersioning.html). The PR also
adds checks for this.

Merging this PR will imply an ABI version bump for nanobind due to the
differnt naming convention of the associated ABI tag.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant