Frage

Dank einer Anregung von Chas. Owens , ich habe Spaß beim Spielen wurde mit mit kleine Umleitung gcc funktionerenden unter Snow Leopard bekommen, ich habe gebaut und Perl 5.12.1 in meinem Home-Verzeichnis nur mit den Standardoptionen ausführen. Er übergibt den Perl Test-Harnisch.

Perlbrew erlaubt Perl mit OS und plattformspezifische Fahnen gebaut werden. Dies sind die -D -U -A Optionen zum Perl Configure-Skript. Das perlmacosx read me Datei in 4 Jahren nicht aktualisiert worden ist, so dass nicht sehr hilfreich mehr.

Ich bin es gewohnt, nur Affen Apples Schalter versuche in dem System Perl v 5.10.0 (die Sie für Ihr Perl gesehen werden können durch Eingabe [path_to_specific_perl]/perl -V oder /usr/bin/perl für das System in den meisten Fällen ...) Anders als die -Dprefix=/usr die würde für die neue Perl bauen für eine andere Wurzel unterschiedlich sein, was soll ich verwenden?

(Eyeballing) Hier sind die wichtigsten Unterschiede zwischen der Apple-Kompilierungsoptionen und dem Standard:

config_args:
Apple:       -ds -e
Default:     -de

-D: =======================
Apple:       useithreads=define, usemultiplicity=define
Default:     useithreads=undef, usemultiplicity=undef

Compiler: =================
Apple:       optimize='-Os' 
Default:     optimize='-O3'

Apple:       -arch x86_64 -arch i386 -arch ppc
Default:     none specified

Apple:      -g -pipe
Default     these optimizations are not set

Apple       not set
Default     -no-cpp-precomp

Linker: ================
Apple:     useshrplib=true, libperl=libperl.dylib
Default:   useshrplib=false, libperl=libperl.a

Characteristics of libperl: =============
Apple      MULTIPLICITY PERL_IMPLICIT_CONTEXT USE_ITHREADS USE_REENTRANT_API
Default    PERL_MALLOC_WRAP USE_PERL_ATOF

Ein weiterer Unterschied ist der Apple-Perl libperl ein Dynaloader ist, wird die Standard-Build-statisch gelinkt.

So Fragen :

  1. Welche -D -U -A Schalter sollte ich eine lokale Kopie von Perl auf OS X 10.6+ bauen? Ich glaube nicht, dass ich ein fette binären wie die Apple-Version benötigen, und ich weiß nicht, ob ich eine Dynaloader Version tun soll. Vor allem der Suche für die vorgeschlagenen Schalter für die Optimierung und vorgeschlagenen Merkmale libperl führt.
  2. kann ich tun, eine Dynaloader Version? (Dh in dem O X Sinn von Dynamische Bibliotheken ...)
  3. Das System Perl ist /usr/bin/perl und ich will nicht, es zu ändern. Muss ich die sheebang in Skripten Punkt auf die Version von Perl Perlbrew ändern? Das bedeutet, dass mein sheebang wäre `/ Users / Andrew / perl5 / perl.‘ Muss ich dort meinen Weg zu Punkt ändern? Was sind andere in dieser Hinsicht tun? Was ist "best practice" in Betracht gezogen?
  4. Wenn ich Perlbrew laufen, ich die Warnung v-string in use/require non-portable at ./perlbrew line 818. Linie 818 in Perlbrew bekommen ist use 5.8.0; Sollte nicht diese Linie use 5.008_000 sein?

Bearbeiten

Dank Jonathan Leffler, ich am wenigsten einige Perls hatte, zu betrachten. Anstatt in sie zu tief, ich habe gerade die Standardwerte in den meisten Fällen hinzugefügt Fäden, und es scheint zu funktionieren OK. Jetzt habe ich Perlbrew ist mit mehreren Perl installiert und ich habe das System Perl bei 5.10 links. Ich benutze /usr/bin/env perl auf dem sheebang zukunfts proofish Code zu haben.

War es hilfreich?

Lösung

Das Beste, was ich anbieten kann, ist die Ausgabe von ‚perl -V‘ für jedes meiner Homebrew Sammlung von 5.1x-Versionen von Perl - einige 32-Bit, einige 64-Bit. Ich habe die PowerPC baut weggelassen (aus der Zeit, bevor ich einen Intel-Mac hatte).

drwxr-xr-x  8 jleffler  staff       272 Aug  1  2009 v5.10.0
drwxr-xr-x  8 jleffler  staff       272 Nov  8  2009 v5.10.1
drwxr-xr-x  6 jleffler  staff       204 Oct 26  2009 v5.10.1-64
drwxr-xr-x  6 jleffler  staff       204 Jun 23 09:36 v5.12.1
drwxr-xr-x  5 jleffler  staff       170 Jun 17 21:14 v5.12.1-32bit
drwxr-xr-x  5 jleffler  staff       170 Aug 30 15:02 v5.13.4

Ich baue keine mit Gewinde oder für Vielheit. Ich mache Build mit dynamischer Belastung; Ich benutze die dlopen Version - es ist der Standard vorgeschlagen. Die Maschine erhält verschiedene Namen je nachdem, wo es mit dem Netzwerk verbunden ist; Dies zeigt sich in Build-Maschinennamen.

5.10.0

Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=darwin, osvers=9.7.0, archname=darwin-64int-2level
    uname='darwin osiris.sanjose.ibm.com 9.7.0 darwin kernel version 9.7.0: tue mar 31 22:52:17 pdt 2009; root:xnu-1228.12.14~1release_i386 i386 '
    config_args='-Duse64bitint'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/gnu/include -I/usr/GNU/include',
    optimize='-O3',
    cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -I/usr/local/include -I/usr/gnu/include -I/usr/GNU/include'
    ccversion='', gccversion='4.0.1 (Apple Inc. build 5493)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -L/usr/local/lib -L/usr/gnu/lib -L/usr/GNU/lib'
    libpth=/usr/local/lib /usr/gnu/lib /usr/GNU/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/usr/gnu/lib -L/usr/GNU/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_INT
                        USE_LARGE_FILES USE_PERLIO
  Built under darwin
  Compiled at Jul 14 2009 10:09:56
  @INC:
    /Users/jleffler/perl/v5.10.0/lib/5.10.0/darwin-64int-2level
    /Users/jleffler/perl/v5.10.0/lib/5.10.0
    /Users/jleffler/perl/v5.10.0/lib/site_perl/5.10.0/darwin-64int-2level
    /Users/jleffler/perl/v5.10.0/lib/site_perl/5.10.0
    .

5.10.1 (32-bit)

Summary of my perl5 (revision 5 version 10 subversion 1) configuration:

  Platform:
    osname=darwin, osvers=9.8.0, archname=darwin-2level
    uname='darwin osiris.local 9.8.0 darwin kernel version 9.8.0: wed jul 15 16:55:01 pdt 2009; root:xnu-1228.15.4~1release_i386 i386 '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc -m32', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include',
    optimize='-O3',
    cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include'
    ccversion='', gccversion='4.0.1 (Apple Inc. build 5493)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc -m32', ldflags =' -fstack-protector -L/usr/local/lib -L/usr/gnu/lib'
    libpth=/usr/local/lib /usr/gnu/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/usr/gnu/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                        USE_LARGE_FILES USE_PERLIO
  Built under darwin
  Compiled at Sep  3 2009 07:26:44
  @INC:
    /Users/jleffler/perl/v5.10.1/lib/5.10.1/darwin-2level
    /Users/jleffler/perl/v5.10.1/lib/5.10.1
    /Users/jleffler/perl/v5.10.1/lib/site_perl/5.10.1/darwin-2level
    /Users/jleffler/perl/v5.10.1/lib/site_perl/5.10.1
    .

5.10.1 64-Bit

Summary of my perl5 (revision 5 version 10 subversion 1) configuration:

  Platform:
    osname=darwin, osvers=9.8.0, archname=darwin-2level
    uname='darwin osiris.sanjose.ibm.com 9.8.0 darwin kernel version 9.8.0: wed jul 15 16:55:01 pdt 2009; root:xnu-1228.15.4~1release_i386 i386 '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc -m64', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include',
    optimize='-O3',
    cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include'
    ccversion='', gccversion='4.0.1 (Apple Inc. build 5493)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc -m64', ldflags =' -fstack-protector -L/usr/local/lib -L/usr/gnu/lib'
    libpth=/usr/local/lib /usr/gnu/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/usr/gnu/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
  Built under darwin
  Compiled at Sep  3 2009 10:12:54
  @INC:
    /Users/jleffler/perl/v5.10.1-64/lib/5.10.1/darwin-2level
    /Users/jleffler/perl/v5.10.1-64/lib/5.10.1
    /Users/jleffler/perl/v5.10.1-64/lib/site_perl/5.10.1/darwin-2level
    /Users/jleffler/perl/v5.10.1-64/lib/site_perl/5.10.1
    .

5.12.1 64-Bit

Summary of my perl5 (revision 5 version 12 subversion 1) configuration:

  Platform:
    osname=darwin, osvers=10.3.0, archname=darwin-2level
    uname='darwin dyn744040.sanjose.ibm.com 10.3.0 darwin kernel version 10.3.0: fri feb 26 11:58:09 pst 2010; root:xnu-1504.3.12~1release_i386 i386 '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include -I/usr/GNU/include',
    optimize='-O3',
    cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include -I/usr/GNU/include'
    ccversion='', gccversion='4.2.1 (Apple Inc. build 5659)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =' -fstack-protector -L/usr/local/lib -L/usr/gnu/lib'
    libpth=/usr/local/lib /usr/gnu/lib /usr/lib
    libs=-ldbm -ldb -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/usr/gnu/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
                        USE_PERL_ATOF
  Built under darwin
  Compiled at Jun  8 2010 15:36:47
  @INC:
    /Users/jleffler/Perl/v5.12.1/lib/perl5/site_perl/5.12.1/darwin-2level
    /Users/jleffler/Perl/v5.12.1/lib/perl5/site_perl/5.12.1
    /Users/jleffler/Perl/v5.12.1/lib/perl5/5.12.1/darwin-2level
    /Users/jleffler/Perl/v5.12.1/lib/perl5/5.12.1
    .

5.12.1 32-Bit

Summary of my perl5 (revision 5 version 12 subversion 1) configuration:

  Platform:
    osname=darwin, osvers=10.4.0, archname=darwin-2level
    uname='darwin osiris-2.local 10.4.0 darwin kernel version 10.4.0: fri apr 23 18:28:53 pdt 2010; root:xnu-1504.7.4~1release_i386 i386 '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc -m32', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include -I/usr/GNU/include',
    optimize='-O3',
    cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -I/usr/gnu/include -I/usr/GNU/include'
    ccversion='', gccversion='4.2.1 (Apple Inc. build 5659)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc -m32', ldflags =' -fstack-protector -L/usr/local/lib -L/usr/gnu/lib -L/usr/GNU/lib'
    libpth=/usr/local/lib /usr/gnu/lib /usr/GNU/lib /usr/lib
    libs=-ldbm -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/local/lib -L/usr/gnu/lib -L/usr/GNU/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP
                        USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
  Built under darwin
  Compiled at Jun 17 2010 20:48:50
  @INC:
    /Users/jleffler/Perl/v5.12.1-32bit/lib/perl5/site_perl/5.12.1/darwin-2level
    /Users/jleffler/Perl/v5.12.1-32bit/lib/perl5/site_perl/5.12.1
    /Users/jleffler/Perl/v5.12.1-32bit/lib/perl5/5.12.1/darwin-2level
    /Users/jleffler/Perl/v5.12.1-32bit/lib/perl5/5.12.1
    .

5.13.4 64-Bit

Summary of my perl5 (revision 5 version 13 subversion 4) configuration:

  Platform:
    osname=darwin, osvers=10.4.0, archname=darwin-2level
    uname='darwin dyn9043040112.sanjose.ibm.com 10.4.0 darwin kernel version 10.4.0: fri apr 23 18:28:53 pdt 2010; root:xnu-1504.7.4~1release_i386 i386 '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc -m64', ccflags ='-fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/gnu64/include -I/usr/local/include',
    optimize='-O3',
    cppflags='-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/gnu64/include -I/usr/local/include'
    ccversion='', gccversion='4.2.1 (Apple Inc. build 5664)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags ='-fstack-protector -L/usr/gnu64/lib -L/usr/local/lib'
    libpth=/usr/gnu64/lib /usr/lib /usr/local/lib
    libs=-ldbm -ldb -ldl -lm -lutil -lc
    perllibs=-ldl -lm -lutil -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -L/usr/gnu64/lib -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl): 
  Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP USE_64_BIT_ALL
                        USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
                        USE_PERL_ATOF
  Built under darwin
  Compiled at Aug 30 2010 14:36:39
  @INC:
    /Users/jleffler/perl/v5.13.4/lib/site_perl/5.13.4/darwin-2level
    /Users/jleffler/perl/v5.13.4/lib/site_perl/5.13.4
    /Users/jleffler/perl/v5.13.4/lib/5.13.4/darwin-2level
    /Users/jleffler/perl/v5.13.4/lib/5.13.4
    .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top