Создание универсальных двоичных файлов на 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?

  • История интерактивного режима Python и клавиши со стрелками
  • SSLError с использованием запросов для python
  • Направление Sublime Text 2 Пакеты для правильной установки python
  • «IOError: Ресурс временно недоступен» с PhantomJS, python, selenium, unittest
  • Установка Macro Python в неправильном каталоге
  • Почему Python строит внезапно, не строит Framework при использовании virtualenv?
  • IOError: Слишком много открытых файлов:
  • ошибка python / pip в osx
  • Установка Mathics под Mac OS X
  • Как максимизировать plt.show () с помощью python на mac?
  • mac osx: невозможно использовать virtualenv
  •  
    Interesting Posts for Van-Lav

    Вложения, прикрепленные дважды, используя smptplib в python

    Как скомпилировать зависимости C ++ во время установки pip?

    Оптимизация умножения по модулю малого простого числа

    как различать / выравнивать списки Python с помощью произвольной функции сопоставления?

    SWIG C ++ Python: обертывание int ссылкой или указателем

    python setuptools install_requires игнорируется при переопределении cmdclass

    Использование Beatiful Soup для получения данных из раздела без класса

    Загрузка текстового файла, содержащего как float, так и строку, используя numpy.loadtxt

    Как добавить часовой пояс в наивный экземпляр datetime в python

    Wrap std :: вектор std :: векторов, C ++ SWIG Python

    Разбор WKT-файла

    Многопроцессорность имеет отсечение при 992 целых числах, соединенных в результате

    как перейти с C # на python?

    Spark + Python – Процесс Java-шлюза вышел, прежде чем отправить драйверу номер своего порта?

    причина: назначения строк python случайно меняют '\ b' на '\ x08' и '\ a' на '\ x07', почему Python сделал это?

    Python - лучший язык программирования в мире.