2012-05-03 13 views
6

Utknąłem w downgrade mojej wersji jądra do wersji 2.6.22. Komunikat o błędzie jest:Błąd kompilacji jądra: gcc: error: elf_i386: Brak takiego pliku lub katalogu

syscall arch/i386/kernel/vsyscall-int80.so gcc: błąd: elf_i386: Nie ma takiego pliku lub katalogu make [1]: * [arch/i386/kernel/vsyscall -int80.so] Błąd 1 make: * [arch/i386/kernel] Błąd 2

Próbowałem znaleźć w Google odpowiedzi, takie jak obniżenie wersji gcc itp. Ale nic się nie dzieje. Mój OS jest Ubuntu 11.04 z wersją jądra 3.1.4.

Co jest nie tak? Dziękuję za odpowiedzi.

+0

dlaczego chcesz obniżyć wersję? – kuba

Odpowiedz

22

Czy możesz sprawdzić plik makecile vdso, który powinien znajdować się w arch/x86/vdso/Makefile.

znaleźć linię

 VDSO_LDFLAGS
istnieje dwie linie jedna dla x64 i druga dla systemów x32 bit.

powinien mieć

 -m elf_x86_64
a drugi
 -m elf_x86

zastąpić je jak

 -m64
i
 -m32
odpowiednio.

Odniesienie do poprawki błędu Link1 Lockergnome i Link2 ubuntu.

+0

, podczas gdy twoja odpowiedź może rozwiązać problemy innych ludzi, to nie rozwiązuje tej sprawy, ponieważ w pytaniu @KMHook wskazuje, że problematyczna syscall występuje w pliku 'arch/i386/kernel/vsyscall-int80.so', a jednak sugerujesz zmienić niektóre linie w katalogu 'arch/x86 /'. – ecem

2

użyłem this odpowiedź na ten problem, i zmienił -m elf_i386 część do -m32 w Makefile przechowywanych w arch/i386/kernel katalogu i to rozwiązało problem , dla przyszłego odniesienia.

0

Zmieniłem określony plik Makefile (arch/x86/vdso/Makefile) i usunięto problem. Moja platforma to Ubuntu-12.04, Linux 3.13.0-30.

Powiązane problemy