
Я на Ubuntu 20.04.3 LTS x86_64
. Программаw3mне запускается следующим образом:
$ w3m -h
Wrong __data_start/_end pair
Aborted (core dumped)
я пытался
- установка и переустановка;
- установка ограничения размера стека с помощью
ulimit
, как и предлагалосьздесь.
Не повезло.
Этот вопрос также возник вдругая тема, но это относится только к подсистеме Windows для Linux, которой я не пользуюсь.
Редактировать
Ближе к делу: это проблема ядра.
Машина работает под управлением специально скомпилированнойядро, в настоящее время v5.17-rc3
. Если я вернусь к версии 5.16
ядра, я сделаюнетсм. выпуск.
Я не уверен, что изменилось в этом 5.17
релизе, но, похоже, необходимы некоторые изменения в конфигурации ядра.
Редактировать 2
Найденныйчто-то многообещающеев списке рассылки ядра.
Мне еще предстоит протестировать этот патч, но он соответствует тому, что я вижу: проблема появляется после v5.17-rc1
.
решение1
Во второй правке есть все, что мне нужно: это была проблема ядра, поскольку я не использую стандартную Ubuntu
версию.
СоставлениеПоследняя версияядра (на v5.17-rc3
момент написания этой статьи) с предоставленным патчемздесьрешает вопрос.
Так что я ожидаю, что к тому времени, как Linux 5.17
он попадет в Ubuntu
репозитории, это будет исправлено в upstream. Короче говоря, я готов.
решение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'