【问题标题】:[YAP 6.2.2][Prolog] "mmap" error during compilation on Ubuntu 20.04[YAP 6.2.2][Prolog] 在 Ubuntu 20.04 上编译期间出现“mmap”错误
【发布时间】:2020-08-23 02:25:12
【问题描述】:

我在 Ubuntu 20.04 上编译 YAP Prolog 6.2.2 时遇到问题。 像往常一样,按照自述文件,我浏览到 YAP 文件夹并给出命令 ./configure 成功。 接下来,我给了命令make,但它给了我这个错误:

%
%
% YAP OOOPS: mmap could not map at 0x10000000, got 0xffffffffffffffff.
%
%

   Exiting ....
make: *** [Makefile:534: startup.yss] Error 1

我已经安装了 README 文件中建议的库(gmp 和 readline),但我不知道问题出在哪里。 同样的过程在 Ubuntu 18.04LTS 和 Ubuntu 19.10 上完美运行。

【问题讨论】:

    标签: prolog mmap ubuntu-20.04 yap


    【解决方案1】:

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

    问题在于尝试使用/dev/zero 来映射使用mmap 的可执行内存。然而,在 Ubuntu 20.04 中,/dev 挂载了 noexec 标志。我修补了代码以使用匿名内存,但正如我在上面所说的那样,它在构建过程中的稍后时间点失败(挂起)。挂起的进程正在尝试通过mmap 重复分配更多内存,但使用ENOMEM 失败。

    如果我找到合适的解决方案,我会在某处上传所有这些问题的补丁并在此处链接。

    【讨论】:

      猜你喜欢
      • 2021-03-23
      • 2020-09-10
      • 1970-01-01
      • 2020-11-08
      • 2022-11-28
      • 2021-08-06
      • 2016-11-20
      • 1970-01-01
      • 2020-08-31
      相关资源
      最近更新 更多