Forum Linux.pl

System => Konfiguracja => Wątek zaczęty przez: Azirek w 2007-01-28, 16:42:43

Tytuł: 2.4.34-lck1 problem z kompilacją
Wiadomość wysłana przez: Azirek w 2007-01-28, 16:42:43
Ściągnąłem sobie waniliowe jajko 2.4.34 i nałożyłem patcha 2.4.34-lck1.bz2. Użyłem podobnej konfiguracji z poprzedniej wersji (2.4.31-lck1), z którą nie miałem żadnych problemów. Wykonałem wszystko jak należy make dep i przy próbie kompilacji make bzImage zgłasza błąd:

make[1]: Entering directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
gcc -D__KERNEL__ -I/usr/src/linux-2.4.34-lck1/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fno-builtin-sprintf -fomit-frame-pointer  -pipe -mpreferred-stack-boundary=2 -march=k6 -fno-unit-at-a-time   -nostdinc -iwithprefix include -DKBUILD_BASENAME=i387  -c -o i387.o i387.c
i387.c: In function `__save_init_fpu':
i387.c:80: error: structure has no member named `context_swtch'
make[1]: *** [i387.o] Błąd 1
make[1]: Leaving directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
make: *** [_dir_arch/i386/kernel] Błąd 2

patch-2.4.34-lck1 zawiera wszystkie patche, z których można wyodrębnić np. 010-lckbase.diff.bz2 <-- właśnie ten patch ingeruje właśnie w plik /usr/src/linux-2.4.34-lck1/arch/i386/kernel/i387.c

Patch ten jest najistotniejszy, jego opis:
Base lck contains the batch O(1) scheduler, kernel preemption, low latency and CK interactivity:

Nie wiem jak sobie z tym poradzić, myślałem na początku, że "context_swtch" to literówka i powinno być "context_switch" ale niestety to nie to. Co można z tym fantem zrobić?

Moge gcc to wersja 3.4.5. System Slackware 10.2.
Tytuł: 2.4.34-lck1 problem z kompilacją
Wiadomość wysłana przez: Lorenzo w 2007-01-28, 16:59:33
2007-01-28 16:42:43 Azirek napisał:

> Ściągnąłem sobie waniliowe jajko 2.4.34 i nałożyłem patcha 2.4.34-lck1.bz2. Użyłem podobnej
 > konfiguracji z poprzedniej wersji (2.4.31-lck1), z którą nie miałem żadnych problemów. Wykonałem
 > wszystko jak należy make dep i przy próbie kompilacji make bzImage zgłasza błąd:
 >
 > make[1]: Entering directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
 > gcc -D__KERNEL__ -I/usr/src/linux-2.4.34-lck1/include -Wall -Wstrict-prototypes -Wno-trigraphs
 > -O2 -fno-strict-aliasing -fno-common -fno-builtin-sprintf -fomit-frame-pointer  -pipe
 > -mpreferred-stack-boundary=2 -march=k6 -fno-unit-at-a-time   -nostdinc -iwithprefix include
 > -DKBUILD_BASENAME=i387  -c -o i387.o i387.c
 > i387.c: In function `__save_init_fpu':
 > i387.c:80: error: structure has no member named `context_swtch'
 > make[1]: *** [i387.o] Błąd 1
 > make[1]: Leaving directory `/usr/src/linux-2.4.34-lck1/arch/i386/kernel'
 > make: *** [_dir_arch/i386/kernel] Błąd 2
 >
 > patch-2.4.34-lck1 zawiera wszystkie patche, z których można wyodrębnić np. 010-lckbase.diff.bz2
 > <-- właśnie ten patch ingeruje właśnie w plik
 > /usr/src/linux-2.4.34-lck1/arch/i386/kernel/i387.c
 >
 > Patch ten jest najistotniejszy, jego opis:
 > Base lck contains the batch O(1) scheduler, kernel preemption, low latency and CK
 > interactivity:
 >
 > Nie wiem jak sobie z tym poradzić, myślałem na początku, że "context_swtch" to
 > literówka i powinno być "context_switch" ale niestety to nie to. Co można z tym fantem
 > zrobić?
 
 > Moge gcc to wersja 3.4.5. System Slackware 10.2.

A bez patcha się kompiluje?
Jeszcze jedno pytanko - nie grzebałes w Makefile'u lub w zmiennych środowiskowych przy flagach kompilatora?
Tytuł: 2.4.34-lck1 problem z kompilacją
Wiadomość wysłana przez: Azirek w 2007-01-28, 17:11:00
2007-01-28 16:59:33 Lorenzo napisał:

 > A bez patcha się kompiluje?
 > Jeszcze jedno pytanko - nie grzebałes w Makefile'u lub w zmiennych środowiskowych przy flagach
 > kompilatora?

Nie grzebałem w Makefile i nie zmieniałem flag. Nie próbowałem kompilować wyniliowego jaja. Nawet jeśli się da to zależy mi tylko żeby było z tym patchem.
Znalazłem coś ciekawego. W pliku i386.c w wierszu 78 jest napisane:
/* AMD CPUs leak F?P. Clear it here */

Posiadam procesor AMD K6-2 więc usunąłem cały następny 79 wiersz, który zawierał:
asm volatile("ffree %%st(7) ; fildl %0" ::asm volatile("ffree %%st(7) ; fildl %0" :: "m" (kstat.context_swtch)); "m" (kstat.context_swtch));

I dalsza kompilacja powiodła się. Zastanawiam się tylko czy to było prawidłowe z mojej strony.
Tytuł: 2.4.34-lck1 problem z kompilacją
Wiadomość wysłana przez: Lorenzo w 2007-01-28, 19:29:55
Jeżeli kernel działa to prawidłowo. W źródłach można znaleźć różne kwiatki ;-)

P.S. K6-2 rulez :D
Tytuł: 2.4.34-lck1 problem z kompilacją
Wiadomość wysłana przez: Azirek w 2007-01-28, 19:35:34
2007-01-28 19:29:55 Lorenzo napisał:

> Jeżeli kernel działa to prawidłowo. W źródłach można znaleźć różne kwiatki ;-)
 >
 > P.S. K6-2 rulez :D

:)

azirek@hermes$uname -a
Linux hermes 2.4.34-lck1 #3 nie sty 28 17:01:08 CET 2007 i586 k6-2 i386 GNU/Linux
azirek@hermes$cat /proc/sys/kernel/lowlatency
1
Tytuł: 2.4.34-lck1 problem z kompilacją
Wiadomość wysłana przez: andrewgatt w 2007-02-02, 13:39:57
2007-01-28 19:35:34 Azirek napisał:

> 2007-01-28 19:29:55 Lorenzo napisał:
 >
 > > Jeżeli kernel działa to prawidłowo. W źródłach można znaleźć różne kwiatki ;-)
 >  >
 >  > P.S. K6-2 rulez :D
 >
 > :)
 >
 > azirek@hermes$uname -a
 > Linux hermes 2.4.34-lck1 #3 nie sty 28 17:01:08 CET 2007 i586 k6-2 i386 GNU/Linux
 > azirek@hermes$cat /proc/sys/kernel/lowlatency
 > 1
 >

Hi,

Sorry i realise this isn't an english forum, but your question is the only result from google. I'm having the same error with i387.c when trying to compile 2.4.34 with the low-latency patch could you repeat the solution in english for me?

My apologies again.

Andrew
Tytuł: 2.4.34-lck1 problem z kompilacją
Wiadomość wysłana przez: Azirek w 2007-02-04, 17:49:06
2007-02-02 13:39:57 andrewgatt napisał:

 > Hi,
 >
 > Sorry i realise this isn't an english forum, but your question is the only result from google.
 > I'm having the same error with i387.c when trying to compile 2.4.34 with the low-latency patch
 > could you repeat the solution in english for me?
 >
 > My apologies again.
 >
 > Andrew

Look at the 78 line in the file /usr/src/linux-2.4.34-lck1/arch/i386/kernel/i387.c
There is wrote: "/* AMD CPUs leak F?P. Clear it here */". So I cleared line 79 and next I compiled successful the kernel.