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

bpo-41100: add runtime checks for MACOSX_DEPLOYMENT_TARGET=10.10 #21576

Conversation

lawrence-danna-apple
Copy link
Contributor

@lawrence-danna-apple lawrence-danna-apple commented Jul 21, 2020

In order to support a universal2 build, supporting Mac OS 11 on arm64 and Mac OS on
x86_64 going back to 10.10, we need to add in runtime checks for functions that will
be detected as present by autoconf, because they are in the SDK, but which did not
exist in Mac OS 10.10. This fixes all the instances of -WWunguarded-availability-new
when building with MACOSX_DEPLOYMENT_TARGET=10.10

https://bugs.python.org/issue41100

In order to support a universal2 build, supporitng Mac OS 11 on arm64 and Mac OS on
x86_64 going back to 10.10, we need to add in runtime checks for functions that will
be detected as present by autoconf, because they are in the SDK, but which did not
exist  in Mac OS 10.10.    This fixes all the instances of -WWunguarded-availability-new
when building with MACOSX_DEPLOYMENT_TARGET=10.10
@lawrence-danna-apple
Copy link
Contributor Author

oops, this isn't quite right yet.

@gh-doot
Copy link

gh-doot commented Jul 21, 2020

im just new to github.. what does that mean?

@lawrence-danna-apple lawrence-danna-apple deleted the postback-runtime-checks branch July 21, 2020 05:57
@lawrence-danna-apple
Copy link
Contributor Author

OK it's fixed now

Comment on lines +89 to +90
#define HAVE_PREADV_RUNTIME __builtin_available(macos 10.16, ios 14, tvos 14, watchos 7, *)
#define HAVE_PWRITEV_RUNTIME __builtin_available(macos 10.16, ios 14, tvos 14, watchos 7, *)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious, what is the proper way to detect Big Sur, 10.16 or 11?

Copy link

@sumanthratna sumanthratna Jul 21, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My understanding is that on current macs (with the Intel processor), upgrading to Big Sur will result in 10.16. However, on Apple Silicon, Big Sur will be 11.0.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's 11.0 for both Intel and Arm, however before the public disclosure it was marked as 10.16, so 10.16 appears in some of the headers like uio.h, and will be recognized by _builtin_available. I just copied 10.16 out of uio.h, but it's confusing so I'll change it to 11.0.

@lawrence-danna-apple
Copy link
Contributor Author

superseded by #21577

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

Successfully merging this pull request may close these issues.

6 participants