2011-01-12 5 views
5

Estoy intentando configurar un pequeño clúster de compilación en casa usando distcc. Hay dos sistemas x64 y 1 i686. Todos los sistemas ejecutan Ubuntu 10.10 y están actualizados. El sistema que está iniciando la compilación es x64. Distcc funciona bien entre los dos sistemas x64, pero todas las tareas de compilación enviadas al sistema i686 fallan.Compilación cruzada x86_64 en el sistema i686 en Ubuntu con distcc

Hasta ahora:

  • He instalado el paquete multilib de g ++ en ese sistema. Puedo compilar de forma cruzada a x64 localmente usando g++ -m64
  • Cambié el enlace en /usr/lib/distcc/g++ para señalar a un script que explicity establece el parámetro -m64.

¿Alguna sugerencia?

+0

¿Cuáles son los síntomas específicos de la falla? –

+0

Los sistemas eran bastante generales: la máquina que estaba iniciando informaba que la máquina 32 tenía errores, por lo que intentó construir localmente. Cada vez que se construía localmente funcionaba, por lo que la máquina de 32 bits finalmente se puso en la "lista negra" por un tiempo. –

Respuesta

5

trata de hacerlo, uno nuevo después de más investigación:

GCC tiene una page describing the i386 and x86-64 options. La bandera -m64 dice que se genera código de 64 bits, pero también se debe especificar el tipo de CPU con -march=i686 o -march=k8 o similar, para usar el conjunto de instrucciones correcto.

Desde distcc envía los indicadores de línea de comandos del CCG a cabo, usted debe tratar de añadir estos para el comando distcc que se ejecutan localmente y omita la secuencia de comandos remota para establecer banderas.

Si prueba las banderas de la configuración en su máquina x64 local, sin distcc, justo g ++, entonces debería darle los binarios derecha al utilizar distcc.

+0

Definitivamente he usado '-m64' para obtener compilaciones de 64 bits en x86 recientemente. –

+0

Arghhh ... tan simple. Para que funcione, acabo de configurar (en la máquina x64 que estaba iniciando la construcción) CFLAGS y CXXFLAGS en -m64. ¡Gracias! –

Cuestiones relacionadas