-
-
Notifications
You must be signed in to change notification settings - Fork 127
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
Change mkfifoat and mknodat to be disabled unconditionally #161
Conversation
Just for my understanding, what are the circumstances where you get a linker error? Are you using the official builds of this project or are you building locally? (I have a theory as to what's going on but I want to confirm it.) |
Sorry about the radio silence, this ended up not being an issue due to other reasons and I forgot to follow up on it. I was building my own package but I don't think you need to to experience the bug. If you use the python3.10 package on a project that has a required deployment version (not minimum) of 11 then I think it should break because those two symbols don't exist until 13 despite the fact that this library should work from 11 onwards. |
Hi @indygreg 👋, Homebrew maintainer here.
A circumstance would be to run
The above is the test we run on our
(CI logs available here.) On arm64 macOS, $ curl -fsL https://github.com/indygreg/python-build-standalone/releases/download/20221220/cpython-3.10.9+20221220-aarch64-apple-darwin-pgo-full.tar.zst | tar --use-compress-program=`which unzstd` -x
$ head python/PYTHON.json
{
"apple_sdk_canonical_name": "macosx13.1",
"apple_sdk_deployment_target": "11.0",
"apple_sdk_platform": "macosx",
"apple_sdk_version": "13.1",
"build_info": {
"core": {
"links": [
{
"name": "dl",
$ grep -E 'HAVE_MK(FIFOAT|NODAT)' python/PYTHON.json
"HAVE_MKFIFOAT": "1",
"HAVE_MKNODAT": "1",
$ nm python/install/lib/libpython3.10.dylib | grep -E 'mk(fifoat|nodat)'
U _mkfifoat
U _mknodat
00000000002b1a28 t _probe_mkfifoat
00000000002b1a54 t _probe_mknodat Currently we're working around this failure in Homebrew/homebrew-core#136910 by forcing Python 3.8 in tests run on the affected platforms. It would be great if you could handle this, considering how this may affect users on older macOS. Thanks! |
As part of upgrading the GitHub Actions runners to compile aarch64-apple-darwin natively from ARM runners, the Mach-O binary validation in this project is tripping over This behavior is perplexing. What's stranger is that the release builds I'm performing from a similar M1 Apple machine don't seem to reproduce the behavior! There's a good chance I take this PR and disable |
These two functions are currently disabled if using Python 3.8 or earlier, however even if you try to link the
libpython3.10.a
archive you get linker errors that these two symbols don't exist because the minimum deployment version was 11.0 and these don't exist until SDK 13.0.