Wątek przeniesiony 2015-11-01 14:21 z Flame przez somekind.

Kompilowanie Kernela Linux

0

Witam, chciałem skompilować najnowszy Kernel Linux 4.3-rc7. Pobrałem i wypakowałem na dysku, przeszedłem do odpowiedniego katalogu i wydałem odpowiednie polecenie make menuconfig. Potem wydałem polecenie kompilacji make -j 3 KDEB_PKGVERSION=1.mojanazwa deb-pkg. Niestety wyskoczyły błędy kompilacji, nie wiem czy to może być wina zbyt starego kompilatora gcc?
gcc version 4.8.4

 Makefile:659: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
  CHK     include/config/kernel.release
make clean
  CLEAN   arch/x86/tools
  CLEAN   .tmp_versions
  TAR     linux-4.3.0-rc7.tar.gz
make KBUILD_SRC=
Makefile:659: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
  CHK     include/config/kernel.release
  HOSTCC  scripts/basic/fixdep
  CHK     include/generated/uapi/linux/version.h
  HOSTCC  scripts/basic/bin2c
  HOSTCC  arch/x86/tools/relocs_32.o
  CHK     include/generated/utsrelease.h
  HOSTCC  scripts/genksyms/genksyms.o
  HOSTCC  arch/x86/tools/relocs_64.o
  HOSTCC  scripts/genksyms/parse.tab.o
  HOSTCC  arch/x86/tools/relocs_common.o
  HOSTLD  arch/x86/tools/relocs
  HOSTCC  scripts/genksyms/lex.lex.o
  CC      kernel/bounds.s
gcc: error: unrecognized command line option ‘-fstack-protector-strong’
make[3]: *** [kernel/bounds.s] Błąd 1
make[2]: *** [prepare0] Błąd 2
make[2]: *** Oczekiwanie na niezakończone zadania....
  HOSTLD  scripts/genksyms/genksyms
  CC      scripts/mod/empty.o
gcc: error: unrecognized command line option ‘-fstack-protector-strong’
make[4]: *** [scripts/mod/empty.o] Błąd 1
make[3]: *** [scripts/mod] Błąd 2
make[2]: *** [scripts] Błąd 2
make[1]: *** [deb-pkg] Błąd 2
make: *** [deb-pkg] Błąd 2
0

Komunikat stack-protector-strong not supported by compiler wskazuje,
że kompilator nie posiada takiej opcji więc nie potrafi tego skompilować
a zatem nie nadaje sie do tego - no chyba, że tak to przekonfigurujesz
aby nie używał tej opcji.

A czy na stronie gdzie ściągałeś kod źródłowy nie było informacji o wymogach
co do wersji gcc i innych narzędzi ?


EDIT: wrzuciłem w Google "stack-protector-strong not supported by compiler"
i gdzieś pisało, że tą opcję wprowadzono dopiero w gcc-4.9.x

0

O dzięki, czyli tak jak przypuszczałem mam za stary kompilator gcc. Nie wiem czy moja dystrybucja Debiano-pochodna, jest w stanie bez 'piekła zależności' zainstalować drugi kompilator jak Gentoo, Funtoo - gdzie można mieć wiele tych samych pakietów o różnych numerkach.

0

W Debianie nie możesz miec tych samych pakietów w kilku wersjach, ale jeśli chodzi o gcc to można mieć obok siebie wersje z linii 4 i 5 i wybrać domyślnie używaną.

Poza tym, źle się za to bierzesz, Debian znacznie uprościł procedurę kompilacji i instalacji nowego kernela, poczytaj o kernel-package: https://www.debian.org/releases/stable/i386/ch08s06.html.en

0

Złoty Glob ale na końcu to polecenie <ort> deb-pkg</ort> przecież też mi tworzy pakiet deb. Który potem instaluję poleceniem <ort> dpkg -i ../linux*</ort>
Mój sposób kompilacji Kernela też jest prosty i szybki jak bym miał nowszy kompilator.

1 użytkowników online, w tym zalogowanych: 0, gości: 1