develooper Front page | perl.perl5.porters | Postings from November 2010

[perl #79538] [PATCH] Add capability to exclude non-XS extensions

Thread Next
Jerry D. Hedden
November 21, 2010 15:19
[perl #79538] [PATCH] Add capability to exclude non-XS extensions
Message ID:
# New Ticket Created by  "Jerry D. Hedden" 
# Please include the string:  [perl #79538]
# in the subject line of all future correspondence about this issue. 
# <URL: >

This is a bug report for perl from jdhedden[at]cpan[dot]org,
generated with the help of perlbug 1.39 running under perl 5.12.2.

[Please describe your issue here]

In order to save time building and testing Perl, I use the
-Dnoextensions=... option in Configure to exclude over a
dozen XS extensions when building Perl.  These include
extensions I don't need (e.g., Sys/Syslog), don't want
(e.g., Text/Soundex) or that aren't supported on my current
architecture (e.g., IPC/SysV).

I wanted the same exclusion capability for non-XS extensions
so I created the attached patch.  It allows both the
-Dnoextensions=... and -Donlyextensions=... options in
Configure to work for XS as well as non-XS extensions.

Using this patch, I now exclude over 50 non-XS modules from
my Perl builds.  This gains me a 25% (5.12.x) to 35% (blead)
reduction in the time needed to build, test and install
Perl.  (In blead, for example, from 4 hrs. down to 2.5).

[Please do not change anything below this line]
Site configuration information for perl 5.12.2:

Configured by Jerry at Wed Nov 17 22:26:32 EST 2010.

Summary of my perl5 (revision 5 version 12 subversion 2 patch 42531)
  Snapshot of: 7a3b65c9d99f69553fffe01f73d49fe9abf95120
    osname=cygwin, osvers=1.5.25(0.15642), archname=cygwin-thread-multi-64int
    uname='cygwin_nt-5.1 seymour 1.5.25(0.15642) 2008-06-12 19:34 i686 cygwin '
    config_args='-de -Duse64bitint -Dusethreads
-Dinc_version_list=none -Dnoextensions=Devel/DProf Devel/Peek
Filter/Util/Call GDBM_File Hash/Util/FieldHash I18N/Langinfo IPC/SysV
Math/BigInt/FastCalc NDBM_File ODBM_File Sys/Syslog Text/Soundex
Time/Piece Unicode/Normalize attrs re Archive/Extract Archive/Tar
Attribute/Handlers B/Debug B/Lint Class/ISA CGI CPANPLUS
CPANPLUS/Dist/Build Devel/SelfStubber Digest File/Fetch FileCache
Filter/Simple I18N/LangTags IO/Zlib IPC/Cmd IPC/Open2 Locale/Codes
Locale/Maketext Locale/Maketext/Simple Log/Message Log/Message/Simple
Math/BigInt Math/BigRat Math/Complex Memoize Module/Build
Module/CoreList Module/Load Module/Load/Conditional Module/Loaded
Module/Pluggable NEXT Object/Accessor Package/Constants Params/Check
Parse/CPAN/Meta PerlIO/via/QuotedPrint Pod/Html Pod/LaTeX Pod/Plainer
SelfLoader Switch Term/UI Text/Balanced Tie/File Tie/Memoize
Unicode/Collate autodie autouse bignum encoding/warnings -A
append:ccflags= -DNO_MATHOMS -A define:optimize=-Os -pipe
-funit-at-a-time -march=pentium4 -mfpmath=sse -mieee-fp -mmmx -msse
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=y, bincompat5005=undef
    cc='gcc', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__
-DNO_MATHOMS -fno-strict-aliasing -pipe',
    optimize='-Os -pipe -funit-at-a-time -march=pentium4 -mfpmath=sse
-mieee-fp -mmmx -msse -msse2',
-fno-strict-aliasing -pipe'
    ccversion='', gccversion='3.4.4 (cygming special, gdc 0.12, using
dmd 0.125)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='g++', ldflags =' -Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--stack,8388608
-Wl,--enable-auto-image-base -s'
    libpth=/usr/lib /lib
    libs=-lgdbm -ldl -lcrypt -lgdbm_compat
    perllibs=-ldl -lcrypt
    libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_12_2.dll
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' -s'
    cccdlflags=' ', lddlflags=' --shared  -Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--stack,8388608
-Wl,--enable-auto-image-base -s'

Locally applied patches:

@INC for perl 5.12.2:

Environment for perl 5.12.2:
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
Files/ATI Technologies/ATI Control
Files/QuickTime/QTSystem/:/c/Program Files/ATI
    PERL_BADLANG (unset)
    SHELL (unset)

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About