w3m kann nicht mit falschem __data_start/_end-Paar gestartet werden

w3m kann nicht mit falschem __data_start/_end-Paar gestartet werden

Ich bin dabei Ubuntu 20.04.3 LTS x86_64. Das Programmw3mDer Start schlägt aus folgenden Gründen fehl:

$ w3m -h

Wrong __data_start/_end pair
Aborted (core dumped)

Ich habe versucht

  • Installieren und Neuinstallieren;
  • Festlegen einer Stapelgrößengrenze mit ulimit, wie vorgeschlagenHier.

Kein Glück.

Das Thema kam auch zur Sprache inein weiterer Thread, aber das ist spezifisch für das Windows-Subsystem für Linux, das ich nicht verwende.

Bearbeiten

Komme der Sache näher: Dies ist ein Kernel-Problem.

Auf der Maschine läuft ein individuell kompiliertesKernel, derzeit bei . Wenn ich zur Version des Kernels v5.17-rc3zurückkehre,5.16nichtsiehe Problem.

Ich bin nicht sicher, was sich für die 5.17Veröffentlichung geändert hat, aber es scheint, dass einige Änderungen an der Kernelkonfiguration erforderlich sind.

Bearbeiten 2

Gefundenetwas vielversprechendesauf der Kernel-Mailingliste.

Ich muss diesen Patch noch testen, aber er passt zu dem, was ich sehe: das Problem tritt nach auf v5.17-rc1.

Antwort1

Die zweite Bearbeitung enthält alles, was ich brauche: Es handelte sich um ein Kernelproblem, da ich nicht die Standardversion verwende Ubuntu.

Zusammenstellung derletzte Versiondes Kernels (noch v5.17-rc3während ich dies schreibe) mit dem bereitgestellten PatchHierlöst die Angelegenheit.

Ich gehe also davon aus, dass dies bis zur Linux 5.17Veröffentlichung in den UbuntuRepos upstream behoben sein wird. Kurz gesagt, ich bin startklar.

Antwort2

Ich bin der Benutzer, der die +50Prämie ausgesetzt hat. In meinem speziellen Anwendungsfall w3mwird aktiviert durch Emacs. Die benutzerdefinierte Version von , Emacsdie ich verwende, erfordert eine hohe Einstellung für eine bestimmte Undo/Redo-History-Bibliothek, die ich sehr mag. Ich hatte mit einer Desktop-Datei ulimitgestartet, die Folgendes enthielt:Emacs

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

Das Problem ist unlimited. Die Lösung besteht darin, einen festen Betrag zu verwenden, der etwas unter dem Systemlimit liegt, in kB. Geben Sie im Terminal ein grep MemTotal /proc/meminfound das Ergebnis sieht ungefähr so ​​aus:

MemTotal:        8141092 kB

Die Änderung sieht nun also folgendermaßen aus:

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

verwandte Informationen