diff options
| author | Alexander Kanavin <alex.kanavin@gmail.com> | 2020-01-20 18:24:47 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-01-21 12:52:52 +0000 |
| commit | 28c5a5033e4893ec1f1fd5aab8b2fd0d5f815678 (patch) | |
| tree | 516cabd91f2d95e50eb1980efa4cda946fdb8b57 /meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch | |
| parent | f7a99d04e6fb81ffbb14cfa3caaf47e89bb424b5 (diff) | |
| download | poky-28c5a5033e4893ec1f1fd5aab8b2fd0d5f815678.tar.gz | |
python3: update to 3.8.1
Drop backports, rebase other patches.
0001-main.c-if-OEPYTHON3HOME-is-set-use-instead-of-PYTHON.patch
is removed as the use case (allowing python 2 and 3 to coexist
in SDKs) is no longer relevant with Python 2.x reaching end of line
and upstream has refactored the code making a rebase difficult.
If needed, please re-add the patch to py2, rather than py3.
Python 3.8 no longer adds "m" to "3.8" in paths, so adjust the recipes
and classes accordingly.
The manifest for the 3.8.0 version is updated; particularly pkgutil
module is now packaged in -core (as other things in core need it);
this also necessitates allowing empty -pkgutil package to avoid
breakage across layers.
(From OE-Core rev: e6ab9f16b92aa1abdae82c535c1a452a1341b0e2)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch')
| -rw-r--r-- | meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch b/meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch deleted file mode 100644 index b9d5bc9c51..0000000000 --- a/meta/recipes-devtools/python/python3/0003-setup.py-pass-missing-libraries-to-Extension-for-mul.patch +++ /dev/null | |||
| @@ -1,80 +0,0 @@ | |||
| 1 | From b881a79adcd4ae5ac8fe4f49d0fc77c47f777919 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Hongxu Jia <hongxu.jia@windriver.com> | ||
| 3 | Date: Fri, 4 Aug 2017 11:16:14 +0800 | ||
| 4 | Subject: [PATCH] setup.py: pass missing libraries to Extension for | ||
| 5 | multiprocessing module | ||
| 6 | |||
| 7 | In the following commit: | ||
| 8 | ... | ||
| 9 | commit e711cafab13efc9c1fe6c5cd75826401445eb585 | ||
| 10 | Author: Benjamin Peterson <benjamin@python.org> | ||
| 11 | Date: Wed Jun 11 16:44:04 2008 +0000 | ||
| 12 | |||
| 13 | Merged revisions 64104,64117 via svnmerge from | ||
| 14 | svn+ssh://pythondev@svn.python.org/python/trunk | ||
| 15 | ... | ||
| 16 | (see diff in setup.py) | ||
| 17 | It assigned libraries for multiprocessing module according | ||
| 18 | the host_platform, but not pass it to Extension. | ||
| 19 | |||
| 20 | In glibc, the following commit caused two definition of | ||
| 21 | sem_getvalue are different. | ||
| 22 | https://sourceware.org/git/?p=glibc.git;a=commit;h=042e1521c794a945edc43b5bfa7e69ad70420524 | ||
| 23 | (see diff in nptl/sem_getvalue.c for detail) | ||
| 24 | `__new_sem_getvalue' is the latest sem_getvalue@@GLIBC_2.1 | ||
| 25 | and `__old_sem_getvalue' is to compat the old version | ||
| 26 | sem_getvalue@GLIBC_2.0. | ||
| 27 | |||
| 28 | To build python for embedded Linux systems: | ||
| 29 | http://www.yoctoproject.org/docs/2.3.1/yocto-project-qs/yocto-project-qs.html | ||
| 30 | If not explicitly link to library pthread (-lpthread), it will | ||
| 31 | load glibc's sem_getvalue randomly at runtime. | ||
| 32 | |||
| 33 | Such as build python on linux x86_64 host and run the python | ||
| 34 | on linux x86_32 target. If not link library pthread, it caused | ||
| 35 | multiprocessing bounded semaphore could not work correctly. | ||
| 36 | ... | ||
| 37 | >>> import multiprocessing | ||
| 38 | >>> pool_sema = multiprocessing.BoundedSemaphore(value=1) | ||
| 39 | >>> pool_sema.acquire() | ||
| 40 | True | ||
| 41 | >>> pool_sema.release() | ||
| 42 | Traceback (most recent call last): | ||
| 43 | File "<stdin>", line 1, in <module> | ||
| 44 | ValueError: semaphore or lock released too many times | ||
| 45 | ... | ||
| 46 | |||
| 47 | And the semaphore issue also caused multiprocessing.Queue().put() hung. | ||
| 48 | |||
| 49 | Upstream-Status: Submitted [https://github.com/python/cpython/pull/2999] | ||
| 50 | |||
| 51 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
| 52 | --- | ||
| 53 | setup.py | 7 +++++-- | ||
| 54 | 1 file changed, 5 insertions(+), 2 deletions(-) | ||
| 55 | |||
| 56 | diff --git a/setup.py b/setup.py | ||
| 57 | index b7a36a6..658ead3 100644 | ||
| 58 | --- a/setup.py | ||
| 59 | +++ b/setup.py | ||
| 60 | @@ -1584,8 +1584,10 @@ class PyBuildExt(build_ext): | ||
| 61 | elif host_platform.startswith('netbsd'): | ||
| 62 | macros = dict() | ||
| 63 | libraries = [] | ||
| 64 | - | ||
| 65 | - else: # Linux and other unices | ||
| 66 | + elif host_platform.startswith(('linux')): | ||
| 67 | + macros = dict() | ||
| 68 | + libraries = ['pthread'] | ||
| 69 | + else: # Other unices | ||
| 70 | macros = dict() | ||
| 71 | libraries = ['rt'] | ||
| 72 | |||
| 73 | @@ -1603,6 +1605,7 @@ class PyBuildExt(build_ext): | ||
| 74 | |||
| 75 | exts.append ( Extension('_multiprocessing', multiprocessing_srcs, | ||
| 76 | define_macros=list(macros.items()), | ||
| 77 | + libraries=libraries, | ||
| 78 | include_dirs=["Modules/_multiprocessing"])) | ||
| 79 | # End multiprocessing | ||
| 80 | |||
