sitelib_stem and vendorlib_stem patches from Andy;
Michael G Schwern [Sun, 5 Mar 2000 06:31:29 +0000 (01:31 -0500)]
problem reported in
To: perl5-porters@perl.org
Subject: [ID 20000305.001] [BUG 5.5.670 perl.c] SITELIB_EXP mangled by hack.
Message-Id: <20000305113129.80DC23820@athens.arena-i.com>

p4raw-id: //depot/cfgperl@5559

12 files changed:
Configure
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
epoc/config.sh
patchlevel.h
perl.c
perl.h
vos/config.def
vos/config.h
vos/config_h.SH_orig

index f50069c..5724a60 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Sun Mar  5 19:11:56 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Sun Mar  5 23:53:58 EET 2000 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -864,6 +864,7 @@ sitebin=''
 sitebinexp=''
 installsitelib=''
 sitelib=''
+sitelib_stem=''
 sitelibexp=''
 siteprefix=''
 siteprefixexp=''
@@ -906,6 +907,10 @@ usethreads=''
 incpath=''
 mips_type=''
 usrinc=''
+d_vendorarch=''
+installvendorarch=''
+vendorarch=''
+vendorarchexp=''
 d_vendorbin=''
 installvendorbin=''
 vendorbin=''
@@ -913,6 +918,7 @@ vendorbinexp=''
 d_vendorlib=''
 installvendorlib=''
 vendorlib=''
+vendorlib_stem=''
 vendorlibexp=''
 usevendorprefix=''
 vendorprefix=''
@@ -5314,6 +5320,7 @@ case "$vendorprefix" in
        vendorlibexp="$ansexp"
        ;;
 esac
+vendorlib_stem=`echo "$vendorlibexp" | sed "s,/$version$,,"`
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
        installvendorlib=`echo $vendorlibexp | $sed "s#^$prefix#$installprefix#"`
@@ -5321,6 +5328,36 @@ else
        installvendorlib="$vendorlibexp"
 fi
 
+case "$vendorprefix" in
+'')    d_vendorarch="$undef"
+       vendorarch=''
+       vendorarchexp=''
+       ;;
+*)     d_vendorarch="$define"
+       : determine where vendor-supplied architecture-dependent libraries go.
+       : vendorlib  default is /usr/local/lib/perl5/vendor_perl/$version
+       : vendorarch default is /usr/local/lib/perl5/vendor_perl/$version/$archname
+       : vendorlib may have an optional trailing /share.
+       case "$vendorarch" in
+       '')     dflt=`echo $vendorlib | $sed 's,/share$,,'`
+               dflt="$dflt/$archname"
+               ;;
+       *)      dflt="$vendorarch" ;;
+       esac
+       fn=d~+
+       rp='Pathname for vendor-supplied architecture-dependent files?'
+       . ./getfile
+       vendorarch="$ans"
+       vendorarchexp="$ansexp"
+       ;;
+esac
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installvendorarch=`echo $vendorarchexp | sed "s#^$prefix#$installprefix#"`
+else
+       installvendorarch="$vendorarchexp"
+fi
+
 : Cruising for prototypes
 echo " "
 echo "Checking out function prototypes..." >&4
@@ -5467,6 +5504,7 @@ rp='Pathname for the site-specific library files?'
 . ./getfile
 sitelib="$ans"
 sitelibexp="$ansexp"
+sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
 : Change installation prefix, if necessary.
 if $test X"$prefix" != X"$installprefix"; then
        installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
@@ -5573,7 +5611,7 @@ $rm -f getverlist
 echo " "
 if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then
        $cat <<EOM
-Many scripts expect to perl to be installed as /usr/bin/perl.
+Many scripts expect perl to be installed as /usr/bin/perl.
 I can install the perl you are about to compile also as /usr/bin/perl
 (in addition to $installbin/perl).
 EOM
@@ -15245,6 +15283,7 @@ d_umask='$d_umask'
 d_uname='$d_uname'
 d_union_semun='$d_union_semun'
 d_ustat='$d_ustat'
+d_vendorarch='$d_vendorarch'
 d_vendorbin='$d_vendorbin'
 d_vendorlib='$d_vendorlib'
 d_vfork='$d_vfork'
@@ -15406,6 +15445,7 @@ installsitebin='$installsitebin'
 installsitelib='$installsitelib'
 installstyle='$installstyle'
 installusrbinperl='$installusrbinperl'
+installvendorarch='$installvendorarch'
 installvendorbin='$installvendorbin'
 installvendorlib='$installvendorlib'
 intsize='$intsize'
@@ -15561,6 +15601,7 @@ sitearchexp='$sitearchexp'
 sitebin='$sitebin'
 sitebinexp='$sitebinexp'
 sitelib='$sitelib'
+sitelib_stem='$sitelib_stem'
 sitelibexp='$sitelibexp'
 siteprefix='$siteprefix'
 siteprefixexp='$siteprefixexp'
@@ -15645,9 +15686,12 @@ uvsize='$uvsize'
 uvtype='$uvtype'
 uvuformat='$uvuformat'
 uvxformat='$uvxformat'
+vendorarch='$vendorarch'
+vendorarchexp='$vendorarchexp'
 vendorbin='$vendorbin'
 vendorbinexp='$vendorbinexp'
 vendorlib='$vendorlib'
+vendorlib_stem='$vendorlib_stem'
 vendorlibexp='$vendorlibexp'
 vendorprefix='$vendorprefix'
 vendorprefixexp='$vendorprefixexp'
index 6c6109c..e00110c 100644 (file)
@@ -1573,6 +1573,9 @@ d_ustat (d_ustat.U):
        This variable conditionally defines HAS_USTAT if ustat() is
        available to query file system statistics by dev_t.
 
+d_vendorarch (vendorarch.U):
+       This variable conditionally defined PERL_VENDORARCH.
+
 d_vendorbin (vendorbin.U):
        This variable conditionally defines PERL_VENDORBIN.
 
@@ -2316,6 +2319,11 @@ installusrbinperl (instubperl.U):
        /usr/bin/perl in addition to
        $installbin/perl
 
+installvendorarch (vendorarch.U):
+       This variable is really the same as vendorarchexp but may differ on
+       those systems using AFS. For extra portability, only this variable
+       should be used in makefiles.
+
 installvendorbin (vendorbin.U):
        This variable is really the same as vendorbinexp but may differ on
        those systems using AFS. For extra portability, only this variable
@@ -3068,6 +3076,11 @@ sitelib (sitelib.U):
        MakeMaker Makefile.PL
        or equivalent.  See INSTALL for details.
 
+sitelib_stem (sitelib.U):
+       This variable is $sitelibexp with any trailing version-specific component
+       removed.  The elements in inc_version_list (inc_version_list.U) can
+       be tacked onto this variable to generate a list of directories to search.
+
 sitelibexp (sitelib.U):
        This variable is the ~name expanded version of sitelib, so that you
        may use it directly in Makefiles or shell scripts.
@@ -3503,6 +3516,19 @@ uvxformat (perlxvf.U):
        This variable contains the format string used for printing
        a Perl UV as an unsigned hexadecimal integer. 
 
+vendorarch (vendorarch.U):
+       This variable contains the value of the PERL_VENDORARCH symbol.
+       It may have a ~ on the front. 
+       The standard distribution will put nothing in this directory.
+       Vendors who distribute perl may wish to place their own
+       architecture-dependent modules and extensions in this directory with
+       MakeMaker Makefile.PL INSTALLDIRS=vendor 
+       or equivalent.  See INSTALL for details.
+
+vendorarchexp (vendorarch.U):
+       This variable is the ~name expanded version of vendorarch, so that you
+       may use it directly in Makefiles or shell scripts.
+
 vendorbin (vendorbin.U):
        This variable contains the eventual value of the VENDORBIN symbol.
        It may have a ~ on the front.
@@ -3525,6 +3551,11 @@ vendorlib (vendorlib.U):
        MakeMaker Makefile.PL INSTALLDIRS=vendor 
        or equivalent.  See INSTALL for details.
 
+vendorlib_stem (vendorlib.U):
+       This variable is $vendorlibexp with any trailing version-specific component
+       removed.  The elements in inc_version_list (inc_version_list.U) can
+       be tacked onto this variable to generate a list of directories to search.
+
 vendorlibexp (vendorlib.U):
        This variable is the ~name expanded version of vendorlib, so that you
        may use it directly in Makefiles or shell scripts.
index 0fe3d67..18e3506 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Fri Mar  3 17:00:59 EET 2000
+# Configuration time: Mon Mar  6 00:00:30 EET 2000
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -35,8 +35,8 @@ api_subversion='0'
 api_version='5'
 api_versionstring='5.005'
 ar='ar'
-archlib='/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi'
-archlibexp='/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi'
+archlib='/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi'
+archlibexp='/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi'
 archname64=''
 archname='alpha-dec_osf-thread-multi'
 archobjs=''
@@ -54,12 +54,12 @@ castflags='0'
 cat='cat'
 cc='cc'
 cccdlflags=' '
-ccdlflags='  -Wl,-rpath,/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi/CORE'
+ccdlflags='  -Wl,-rpath,/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi/CORE'
 ccflags='-pthread -std -DLANGUAGE_C'
 ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Fri Mar  3 17:00:59 EET 2000'
+cf_time='Mon Mar  6 00:00:30 EET 2000'
 charsize='1'
 chgrp=''
 chmod=''
@@ -360,6 +360,7 @@ d_umask='define'
 d_uname='define'
 d_union_semun='undef'
 d_ustat='define'
+d_vendorarch='undef'
 d_vendorbin='undef'
 d_vendorlib='undef'
 d_vfork='undef'
@@ -508,19 +509,20 @@ inc_version_list=' '
 inc_version_list_init='0'
 incpath=''
 inews=''
-installarchlib='/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi'
+installarchlib='/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi'
 installbin='/opt/perl/bin'
 installman1dir='/opt/perl/man/man1'
 installman3dir='/opt/perl/man/man3'
 installprefix='/opt/perl'
 installprefixexp='/opt/perl'
-installprivlib='/opt/perl/lib/5.5.670'
+installprivlib='/opt/perl/lib/5.6.0'
 installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi'
+installsitearch='/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi'
 installsitebin='/opt/perl/bin'
-installsitelib='/opt/perl/lib/site_perl/5.5.670'
+installsitelib='/opt/perl/lib/site_perl/5.6.0'
 installstyle='lib'
 installusrbinperl='define'
+installvendorarch=''
 installvendorbin=''
 installvendorlib=''
 intsize='4'
@@ -608,7 +610,7 @@ osvers='4.0'
 package='perl5'
 pager='/c/bin/less'
 passcat='cat /etc/passwd'
-patchlevel='5'
+patchlevel='6'
 path_sep=':'
 perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl'
 perl=''
@@ -623,8 +625,8 @@ pmake=''
 pr=''
 prefix='/opt/perl'
 prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.5.670'
-privlibexp='/opt/perl/lib/5.5.670'
+privlib='/opt/perl/lib/5.6.0'
+privlibexp='/opt/perl/lib/5.6.0'
 prototype='define'
 ptrsize='8'
 quadkind='2'
@@ -671,12 +673,13 @@ sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE"
 sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 '
 sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0'
 signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi'
-sitearchexp='/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi'
+sitearch='/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi'
+sitearchexp='/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi'
 sitebin='/opt/perl/bin'
 sitebinexp='/opt/perl/bin'
-sitelib='/opt/perl/lib/site_perl/5.5.670'
-sitelibexp='/opt/perl/lib/site_perl/5.5.670'
+sitelib='/opt/perl/lib/site_perl/5.6.0'
+sitelib_stem='/opt/perl/lib/site_perl'
+sitelibexp='/opt/perl/lib/site_perl/5.6.0'
 siteprefix='/opt/perl'
 siteprefixexp='/opt/perl'
 sizetype='size_t'
@@ -705,7 +708,7 @@ stdio_ptr='((fp)->_ptr)'
 stdio_stream_array='_iob'
 strings='/usr/include/string.h'
 submit=''
-subversion='670'
+subversion='0'
 sysman='/usr/man/man1'
 tail=''
 tar=''
@@ -760,17 +763,20 @@ uvsize='8'
 uvtype='unsigned long'
 uvuformat='"lu"'
 uvxformat='"lx"'
+vendorarch=''
+vendorarchexp=''
 vendorbin=''
 vendorbinexp=''
 vendorlib=''
+vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.5.670'
+version='5.6.0'
 vi=''
 voidflags='15'
 xlibpth='/usr/lib/386 /lib/386'
-xs_apiversion='5.5.670'
+xs_apiversion='5.6.0'
 zcat=''
 zip='zip'
 # Configure command line arguments.
@@ -789,8 +795,8 @@ config_arg9='-Dmydomain=.yourplace.com'
 config_arg10='-Dmyhostname=yourhost'
 config_arg11='-dE'
 PERL_REVISION=5
-PERL_VERSION=5
-PERL_SUBVERSION=670
+PERL_VERSION=6
+PERL_SUBVERSION=0
 PERL_API_REVISION=5
 PERL_API_VERSION=5
 PERL_API_SUBVERSION=0
index c627afa..7a63d00 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Fri Mar  3 17:00:59 EET 2000
+ * Configuration time: Mon Mar  6 00:00:30 EET 2000
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  *     This symbol contains the ~name expanded version of ARCHLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define ARCHLIB "/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi"             /**/
-#define ARCHLIB_EXP "/opt/perl/lib/5.5.670/alpha-dec_osf-thread-multi"         /**/
+#define ARCHLIB "/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi"               /**/
+#define ARCHLIB_EXP "/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi"           /**/
 
 /* ARCHNAME:
  *     This symbol holds a string representing the architecture name.
  *     This macro surrounds its token with double quotes.
  */
 #if 42 == 1
-#define CAT2(a,b)a/**/b
-#define STRINGIFY(a)"a"
+#  define CAT2(a,b)    a/**/b
+#  define STRINGIFY(a) "a"
                /* If you can get stringification with catify, tell me how! */
 #endif
 #if 42 == 42
-#define CAT2(a,b)a ## b
-#define StGiFy(a)# a
-#define STRINGIFY(a)StGiFy(a)
+#  define PeRl_CaTiFy(a, b)    a ## b  
+#  define PeRl_StGiFy(a)       #a
+/* the additional level of indirection enables these macros to be
+ * used as arguments to other macros.  See K&R 2nd ed., page 231. */
+#  define CAT2(a,b)    PeRl_CaTiFy(a,b)
+#  define StGiFy(a)    PeRl_StGiFy(a)
+#  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if 42 != 1 && 42 != 42
 #include "Bletch: How does this C preprocessor catenate tokens?"
  *     This symbol contains the ~name expanded version of PRIVLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define PRIVLIB "/opt/perl/lib/5.5.670"                /**/
-#define PRIVLIB_EXP "/opt/perl/lib/5.5.670"            /**/
+#define PRIVLIB "/opt/perl/lib/5.6.0"          /**/
+#define PRIVLIB_EXP "/opt/perl/lib/5.6.0"              /**/
 
 /* PTRSIZE:
  *     This symbol contains the size of a pointer, so that the C preprocessor
  *     This symbol contains the ~name expanded version of SITEARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITEARCH "/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi"          /**/
-#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi"              /**/
+#define SITEARCH "/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi"            /**/
+#define SITEARCH_EXP "/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi"                /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
  *     This symbol contains the ~name expanded version of SITELIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
-#define SITELIB "/opt/perl/lib/site_perl/5.5.670"              /**/
-#define SITELIB_EXP "/opt/perl/lib/site_perl/5.5.670"          /**/
+/* SITELIB_STEM:
+ *     This define is SITELIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
+#define SITELIB "/opt/perl/lib/site_perl/5.6.0"                /**/
+#define SITELIB_EXP "/opt/perl/lib/site_perl/5.6.0"            /**/
+#define SITELIB_STEM "/opt/perl/lib/site_perl"         /**/
 
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
 #endif
 /*#define      OLD_PTHREADS_API                / **/
 
+/* PERL_VENDORARCH_EXP:
+ *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/*#define PERL_VENDORARCH_EXP ""               / **/
+
 /* PERL_VENDORLIB_EXP:
  *     This symbol contains the ~name expanded version of VENDORLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/* PERL_VENDORLIB_STEM:
+ *     This define is PERL_VENDORLIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
 /*#define PERL_VENDORLIB_EXP ""                / **/
+/*#define PERL_VENDORLIB_STEM ""               / **/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
 /* PERL_XS_APIVERSION:
  *     This variable contains the version of the oldest perl binary
  *     compatible with the present perl.  perl.c:incpush() and
- *     lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.5.670/alpha-dec_osf-thread-multi for older
+ *     lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi for older
  *     directories across major versions back to xs_apiversion.
  *     This is only useful if you have a perl library directory tree
  *     structured like the default one.
  *     compatible with the present perl.  (That is, pure perl modules
  *     written for pm_apiversion will still work for the current
  *     version).  perl.c:incpush() and lib/lib.pm will automatically
- *     search in /opt/perl/lib/site_perl/5.5.670 for older directories across major versions
+ *     search in /opt/perl/lib/site_perl/5.6.0 for older directories across major versions
  *     back to pm_apiversion.  This is only useful if you have a perl
  *     library directory tree structured like the default one.  The
  *     versioned site_perl library was introduced in 5.005, so that's
  *     (presumably) be similar.
  *     See the INSTALL file for how this works.
  */
-#define PERL_XS_APIVERSION "5.5.670"
+#define PERL_XS_APIVERSION "5.6.0"
 #define PERL_PM_APIVERSION "5.005"
 
 /* HAS_GETFSSTAT:
index 73f4ae6..cae08f3 100644 (file)
@@ -2810,8 +2810,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol contains the ~name expanded version of SITELIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/* SITELIB_STEM:
+ *     This define is SITELIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
 #define SITELIB "$sitelib"             /**/
 #define SITELIB_EXP "$sitelibexp"              /**/
+#define SITELIB_STEM "$sitelib_stem"           /**/
 
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
@@ -2960,11 +2966,23 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #endif
 #$d_oldpthreads        OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH_EXP:
+ *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#$d_vendorarch PERL_VENDORARCH_EXP "$vendorarchexp"            /**/
+
 /* PERL_VENDORLIB_EXP:
  *     This symbol contains the ~name expanded version of VENDORLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/* PERL_VENDORLIB_STEM:
+ *     This define is PERL_VENDORLIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
 #$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp"               /**/
+#$d_vendorlib PERL_VENDORLIB_STEM "$vendorlib_stem"            /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
index 7131683..a3051d4 100644 (file)
@@ -630,6 +630,7 @@ signal_t='void'
 sitearch='/perl/lib/site_perl/5.5.670/epoc'
 sitearchexp='/perl/lib/site_perl/5.5.670/epoc'
 sitelib='/perl/lib/site_perl/5.5.670/'
+sitelib_stem='/perl/lib/site_perl'
 sitelibexp='/perl/lib/site_perl/5.5.670/'
 siteprefix=''
 siteprefixexp=''
@@ -697,6 +698,7 @@ usevfork=''
 usrinc=''
 uuname=''
 vendorlib=''
+vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
index 0b8d9be..7da61f0 100644 (file)
@@ -68,7 +68,7 @@
        applied different patches than you.
  */
 #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
-static char    * __attribute__ ((unused)) local_patches[] = {
+static char    *local_patches[] = {
        NULL
        , "v5.6.0-RC1"
        ,NULL
diff --git a/perl.c b/perl.c
index 4b3b3e8..1fb05e8 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -3230,7 +3230,7 @@ S_init_perllib(pTHX)
     }
 
 /* Use the ~-expanded versions of APPLLIB (undocumented),
-    ARCHLIB PRIVLIB SITEARCH and SITELIB 
+    ARCHLIB PRIVLIB SITEARCH SITELIB VENDORARCH and VENDORLIB
 */
 #ifdef APPLLIB_EXP
     incpush(APPLLIB_EXP, TRUE);
@@ -3240,7 +3240,7 @@ S_init_perllib(pTHX)
     incpush(ARCHLIB_EXP, FALSE);
 #endif
 #ifndef PRIVLIB_EXP
-#define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
+#  define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
 #endif
 #if defined(WIN32) 
     incpush(PRIVLIB_EXP, TRUE);
@@ -3248,35 +3248,54 @@ S_init_perllib(pTHX)
     incpush(PRIVLIB_EXP, FALSE);
 #endif
 
-#if defined(WIN32)
-    incpush(SITELIB_EXP, TRUE);        /* XXX Win32 needs inc_version_list support */
-#else
+#ifdef SITEARCH_EXP
+#  if defined(WIN32)
+    incpush(SITEARCH_EXP, TRUE);
+#  else
+    incpush(SITEARCH_EXP, FALSE);
+#  endif
+#endif
+
 #ifdef SITELIB_EXP
-    {
-       char *path = SITELIB_EXP;
+#  if defined(WIN32)
+    incpush(SITELIB_EXP, TRUE);
+#  else
+    incpush(SITELIB_EXP, FALSE);
+#  endif
+#endif
 
-       if (path) {
-           char buf[1024];
-           char *ver = strrchr(path,'/');      /* XXX Hack, Configure var needed */
-           if (ver && ver[1] == (STRINGIFY(PERL_REVISION))[0]
-               && strlen(path) < sizeof(buf))
-           {
-               strcpy(buf,path);
-               buf[ver-path] = '\0';
-               path = buf;
-           }
-           incpush(path, TRUE);
-       }
-    }
+#ifdef SITELIB_STEM /* Search for version-specific dirs below here */
+#  if defined(WIN32)
+    /* XXX Win32 needs inc_version_list support */
+#  else
+    incpush(SITELIB_STEM, TRUE);
+#  endif
 #endif
+
+#ifdef PERL_VENDORARCH_EXP
+#  if defined(WIN32)
+    incpush(PERL_VENDORARCH_EXP, TRUE);
+#  else
+    incpush(PERL_VENDORARCH_EXP, FALSE);
+#  endif
 #endif
-#if defined(PERL_VENDORLIB_EXP)
-#if defined(WIN32) 
+
+#ifdef PERL_VENDORLIB_EXP
+#  if defined(WIN32)
     incpush(PERL_VENDORLIB_EXP, TRUE);
-#else
+#  else
     incpush(PERL_VENDORLIB_EXP, FALSE);
+#  endif
 #endif
+
+#ifdef PERL_VENDORLIB_STEM /* Search for version-specific dirs below here */
+#  if defined(WIN32)
+    /* XXX Win32 needs inc_version_list support */
+#  else
+    incpush(PERL_VENDORLIB_STEM, TRUE);
+#  endif
 #endif
+
     if (!PL_tainting)
        incpush(".", FALSE);
 }
diff --git a/perl.h b/perl.h
index 2fbd39f..d9dcbba 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -151,14 +151,6 @@ functions are now member functions of the PERL_OBJECT.
 
 */
 
-#ifndef NEXT30_NO_ATTRIBUTE
-#  ifndef HASATTRIBUTE       /* disable GNU-cc attribute checking? */
-#    ifdef  __attribute__      /* Avoid possible redefinition errors */
-#      undef  __attribute__
-#    endif
-#    define __attribute__(attr)
-#  endif
-#endif
 
 class CPerlObj;
 
@@ -229,7 +221,7 @@ struct perl_thread;
 #endif
 
 #define NOOP (void)0
-#define dNOOP extern int __attribute__ ((unused)) Perl___notused
+#define dNOOP extern int Perl___notused
 
 #ifndef pTHX
 #  define pTHX         void
@@ -2672,6 +2664,15 @@ typedef void *Thread;
 #  define PERL_CALLCONV
 #endif 
 
+#ifndef NEXT30_NO_ATTRIBUTE
+#  ifndef HASATTRIBUTE       /* disable GNU-cc attribute checking? */
+#    ifdef  __attribute__      /* Avoid possible redefinition errors */
+#      undef  __attribute__
+#    endif
+#    define __attribute__(attr)
+#  endif
+#endif
+
 #ifdef PERL_OBJECT
 #  define PERL_DECL_PROT
 #endif
index 7ef644d..46098b4 100644 (file)
@@ -406,6 +406,7 @@ $sitearch=''
 $sitearchexp=''
 $sitelib='/system/ported/perl/lib/site/5.005'
 $sitelibexp='/system/ported/perl/lib/site/5.005'
+$sitelib_stem='/system/ported/perl/lib/site'
 $sizetype='size_t'
 $socksizetype='int'
 $sPRIfldbl='"Lf"'
@@ -448,6 +449,9 @@ $uvsize='4'
 $uvtype='unsigned int'
 $uvuformat='"u"'
 $uvxformat='"x"'
+$vendorarch=''
+$vendorarchexp=''
+$vendorlib_stem=''
 $vendorlibexp=''
 $voidflags='15'
 $xs_apiversion='5.00563'
index d163593..a145c30 100644 (file)
  *     This macro surrounds its token with double quotes.
  */
 #if 42 == 1
-#define CAT2(a,b)a/**/b
-#define STRINGIFY(a)"a"
+#  define CAT2(a,b)    a/**/b
+#  define STRINGIFY(a) "a"
                /* If you can get stringification with catify, tell me how! */
 #endif
 #if 42 == 42
-#define CAT2(a,b)a ## b
-#define StGiFy(a)# a
-#define STRINGIFY(a)StGiFy(a)
+#  define PeRl_CaTiFy(a, b)    a ## b  
+#  define PeRl_StGiFy(a)       #a
+/* the additional level of indirection enables these macros to be
+ * used as arguments to other macros.  See K&R 2nd ed., page 231. */
+#  define CAT2(a,b)    PeRl_CaTiFy(a,b)
+#  define StGiFy(a)    PeRl_StGiFy(a)
+#  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if 42 != 1 && 42 != 42
 #include "Bletch: How does this C preprocessor catenate tokens?"
  *     This symbol contains the ~name expanded version of SITELIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/* SITELIB_STEM:
+ *     This define is SITELIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
 #define SITELIB "/system/ported/perl/lib/site/5.005"           /**/
 #define SITELIB_EXP "/system/ported/perl/lib/site/5.005"               /**/
+#define SITELIB_STEM "/system/ported/perl/lib/site"            /**/
 
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
 #endif
 /*#define      OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH_EXP:
+ *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+# PERL_VENDORARCH_EXP ""               /**/
+
 /* PERL_VENDORLIB_EXP:
  *     This symbol contains the ~name expanded version of VENDORLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/* PERL_VENDORLIB_STEM:
+ *     This define is PERL_VENDORLIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
 #define PERL_VENDORLIB_EXP ""          /**/
+#define PERL_VENDORLIB_STEM ""         /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
index d452aa9..cae08f3 100755 (executable)
@@ -1204,14 +1204,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This macro surrounds its token with double quotes.
  */
 #if $cpp_stuff == 1
-#define CAT2(a,b)a/**/b
-#define STRINGIFY(a)"a"
+#  define CAT2(a,b)    a/**/b
+#  define STRINGIFY(a) "a"
                /* If you can get stringification with catify, tell me how! */
 #endif
 #if $cpp_stuff == 42
-#define CAT2(a,b)a ## b
-#define StGiFy(a)# a
-#define STRINGIFY(a)StGiFy(a)
+#  define PeRl_CaTiFy(a, b)    a ## b  
+#  define PeRl_StGiFy(a)       #a
+/* the additional level of indirection enables these macros to be
+ * used as arguments to other macros.  See K&R 2nd ed., page 231. */
+#  define CAT2(a,b)    PeRl_CaTiFy(a,b)
+#  define StGiFy(a)    PeRl_StGiFy(a)
+#  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if $cpp_stuff != 1 && $cpp_stuff != 42
 #include "Bletch: How does this C preprocessor catenate tokens?"
@@ -2806,8 +2810,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol contains the ~name expanded version of SITELIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/* SITELIB_STEM:
+ *     This define is SITELIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
 #define SITELIB "$sitelib"             /**/
 #define SITELIB_EXP "$sitelibexp"              /**/
+#define SITELIB_STEM "$sitelib_stem"           /**/
 
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
@@ -2956,11 +2966,23 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #endif
 #$d_oldpthreads        OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH_EXP:
+ *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#$d_vendorarch PERL_VENDORARCH_EXP "$vendorarchexp"            /**/
+
 /* PERL_VENDORLIB_EXP:
  *     This symbol contains the ~name expanded version of VENDORLIB, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/* PERL_VENDORLIB_STEM:
+ *     This define is PERL_VENDORLIB_EXP with any trailing version-specific component
+ *     removed.  The elements in inc_version_list (inc_version_list.U) can
+ *     be tacked onto this variable to generate a list of directories to search.
+ */
 #$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp"               /**/
+#$d_vendorlib PERL_VENDORLIB_STEM "$vendorlib_stem"            /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this