__data_start/_end ペアが間違っているため、w3m が起動に失敗する

__data_start/_end ペアが間違っているため、w3m が起動に失敗する

私は ですUbuntu 20.04.3 LTS x86_64。プログラム翻訳元次のように起動に失敗します。

$ 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

2 番目の編集には必要な情報がすべて含まれています。標準バージョンを実行していないため、カーネルの問題でしたUbuntu

コンパイル最新バージョンカーネルの(v5.17-rc3これを書いている時点ではまだ)パッチ提供ここ問題を解決します。

Linux 5.17したがって、リポジトリに取り込まれる頃には、Ubuntuアップストリームでこの問題が修正されていると予想しています。つまり、準備は万端です。

答え2

私は懸賞金を投稿したユーザーです+50。私の特定の使用例では、w3mは を通じてアクティブ化されますEmacs。私が使用する のカスタム ビルドでは、私がかなり気に入っている特定の元に戻す/やり直し履歴ライブラリにEmacs高い設定が必要です。私は次の内容を含むデスクトップ ファイルでulimit起動していました。Emacs

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'

関連情報