
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-rc3
zurückkehre,5.16
nichtsiehe Problem.
Ich bin nicht sicher, was sich für die 5.17
Verö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-rc3
während ich dies schreibe) mit dem bereitgestellten PatchHierlöst die Angelegenheit.
Ich gehe also davon aus, dass dies bis zur Linux 5.17
Veröffentlichung in den Ubuntu
Repos upstream behoben sein wird. Kurz gesagt, ich bin startklar.
Antwort2
Ich bin der Benutzer, der die +50
Prämie ausgesetzt hat. In meinem speziellen Anwendungsfall w3m
wird aktiviert durch Emacs
. Die benutzerdefinierte Version von , Emacs
die ich verwende, erfordert eine hohe Einstellung für eine bestimmte Undo/Redo-History-Bibliothek, die ich sehr mag. Ich hatte mit einer Desktop-Datei ulimit
gestartet, 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/meminfo
und 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'