¿Cómo agrego el soporte de PPC/PPC64 a Xcode 4.2 bajo Lion?
macos gcc (1)
Si realiza una instalación clásica de Xcode 3.2.6 en Lion, el conjunto de herramientas Xcode está deshabilitado y no está instalado. Es por eso que el Xcode3/usr/bin
no existe.
Te sugiero que leas las siguientes publicaciones (lee ambas antes de continuar). Describen un truco para engañar al instalador para que instale todo.
Luego, puede aplicar el truco de la entrada SO para restaurar el soporte de PPC en Xcode.
Nota: no he probado los pasos anteriores, pero me complacerá escuchar sus comentarios al respecto. Espero eso ayude.
Edición 04 de septiembre de 2011 : he logrado tener en mis manos una máquina Lion para realizar algunos experimentos y obtener algunos resultados. Los he reunido en mi blog .
Tengo un sistema Lion (10.7.1) en el que instalé Xcode 4.2. Supongamos que tengo un programa de C simple helloWorld.c
como sigue:
#include <stdio.h>
main() {
printf("hello, world/n");
}
Usando esta configuración, me gustaría intentar compilar helloWorld.c
para usar en arquitecturas PPC y PPC64, por ejemplo :
$ gcc -arch ppc helloWorld.c -o helloWorld
Esto da el siguiente mensaje de error:
llvm-gcc-4.2: error trying to exec ''/usr/bin/../llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2'': execvp: No such file or directory
¿Cómo restauro el soporte para PowerPC en mi instalación de Xcode 4?
He intentado las instrucciones descritas en esta publicación anterior de Desbordamiento de pila , pero estas instrucciones no funcionan para mi instalación de Lion.
Estoy usando el instalador Xcode 3.2.6 ubicado en el sitio de desarrollo de Apple .
Por los enlaces simbólicos, sospecho que esas instrucciones funcionan para una instalación 10.6, pero no 10.7.
En cualquier caso, algunos de los archivos y directorios de origen de la instalación de Xcode 3.2.6 no existen para hacer enlaces simbólicos o están ubicados en otra parte de la instalación de Xcode 3. (Por ejemplo, no hay un /Xcode3/usr/bin
desde el cual vincular el binario).
¿Alguien ha tenido suerte compilando los binarios PPC y PPC64 de un sistema Lion?
Para obtener la recompensa, escriba una respuesta razonablemente detallada. Para mí, pero también para la posteridad. :)
EDITAR - 31 de agosto de 2011
Así que probé las modificaciones que Laurent señaló y avanzé, pero esto no fue suficiente para que el soporte de PPC funcionara.
Agregué enlaces simbólicos para tratar de ayudar a gcc
a encontrar los recursos que necesita:
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-gcc-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-gcc-4.2
$ sudo ln -s /Xcode3/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g++-4.2 /usr/llvm-gcc-4.2/bin/powerpc-apple-darwin11-llvm-g++-4.2
Cuando intenté compilar mi aplicación de prueba, recibo muchos errores:
$ gcc -arch ppc helloWorld.c -o helloWorld
powerpc-apple-darwin11-llvm-gcc-4.2: 2: No such file or directory
In file included from /usr/include/stdio.h:64,
from helloWorld.c:1:
/usr/include/sys/cdefs.h:540:4: error: #error Unknown architecture
In file included from /usr/include/sys/_types.h:33,
from /usr/include/_types.h:27,
from /usr/include/stdio.h:67,
from helloWorld.c:1:
/usr/include/machine/_types.h:36:2: error: #error architecture not supported
In file included from /usr/include/_types.h:27,
from /usr/include/stdio.h:67,
from helloWorld.c:1:
/usr/include/sys/_types.h:94: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_blkcnt_t’
/usr/include/sys/_types.h:95: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_blksize_t’
/usr/include/sys/_types.h:96: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_dev_t’
/usr/include/sys/_types.h:99: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_gid_t’
/usr/include/sys/_types.h:100: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_id_t’
/usr/include/sys/_types.h:101: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_ino64_t’
/usr/include/sys/_types.h:103: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_ino_t’
/usr/include/sys/_types.h:107: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_mach_port_name_t’
/usr/include/sys/_types.h:108: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_mach_port_t’
/usr/include/sys/_types.h:109: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_mode_t’
/usr/include/sys/_types.h:110: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_off_t’
/usr/include/sys/_types.h:111: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_pid_t’
/usr/include/sys/_types.h:131: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_sigset_t’
/usr/include/sys/_types.h:132: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_suseconds_t’
/usr/include/sys/_types.h:133: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_uid_t’
/usr/include/sys/_types.h:134: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__darwin_useconds_t’
...
/usr/include/secure/_stdio.h:62: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__DARWIN_LDBL_COMPAT’
/usr/include/secure/_stdio.h:67: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/secure/_stdio.h:67: error: expected declaration specifiers or ‘...’ before ‘size_t’
/usr/include/secure/_stdio.h:68: error: expected declaration specifiers or ‘...’ before ‘va_list’
/usr/include/secure/_stdio.h:69: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__DARWIN_LDBL_COMPAT’
helloWorld.c:3: error: expected declaration specifiers before ‘main’
helloWorld.c:5: error: old-style parameter declarations in prototyped function definition
/usr/include/stdio.h:252: error: parameter name omitted
/usr/include/stdio.h:252: error: parameter name omitted
helloWorld.c:5: error: expected ‘{’ at end of input
Tal vez hay opciones de compilación que debo agregar para apuntar a los encabezados de Xcode3, pero estoy buscando en /Xcode3/usr/include
y realmente no hay mucho allí.