w3m 因 __data_start/_end 对错误而启动失败

w3m 因 __data_start/_end 对错误而启动失败

我正在Ubuntu 20.04.3 LTS x86_64。该计划w3m启动失败如下:

$ w3m -h

Wrong __data_start/_end pair
Aborted (core dumped)

我努力了

  • 安装和重新安装;
  • ulimit按照建议设置堆栈大小限制这里

没有运气。

这个问题也出现在另一个线程,但这是特定于 Windows Subsystem for Linux 的,我并不在其中。

编辑

进一步说:这是一个内核问题。

该机器正在运行自定义编译的核心,目前为v5.17-rc3。如果我回到5.16内核版本,我会不是查看该问题。

我不确定5.17发布版本中发生了什么变化,但似乎需要对内核配置进行一些修改。

编辑2

成立有希望的事情在内核邮件列表上。

我还没有测试该补丁,但它符合我所看到的情况:之后出现的问题v5.17-rc1

答案1

第二次编辑满足了我的全部需求:这是一个内核问题,因为我没有运行标准版本Ubuntu

编译最新版本内核(v5.17-rc3我写这篇文章时仍然如此)使用提供的补丁这里解决了这个问题。

因此我预计,当这个Linux 5.17问题进入Ubuntu存储库时,上游已经修复了这个问题。简而言之,我已准备好了。

答案2

我是发布赏金的用户+50。在我的特定用例中,w3m通过 激活。我使用的Emacs自定义版本需要对我非常喜欢的特定撤消/重做历史库进行高设置。我一直使用包含以下内容的桌面文件启动:EmacsulimitEmacs

Exec=bash -c 'ulimit -S -s unlimited && /path/to/emacs'

问题是unlimited。解决方案是使用略小于系统限制的设定金额,即kB。在终端中输入grep MemTotal /proc/meminfo,结果如下所示:

MemTotal:        8141092 kB

因此,现在的变化如下:

Exec=bash -c 'ulimit -S -s 8000000 && /path/to/emacs'

相关内容