View previous topic :: View next topic |
Author |
Message |
stiwi Apprentice
Joined: 20 Mar 2003 Posts: 266 Location: hamburg - germany
|
Posted: Wed Dec 07, 2005 11:39 pm Post subject: |
|
|
mal ne andere frage. wenn ich auf gcc3.4.4 update und dann emerge -e system und revde-rebuild mache. kann ich mir irgendwie anzeigen lassen welche eventuellen binärpackete noch auf die alte lib verlinken? sonst brauche ich die alte lib ja nicht extra installieren. danke |
|
Back to top |
|
|
Rüpel Guru
Joined: 06 Nov 2002 Posts: 316 Location: Berlin/Germany
|
Posted: Thu Dec 08, 2005 9:17 am Post subject: |
|
|
Toll. Super. Bei mir ist das Updaten der 422 Pakete mittendrin an tse3 gescheitert.
Da gibt es seit Mai einen Patch im Bugzilla und weder 0.2.7 noch 0.3.0-r1 lassen sich mit arts-3.4.1-r2 und gcc-3.4.4 kompilieren.
Gibts da überhaupt noch einen Maintainer?
...oder mach ich was falsch?
*edit*
Ha! Ich habs. Der Trick ist, dass nicht nur arts eine Abhängigkeit ist (wie das im ebuild von tse3 steht), sondern auch kdemultimedia-arts - wenn das vorher mit dem neuen Compiler gebaut wurde, dann läuft auch tse3 durch.
Ungepflegte ebuilds sind teilweise eine echte Last! _________________ :wq |
|
Back to top |
|
|
Rüpel Guru
Joined: 06 Nov 2002 Posts: 316 Location: Berlin/Germany
|
Posted: Thu Dec 08, 2005 1:42 pm Post subject: |
|
|
Da ja ein emerge --resume bei mir nicht mehr in Frage kommt, ich aber natürlich nicht nochmal von vorne anfangen will, hab ich mir was überlegt. Ist ein Hack und bedarf einiger Arbeit, um das zu verallgemeinern, aber vielleicht hilft das ja jemandem.
Also Problem: emerge -e world ist irgendwann mittendrin abgebrochen, man fixt das Problem, installiert das problematische Paket erneut und will dann mit dem emerge -e world weitermachen. Geht nicht. Weil --resume sich immer nur aus das letzte emerge bezieht.
Wer in der /etc/make.conf PORT_LOGDIR=/var/log/portage gesetzt hatte (und das Verzeichnis schonmal angelegt hatte) - vor dem ersten emerge -e world versteht sich - der weiß ja, was als letztes übersetzt wurde. Man muss nur die Infos aus dem logdir rauspopeln.
Ich hab mir alle von emerge -e world installierten Pakete in eine Datei geschrieben, zum Beispiel mit:
Code: | emerge -ep --nocolor world | cut -d ' ' -f8 | grep '/' > packages |
Das will er also alles installieren.
Jetzt kommt Handarbeit. Ich suche mir im /var/log/portage Verzeichnis die Log-Datei des ersten Pakets meines ersten emerge -e world Aufrufs (der abgebrochene). Bei mir fängt es mit sys-devel/patch an. Die Logdatei heisst in meinem Fall: 2879-patch-2.5.9.log. Also alle Pakete, die danach installiert wurden, brauch ich nicht nochmal übersetzen. Mit diesem Wissen bearbeite ich das folgende Shellskript:
Code: | #!/bin/sh
for i in $(cat packages); do
p=$(echo $i | cut -d '/' -f2)
f=$(find /var/log/portage/ -newer /var/log/portage/2879-patch-2.5.9.log | grep $p)
if [ -z "$f" ]
then
emerge =$i || exit 1;
fi
done | Die Referenzdatei an der entsprechenden Stelle eintragen.
Nicht besonders toll, nicht irgendwie super aromatisch, aber es läuft. ^^
Gibt bestimmt tausend andere und bessere Ansätze, aber wenigstens muss ich meine ersten 120 Pakete (darunter so Kleinigkeiten wie gcc, glibc und qt) nicht nochmal installieren. _________________ :wq |
|
Back to top |
|
|
tuxian l33t
Joined: 26 Jan 2004 Posts: 766 Location: Austria
|
Posted: Fri Dec 09, 2005 9:28 am Post subject: |
|
|
Wann genau kann ich CFLAGS wie -march=pentium-m setzen (bei Methode 2)?
Schon vor "emerge -e world"?
Sonst hab ich ja vorerst keinen Nutzen und müsste dann nochmals ein "emerge -e world" machen! |
|
Back to top |
|
|
SinoTech Advocate
Joined: 20 Mar 2004 Posts: 2579 Location: Neunkirchen / Saarland / Germany
|
Posted: Fri Dec 09, 2005 11:05 am Post subject: |
|
|
tuxian wrote: | Wann genau kann ich CFLAGS wie -march=pentium-m setzen (bei Methode 2)?
Schon vor "emerge -e world"?
Sonst hab ich ja vorerst keinen Nutzen und müsste dann nochmals ein "emerge -e world" machen! |
Ersetze das "emerge -e system" durch
Code: |
$ emerge glibc binutils && emerge gcc glibc binutils
|
Damit hast du eine konsitente Toolchain. Danach kannst du den alten gcc löschen
Code: |
$ emerge -C =gcc-<version>
|
Und jetzt kannst du die neuen CFLAGS setzen und dein "emerge -e world" machen.
WICHTIG:
Mache kein "emerge -C gcc" (Also ohne Versionsnummer) da dabei auch der neue gcc gelöscht wird. Also schön die Versionsnummer dazu schreiben !!!
Mfg
Sino |
|
Back to top |
|
|
tuxian l33t
Joined: 26 Jan 2004 Posts: 766 Location: Austria
|
Posted: Fri Dec 09, 2005 1:18 pm Post subject: |
|
|
Okay danke für die schnelle Info! |
|
Back to top |
|
|
AntonWert Apprentice
Joined: 06 Mar 2005 Posts: 177
|
Posted: Mon Dec 12, 2005 4:24 pm Post subject: Re: Systemumstellung auf gcc 3.4(.4) |
|
|
amne wrote: | Warnung: Bitte jetzt noch keine neuen, nur von gcc 3.4 unterstützten CFLAGS wie -march=pentium-m setzen, falls nocheinmal gcc 3.3.6 übersetzt wird geht das nämlich daneben.
|
Was ist mit meinen "alten" CFLAGS, muss ich die auskommentieren oder darf ich die lassen? |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Mon Dec 12, 2005 5:59 pm Post subject: Re: Systemumstellung auf gcc 3.4(.4) |
|
|
AntonWert wrote: | Was ist mit meinen "alten" CFLAGS, muss ich die auskommentieren oder darf ich die lassen? |
Natürlich darfst du die behalten. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
tuxian l33t
Joined: 26 Jan 2004 Posts: 766 Location: Austria
|
Posted: Mon Dec 12, 2005 5:59 pm Post subject: |
|
|
Die kannst du auf jeden Fall so lassen wie sie sind! |
|
Back to top |
|
|
SinoTech Advocate
Joined: 20 Mar 2004 Posts: 2579 Location: Neunkirchen / Saarland / Germany
|
Posted: Mon Dec 12, 2005 5:59 pm Post subject: Re: Systemumstellung auf gcc 3.4(.4) |
|
|
AntonWert wrote: | amne wrote: | Warnung: Bitte jetzt noch keine neuen, nur von gcc 3.4 unterstützten CFLAGS wie -march=pentium-m setzen, falls nocheinmal gcc 3.3.6 übersetzt wird geht das nämlich daneben.
|
Was ist mit meinen "alten" CFLAGS, muss ich die auskommentieren oder darf ich die lassen? |
Die darfst du lassen da der neue gcc Abwärtskompatibel ist.
Mfg
Sino
EDIT:
Bähh, zu spät
Last edited by SinoTech on Mon Dec 12, 2005 7:16 pm; edited 1 time in total |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Mon Dec 12, 2005 6:28 pm Post subject: |
|
|
tuxian, SinoTech: Zu langsam. Ätsch! _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
SinoTech Advocate
Joined: 20 Mar 2004 Posts: 2579 Location: Neunkirchen / Saarland / Germany
|
Posted: Mon Dec 12, 2005 7:18 pm Post subject: |
|
|
amne wrote: | tuxian, SinoTech: Zu langsam. Ätsch! |
Fast zeitgleich drei antworten ... damit rechnet natürlich keiner
Mfg
Sino |
|
Back to top |
|
|
mastacloak Apprentice
Joined: 01 Aug 2004 Posts: 174 Location: Berlin / Germany
|
Posted: Tue Dec 13, 2005 10:38 pm Post subject: gcc-Wechsel und ccache |
|
|
Heyho,
wenn ich die Funktionsweise von ccache richtig verstanden habe, dann kann ich
doch vor dem Wechsel auf gcc-3.4.4 mein ccache-Verzeichnis vollständig löschen?
Oder bringen mir die vom gcc-3.3.6 gecachten Anfragen noch irgendetwas?
Und danach löschen wäre ja blöd, dann sind die gecachten gcc-3.4.4 Sachen ja auch weg.
Und wenn ich diese Zeilen
Quote: | The basic idea is to detect when you are compiling exactly the same code a 2nd time and use the previously compiled output. You detect that it is the same code by forming a hash of:
* the pre-processor output from running the compiler with -E
* the command line options
* the real compilers size and modification time
* any stderr output generated by the compiler
These are hashed using md4 (a strong hash) and a cache file is formed based on that hash result. When the same compilation is done a second time ccache is able to supply the correct compiler output (including all warnings etc) from the cache. |
aus [1] richtig übersetze, dann ist es sinnvoll vor jedem Compilerwechsel und
sei es nur von gcc-x.y.z auf gcc-x.y.z-r1 das Cache-Verzeichnis zu löschen, oder?
[1] http://ccache.samba.org/ccache/ccache-man.html |
|
Back to top |
|
|
ixo Guru
Joined: 09 Jul 2005 Posts: 375
|
Posted: Mon Dec 19, 2005 5:44 pm Post subject: tierische Probleme beim Upgrade auf gcc 3.4.4 |
|
|
Hallo,
ich habe auf gcc 3.4.4 wie hier beschreiben umgegestellt. Im großen Ganzen ist das auch gut gegangen (ein paar Pakete wollten sich nicht übersetzen lassen, die habe ich gelöscht, weil es Programme waren, die ich nicht wirklich brauchte).
Die einzige zusätzliche Änderung, die ich vorgenommen habe, war:
Code: | CFLAGS="-O2 -mcpu=athlon-4 -fomit-frame-pointer -ffast-math -pipe" |
auf
Code: | CFLAGS="-O2 -march=athlon-4 -fomit-frame-pointer -ffast-math -pipe" |
geändert, weil der Compiler dann glücklicher war. Mein Rechner ist ein:
Code: | vendor_id : AuthenticAMD
cpu family : 6
model : 3
model name : AMD Duron(tm)
stepping : 1
cpu MHz : 801.485
cache size : 64 KB |
also nicht gerade das schnellste (keine cpu Bugs bei /proc/cpuinfo).
Nach der Installation liefer alle möglichen Programme nicht mehr. Vor ein paar Tagen habe ich dann nochmals ein Update (emerge --update --deep world) gefahren, bei dem z.B. kde auf Version 3.4.3 neu compiliert wurde. Beim Einloggen stürzen folgende Programme mit signal 4 (SIGILL) ab: KCMInit, KWin, kicker, konqueror, firefox.
Wenn ich top starten will, bekomme ich Illegal instruction.
Ich habe den Verdacht, dass es an libpthread liegt, weil die bei den kde-Fehlermeldungen immer 'mal wieder auftaucht. Welches Packet müsste man neu übersetzen, um libpthread neu zu erzeugen (sys-libs/glibc habe ich auf Verdacht schon 'mal neu übersetzt, hat aber gebracht.) Allerdings wurde libpthread auch neu angelegt (ls -l), wurde also wohl auch neu übersetzt!
Weiß jemand Rat!?
Ach ja, auf meinem Server hat die Umstellung nach derselben Vorgehensweise problemlos geklappt (da läuft z.B. auch top problemlos). |
|
Back to top |
|
|
SinoTech Advocate
Joined: 20 Mar 2004 Posts: 2579 Location: Neunkirchen / Saarland / Germany
|
Posted: Mon Dec 19, 2005 7:47 pm Post subject: Re: tierische Probleme beim Upgrade auf gcc 3.4.4 |
|
|
ixo wrote: |
[...]
Wenn ich top starten will, bekomme ich Illegal instruction.
[...]
|
Evtl. ein falscher Eintrag bei den CFlags? Probier mal:
Code: |
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=athlon-tbird -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
|
Siehe auch: Safe_Cflags
Mfg
Sino |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Mon Dec 19, 2005 8:33 pm Post subject: Re: tierische Probleme beim Upgrade auf gcc 3.4.4 |
|
|
ixo wrote: |
Die einzige zusätzliche Änderung, die ich vorgenommen habe, war:
Code: | CFLAGS="-O2 -mcpu=athlon-4 -fomit-frame-pointer -ffast-math -pipe" |
auf
Code: | CFLAGS="-O2 -march=athlon-4 -fomit-frame-pointer -ffast-math -pipe" |
geändert, weil der Compiler dann glücklicher war. Mein Rechner ist ein:
|
Stimmt, mcpu geht nicht mehr, das habe ich vorne hinzugefügt.
ixo wrote: |
Code: | model name : AMD Duron(tm)
stepping : 1
cpu MHz : 801.485
|
|
So ein Ding hatte ich auch (bis das Mainboard abgeraucht ist), ich hatte immer -march=athlon.
man gcc wrote: | athlon-4, athlon-xp, athlon-mp
Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support.
|
Taucht bei #grep flags /proc/cpuinfo auch wirklich sse in den Flags auf? Kann ich mir nicht vorstellen. Falls ich recht habe, nimm -march=athlon. Und tu das -ffast-math weg, das bringt nix ausser Ärger (siehe auch hier).
Dann würde ich glibc und gcc neu bauen und die defekten Pakete neu mergen. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
ixo Guru
Joined: 09 Jul 2005 Posts: 375
|
Posted: Mon Dec 19, 2005 8:49 pm Post subject: |
|
|
Code: | # grep flags /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow |
liefert also tatsächlich kein sse
Komisch nur, dass es vorher nie irgendwelche Probleme gab
Naja, dann werde ich 'mal wieder einige Tage (4-5) kompilieren
Jedenfalls vielen Dank für die Tipps, irgend so etwas hatte ich mir fast gedacht. |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Mon Dec 19, 2005 8:58 pm Post subject: |
|
|
Ja, dann würde ich es einmal mit athlon (bzw athlon-tbird wie SinoTech meinte) versuchen.
Vermutlich optimiert gcc 3.3.x nicht so gut, wodurch weniger bis keine Codefragmente entstehen, die Probleme verursachen. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Thu Jan 05, 2006 7:54 pm Post subject: |
|
|
Was ich noch nicht ganz verstehe, meine alsa-driver mögen mich nicht mehr. Ausgaben dmesg:
Code: | snd_seq_device: version magic '2.6.11-gentoo-r6 preempt PENTIUMIII 4KSTACKS gcc-3.3' should be '2.6.11-gentoo-r6 preempt PENTIUMIII 4KSTACKS gcc-3.4'
snd_timer: version magic '2.6.11-gentoo-r6 preempt PENTIUMIII 4KSTACKS gcc-3.3' should be '2.6.11-gentoo-r6 preempt PENTIUMIII 4KSTACKS gcc-3.4' |
Und das obwohl Kernel als auch alsa-driver mit dem 3.4er kompiliert wurden. (und auch von dem Kernel gebootet) Was habe ich übersehen? |
|
Back to top |
|
|
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Thu Jan 05, 2006 11:07 pm Post subject: |
|
|
Symlink in /usr/src stimmt? Versuch mal make clean vor dem Kernel kompilieren (war bei mir nicht notwendig). _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Fri Jan 06, 2006 6:14 am Post subject: |
|
|
Symlink paßt und ein make mrproper hat mir vorher alles gesäubert. (denke ich zumindest)
Und der richtige gcc wird auch verwendet (der einzige auf dem System)
Code: | # gcc-config -L
/usr/lib/gcc/i686-pc-linux-gnu/3.4.4 |
|
|
Back to top |
|
|
SinoTech Advocate
Joined: 20 Mar 2004 Posts: 2579 Location: Neunkirchen / Saarland / Germany
|
Posted: Fri Jan 06, 2006 8:00 am Post subject: |
|
|
Also der Kernel scheint korrekt kompiliert zu sein. Was Probleme macht sind die Alsa-Module, da die aus irgend einem Grund noch mit dem alten gcc-3.3.X kompiliert wurden.
Probier mal ein
Code: |
$ emerge -c alsa-driver
$ emerge alsa-driver
|
Mfg
Sino |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Fri Jan 06, 2006 1:12 pm Post subject: |
|
|
Bringt auch nichts. Ich habe sogar die Hardcore-Variante probiert und alles in /lib/modules/`uname -r`/alsa-driver/ gelöscht und alsa-driver neu gemergt. Dann kam mir die Idee das evt. distcc daran schuld sein könnte. Also um sicher zu gehen distcc komplett entfernt und alsa-driver neu installiert. Wieder das gleiche Auch remergt von alsa-utils alsa-headers alsa-oss hat nichts gebracht. Was ich mich frage woher er den gcc-3.3 nehmen will, der ist gar nicht mehr installiert!
Code: | # equery l gcc
[ Searching for package 'gcc' in all categories among: ]
* installed packages
[I--] [ ] sys-devel/gcc-3.4.4-r1 (3.4)
[I--] [M ] sys-devel/gcc-config-1.3.12-r4 (0) |
|
|
Back to top |
|
|
SinoTech Advocate
Joined: 20 Mar 2004 Posts: 2579 Location: Neunkirchen / Saarland / Germany
|
Posted: Fri Jan 06, 2006 1:29 pm Post subject: |
|
|
Ganz sicher das er die richtigen Module lädt? Nach dem löschen von
Code: |
/lib/modules/`uname -r`/alsa-driver/
|
sollte das laden der Alsa-Module eigentlich nicht funktionieren. Falls doch, steckt da irgendwo der Fehler.
Viel mehr fällt mir dazu im Moment leider auch nicht ein .
Mfg
Sino |
|
Back to top |
|
|
slick Bodhisattva
Joined: 20 Apr 2003 Posts: 3495
|
Posted: Fri Jan 06, 2006 1:34 pm Post subject: |
|
|
Nein, nein, das löschen war nur dafür gedacht das ich auch wirklich sicherstelle das beim emerge die neuen Files da landen. Ansonsten denke ich bisher es liegt daran das ich Alternative 1 gewählt habe und noch kein emerge -e system|world gemacht habe. revdep-rebuild läuft gerade nochmal, ich vemute da wurde was übersehen.
EDIT: revdep-rebuild bringt nix ... |
|
Back to top |
|
|
|