homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: _sysconfigdata.py is installed in an arch-independent directory
Type: Stage: resolved
Components: Installation Versions: Python 3.3
process
Status: closed Resolution: duplicate
Dependencies: 23968 Superseder: rename the platform directory from plat-$(MACHDEP) to plat-$(PLATFORM_TRIPLET)
View: 23968
Assigned To: Nosy List: Arfrever, automatthias, dmalcolm, doko, ncoghlan
Priority: normal Keywords:

Created on 2013年05月28日 16:34 by automatthias, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Messages (3)
msg190225 - (view) Author: Maciej Bliziński (automatthias) Date: 2013年05月28日 16:34
_sysconfigdata.py is installed into ${prefix}/lib/pythonX.Y/_sysconfigdata.py which is an architecture-independent directory, as opposed to a path starting with e.g. ${libdir}, which is architecture-dependent. But _sysconfigdata.py contains architecture-dependent information, which breaks some installation, specifically Solaris multi-arch.
A fix would be to move it to an architecture-dependent directory, but this probably requires some discussion.
-----------------------------------------------------------------------
Original question on the mailing list:
http://mail.python.org/pipermail/python-list/2013-May/647197.html
I'm looking into creating a 32/64-bit Python (2.x and/or 3.x) package
for Solaris. The specificity of that package is that I need to include
both 32-bit and 64-bit binaries in it. The exact way in which the
32/64 support is done is described at [1].
There currently is a Python package that I maintain, which is 32-bit only[2].
I have made an attempt to build a 64-bit package, and my findings are
that the ${prefix}/lib/pythonX.Y/_sysconfigdata.py file contains
system-specific information. Note that it's not ${libdir}/pythonX.Y -
that would have worked, because I'm specifying different ${libdir}
directories when running the 32-bit and 64-bit builds. The Python
installer specifically uses ${prefix}/lib/pythonX.Y. For the most part
is fine, because most of files in there are not architecture-specific,
and it would be quite good to share them among the 32-bit and 64-bit
binaries at runtime. The problem is that some files differ. I've
described it some more at [3].
Ideally, I'd make _sysconfigdata.py return/set different values
depending on the Python runtime that reads it. Something like:
if we're 64-bit:
 set values for the 64-bit platform
else:
 set values for the 32-bit platform
It's a similar approach to how we currently handle C header files. See
the 'Development packages' section in [1] for more information.
The problem is that it would involve somewhat intrusive patching of
the Python source code, and in long term that means maintainability
issues.
msg190256 - (view) Author: Matthias Klose (doko) * (Python committer) Date: 2013年05月28日 23:02
Did Solaris adopt MultiArch? ;-P Nice!
So what I did for the Debian and Ubuntu builds is:
 - to rename plat-linux to plat-<multiarch-tuple>
 (or plat-<gnu triplet>)
 - and install it there.
Note that IN.py is another architecture dependent file which differs at least on several linux architectures.
msg267351 - (view) Author: Alyssa Coghlan (ncoghlan) * (Python committer) Date: 2016年06月05日 00:00
Issue 23968 moves _sysconfigdata.py to an arch dependent directory
History
Date User Action Args
2022年04月11日 14:57:46adminsetgithub: 62283
2021年10月20日 10:27:14iritkatrielsetstatus: open -> closed
superseder: rename the platform directory from plat-$(MACHDEP) to plat-$(PLATFORM_TRIPLET)
resolution: duplicate
stage: resolved
2016年06月05日 00:00:15ncoghlansetnosy: + ncoghlan
dependencies: + rename the platform directory from plat-$(MACHDEP) to plat-$(PLATFORM_TRIPLET)
messages: + msg267351
2013年05月30日 15:49:46Arfreversetnosy: + Arfrever
2013年05月28日 23:02:28dokosetmessages: + msg190256
2013年05月28日 21:10:19pitrousetnosy: + doko, dmalcolm
2013年05月28日 16:34:53automatthiascreate

AltStyle によって変換されたページ (->オリジナル) /