2015-08-28 4 views
6

Сообщество Perl полагалось на MACOSX_DEPLOYMENT_TARGET=10.3 для всех построек Perl для, ну, долгое время. Но теперь, с бета-версией El Capitan, it no longer works. Кажется, что им нужно ударить, но к чему? Есть ли способ программно установить его на то, что является самой ранней версией, поддерживаемой выпуском OS X, на котором в настоящее время строится Perl? Или есть другой способ установить его динамически? Или он должен быть статичным и периодически обновляться? Если последний, как он влияет на старые версии OS X?Каков наилучший способ установки MACOSX_DEPLOYMENT_TARGET?

+0

Я не знаю, кто работает под управлением MacOS 10.3 ... вы действительно хотите поддержать ОС, выпущенную в 2003 году? –

+0

@MichaelDautermann Люди тестируют Perl на всех видах сумасшедших конфигураций. [Вот кто-то] (https://rt.perl.org/Ticket/Display.html?id=123985#txn-1334270), который тестирует еще в OS X 10.4. – theory

ответ

2

Это должно быть довольно простое изменение в hints/darwin.sh, которое проверяет, какая версия OSX запущена, и устанавливает MACOSX_DEPLOYMENT_TARGET соответственно.

Perl - проект с открытым исходным кодом и как таковой всегда короткий срок разработки. Если бы вы сделали патч для этого и отправили его на p5p, я уверен, что это будет очень полезно.

+0

Спасибо, я рекомендовал это решение в [отчете об ошибке] (https://rt.perl.org/Ticket/Display.html?id=123985). – theory

0

Принято решение Калле-Дибедаля, поскольку оно технически правильно. Perl 5 Core Hacker Jarkko Hietaniemi нажал this solution, что оказалось немного сложнее, чем можно было бы ожидать с первого взгляда. Основной рецепт сошедшего на был:

Для OS X 10.6 или выше, не больше использовать MACOSX_DEPLOYMENT_TARGET, в компилированные инструменты должны работать нормально без. До настоящего времени цель развертывания была подключена к 10.3. Эта логика исходит от RT#117433.

Для OS X выпусков от 10.3 до 10.5 без изменений, все еще используя MACOSX_DEPLOYMENT_TARGET=10.3 для связи.

Для выпусков ОС X до 10.3 без изменений, все еще не используется MACOSX_DEPLOYMENT_TARGET=10.3.

Новое: всегда добавляют -mmacosx-version-min к ccflags и ldflags из окр вар $MACOSX_DEPLOYMENT_TARGET, если установлен. Если параметр var не задан, установите min из версии OS X, из sw_vers (1). Установка var должна стать удобной для людей, занимающихся строительством и упаковкой Perl для более ранних версий OS X.

Смежные вопросы