Não é possível compilar o Linux Kernel 4.7-rc2

1

Eu estava tentando compilar o kernel do Linux a partir do código-fonte. Eu compilei o kernel anteriormente e nunca recebi nenhum erro. Mas desta vez estou enfrentando um erro. O erro é

   CHK     include/generated/asm-offsets.h
   CALL    scripts/checksyscalls.sh
   HOSTCC  scripts/sign-file
  /tmp/cczyW3hq.o: In function 'main':
  sign-file.c:(.text.startup+0x52): undefined reference to 'OPENSSL_init_crypto'
  sign-file.c:(.text.startup+0x5e): undefined reference to 'OPENSSL_init_crypto'
  sign-file.c:(.text.startup+0x247): undefined reference to 'OPENSSL_init_crypto'
  collect2: error: ld returned 1 exit status
  scripts/Makefile.host:91: recipe for target 'scripts/sign-file' failed
  make[1]: [scripts/sign-file] Error 1

Quando eu verifiquei scripts / sign-file.c, vi comentários dizendo Sign a module file using the given key. . Por isso, reran make menuconfig e defino Module signature verification off. E tentei compilar novamente. Agora, o erro anterior foi removido, mas apareceu um novo erro, igual ao anterior, mas em um arquivo diferente. Aqui está o erro,

  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/extract-cert
  /tmp/ccA63AAC.o: In function 'main':
  extract-cert.c:(.text.startup+0x25): undefined reference to 'OPENSSL_init_crypto'
  extract-cert.c:(.text.startup+0x31): undefined reference to 'OPENSSL_init_crypto'
  collect2: error: ld returned 1 exit status
  scripts/Makefile.host:91: recipe for target 'scripts/extract-cert' failed
  make[1]: *** [scripts/extract-cert] Error 1
  Makefile:556: recipe for target 'scripts' failed
  make: *** [scripts] Error 2

Então, quero saber se esse problema é com libssl ou algum erro de configuração? Estou usando Ubuntu 16.04LTS com gcc-5.3.1 .

EDIT: Eu tentei reinstalar libssl-dev e também tentei compilar openssl a partir do código-fonte e, em seguida, instalar também. Eu copiei o arquivo de configuração de /boot/config-4.4.0-22-generic para o diretório de origem.

ATUALIZAÇÃO: com make scripts V=1 a seguir é a saída:

make -f ./scripts/Makefile.build obj=scripts/basic
rm -f .tmp_quiet_recordmcount
make -f ./scripts/Makefile.asm-generic \
        src=asm obj=arch/x86/include/generated/asm
make -f ./scripts/Makefile.asm-generic \
        src=uapi/asm obj=arch/x86/include/generated/uapi/asm
make -f ./scripts/Makefile.build obj=scripts
make -f ./scripts/Makefile.build obj=scripts/gdb
make -f ./scripts/Makefile.build obj=scripts/gdb/linux
make -f ./scripts/Makefile.build obj=scripts/genksyms
make -f ./scripts/Makefile.build obj=scripts/mod
make -f ./scripts/Makefile.build obj=scripts/selinux
make -f ./scripts/Makefile.build obj=scripts/selinux/genheaders
make -f ./scripts/Makefile.build obj=scripts/selinux/mdp
  gcc -Wp,-MD,scripts/.sign-file.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89   -I./tools/include  -o scripts/sign-file scripts/sign-file.c  -lcrypto
/tmp/cc7o2Y1C.o: In function 'main':
sign-file.c:(.text.startup+0x52): undefined reference to 'OPENSSL_init_crypto'
sign-file.c:(.text.startup+0x5e): undefined reference to 'OPENSSL_init_crypto'
sign-file.c:(.text.startup+0x247): undefined reference to 'OPENSSL_init_crypto'
collect2: error: ld returned 1 exit status
scripts/Makefile.host:91: recipe for target 'scripts/sign-file' failed
make[1]: *** [scripts/sign-file] Error 1
Makefile:556: recipe for target 'scripts' failed
make: *** [scripts] Error 2
    
por 0x0001 06.06.2016 / 12:19

1 resposta

0

Você terá que se certificar de que o link simbólico para libssl e libcrypto seja atualizado. Aqui está o que você deveria fazer: Procure todas as ocorrências de libssl.so e libcrypto.so

para cada um deles, veja que eles estão ligando para a versão correta do libssl. libssl.so.1.1 no seu caso (libssl.so.1.1 deve existir).

Se eles estiverem segmentando uma versão mais antiga, exclua o link e crie um novo

ln -s libssl.so.1.1 libssl.so

O mesmo que para libcrytpo.

Certifique-se de procurar todas as ocorrências de libssl.so (você nunca sabe de onde seu código o obtém)

    
por 02.11.2017 / 21:18