Ich habe versucht, den Linux-Kernel 3.10.31 auf Ubuntu 16.04 LTS zu kompilieren. Ich kompilierte den gleichen Kernel auf Ubuntu 12.04 LTS, und alles funktioniert gut.Kompiliere einen alten Linux-Kernel auf Ubuntu 16.04 LTS
Auf Ubuntu 16.04 ist die gcc-Version gcc-5
; Auf Ubuntu 12.04 ist die gcc-Version gcc-4.6
.
Es scheint, dass der Linux-Kernel vor 3.18 nicht mit dem gcc-5
kompilieren kann. Der Kernel 3.10.31 meldet den folgenden Fehler, wenn es von make
fatal error: linux/compiler-gcc5.h: No such file or directory
zusammengestellt habe ich versucht gcc-4.7 auf Ubuntu 16.04 zu installieren und die /usr/bin/gcc
an den gcc-4.7-zu-Punkt ändern. Dies könnte den obigen Fehler lösen. Es führt jedoch zu neuen Problemen, nachdem ich make
$linux/arch/x86/Makefile:98: stack protector enabled but no compiler support
make[1]: Nothing to be done for 'all'.
make[1]: Nothing to be done for 'relocs'.
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CC kernel/bounds.s
gcc-4.7.real: error: unrecognized command line option ‘-no-pie’
linux/./Kbuild:35: recipe for target 'kernel/bounds.s' failed
make[1]: *** [kernel/bounds.s] Error 1
Makefile:835: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
Meine Frage laufen ist:
Gibt es eine nette Art und Weise die alte Compilierung Kette zu verwenden, den alten Kernel 3.10.31 auf Ubuntu 16.04 zu kompilieren ?
Vielen Dank für Ihre Hilfe! Jeder Rat wird wirklich geschätzt.
dieser Link ist jedoch tot - hier ist ein weiterer: [https://raw.githubusercontent.com/siemens/u-boot/master/include/linux/compiler-gcc5.h] –