Ошибка компиляции Linux ядра 2.6 в новой версии GCC - PullRequest
0 голосов
/ 11 апреля 2020

Я скачал Linux ядро ​​2.6.34 и хотел скомпилировать его с помощью G CC v8.3.0 на Debian10. Первоначально у меня были проблемы с исполняемыми файлами P IE, которые я решил, добавив -fno-pie в Makefile CFLAGS. Мне удалось запустить сборку, но она, в конце концов, не удалась со следующей ошибкой:

gcc: error: elf_x86_64: No such file or directory
gcc: error: unrecognized command line option ‘-m’
make[2]: *** [/linux/arch/x86/vdso/Makefile:34: arch/x86/vdso/vdso.so.dbg] Error 1
make[1]: *** [scripts/Makefile.build:366: arch/x86/vdso] Error 2
make: *** [Makefile:884: arch/x86] Error 2

Взгляните на / linux / arch / x86 / vdso / Makefile: 34

28  VDSO_LDFLAGS_vdso.lds = -m elf_x86_64 -Wl,-soname=linux-vdso.so.1 \
29          -Wl,-z,max-page-size=4096 -Wl,-z,common-page-size=4096
30  
31  $(obj)/vdso.o: $(src)/vdso.S $(obj)/vdso.so
32  
33  $(obj)/vdso.so.dbg: $(src)/vdso.lds $(vobjs) FORCE
34          $(call if_changed,vdso)

Похоже, опция -m elf_x86_64 передана компоновщику, вызвавшему эту ошибку.

После нескольких других случайных взломов и разочарований я подумал, что, возможно, это 10-летнее ядро ​​никогда не скомпилируется в современной системе, и я решил: скомпилируйте его на виртуальной машине Ubuntu 12.04 LTS 2012 года, которая имеет относительно версии программного обеспечения (G CC v4.8) примерно в том же году выпуска ядра. К сожалению, это не сработало, и та же проблема снова появилась на G CC v4.8:

gcc: error: elf_x86_64: No such file or directory
gcc: error: unrecognized command line option ‘-m’
make[2]: *** [arch/x86/vdso/vdso.so.dbg] Error 1
make[1]: *** [arch/x86/vdso] Error 2
make: *** [arch/x86] Error 2

В чем причина этой проблемы и как я могу ее решить?

...