i386, i586, mandriva2005,gcc

Weno, pos veran, he instalado el mandriva 2005 i586 en un pentium 3 y me va mu bien, lo unico eske al intentar instalar programas me dan error del gcc y me dice no encontrado. Entoncs los he reinstalado desde los cds del mandriva y me sigue dando error. Es posible k se deba a k el mandriva 2005 viene preparado para i586 y no para i386. No se si estoy diciendo tonterias pk soy un novato, en cualkier caso espero respuestas.
Muchas gracias [reojillo]
Pues segun cuentas suena a que no tienes instalado el gcc...si es asi,ya sabes que hacer ;)
Saludos!![bye]
Tal como te indica el_fer seguramente es que te falte el gcc.

Lo de i386 y i586 se refiere a l'arquitectura, i586 serian los procesadores a partir del Pentium Pro (corregidme si me equivoco). Todo lo que funcione en i386 funcionara en una cpu posterior a esta (i486,i586,i686) pero no al revés.

Otra cosa, como estas intentando instalar este programa, desde codigo fuente o desde precompilados?
Si es lo primero dejalo estar, configura el urpmi e instalalo desde ahi. En el foro encontraras multitud de posts sobre urpmi


Por ultimo, Linux NO es windows, asi que las cosas no se arreglan reinstalando, existe una manera mas elegante para solucionar los problemas (excepto si provocas un gran desastre [jaja]).

Salu2
Simplemente para aclarar las cosas, los CHOST en Linux (x86) son de forma concreta:

i386-pc-linux-gnu
i486-pc-linux-gnu
i586-pc-linux-gnu
i686-pc-linux-gnu


Todos los que sean de ese estilo generan el MISMO código así que digamos que no son de diferentes 'arquitecturas' si no que son todos la misma porquería.

Así que ya sabeis... no hay una real diferencia entre todos los que sean de la forma i?86-pc-linux-stallman :D :D :D

Saludos.Ferdy
Ferdy escribió:Simplemente para aclarar las cosas, los CHOST en Linux (x86) son de forma concreta:

i386-pc-linux-gnu
i486-pc-linux-gnu
i586-pc-linux-gnu
i686-pc-linux-gnu


Todos los que sean de ese estilo generan el MISMO código así que digamos que no son de diferentes 'arquitecturas' si no que son todos la misma porquería.

Así que ya sabeis... no hay una real diferencia entre todos los que sean de la forma i?86-pc-linux-stallman :D :D :D

Saludos.Ferdy

Curiosidad:si no hay realmente diferencia entre ellos,para que se les distingue unos de otros? ein?
Saludos!![bye]
Realmente no se por qué en x86 se hizo distinción.

Saludos.Ferdy
Ferdy escribió:Realmente no se por qué en x86 se hizo distinción.

Saludos.Ferdy

Seria para que los usuarios no se aburrieran y tuvieran mas variables que controlar [+risas]
Saludos!![bye]
Ferdy escribió:Simplemente para aclarar las cosas, los CHOST en Linux (x86) son de forma concreta:

i386-pc-linux-gnu
i486-pc-linux-gnu
i586-pc-linux-gnu
i686-pc-linux-gnu


Todos los que sean de ese estilo generan el MISMO código así que digamos que no son de diferentes 'arquitecturas' si no que son todos la misma porquería.

Así que ya sabeis... no hay una real diferencia entre todos los que sean de la forma i?86-pc-linux-stallman :D :D :D

Saludos.Ferdy


un momento, un momento... m stas diciendo con eso k es lo mismo compilar para i386 k para i686? lo digo porke si es eso no le veo muxa logica
lo digo porke si es eso no le veo muxa logica


¿No? ¿ Por qué ? Al fin y al cabo son LO MISMO. Hay más diferencia entre un ev45 y un ev5 que entre un i386 y un i586.

Saludos.Ferdy
Ferdy escribió:
¿No? ¿ Por qué ? Al fin y al cabo son LO MISMO. Hay más diferencia entre un ev45 y un ev5 que entre un i386 y un i586.

Saludos.Ferdy


kiero decir k no le veo la logica a compilar para 386,586... si el resultado es el mismo y lo unico k puede acarrear es k no se pueda ejecutar en arkitecturas inferiores
Una cosa es compilar PARA una arquitectura (-march o -mcpu) y otra muy distinta tener un CHOST i586-pc-linux-gny.

Saludos.Ferdy
Ferdy escribió:Una cosa es compilar PARA una arquitectura (-march o -mcpu) y otra muy distinta tener un CHOST i586-pc-linux-gny.

Saludos.Ferdy


kiero decir k no le veo la logica a compilar para 386,586... si el resultado es el mismo y lo unico k puede acarrear es k no se pueda ejecutar en chost inferiores

Asi vale?

Sigo sin entenderlo entonces :P
Creo que la jugada está en que se confunde el CHOST con los CFLAGS (corrigeme Ferdy si me equivoco). Vamos que el CHOST tanto dá. Lo cual me viene de perlas, porque ayer mismo me di cuenta que en el servidor tengo i386 de CHOST (dios, parezco una debian xD). Eso si, las CFLAGS que tengo son de K6-2 :)

Saludos
Exacto... los CHOSTs del tipo i?86-pc-linux-gnu son todos iguales.. de hecho para compilar con máquinas nuevas (i.e. i686) para máquinas antiguas (i.e. i586) con distcc tienes que hacer simplemente unos enlaces simbólicos. Si fuera un cross-compiling real, tendrías que compilar un toolchain completamente nuevo para 'cambiar de CHOST.

Como ejemplo tonto podemos demostrar que compiladores distintos se comportan de forma distinta para las mismas flags:

[ $ ~ ] uname -mp
i686 AMD Athlon(TM) XP 2000+
[ $ ~ ] cat p.c
#include <stdio.h>

int main(int argc, char *argv[])
{
        static const char *something = "'moin world";

        printf("%s\n",something);
       
        return 0;
}
[ $ ~ ] gcc -o p-i586 -march=i586 p.c
[ $ ~ ] gcc -o p-i686 -march=i686 p.c
[ $ ~ ] gcc -o p-ev45 -march=ev45 p.c
cc1: error: bad value (ev45) for -march= switch
cc1: error: bad value (ev45) for -mcpu= switch


(en otra máquina)

ferdy@pas ~ $ uname -mp                 
alpha EV45
ferdy@pas ~ $ cat p.c
#include <stdio.h>

int main(int argc, char *argv[])
{
        static const char *something = "'moin world";

        printf("%s\n",something);
       
        return 0;
}
ferdy@pas ~ $ gcc -o p-i586 -mcpu=i586 p.c
cc1: error: bad value `i586' for -mcpu switch
ferdy@pas ~ $ gcc -o p-i686 -mcpu=i686 p.c
cc1: error: bad value `i686' for -mcpu switch
ferdy@pas ~ $ gcc -o p-ev4 -mcpu=ev4 -mieee p.c
ferdy@pas ~ $ gcc -o p-ev45 -mcpu=ev45 -mieee p.c


Eso es una prueba tonta... y lo siguiente no lo puedo demostrar 'aun'; asi que tendrás que creertelo jeje. Todos los compiladores que hay en máquinas x86 (los CHOSTs i?86-pc-linux-gnu) generan el mismo código para las mismas flags.

En alpha tenemos un solo CHOST: alpha-unknown-linux-gnu y es capaz de 'entender' las flags de todos los alpha[*]. En x86 debería haber un solo CHOST: i386-pc-linux-gnu o x86-pc-linux-gnu ya que todos los i?686-pc-linux-gnu se comportan de la misma forma.

----> Resumen, dos CHOST son distintos si se comportan de forma distinta para los mismos flags; y son el mismo si se comportan de la misma forma (i.e. fallan o generan el mismo código).

Gah ! espero que esto aclare algo...

Saludos.Ferdy
mmm, de hecho yo estoy usando distcc con maquinas que tienen CHOST distintos y no he tenido problemas de momento (los tuve, pero creia que era debido a diferentes versiones de distcc y con la misma version de distcc se solucionó).

Saludos
Edito: Pues por hablar, ahora mismo me ha fallado xDD. A ver si pruebo tirando de enlaces.
Edito2: Una forma limpia de crear los enlaces es usando binutils-config --x86. Gracias Ferdy ;)
14 respuestas