[Plug] gcc-i686+debian

Giorgos Keramidas keramida at ceid.upatras.gr
Sun Nov 9 22:05:06 EET 2008


On Sun, 9 Nov 2008 21:42:21 +0200, Markos Chandras <markos.chandras at gmail.com> wrote:
> Ρε παιδια εχω ενα προβλημα στο ... debian
>
> Οριστε το uname -a
>
> Linux Hydra 2.6.26-1-686 #1 SMP Wed Sep 24 15:02:04 UTC 2008 i686 GNU/Linux
>
> Προσεξτε το i686

Αυτό σημαίνει πως ο πυρήνας είναι compiled με options που μπορούν να
εκμεταλλεύονται τα έξτρα features ενός PentiumPro CPU.  Ορισμένα από τα
optimizations που έχει το kernel source για να παίζει πιο καλά, πιο
σωστά ή πιο γρήγορα σε PentiumPro ή καλύτερο CPU είναι δηλαδή ενεργά.

> Κοιταξτε και το gcc -v απο το ιδιο μηχανημα
>
> Using built-in specs.
> Target: i486-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Debian
> 4.3.2-1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-cld --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
> Thread model: posix
> gcc version 4.3.2 (Debian 4.3.2-1)
>
> Προσεξτε το i486

Ναι.  Αυτό σημαίνει πως αν δε δώσεις κάτι άλλο με το `-march=XXX', ο
compiler σου είναι εκτελέσιμο που χρησιμοποιεί μόνο το instruction set
του 486 (αυτό σημαίνει το `--host=i486-linux-gnu' configure option) και
το default instruction set που χρησιμοποιεί για τα παραγόμενα εκτελέσιμα
είναι το instruction set του 486 (το `--target=i486-linux-gnu' option).

> Πως διαολο γινεται αυτο που να το παρει;;;;;;; Μπορω να πω στον gcc να
> τα γυρισει ολα σε i686;;;;;;; Που στο καλο του το βρηκε το i486 δεν
> καταλαβαίνω

Το πραγματικό πρόβλημα είναι «Γιατί σε παραξενεύει που είναι i486 ο
default target επεξεργαστής του default gcc;».  Αν αυτό είναι το
standard πακέτο του Debian είναι πολύ λογικό, γιατί η ομάδα του Debian
θέλει να μπορείς να πάρεις το επίσημο GCC package και να το στήσεις
*και* σε 486 CPU.

Αν θέλεις να τρέχουν και σε 486 τα binaries του GCC, είναι καλό να έχεις
και το 486-compatibility ως «βασικό» support.  Αυτό δε σημαίνει πως δε
μπορείς να χτίσεις όλα τα άλλα όμως με `-march=pentium-m' ή ακόμα πιο
εξωτικά options όπως το `-march=[nocona,k8,athlon64]'.

Εκτός κι αν είσαι από «αυτούς», που τρέχουν Gentoo και νομίζουν ότι τα
CPU optimizations είναι το βασικό bottleneck του GCC όταν κάνει compile :P



More information about the Plug mailing list