ďťż
 
 
   [+] Jak zmienić GCC 4.1 na 2.95
 
 

Tematy

 
    
 

 

 

 

[+] Jak zmienić GCC 4.1 na 2.95





yonami - 12-08-2007 07:33
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



Lorenzo - 12-08-2007 09:32
Najpierw musiałbyś miec gcc-2.95, czyli http://gcc.gnu.org i zassaj źródła 2.95 i skompiluj.



Yampress - 12-08-2007 12:26
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



yonami - 12-08-2007 17:01
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:

gcc-config 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.



castor - 12-08-2007 17:16
pomimo ze mam 3 wersje gcc
update-alternatives --config cc daje:

wiec AFAIK w Debianie pozostaje tylko , gcc-2.95 odpowiednio podlinkowac.



Yampress - 12-08-2007 18:03
zainstaluj wersje 2.95 gcc cpp g++
potem je wszystkie podlinkuj z 4.1 na 2.95 powinno iść



yonami - 12-08-2007 19:48
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.



Lorenzo - 12-08-2007 20:40
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ą.



yonami - 12-08-2007 20:53
Przy każdym kernelu mam:

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



ponton - 12-08-2007 20:58
-DCPU=386 czy to jest dobrze? wygląda, jakby miał problemy z rejestrami 16- i 32-bitowymi.



yonami - 12-08-2007 21:28
w make.conf mam
CFLAGS -march=386
CHOST i386-pc-linux-gnu
ustawienia procesora w kernelu 386

Nie rozumiem, każdy kernel tu sie wywala.



Lorenzo - 13-08-2007 00:08
To jest problem z binutils (dokładnie z /usr/bin/as)
Spróbuj na innej wersji (możliwe, że potrzebna by była jakaś archaiczna z przed 2 lat).
Znalazłem narazie patcha dla kerneli 2.4 i spróbuje go dostosować do 2.2.26.

//edit:
Pobierz tą paczkę:
http://ftp.pl.debian.org/debian/pool....15-6_i386.deb
Jest tak stara, że nie dasz rady jej pewnie zainstalować, więc metoda Nahamowa - otwórz ja pod mc, następnie przekopiuj do odpowiednich katalogów zawartość CONTENTS.
Wykonaj ldconfig i jeżeli nie masz zrytych LDFLAGS to pójdzie (ja miałem -Wl,--as-needed,-O1 i musiałem je wywalić)

Moje ustawienia:
CFLAGS="-march=i386 -Os -pipe -fomit-frame-pointer -s"
 CHOST="i386-pc-linux-gnu"
 CXXFLAGS="-march=i386 -Os -pipe -fomit-frame-pointer -s"
 CXXHOST="i386-pc-linux-gnu"
 DEB_BUILD_GNU_TYPE="i386-pc-linux-gnu"
 DEB_HOST_GNU_TYPE="i386-pc-linux-gnu"
 DEB_TARGET_GNU_CPU="i386-pc-linux-gnu"
 HOSTTYPE="i386"
 MACHTYPE="i386-pc-linux-gnu" gcc, cpp w wersji 2.95.
Zainstaluj jeszcze bin86



yonami - 14-08-2007 05:46
Heh - dzieki poszło ;-D
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis