我可以在没有posix_memalign的情况下执行此代码吗?

时间:2018-06-11 13:36:41

标签: c dynamic-memory-allocation memory-alignment dynamic-allocation

我在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 Interpreterposix_memalign作为外部函数处理。 我需要删除posix_memalign而不会出现细分错误。这可能吗? 如果是的话,我怎么能这样做? 如果不是,我怎么能解决这个问题,而不使用malloc,valloc,mmalloc和aligned_alloc?因为所有这些功能都给了我同样的错误。

错误消息:

LLVM ERROR: Tried to execute an unknown external function: posix_memalign

0 个答案:

没有答案