Создание универсальных двоичных файлов на Mac – принудительный процесс одиночного компилятора

Ура,

в компании мы создаем порт наших игр, и нам нужно скомпилировать PythonOgre , оболочку Ogre3d для Python. Это огромный кусок кода, особенно сгенерированный код оболочки. У нас есть Mac Mini с 1 ГБ оперативной памяти.

Мы построили версию i386. Поскольку у нас только 1 ГБ ОЗУ, мы вынудили систему сборки использовать только одно ядро; второй процесс в то же время занял приятное путешествие в виртуальную память.

Теперь нам нужно создать универсальные двоичные файлы, потому что издатель настаивает на поддержке PPC. Чтобы облегчить создание универсальных двоичных файлов, мы модифицировали CFLAGS и CXXFLAGS для включения -arch i386 -arch ppc при компиляции кода оболочки (сам Ogre3d уже представляется универсальным двоичным кодом).

Тем не менее, Apple решила использовать оба ядра при создании универсального двоичного кода, и это заставило систему опрокинуться и умереть. (Ну, сканирование с использованием процессора 0.9-1.4%, в любом случае.) Хотя обычно мы это оценим, на 1 ГБ Mac Mini это полностью блокирует наше развитие.

Помимо получения новой машины для сборки, отказа от поддержки PPC и создания сборки с использованием PPC, единственным средством, которое мы имеем, является блокирование нереста второго поколения GCC.

Как мы будем это делать?

2 Solutions collect form web for “Создание универсальных двоичных файлов на Mac – принудительный процесс одиночного компилятора”

Я проверил источник драйвера GCC от Apple (тот, который поддерживает эти параметры -arch и запускает дочерние процессы), и нет никакой переменной или переменной среды, которую вы можете выбрать.

Единственные варианты, которые я вижу вам, – это:

  • скачайте драйвер Apple (например, оттуда , конец страницы) и измените файл driverdriver.c чтобы процессы запускались последовательно (а не параллельно)
  • делать отдельные сборки i386 и powerpc и присоединяться к конечным объектам сборки (исполняемые файлы, разделяемые библиотеки и т. д.) с использованием lipo

Надеюсь, это поможет!

Будет ли просто отключать одно ядро? По-видимому, установка Apple Developer Tools (XCode и др.) Дает вам панель предпочтений системы процессора, позволяющую отключить одно ядро. Я пытался проверить это, но по какой-то причине установка XCode не удалась …

EDIT: Я знаю, что это было давно, но я только что подумал. Почему бы не построить с -march = i386 и -march = ppc отдельно, а затем объединить двоичные файлы с помощью lipo?

  • Используйте no-X11 tkinter с python (установленным через macports)
  • Как я могу найти полный путь к шрифту из его отображаемого имени на Mac?
  • Проблемы с настройкой модуля MySQLdb
  • Почему документация PyObjC так плоха?
  • pygame падает при использовании метода заливки (цвета)
  • быстрый доступ к системе для Mac OS X
  • Как изменить имя приложения в строке меню OSX в наборе приложений с чистым Python?
  • Установка python3.2 по умолчанию вместо python2.7 на Mac OSX Lion 10.7.5
  • Python - лучший язык программирования в мире.