gpt4 book ai didi

python - 在 Ubuntu 14.04 上构建 Python 3.5.1 时检查 getrandom() 函数返回否

转载 作者:太空狗 更新时间:2023-10-29 11:12:49 25 4
gpt4 key购买 nike

我正在尝试在 GCE Ubuntu 14.04 VM 上构建 Python 3.5.1,当在解压缩的文件夹中运行 ./configure 时,我得到:

checking for the Linux getrandom() syscall... no
checking for the getrandom() function... no

uname -a 命令返回:

Linux server.mydomain.com 3.19.0-58-generic#64~14.04.1-Ubuntu SMP Fri Mar 18 19:05:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

我不明白为什么 configure 无法检测到 getrandom(),在 Python 3.5.1 发布文档中它说 Python interpreter will detect and use this function/system call in Linux Kernels above 3.17

我在这里错过了什么?有人遇到过同样的问题吗?

提前感谢您的回答。

达尼洛

最佳答案

Python 用来判断你是否有getrandom() 的测试程序在这里:https://hg.python.org/cpython/rev/4491bdb6527b/#l3.176

#include <sys/syscall.h>

int main() {
const int flags = 0;
char buffer[1];
int n;
/* ignore the result, Python checks for ENOSYS at runtime */
(void)syscall(SYS_getrandom, buffer, sizeof(buffer), flags);
return 0;
}

如果您尝试在您的系统上构建该程序,您会得到什么?如果有效,您的 Python 应该使用 getrandom(),否则您应该从编译器输出中看到问题所在。

编辑:现在我们看到您确实没有 SYS_getrandom,我们可以确定问题出在哪里:您的内核足够新,可以支持 getrandom(),但您的 libc 不是。解决方案是升级您的 glibc-dev

关于python - 在 Ubuntu 14.04 上构建 Python 3.5.1 时检查 getrandom() 函数返回否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36744009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com