Как добавить поддержку PPC/PPC64 обратно в Xcode 4.2 под Lion?

У меня есть система Lion (10.7.1), на которой я установил Xcode 4.2. Предположим, что у меня есть простая программа C helloWorld.c следующим образом:

#include <stdio.h>
main() {
  printf("hello, world\n");
}

Используя эту настройку, я хотел бы попытаться скомпилировать helloWorld.c для использования в архитектуре PPC и PPC64, например:

$ gcc -arch ppc helloWorld.c -o helloWorld

Появится следующее сообщение об ошибке:

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

Как восстановить поддержку PowerPC для моей установки Xcode 4?

Я пробовал инструкции, описанные в в этом предыдущем сообщении о переполнении стека, но эти инструкции не работают для моей установки Lion.

Я использую установщик Xcode 3.2.6, расположенный на веб-сайте Apple dev.

Из символических ссылок я подозреваю, что эти инструкции работают для установки 10.6, но не 10.7.

В любом случае, некоторые исходные файлы и каталоги из установки Xcode 3.2.6 не существуют для создания символических ссылок или находятся в другом месте установки Xcode 3. (Например, нет директории /Xcode3/usr/bin, из которой можно связать двоичный файл as.)

Кому-нибудь повезло с компиляцией бинарных файлов PPC и PPC64 из системы Lion?

Чтобы получить награду, напишите достаточно подробный ответ. Для себя, но и для потомков.:)

EDIT - 31 августа 2011

Итак, я попробовал модификации, на которые указал Лоран, и пошел дальше, но этого было недостаточно, чтобы поддерживать работу PPC.

Я добавил символические ссылки, чтобы помочь gcc найти необходимые ресурсы:

$ 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

Когда я попытался скомпилировать тестовое приложение, у меня появилось много ошибок:

$ 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

Возможно, есть варианты компиляции, которые я должен добавить, чтобы указать на заголовки Xcode3, но я смотрю в /Xcode3/usr/include, и там действительно не так много.

Ответы

Ответ 1

Если вы выполняете классическую установку Xcode 3.2.6 на Lion, набор инструментов Xcode отключается и не устанавливается. Поэтому Xcode3/usr/bin не существует.

Я предлагаю вам прочитать следующие сообщения (прочитайте их оба, прежде чем идти дальше). Они описывают трюк, чтобы обмануть установщика в установке всего.

Затем вы можете применить трюк из записи SO для восстановления поддержки PPC в Xcode.

Примечание. Я не тестировал вышеописанные шаги, но я буду рад услышать ваши отзывы об этом. Надеюсь, что это поможет.

Редактировать 04 сен. 2011: мне удалось получить руки на машине Lion, чтобы провести некоторые эксперименты и получить некоторые результаты. Я собрал их в своем блоге.