Wenn ich mit Sourcen herunterlade und diese kompiliere, werden
dann automatisch Binarys erzeugt, die 100 %ig auf meinen
Prozessor zugeschnitten sind?
Kurz: Ja, nein, jein.
Werden also nur i386 Befehle genutzt oder bei meinem Pentium
II auch die Befehle der i686 Architektur?
Ich nutze momentan gcc 3.0.
Lang: Wenn eine Quelle mit
gcc -o foo foo.c
uebersetzt wird dafault’et gcc auf den i386-Befehls-Satz (es sei denn, Du uebersetzt auf einer Sparc o. ae.). Wird ein Paket mit nur
make
uebersetzen, werden die Optionen im Makefile befolgt. Steht dort nichts besonderes, kriegst Du auch i386-Code. Normalerweise kommt vor dem make aber noch ein
./configure
. Dieses stellt mit ‚uname -m‘ Deine genaue Architektur fest und erstellt ein Makefile, was fuer den gcc genau die flags fuer Deine Architektur setzt. Willst Du das nicht solltest Du vorher
./configure --help
aufrufen und den Optionen --build, --host und --target bzw. den gcc-Optionen -mcpu und -march naehere Beachtung schenken.
Falls Du einen Einstieg ins crosscompiling suchst kann ich einen hint[1] empfehlen. Der gibt zumindest Hilfe, falls man sich nur auf Intel-Plattformen aufhaelt.
HTH,
Gruss vom Zentrum.
===footnotes===
[1]
http://hints.linuxfromscratch.org/hints/crosscompili…