]> git.pld-linux.org Git - packages/python3.git/blame_incremental - python3-multilib.patch
Platform independent pyconfig.h
[packages/python3.git] / python3-multilib.patch
... / ...
CommitLineData
1diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Include/pylifecycle.h Python-3.5.0/Include/pylifecycle.h
2--- Python-3.5.0.orig/Include/pylifecycle.h 2015-09-13 13:41:20.000000000 +0200
3+++ Python-3.5.0/Include/pylifecycle.h 2015-12-02 20:55:26.865642310 +0100
4@@ -65,6 +65,8 @@
5 /* In their own files */
6 PyAPI_FUNC(const char *) Py_GetVersion(void);
7 PyAPI_FUNC(const char *) Py_GetPlatform(void);
8+PyAPI_FUNC(const char *) Py_GetArch(void);
9+PyAPI_FUNC(const char *) Py_GetLib(void);
10 PyAPI_FUNC(const char *) Py_GetCopyright(void);
11 PyAPI_FUNC(const char *) Py_GetCompiler(void);
12 PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
13diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/distutils/command/install.py Python-3.5.0/Lib/distutils/command/install.py
14--- Python-3.5.0.orig/Lib/distutils/command/install.py 2015-09-13 13:41:20.000000000 +0200
15+++ Python-3.5.0/Lib/distutils/command/install.py 2015-12-02 20:55:26.865642310 +0100
16@@ -19,6 +19,8 @@
17 from site import USER_SITE
18 HAS_USER_SITE = True
19
20+libname = sys.lib
21+
22 WINDOWS_SCHEME = {
23 'purelib': '$base/Lib/site-packages',
24 'platlib': '$base/Lib/site-packages',
25@@ -29,15 +31,15 @@
26
27 INSTALL_SCHEMES = {
28 'unix_prefix': {
29- 'purelib': '$base/lib/python$py_version_short/site-packages',
30- 'platlib': '$platbase/lib/python$py_version_short/site-packages',
31+ 'purelib': '$base/'+libname+'/python$py_version_short/site-packages',
32+ 'platlib': '$platbase/'+libname+'/python$py_version_short/site-packages',
33 'headers': '$base/include/python$py_version_short$abiflags/$dist_name',
34 'scripts': '$base/bin',
35 'data' : '$base',
36 },
37 'unix_home': {
38- 'purelib': '$base/lib/python',
39- 'platlib': '$base/lib/python',
40+ 'purelib': '$base/'+libname+'/python',
41+ 'platlib': '$base/'+libname+'/python',
42 'headers': '$base/include/python/$dist_name',
43 'scripts': '$base/bin',
44 'data' : '$base',
45diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/distutils/sysconfig.py Python-3.5.0/Lib/distutils/sysconfig.py
46--- Python-3.5.0.orig/Lib/distutils/sysconfig.py 2015-09-13 13:41:21.000000000 +0200
47+++ Python-3.5.0/Lib/distutils/sysconfig.py 2015-12-02 20:55:26.868975666 +0100
48@@ -132,8 +132,12 @@
49 prefix = plat_specific and EXEC_PREFIX or PREFIX
50
51 if os.name == "posix":
52+ if plat_specific:
53+ lib = sys.lib
54+ else:
55+ lib = 'lib'
56 libpython = os.path.join(prefix,
57- "lib", "python" + get_python_version())
58+ lib, "python" + get_python_version())
59 if standard_lib:
60 return libpython
61 else:
62diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/distutils/tests/test_install.py Python-3.5.0/Lib/distutils/tests/test_install.py
63--- Python-3.5.0.orig/Lib/distutils/tests/test_install.py 2015-09-13 13:41:21.000000000 +0200
64+++ Python-3.5.0/Lib/distutils/tests/test_install.py 2015-12-02 20:55:26.868975666 +0100
65@@ -55,7 +55,7 @@
66 expected = os.path.normpath(expected)
67 self.assertEqual(got, expected)
68
69- libdir = os.path.join(destination, "lib", "python")
70+ libdir = os.path.join(destination, sys.lib, "python")
71 check_path(cmd.install_lib, libdir)
72 check_path(cmd.install_platlib, libdir)
73 check_path(cmd.install_purelib, libdir)
74diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/site.py Python-3.5.0/Lib/site.py
75--- Python-3.5.0.orig/Lib/site.py 2015-09-13 13:41:21.000000000 +0200
76+++ Python-3.5.0/Lib/site.py 2015-12-02 20:55:26.868975666 +0100
77@@ -303,12 +303,16 @@
78 seen.add(prefix)
79
80 if os.sep == '/':
81- sitepackages.append(os.path.join(prefix, "lib",
82+ sitepackages.append(os.path.join(prefix, sys.lib,
83 "python" + sys.version[:3],
84 "site-packages"))
85+ sitepackages.append(os.path.join(prefix, sys.lib, "site-python"))
86+ if sys.lib != 'lib':
87+ sitepackages.append(os.path.join(prefix, "lib", "python" + sys.version[:3], "site-packages"))
88+ sitepackages.append(os.path.join(prefix, "share", "python" + sys.version[:3], "site-packages"))
89 else:
90 sitepackages.append(prefix)
91- sitepackages.append(os.path.join(prefix, "lib", "site-packages"))
92+ sitepackages.append(os.path.join(prefix, sys.lib, "site-packages"))
93 if sys.platform == "darwin":
94 # for framework builds *only* we add the standard Apple
95 # locations.
96diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Lib/sysconfig.py Python-3.5.0/Lib/sysconfig.py
97--- Python-3.5.0.orig/Lib/sysconfig.py 2015-09-13 13:41:21.000000000 +0200
98+++ Python-3.5.0/Lib/sysconfig.py 2015-12-02 20:56:37.266116742 +0100
99@@ -20,10 +20,10 @@
100
101 _INSTALL_SCHEMES = {
102 'posix_prefix': {
103- 'stdlib': '{installed_base}/lib/python{py_version_short}',
104- 'platstdlib': '{platbase}/lib/python{py_version_short}',
105- 'purelib': '{base}/lib/python{py_version_short}/site-packages',
106- 'platlib': '{platbase}/lib/python{py_version_short}/site-packages',
107+ 'stdlib': '{installed_base}/' + sys.lib + '/python{py_version_short}',
108+ 'platstdlib': '{platbase}/' + sys.lib + '/python{py_version_short}',
109+ 'purelib': '{base}/' + sys.lib + '/python{py_version_short}/site-packages',
110+ 'platlib': '{platbase}/' + sys.lib + '/python{py_version_short}/site-packages',
111 'include':
112 '{installed_base}/include/python{py_version_short}{abiflags}',
113 'platinclude':
114@@ -32,10 +32,10 @@
115 'data': '{base}',
116 },
117 'posix_home': {
118- 'stdlib': '{installed_base}/lib/python',
119- 'platstdlib': '{base}/lib/python',
120- 'purelib': '{base}/lib/python',
121- 'platlib': '{base}/lib/python',
122+ 'stdlib': '{installed_base}/' + sys.lib + '/python',
123+ 'platstdlib': '{base}/' + sys.lib + '/python',
124+ 'purelib': '{base}/' + sys.lib + '/python',
125+ 'platlib': '{base}/' + sys.lib + '/python',
126 'include': '{installed_base}/include/python',
127 'platinclude': '{installed_base}/include/python',
128 'scripts': '{base}/bin',
129@@ -459,7 +459,11 @@
130 else:
131 inc_dir = _sys_home or _PROJECT_BASE
132 else:
133- inc_dir = get_path('platinclude')
134+ if hasattr(sys, 'abiflags'):
135+ config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags)
136+ else:
137+ config_dir_name = 'config'
138+ inc_dir = os.path.join(get_path('stdlib'), config_dir_name)
139 return os.path.join(inc_dir, 'pyconfig.h')
140
141
142diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Makefile.pre.in Python-3.5.0/Makefile.pre.in
143--- Python-3.5.0.orig/Makefile.pre.in 2015-09-13 13:41:23.000000000 +0200
144+++ Python-3.5.0/Makefile.pre.in 2015-12-02 20:55:26.868975666 +0100
145@@ -101,6 +101,8 @@
146
147 # Machine-dependent subdirectories
148 MACHDEP= @MACHDEP@
149+LIB= @LIB@
150+ARCH= @ARCH@
151
152 # Multiarch directory (may be empty)
153 MULTIARCH= @MULTIARCH@
154@@ -120,7 +122,7 @@
155 MANDIR= @mandir@
156 INCLUDEDIR= @includedir@
157 CONFINCLUDEDIR= $(exec_prefix)/include
158-SCRIPTDIR= $(prefix)/lib
159+SCRIPTDIR= $(prefix)/$(LIB)
160 ABIFLAGS= @ABIFLAGS@
161
162 # Detailed destination directories
163@@ -796,7 +798,7 @@
164 Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
165
166 Python/getplatform.o: $(srcdir)/Python/getplatform.c
167- $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
168+ $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -DARCH='"$(ARCH)"' -DLIB='"$(LIB)"' -o $@ $(srcdir)/Python/getplatform.c
169
170 Python/importdl.o: $(srcdir)/Python/importdl.c
171 $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
172@@ -1362,8 +1364,8 @@
173 if test "$(SHLIB_SUFFIX)" = .dll; then \
174 $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
175 else \
176- $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
177- $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
178+ $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBDIR)/$(LIBRARY) ; \
179+ $(RANLIB) $(DESTDIR)$(LIBDIR)/$(LIBRARY) ; \
180 fi; \
181 else \
182 echo Skip install of $(LIBRARY) - use make frameworkinstall; \
183diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Modules/getpath.c Python-3.5.0/Modules/getpath.c
184--- Python-3.5.0.orig/Modules/getpath.c 2015-09-13 13:41:24.000000000 +0200
185+++ Python-3.5.0/Modules/getpath.c 2015-12-02 20:55:26.868975666 +0100
186@@ -117,9 +117,21 @@
187 #define EXEC_PREFIX PREFIX
188 #endif
189
190+#ifndef LIB_PYTHON
191+#if defined(__x86_64__) || (defined(__sparc__) && defined(__arch64__)) || defined(__powerpc64__) || defined(__s390x__)
192+#if defined(__ILP32__)
193+#define LIB_PYTHON "libx32/python"
194+#else
195+#define LIB_PYTHON "lib64/python"
196+#endif
197+#else
198+#define LIB_PYTHON "lib/python"
199+#endif
200+#endif
201+
202 #ifndef PYTHONPATH
203-#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \
204- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload"
205+#define PYTHONPATH PREFIX "/" LIB_PYTHON VERSION ":" \
206+ EXEC_PREFIX "/" LIB_PYTHON VERSION "/lib-dynload:"
207 #endif
208
209 #ifndef LANDMARK
210@@ -511,7 +523,7 @@
211 _pythonpath = Py_DecodeLocale(PYTHONPATH, NULL);
212 _prefix = Py_DecodeLocale(PREFIX, NULL);
213 _exec_prefix = Py_DecodeLocale(EXEC_PREFIX, NULL);
214- lib_python = Py_DecodeLocale("lib/python" VERSION, NULL);
215+ lib_python = Py_DecodeLocale(LIB_PYTHON VERSION, NULL);
216
217 if (!_pythonpath || !_prefix || !_exec_prefix || !lib_python) {
218 Py_FatalError(
219@@ -700,7 +712,7 @@
220 }
221 else
222 wcsncpy(zip_path, _prefix, MAXPATHLEN);
223- joinpath(zip_path, L"lib/python00.zip");
224+ joinpath(zip_path, L"" LIB_PYTHON "00.zip");
225 bufsz = wcslen(zip_path); /* Replace "00" with version */
226 zip_path[bufsz - 6] = VERSION[0];
227 zip_path[bufsz - 5] = VERSION[2];
228diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Python/getplatform.c Python-3.5.0/Python/getplatform.c
229--- Python-3.5.0.orig/Python/getplatform.c 2015-09-13 13:41:26.000000000 +0200
230+++ Python-3.5.0/Python/getplatform.c 2015-12-02 20:55:26.868975666 +0100
231@@ -10,3 +10,23 @@
232 {
233 return PLATFORM;
234 }
235+
236+#ifndef ARCH
237+#define ARCH "unknown"
238+#endif
239+
240+const char *
241+Py_GetArch(void)
242+{
243+ return ARCH;
244+}
245+
246+#ifndef LIB
247+#define LIB "lib"
248+#endif
249+
250+const char *
251+Py_GetLib(void)
252+{
253+ return LIB;
254+}
255diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/Python/sysmodule.c Python-3.5.0/Python/sysmodule.c
256--- Python-3.5.0.orig/Python/sysmodule.c 2015-09-13 13:41:26.000000000 +0200
257+++ Python-3.5.0/Python/sysmodule.c 2015-12-02 20:55:26.868975666 +0100
258@@ -1767,6 +1767,10 @@
259 PyUnicode_FromString(Py_GetCopyright()));
260 SET_SYS_FROM_STRING("platform",
261 PyUnicode_FromString(Py_GetPlatform()));
262+ SET_SYS_FROM_STRING("arch",
263+ PyUnicode_FromString(Py_GetArch()));
264+ SET_SYS_FROM_STRING("lib",
265+ PyUnicode_FromString(Py_GetLib()));
266 SET_SYS_FROM_STRING("executable",
267 PyUnicode_FromWideChar(
268 Py_GetProgramFullPath(), -1));
269diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/configure.ac Python-3.5.0/configure.ac
270--- Python-3.5.0.orig/configure.ac 2015-12-02 20:54:45.102025846 +0100
271+++ Python-3.5.0/configure.ac 2015-12-02 20:55:26.868975666 +0100
272@@ -722,6 +722,45 @@
273 ])
274 fi
275
276+AC_SUBST(ARCH)
277+AC_MSG_CHECKING(ARCH)
278+ARCH=`uname -m`
279+case $ARCH in
280+i?86) ARCH=i386;;
281+esac
282+AC_MSG_RESULT($ARCH)
283+
284+AC_SUBST(LIB)
285+AC_MSG_CHECKING(LIB)
286+case $ac_sys_system in
287+Linux*)
288+ # Test if the compiler is 64bit
289+ echo 'int i;' > conftest.$ac_ext
290+ python_cv_cc_64bit_output=no
291+ if AC_TRY_EVAL(ac_compile); then
292+ case `/usr/bin/file conftest.$ac_objext` in
293+ *"ELF 64"*)
294+ python_cv_cc_64bit_output=yes
295+ ;;
296+ esac
297+ fi
298+ rm -rf conftest*
299+ ;;
300+esac
301+
302+case $ARCH:$python_cv_cc_64bit_output in
303+powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
304+ LIB="lib64"
305+ ;;
306+x86_64:no)
307+ LIB="libx32"
308+ ;;
309+*:*)
310+ LIB="lib"
311+ ;;
312+esac
313+AC_MSG_RESULT($LIB)
314+
315
316 MULTIARCH=$($CC --print-multiarch 2>/dev/null)
317 AC_SUBST(MULTIARCH)
318@@ -4331,7 +4370,7 @@
319
320 dnl define LIBPL after ABIFLAGS and LDVERSION is defined.
321 AC_SUBST(PY_ENABLE_SHARED)
322-LIBPL='$(prefix)'"/lib/python${VERSION}/config-${LDVERSION}"
323+LIBPL='$(LIBDIR)/python'"${VERSION}/config-${LDVERSION}"
324 AC_SUBST(LIBPL)
325
326 # Check whether right shifting a negative integer extends the sign bit
327diff -durN -x '*~' -x '*.orig' Python-3.5.0.orig/setup.py Python-3.5.0/setup.py
328--- Python-3.5.0.orig/setup.py 2015-09-13 13:41:26.000000000 +0200
329+++ Python-3.5.0/setup.py 2015-12-02 20:55:26.872309022 +0100
330@@ -526,8 +526,7 @@
331 # be assumed that no additional -I,-L directives are needed.
332 if not cross_compiling:
333 lib_dirs = self.compiler.library_dirs + [
334- '/lib64', '/usr/lib64',
335- '/lib', '/usr/lib',
336+ '/' + sys.lib, '/usr/' + sys.lib
337 ]
338 inc_dirs = self.compiler.include_dirs + ['/usr/include']
339 else:
340@@ -750,11 +749,11 @@
341 elif curses_library:
342 readline_libs.append(curses_library)
343 elif self.compiler.find_library_file(lib_dirs +
344- ['/usr/lib/termcap'],
345+ ['/usr/' + sys.lib + '/termcap'],
346 'termcap'):
347 readline_libs.append('termcap')
348 exts.append( Extension('readline', ['readline.c'],
349- library_dirs=['/usr/lib/termcap'],
350+ library_dirs=['/usr/' + sys.lib + '/termcap'],
351 extra_link_args=readline_extra_link_args,
352 libraries=readline_libs) )
353 else:
This page took 0.289949 seconds and 4 git commands to generate.