Strona 1 z 2
[+] Jak zmienić GCC 4.1 na 2.95
: 12 sierpnia 2007, 07:33
autor: yonami
Potrzebuję przekompilować kernel 2.2.9, ale nie da się kompilatorem gcc 4.1.
Nie ma ani w repozytoriach, ani w systemie programu gcc-config lub gcc_select. Więc jak mogę zmienić na chwile profil kompilatora?
Zmiana linka z gcc > gcc-4.1 na gcc > gcc-2.95 nie ma szans, bo profil pozostaje ten sam.
A co do kernela 2.2 to potrzebuje go do emulacji.
Ma ktoś pomysły O.o7?
Pozdrawiam
: 12 sierpnia 2007, 09:32
autor: Lorenzo
Najpierw musiałbyś miec gcc-2.95, czyli
http://gcc.gnu.org i zassaj źródła 2.95 i skompiluj.
: 12 sierpnia 2007, 12:26
autor: Yampress
zainstaluj sobie obok 4.1 równorzędnie wersje 2.95 w repo etch jest
potem podlinkuj gcc -> gcc-2.95 zamiast na 4.1
: 12 sierpnia 2007, 17:01
autor: yonami
Mam kompilator 2.95
Linkowanie nie działa, bo oprócz kompilatora C, w skład GCC wchodzi jeszcze kilka narzędzi. Trzeba zmienić więc profil kompilatora, aby przełączył narzędzia na 2.95. Na Gentoo służy do tego:
Gry w nocy podlinkowalem pod GCC wersje 2.95, kernel sie prawie przekompilowal. Wywalilo przy inline assemblerze mnóstwo błędów, bo assembler był z GCC 4.1.
To samo z wersjami 1.x.x 2.2.x i 2.4.x jądra Linux.
Jest jeszcze jakaś opcja, czy mam wywalić Debiana i zainstalować coś innego :-)? Potrzebuje tę funkcje.
: 12 sierpnia 2007, 17:16
autor: castor
pomimo ze mam 3 wersje gcc
daje:
There is only 1 program which provides cc
(/usr/bin/gcc). Nothing to configure.
wiec AFAIK w Debianie pozostaje tylko , gcc-2.95 odpowiednio podlinkowac.
: 12 sierpnia 2007, 18:03
autor: Yampress
zainstaluj wersje 2.95 gcc cpp g++
potem je wszystkie podlinkuj z 4.1 na 2.95 powinno iść
: 12 sierpnia 2007, 19:48
autor: yonami
Kurcze, ten Debian to jest tragedia.
¯adnego kernela nie moge przekompilować, nawet po założeniu łat. Nie ważne czy to 2.2, 2.4 czy 2.6. Ciągle błędy - nizgodne typy lub coś z kodem assemblera. Nie jest realne, żeby każde archiwum kernela było z spaprane.
Bez problemu kompilowałem jądra, ale na Debianie, ani rusz. To distro kompletnie nie nadaje sie do tego co potrzebuje zrobić

- a potrzebuje stworzyć mini distro do nauki.
Zmieniam kompilatory i cały czas są błędy, różne dla każdego kompilatora. Ide sobie poszukać innej dystrybucji... chyba, że macie jakieś rozwiązania.
I to jest w 100% wina debiana, bo w systemie powinno sie dać systemowo zmienic profil kompilatora. Bo tak to ja sobie moge tylko podmienic sam kompilator, a narzędzia są dalej z 4.1.
: 12 sierpnia 2007, 20:40
autor: Lorenzo
U mnie kompilują się kernele 2.4 i 2.6 bezproblemowo na róznych wersjach gcc (z wyjątkiem gcc-4.3 ;-) ).
Sprawdź czy aby na pewno wersje gcc i cpp są zbiezne, czy nie masz jakiś aliasów i czy z flagami nie przesadzasz (wiem że debilian to nie gentoo, ale ricerów nie brakuje nigdzie).
I podaj te błedy, a nie becz - chłopaki nie płaczą.
: 12 sierpnia 2007, 20:53
autor: yonami
Przy każdym kernelu mam:
Kod: Zaznacz cały
cc -D__KERNEL__ -I/home/marcel/MyProjects/linux/sources/linux-2.2.26/linux-2.2.26/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -fno-strength-reduce -m386 -DCPU=386 -c -o process.o process.c
{standard input}: Assembler messages:
{standard input}:343: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:344: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:345: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:346: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:347: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:612: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:612: Warning: using `%eax' instead of `%ax' due to `l' suffix
{standard input}:820: Error: suffix or operands invalid for `mov'
{standard input}:821: Error: suffix or operands invalid for `mov'
{standard input}:976: Error: suffix or operands invalid for `mov'
{standard input}:977: Error: suffix or operands invalid for `mov'
{standard input}:1035: Error: suffix or operands invalid for `mov'
{standard input}:1036: Error: suffix or operands invalid for `mov'
{standard input}:1056: Error: suffix or operands invalid for `mov'
{standard input}:1068: Error: suffix or operands invalid for `mov'
make[1]: *** [process.o] Error 1
I nie ma bata.
[ Komentarz dodany przez: velmafia: 2007-08-12, 22:12 ]
//do kodów używaj tagów code
velmafia
: 12 sierpnia 2007, 20:58
autor: ponton
czy to jest dobrze? wygląda, jakby miał problemy z rejestrami 16- i 32-bitowymi.