Repository navigation
Remove the concept of platform-specific directories #72233
Description
Activity
As a follow-on to bpo-28027, the attached patch removes the concept of platform-specific directories (Lib/plat-darwin, Lib/plat-x86_64-linux-gnu, etc). I believe this should be fine for cross-builds (at least as fine as the previous solution for _sysconfigdata), but I'd like someone to test it for me since I have no experience with cross-builds.
- addedbuildThe build process and cross-buildThe build process and cross-buildtype-featureA feature request or enhancementA feature request or enhancement
on Sep 9, 2016 You might also remove Lib/_sysconfigdata.py from .gitignore.
not sure if I fully understand:
- The patch encodes the multiarch triplet into the _sysconfigdata
name and installs it into the standard lib dir. - It removes the PLATDIR macro
- what happens to the constants modules which are currently
found in the platdir? These vary across architectures and
should not be install in the standard lib dir.
- The patch encodes the multiarch triplet into the _sysconfigdata
Those were removed in bpo-28027, by BDFL decree.
this comes as a surprise. I can't remember that discussion and decision.
Sorry, it happened at the sprint at Instagram. Do you have a use for those modules that we need to reconsider?
this comes as a surprise. I can't remember that discussion and decision.
Removing these modules is not a new idea: I just posted a message to the issue bpo-28027 to complete the history of this change.
The removal is not following the guidelines to first deprecate these for a release, and then to remove them. I know that at least the RTLD_* constants are used in a number of places, which will just stop working.
I'm not against removing these in 3.7, however they should be deprecated in 3.6 first. There is no harm done with this approach.
Matthias Klose added the comment:
The removal is not following the guidelines to first deprecate these for a release, and then to remove them. I know that at least the RTLD_* constants are used in a number of places, which will just stop working.
Please continue the discussion in the issue bpo-28027, reopen it if you want.
Xavier: Could you please make sure this doesn't break anything for Android/cross-builds?
Sure, I was already planning to do it :)
15 remaining items
Thanks for your help in testing these changes Chi Hsuan Yen.
No No, it's me who should say thank you. Thanks for all efforts on maintaining the Android port of CPython!
I don't like the _PYTHON_SYSCONFIGDATA_NAME hack. This should be based on the target, not on a name for just a particular file. Following up on that in bpo-28125.
'make install' fails to remove the sysconfigdata module from lib-dynload and prints now instead:
rm: cannot remove '/path/to/install/lib/python3.7/lib-dynload/_sysconfigdata_m.py': No such file or directoryThe patch fixes this. It also removes a useless and now incorrect line that was meant to echo the previously executed command.
New changeset 86577b7100a4 by Xavier de Gaye in branch '3.6':
Issue bpo-28046: Fix the removal of the sysconfigdata module
https://hg.python.org/cpython/rev/86577b7100a4New changeset 28205c4cf20b by Xavier de Gaye in branch 'default':
Issue bpo-28046: Merge with 3.6.
https://hg.python.org/cpython/rev/28205c4cf20bAre there any remaining outstanding issues here?
The cleanup is not complete, so I reopen the issue: #5289
New changeset 5de15f1 by Victor Stinner in branch 'master':
bpo-28046: Remove MACHDEPPATH from Modules/Setup.dist (bpo-5289)
5de15f1Fixed. I close again the issue. I don't want to backport this change, it doesn't hurt Python 3.6.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields: