[YAP 6.2.2][序言] 在 Ubuntu 20.04 上编译时出现"mmap"错误



我在Ubuntu 20.04上编译YAP Prolog 6.2.2时遇到问题。像往常一样,在README之后,我浏览到YAP文件夹并给出命令成功的CCD_ 1。接下来,我给出命令make,但它给了我这个错误:

%
%
% YAP OOOPS: mmap could not map at 0x10000000, got 0xffffffffffffffff.
%
%
Exiting ....
make: *** [Makefile:534: startup.yss] Error 1

我已经安装了README文件中建议的库(gmp和readline(,但我不知道问题出在哪里。这个相同的过程在Ubuntu18.04LTS和Ubuntu119.10上运行得很好。

我今天遇到了同样的问题,决定调试这个问题。我找到了这个问题的原因和一个棘手的解决方案。不幸的是,后来构建失败了,出现了一个我还没有弄清楚的相关问题。

问题是尝试使用/dev/zero来使用mmap映射可执行内存。然而,在Ubuntu 20.04中,/dev安装了noexec标志。我对代码进行了修补,改为使用匿名内存,但正如我上面所说,它在构建过程中的后期失败了(挂起(。挂起的进程正试图通过mmap重复分配更多内存,但ENOMEM失败了。

如果我找到一个合适的解决方案,我会在某个地方上传所有这些问题的补丁,并将其链接到这里。

相关内容

  • 没有找到相关文章

最新更新