Python 生成yocto dunfell时random.py中的非法指令

Python 生成yocto dunfell时random.py中的非法指令,python,python-3.x,setuptools,yocto,cpython,Python,Python 3.x,Setuptools,Yocto,Cpython,我正在将我的Yocto build从sumo升级到dunfell,但是我在包python3 setuptools native(v45.2.0-r0)中遇到了一个错误,说明它遇到了非法指令。我的yocto tmp和sstate缓存目录都是新的(即没有相扑构建延迟) 这是日志的内容。失败后请编译文件 DEBUG: Executing shell function do_compile Illegal instruction (core dumped) ERROR: 'python3 setup.p

我正在将我的Yocto build从sumo升级到dunfell,但是我在包
python3 setuptools native
(v45.2.0-r0)中遇到了一个错误,说明它遇到了
非法指令。我的yocto tmp和sstate缓存目录都是新的(即没有相扑构建延迟)

这是
日志的内容。失败后请编译
文件

DEBUG: Executing shell function do_compile
Illegal instruction (core dumped)
ERROR: 'python3 setup.py build ' execution failed.
WARNING: exit code 1 from a shell command.
ERROR: Execution of '/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/temp/run.do_compile.2778959' failed with exit code 1:
Illegal instruction (core dumped)
WARNING: exit code 1 from a shell command.
作为调试问题和获取堆栈跟踪的一种方法,我打开了一个devshell,并开始在启用faulthandler的情况下运行python。我基本上是从
setup.py
中选取了前几行,然后逐个手动运行,但在导入setuptools
时失败了。回溯指向python安装中的
random.py
的第69行(即不在python3 setuptools本机包中)

random.py的第69行

RECIP_BPF = 2**-BPF
故障处理程序输出

mans@localhost:~/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/setuptools-45.2.0$ python3 -q -X faulthandler
>>> import os
>>> import sys
>>> import setuptools
Fatal Python error: Illegal instruction

Current thread 0x00007f79ddfa0740 (most recent call first):
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/recipe-sysroot-native/usr/lib/python3.8/random.py", line 69 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/recipe-sysroot-native/usr/lib/python3.8/email/utils.py", line 28 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/recipe-sysroot-native/usr/lib/python3.8/email/_policybase.py", line 9 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/recipe-sysroot-native/usr/lib/python3.8/email/feedparser.py", line 27 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/recipe-sysroot-native/usr/lib/python3.8/email/parser.py", line 12 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/setuptools-45.2.0/pkg_resources/__init__.py", line 36 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/setuptools-45.2.0/setuptools/version.py", line 1 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "/home/mans/oe-build/am335x-board/tmp/work/x86_64-linux/python3-setuptools-native/45.2.0-r0/setuptools-45.2.0/setuptools/__init__.py", line 17 in <module>
  File "<frozen importlib._bootstrap>", line 219 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 783 in exec_module
  File "<frozen importlib._bootstrap>", line 671 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 975 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 991 in _find_and_load
  File "<stdin>", line 1 in <module>
Illegal instruction (core dumped)
mans@localhost:~/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/setuptools-45.2.0$python3-q-X faulthandler
>>>导入操作系统
>>>导入系统
>>>导入设置工具
致命的Python错误:非法指令
当前线程0x00007f79ddfa0740(最新调用优先):
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/recipe sysroot native/usr/lib/python3.8/random.py”,第69行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/recipe sysroot native/usr/lib/python3.8/email/utils.py”,第28行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/recipe sysroot native/usr/lib/python3.8/email/_policybase.py”,中的第9行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/recipe sysroot native/usr/lib/python3.8/email/feedparser.py”,第27行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/recipe sysroot native/usr/lib/python3.8/email/parser.py”,中的第12行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/setuptools-45.2.0/pkg_resources/uuuu init_uuuuuuuuuu.py”,中的第36行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/setuptools-45.2.0/setuptools/version.py”,中的第1行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“/home/mans/oe build/am335x board/tmp/work/x86_64-linux/python3 setuptools native/45.2.0-r0/setuptools-45.2.0/setuptools/uuuu init_uuuuuu.py”,中的第17行
文件“”,调用中第219行,删除了帧
exec_模块中第783行的文件“”
文件“”,第671行,在\u加载\u解锁
文件“”,在“查找”和“加载”中的第975行已解锁
文件“”,第991行中的_find_和_load
文件“”,中的第1行
非法指令(内核转储)

有人在构建yocto时看到过类似的东西吗?

这是glibc-2.32中的一个工具链缺陷,它使它成为了非活动工具链:

作为一种解决方法,您可以禁用Uninitive,例如,在您的配置中通过
INHERIT_remove=“Uninitive”
,在我的情况下(Ubuntu 20编译Yocto 3.0),@tim的解决方案不起作用。相反,我更改了此文件:

poky/meta/conf/distro/include/yocto uninitive.inc

致:

这是从yocto修补程序复制的:


这是固定在上面Felix发布的链接上的dunfell分支上的,因此接受他的答案,因为这是最正确的答案。
UNINATIVE_URL ?= "http://downloads.yoctoproject.org/releases/uninative/2.10/"
UNINATIVE_CHECKSUM[aarch64] ?= "645e5c50b2b48aabb8b10f783a9f94b4b7c5ddc7cfceb5386d43b86d30253202"
UNINATIVE_CHECKSUM[i686] ?= "233e09b5ff30e15341232a0c16fa8448ff31dccb8f3f3e2ad3948cdac8c4a598"
UNINATIVE_CHECKSUM[x86_64] ?= "04333677f81990ce2cf55c3bc256cd84a66085d18fc95ccddfab8581e4aec014"