2015-08-28 19 views
6

La comunità Perl si è basata su MACOSX_DEPLOYMENT_TARGET=10.3 per tutte le versioni di Perl per, beh, da molto tempo. Ma ora, con la El Capitan beta, it no longer works. Sembra come se dovessero sbatterlo, ma a cosa? C'è un modo per impostarlo in modo programmatico su qualunque sia la prima versione supportata dal rilascio di OS X su cui Perl è attualmente in fase di costruzione? O c'è un altro modo per impostarlo in modo dinamico? O deve essere statico e aggiornato periodicamente? Se quest'ultimo, come influenza le build su versioni precedenti di OS X?Qual è il modo migliore per impostare MACOSX_DEPLOYMENT_TARGET?

+0

Non conosco nessuno che esegue MacOS 10.3 ... vuoi davvero supportare un sistema operativo rilasciato nel 2003? –

+0

@MichaelDautermann People test Perl su tutti i tipi di configurazioni pazze. [Ecco qualcuno] (https://rt.perl.org/Ticket/Display.html?id=123985#txn-1334270) che esegue il test fin da OS X 10.4. – theory

risposta

2

Questo dovrebbe essere un cambiamento abbastanza semplice in hints/darwin.sh, che controlla quale versione di OSX è in esecuzione e imposta MACOSX_DEPLOYMENT_TARGET di conseguenza.

Perl è un progetto Open Source e, come tale, sempre a corto di tempo di sviluppo. Se dovessi creare una patch per questo e inviarla a p5p, sono sicuro che sarebbe molto apprezzata.

+0

Grazie, ho incoraggiato questa soluzione nel [bug report] (https://rt.perl.org/Ticket/Display.html?id=123985). – theory

0

Accettato @ La risposta di Calle-Dybedahl, poiché è tecnicamente corretta. Perl 5 Core Hacker Jarkko Hietaniemi ha spinto this solution, che si è rivelato un po 'più complicato di quanto ci si potrebbe aspettare a colpo d'occhio. La ricetta di base è venuto giù era:

Per OS X 10.6 o superiore, non più utilizzare il MACOSX_DEPLOYMENT_TARGET, le toolchain dovrebbe funzionare bene anche senza. Fino ad ora l'obiettivo di implementazione era cablato a 10.3. Questa logica proviene da RT#117433.

Per versioni di OS X da 10.3 fino a 10.5, nessuna modifica, utilizzando ancora il MACOSX_DEPLOYMENT_TARGET=10.3 per il collegamento.

Per OS X rilasci prima del 10.3, nessuna modifica, ancora non utilizzando il MACOSX_DEPLOYMENT_TARGET=10.3.

nuovo: sempre aggiungere -mmacosx-version-min-ccflags e ldflags dal var env $MACOSX_DEPLOYMENT_TARGET, se impostato. Se var non è impostato, imposta il valore minimo dalla versione OS X, da sw_vers (1). L'impostazione della var dovrebbe essere utile per le persone che costruiscono e impacchettano Perl per versioni precedenti di OS X.

Problemi correlati