w3m не запускается с неправильной парой __data_start/_end

w3m не запускается с неправильной парой __data_start/_end

Я на 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'

Связанный контент