gpt4 book ai didi

c - 如何使用 GCC 规避 "attempt to use poisoned malloc/calloc"错误?

转载 作者:太空狗 更新时间:2023-10-29 17:26:20 27 4
gpt4 key购买 nike

我正在使用交叉 musl 编译器(相同版本)构建 native musl 编译器 (GCC 8.3.0),但出现此错误:

In file included from /usr/local/x86_64-cros-linux-musl/include/pthread.h:30,
from /usr/local/x86_64-cros-linux-musl/lib/gcc/x86_64-cros-linux-musl/8.3.0/include/c++/x86_64-cros-linux-musl/bits/gthr-default.h:35,
from /usr/local/x86_64-cros-linux-musl/lib/gcc/x86_64-cros-linux-musl/8.3.0/include/c++/x86_64-cros-linux-musl/bits/gthr.h:148,
from /usr/local/x86_64-cros-linux-musl/lib/gcc/x86_64-cros-linux-musl/8.3.0/include/c++/ext/atomicity.h:35,
from /usr/local/x86_64-cros-linux-musl/lib/gcc/x86_64-cros-linux-musl/8.3.0/include/c++/bits/basic_string.h:39,
from /usr/local/x86_64-cros-linux-musl/lib/gcc/x86_64-cros-linux-musl/8.3.0/include/c++/string:52,
from ../../gcc-8.3.0/gcc/brig/brigfrontend/brig-to-generic.h:25,
from ../../gcc-8.3.0/gcc/brig/brig-lang.c:46:
/usr/local/x86_64-cros-linux-musl/include/sched.h:76:7: error: attempt to use poisoned "calloc"
void *calloc(size_t, size_t);
^
/usr/local/x86_64-cros-linux-musl/include/sched.h:116:36: error: attempt to use poisoned "calloc"
#define CPU_ALLOC(n) ((cpu_set_t *)calloc(1,CPU_ALLOC_SIZE(n)))
^

关于如何规避此问题的任何想法?

详细信息:

目标/主机三元组:x86_64-linux-musl

musl 版本:1.1.21

我在这里应用了 musl 补丁:http://port70.net/~nsz/musl/gcc-8.2.0/

我在源目录中运行了这个命令:

sed -e '/m64=/s/lib64/lib/' -i gcc/config/i386/t-linux64

最佳答案

所以我将继续并假设 #pragma poison calloc 在您的头文件中而不是在系统头文件中。

推荐的通用解决方案:在使用#pragma poison 之前包含所有系统头文件;当有多个程序头时,这可能会变得棘手,但确实需要完成。

另一种方法是从源代码中删除 #pragma poison 和安全措施。

关于c - 如何使用 GCC 规避 "attempt to use poisoned malloc/calloc"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55072102/

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