我在polybench.c
(来自Polybench benchmark suite):
static void * xmalloc (size_t num)
{
void* new = NULL;
int ret = posix_memalign (&new, 32, num);
if (! new)
{
fprintf (stderr, "[PolyBench] posix_memalign: cannot allocate memory");
exit (1);
}
return new;
}
void* polybench_alloc_data(unsigned long long int n, int elt_size)
{
/// FIXME: detect overflow!
size_t val = n;
val *= elt_size;
void* ret = xmalloc (val);
return ret;
}
LLVM Interpreter
将posix_memalign
作为外部函数处理。
我需要删除posix_memalign
而不会出现细分错误。这可能吗?
如果是的话,我怎么能这样做?
如果不是,我怎么能解决这个问题,而不使用malloc,valloc,mmalloc和aligned_alloc?因为所有这些功能都给了我同样的错误。
错误消息:
LLVM ERROR: Tried to execute an unknown external function: posix_memalign