2016-06-14 3 views
0

Я попытался скомпилировать ядро ​​Linux 3.10.31 на Ubuntu 16.04 LTS. Я использовал для компиляции то же самое ядро ​​на Ubuntu 12.04 LTS, и все работает хорошо.Компилировать старое ядро ​​Linux на Ubuntu 16.04 LTS

На Ubuntu 16.04 версия gcc - gcc-5; На Ubuntu 12.04, версия gcc - gcc-4.6.

Кажется, что ядро ​​ядра ядра до 3.18 не может скомпилироваться с gcc-5. Ядро 3.10.31 сообщает следующее сообщение об ошибке при компиляции с помощью make

fatal error: linux/compiler-gcc5.h: No such file or directory 

Я попытался установить НКУ-4,7 на Ubuntu 16.04 и изменить /usr/bin/gcc, чтобы указать на GCC-4.7. Это может решить вышеупомянутую ошибку. Тем не менее, это приводит к новым проблемам после бегаю 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 

Мой вопрос:

Есть отличный способ, чтобы использовать старую цепочку затрудняет установка скомпилировать старое ядро ​​3.10.31 на Ubuntu 16.04 ?

Большое вам спасибо за помощь! Любые советы действительно оценены.

ответ

2

Я думаю, что я решил решение.

Нам не нужно устанавливать старую версию gcc. Нам нужно только скопировать файл compiler-gcc5.h from here или from here в include/linux /. Это решит проблему компиляции.

+0

эта ссылка мертва, однако - вот еще один: [https://raw.githubusercontent.com/siemens/u-boot/master/include/linux/compiler-gcc5.h] –

Смежные вопросы