Você precisa instalar o seguinte pacote:
libelf
Ele fornece o arquivo de cabeçalho gelf.h
e outros. Talvez você nunca tenha instalado em sua máquina.
Não tenho certeza do que aconteceu aqui. Estou tentando atualizar meu kernel do Linux de 4.9.x para 4.14.xe o que aconteceu abaixo:
In file included from arch/x86/decode.c:26:0:
arch/x86/../../elf.h:22:18: fatal error: gelf.h: No such file or directory
#include <gelf.h>
^
compilation terminated.
mv: cannot stat ‘/usr/src/linux-4.14.51/tools/objtool/arch/x86/.decode.o.tmp’: No such file or directory
make[4]: *** [/usr/src/linux-4.14.51/tools/objtool/arch/x86/decode.o] Error 1
make[3]: *** [arch/x86] Error 2
make[2]: *** [/usr/src/linux-4.14.51/tools/objtool/objtool-in.o] Error 2
make[1]: *** [objtool] Error 2
make: *** [tools/objtool] Error 2
Alguma idéia do que aconteceu aqui (além do óbvio)? Deve " gelf.h
" já estar no meu computador? Ou no tarball do kernel?
Eu baixei o vanilla 4.14.51 do kernel.org - Eu compilei meu próprio kernel vanilla (não-modificado) com sucesso, repetidamente, por 14 anos, mas isso é novo.
Meu PC é um laptop Dell com Core2 i5 (64 bits) com o Slackware 14.1 - Atualizei o estoque 3.17.x com o 4.4.x vários anos atrás e, mais recentemente, para o 4.9.x (atualmente 4.9.109) .
Eu faço ter o libelf instalado:
me@mylaptop:~$ locate gelf.h
/usr/include/libelf/gelf.h
me@mylaptop:~$ ls /var/log/packages/*elf*
/var/log/packages/libelf-0.8.13-x86_64-2
Ao tentar 4.14.55 na noite passada, observei que o diretório no qual o script de construção do kernel espera ver "gelf.h" está na árvore de código-fonte do kernel, não no regular /usr/include
.
Dito isto, o diretório correspondente na minha árvore fonte 4.9.x (em execução) não tem nenhum arquivo .o
nem .ko
. Obviamente, há um item de configuração ativado no 4.14.x que eu não habilitei em 4.9.x.
Eu tentei configurar o 4.14.x o mais próximo possível do meu trabalho 4.9.x. Estou ciente de algumas novas opções, mas geralmente tento manter as configurações iguais entre as versões intermediárias do kernel.
Dito isto, não sei qual opção de configuração é a que gostaria de ver os arquivos de cabeçalho em linux-4.14.*/tools/objtool/arch/x86/
... Alguma idéia?
Você precisa instalar o seguinte pacote:
libelf
Ele fornece o arquivo de cabeçalho gelf.h
e outros. Talvez você nunca tenha instalado em sua máquina.
Tags compiling linux-kernel