Re: CPU Auswahl beim Uebersetzen

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Tue, 21 Jun 2005 19:02:17 +0200

On Tue, Jun 21, 2005 at 06:33:53PM +0200, Marc Santhoff wrote:
> Tag,
>
> Ich habe hier schon wieder Probleme mit Signal 4:
>
> Ein Programm lädt (unter anderem) die GTK-Bibliothek und verabschiedet
> sich unter noch nicht ganz klaren Umständen mit Signal 4 (Illegal
> Instruction). Ich bin aber sicher, daß dieses Programm auf allen i386ern
> laufen kann und keine Sonderbefehle der neueren CPU-Modelle benutzt.

Lässt sich in /usr/share/mk/bsd.cpu.mk nachsehen.

> Ein core-dump sagt mir, daß der Fehler in einer Funktion in der GTK-lib
> auftritt. Die ist aber mit ziemlicher Sicherheit mit einer make.conf
> Übersetzt worden, in der kein CPU-Typ bestimmt ist.

Du musst auch darauf aufpassen in welcher Umgebung du compilierst.
Wenn du z.B. ein Package auf einem System baust, welches für
eine höhere CPU-Klasse gebaut wurde, dann kann solcher Code durch
statisches Linken in den Port gelangen.
Dann gibt es noch ein paar Ports, die dummerweise zur Compiletime
Optimieren, indem die selber den CPU-Typ ermitteln.

Meine Empfehlung ist eine world zu bauen, die richtig compiliert
wurde und dann per chroot dorthin zu wechseln.
So baue ich immer meine Binaries für Soekris Boards.

> Meine Frage nun: Wie arbeitet gcc auf einem FreeBSD(4), wenn man in
> make.conf nichts weiter angibt, ich hatte angenommen, daß dann ebenfalls
> alle i386er CPUs untzerstützt werden...

Mag auf einer 4.x so sein, auf -current ist das AFAIK i486, was aber
nicht weiter dramatisch ist, da es auf i386 eh nicht mehr läuft.
Eigendlich paradox, wo das doch der Namensgeber der Architektur ist.

> Ganz ausschließen kann ich nicht, daß diese Bibliothek aus einem Package
> stammt, also nicht klar ist, wie sie erstellt wurde. Natürlich wird sie
> neu gebaut und gestested, aber trotzdem: Ist meine Annahme richtig, das
> eine ohne CPU-Deklartation übersetzte Bibliothek oder ein Programm auf
> allen Unterstützten CPUs laufen sollte, ohne ungültige Maschinencodes zu
> benutzen?

Wie schon erwähnt - es gibt da einige dumme Fälle, wo das nicht
zutrifft.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 21 Jun 2005 - 19:03:41 CEST

search this site