w3m falha ao iniciar com par __data_start/_end errado

w3m falha ao iniciar com par __data_start/_end errado

Estou ligado Ubuntu 20.04.3 LTS x86_64. O programaw3mfalha ao iniciar da seguinte forma:

$ w3m -h

Wrong __data_start/_end pair
Aborted (core dumped)

eu tentei

  • instalar e reinstalar;
  • definindo um limite de tamanho de pilha com ulimit, como sugeridoaqui.

Sem sorte.

A questão também surgiu emoutro tópico, mas isso é específico do subsistema Windows para Linux, no qual não estou.

Editar

Aproximando-se: este é um problema do kernel.

A máquina está executando um compilado personalizadonúcleo, atualmente em v5.17-rc3. Se eu voltar para a versão 5.16do kernel eu façonãoveja o problema.

Não tenho certeza de como as coisas mudaram para o 5.17lançamento, mas parece que é necessária alguma modificação na configuração do kernel.

Editar 2

Encontradoalgo promissorna lista de discussão do kernel.

Ainda não testei esse patch, mas ele se encaixa com o que estou vendo: o problema que aparece depois do v5.17-rc1.

Responder1

Essa segunda edição tem tudo que preciso: foi um problema de kernel, devido ao fato de não estar rodando a Ubuntuversão padrão.

Compilando oúltima versãodo kernel (ainda v5.17-rc3enquanto escrevo isto) com o patch fornecidoaquiresolve o assunto.

Portanto, espero que, quando Linux 5.17chegar aos Ubunturepositórios, isso já tenha sido corrigido no upstream. Resumindo, estou tudo pronto.

Responder2

Eu sou o usuário que postou a +50recompensa. No meu caso de uso específico, w3mé ativado por meio do Emacs. A compilação personalizada Emacsque uso requer uma ulimitconfiguração alta para uma biblioteca específica de histórico de desfazer/refazer da qual gosto bastante. Eu estava iniciando Emacscom um arquivo de desktop contendo:

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

O problema é unlimited. A solução é usar um valor definido um pouco menor que o limite do sistema, em kB. No terminal, digite grep MemTotal /proc/meminfoe o resultado será mais ou menos assim:

MemTotal:        8141092 kB

Então, a mudança agora fica assim:

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

informação relacionada