我在Ubuntu 20.04.3 LTS x86_64
。程序w3m无法启动,如下所示:
$ w3m -h
Wrong __data_start/_end pair
Aborted (core dumped)
我努力了
- 安装和重新安装;
- 按照此处
ulimit
的建议,设置与 绑定的堆栈大小。
没运气。
这个问题也出现在另一个线程中,但这是特定于 Linux 的 Windows 子系统的,我不在。
编辑
越来越近:这是一个内核问题。
这台机器正在运行一个定制编译的内核,目前在v5.17-rc3
. 如果我回到5.16
内核版本,我看不到问题。
我不确定该5.17
版本发生了什么变化,但似乎需要对内核配置进行一些修改。
编辑 2
在内核邮件列表中发现了一些有希望的东西。
我还没有测试那个补丁,但它符合我所看到的:问题出现在v5.17-rc1
.
第二次编辑有我所需要的:这是一个内核问题,因为我没有运行标准
Ubuntu
版本。使用此处提供的补丁编译最新版本的内核(仍然在我写这篇文章时)解决了这个问题。
v5.17-rc3
所以我希望当
Linux 5.17
它进入Ubuntu
repos 时,这将在上游得到修复。简而言之,我准备好了。我是发布
+50
赏金的用户。在我的特定用例中,w3m
通过Emacs
. 我使用的自定义构建Emacs
需要ulimit
对我非常喜欢的特定撤消/重做历史库进行高设置。我一直在Emacs
使用包含以下内容的桌面文件启动:问题是
unlimited
。解决方案是使用比系统限制稍少的设定量,以kB
. 从终端输入grep MemTotal /proc/meminfo
,结果如下所示:所以,现在的变化是这样的: