develooper Front page | perl.perl5.changes | Postings from May 2008

Change 33904: Integrate:

From:
Dave Mitchell
Date:
May 21, 2008 09:45
Subject:
Change 33904: Integrate:
Change 33904 by davem@davem-pigeon on 2008/05/21 16:37:54

	
	Integrate:
	[ 33631]
	Subject: [PATCH] Re: Change 33598: [PATCH] Re: Smoke [5.11.0] 33456 PASS darwin 9.2.0 (macppcG5/1 cpu)
	From: "Jerry D. Hedden" <jdhedden@cpan.org>
	Date: Wed, 2 Apr 2008 13:45:26 -0400
	Message-ID: <1ff86f510804021045s1f7ec22ftbf5b9e2f2c6c619e@mail.gmail.com>
	
	[ 33757]
	Use File::Find rather than shell globbing to get the list of *.pm files
	to pass to AutoSplit::autosplit_lib_modules(). This way we only need to
	invoke miniperl once, and we don't miss anything that is 3 or more
	levels deep.
	
	[ 33843]
	Subject: [perl #54120] [PATCH] [metaconfig] Need more -fstack-protector 
	From: Andy Dougherty (via RT) <perlbug-followup@perl.org>
	Date: Tue, 13 May 2008 09:37:07 -0700
	Message-ID: <rt-3.6.HEAD-9992-1210696625-331.54120-75-0@perl.org>
	
	[ 33845]
	Subject: [PATCH] Re: [perl #50180] NDBM_File fails to build 
	From: Andy Dougherty <doughera@lafayette.edu>
	Date: Tue, 13 May 2008 12:28:45 -0400 (EDT)
	Message-ID: <Pine.LNX.4.64.0805131224130.9728@fractal.phys.lafayette.edu>
	
	[ 33887]
	Subject: Re: Change 33843: [perl #54120] [PATCH] [metaconfig] Need more -fstack-protector
	From: Andy Dougherty <doughera@lafayette.edu>
	Date: Tue, 20 May 2008 11:21:14 -0400 (EDT)
	Message-ID: <Pine.LNX.4.64.0805201102040.767@fractal.phys.lafayette.edu>

Affected files ...

... //depot/maint-5.10/perl/Configure#9 integrate
... //depot/maint-5.10/perl/Makefile.SH#5 integrate
... //depot/maint-5.10/perl/Porting/Glossary#7 integrate
... //depot/maint-5.10/perl/config_h.SH#7 integrate
... //depot/maint-5.10/perl/ext/NDBM_File/NDBM_File.xs#2 integrate
... //depot/maint-5.10/perl/hints/linux.sh#2 integrate

Differences ...

==== //depot/maint-5.10/perl/Configure#9 (xtext) ====
Index: perl/Configure
--- perl/Configure#8~33894~	2008-05-20 16:39:57.000000000 -0700
+++ perl/Configure	2008-05-21 09:37:54.000000000 -0700
@@ -25,7 +25,7 @@
 
 # $Id: Head.U 6 2006-08-25 22:21:46Z rmanfredi $
 #
-# Generated on Sun Mar 30 11:17:56 CEST 2008 [metaconfig 3.5 PL0]
+# Generated on Tue May 20 17:29:22 CEST 2008 [metaconfig 3.5 PL0]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -873,6 +873,9 @@
 i_math=''
 i_memory=''
 i_mntent=''
+d_ndbm=''
+i_gdbm_ndbm=''
+i_gdbmndbm=''
 i_ndbm=''
 i_netdb=''
 i_neterrno=''
@@ -5119,7 +5122,7 @@
 	# as that way the compiler can do the right implementation dependant
 	# thing. (NWC)
 	case "$gccversion" in
-	?*)	set stack-protector -fstack-protector 'ldflags="$ldflags -fstack-protector"'
+	?*)	set stack-protector -fstack-protector
 		eval $checkccflag
 		;;
 	esac
@@ -5261,6 +5264,15 @@
 	;;
 *) dflt="$ldflags";;
 esac
+# See note above about -fstack-protector
+case "$ccflags" in
+*-fstack-protector*) 
+	case "$dflt" in
+	*-fstack-protector*) ;; # Don't add it again
+	*) dflt="$dflt -fstack-protector" ;; 
+	esac
+	;;
+esac
 
 : Try to guess additional flags to pick up local libraries.
 for thislibdir in $libpth; do
@@ -6567,7 +6579,7 @@
 $cat >try.c <<EOCP
 #include <stdlib.h>
 #include <malloc.h>
-$i_mallocmalloc I_MALLOCMALLOC
+#$i_mallocmalloc I_MALLOCMALLOC
 #ifdef I_MALLOCMALLOC
 # include <malloc/malloc.h>
 #endif
@@ -8023,6 +8035,16 @@
 	''|' ') dflt='none' ;;
 	esac
 
+	case "$ldflags" in
+	*-fstack-protector*)
+	    case "$dflt" in
+			*-fstack-protector*) ;; # Don't add it again
+			*) dflt="$dflt -fstack-protector" ;; 
+		esac
+		;;
+	esac
+
+
     rp="Any special flags to pass to $ld to create a dynamically loaded library?"
     . ./myread
     case "$ans" in
@@ -20780,6 +20802,35 @@
 set i_gdbm
 eval $setvar
 
+: see if ndbm.h is available
+set ndbm.h i_ndbm
+eval $inhdr
+: Compatibility location for RedHat 7.1
+set gdbm/ndbm.h i_gdbmndbm
+eval $inhdr
+: Compatibility location for Debian 4.0
+set gdbm-ndbm.h i_gdbm_ndbm
+eval $inhdr
+
+if $test "$i_ndbm" = "$define" -o "$i_gdbmndbm" = "$define" -o "$i_gdbm_ndbm" = "$define"; then
+	: see if dbm_open exists
+	set dbm_open d_dbm_open
+	eval $inlibc
+	case "$d_dbm_open" in
+	$undef)
+		i_ndbm="$undef"
+		i_gdbmndbm="$undef"
+		i_gdbm_ndbm="$undef"
+		echo "We won't be including <ndbm.h>"
+	    val="$undef"
+		;;
+	*) val="$define"
+	   ;;
+	esac
+fi
+set d_ndbm
+eval $setvar
+
 : see if this is a ieeefp.h system
 case "$i_ieeefp" in
 '' ) set ieeefp.h i_ieeefp
@@ -20803,40 +20854,6 @@
 set mntent.h i_mntent
 eval $inhdr
 
-: see if ndbm.h is available
-set ndbm.h t_ndbm
-eval $inhdr
-
-case "$t_ndbm" in
-$undef)
-    # Some Linux distributions such as RedHat 7.1 put the
-    # ndbm.h header in /usr/include/gdbm/ndbm.h.
-    if $test -f /usr/include/gdbm/ndbm.h; then
-	echo '<gdbm/ndbm.h> found.'
-        ccflags="$ccflags -I/usr/include/gdbm"
-        cppflags="$cppflags -I/usr/include/gdbm"
-        t_ndbm=$define
-    fi
-    ;;
-esac
-
-case "$t_ndbm" in
-$define)
-	: see if dbm_open exists
-	set dbm_open d_dbm_open
-	eval $inlibc
-	case "$d_dbm_open" in
-	$undef)
-		t_ndbm="$undef"
-		echo "We won't be including <ndbm.h>"
-		;;
-	esac
-	;;
-esac
-val="$t_ndbm"
-set i_ndbm
-eval $setvar
-
 : see if net/errno.h is available
 val=''
 set net/errno.h val
@@ -21660,7 +21677,7 @@
     ;;
 *) case "$usedl" in
     $define|true|[yY]*)
-	    set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'` 
+	    set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -lgdbm_compat @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'` 
 	    shift
 	    perllibs="$*"
 	    ;;
@@ -22060,6 +22077,7 @@
 d_msync='$d_msync'
 d_munmap='$d_munmap'
 d_mymalloc='$d_mymalloc'
+d_ndbm='$d_ndbm'
 d_nice='$d_nice'
 d_nl_langinfo='$d_nl_langinfo'
 d_nv_preserves_uv='$d_nv_preserves_uv'
@@ -22359,6 +22377,8 @@
 i_fp='$i_fp'
 i_fp_class='$i_fp_class'
 i_gdbm='$i_gdbm'
+i_gdbm_ndbm='$i_gdbm_ndbm'
+i_gdbmndbm='$i_gdbmndbm'
 i_grp='$i_grp'
 i_ieeefp='$i_ieeefp'
 i_inttypes='$i_inttypes'

==== //depot/maint-5.10/perl/Makefile.SH#5 (text) ====
Index: perl/Makefile.SH
--- perl/Makefile.SH#4~33633~	2008-04-03 03:41:22.000000000 -0700
+++ perl/Makefile.SH	2008-05-21 09:37:54.000000000 -0700
@@ -840,10 +840,10 @@
 preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
 	@sh ./makedir lib/auto
 	@echo "	AutoSplitting perl library"
-	$(LDLIBPTH) $(RUN) ./miniperl -Ilib -e 'use AutoSplit; \
-		autosplit_lib_modules(@ARGV)' lib/*.pm
-	$(LDLIBPTH) $(RUN) ./miniperl -Ilib -e 'use AutoSplit; \
-		autosplit_lib_modules(@ARGV)' lib/*/*.pm
+	$(LDLIBPTH) $(RUN) ./miniperl -Ilib -MAutoSplit -MFile::Find -e ' \
+		find ({no_chdir=>1, wanted => \
+		       sub {autosplit_lib_modules($$_) if /\.pm$$/}}, \
+		      "lib")'
 	$(MAKE) lib/re.pm
 
 lib/Config.pod: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary

==== //depot/maint-5.10/perl/Porting/Glossary#7 (text) ====
Index: perl/Porting/Glossary
--- perl/Porting/Glossary#6~33894~	2008-05-20 16:39:57.000000000 -0700
+++ perl/Porting/Glossary	2008-05-21 09:37:54.000000000 -0700
@@ -1429,6 +1429,14 @@
 	of the source want to take special action if MYMALLOC is used.
 	This may include different sorts of profiling or error detection.
 
+d_ndbm (i_ndbm.U):
+	This variable conditionally defines the HAS_NDBM symbol, which
+	indicates that both the ndbm.h include file and an appropriate ndbm
+	library exist.  Consult the different i_*ndbm variables
+	to find out the actual include location.  Sometimes, a system has the
+	header file but not the library.  This variable will only be set if
+	the system has both.
+
 d_nice (d_nice.U):
 	This variable conditionally defines the HAS_NICE symbol, which
 	indicates to the C program that the nice() routine is available.
@@ -2886,6 +2894,18 @@
 	indicates to the C program that <gdbm.h> exists and should
 	be included.
 
+i_gdbm_ndbm (i_ndbm.U):
+	This variable conditionally defines the I_GDBM_NDBM symbol, which
+	indicates to the C program that <gdbm-ndbm.h> exists and should
+	be included.  This is the location of the ndbm.h compatibility file
+	in Debian 4.0.
+
+i_gdbmndbm (i_ndbm.U):
+	This variable conditionally defines the I_GDBMNDBM symbol, which
+	indicates to the C program that <gdbm/ndbm.h> exists and should
+	be included.  This was the location of the ndbm.h compatibility file
+	in RedHat 7.1.
+
 i_grp (i_grp.U):
 	This variable conditionally defines the I_GRP symbol, and indicates
 	whether a C program should include <grp.h>.

==== //depot/maint-5.10/perl/config_h.SH#7 (text) ====
Index: perl/config_h.SH
--- perl/config_h.SH#6~33894~	2008-05-20 16:39:57.000000000 -0700
+++ perl/config_h.SH	2008-05-21 09:37:54.000000000 -0700
@@ -689,12 +689,6 @@
  */
 #$i_locale	I_LOCALE		/**/
 
-/* I_MALLOCMALLOC:
- *	This symbol, if defined, indicates to the C program that it should
- *	include <malloc/malloc.h>.
- */
-#$i_mallocmalloc	I_MALLOCMALLOC		/**/
-
 /* I_MATH:
  *	This symbol, if defined, indicates to the C program that it should
  *	include <math.h>.
@@ -4109,6 +4103,12 @@
  */
 #$i_libutil	I_LIBUTIL		/**/
 
+/* I_MALLOCMALLOC:
+ *	This symbol, if defined, indicates to the C program that it should
+ *	include <malloc/malloc.h>.
+ */
+#$i_mallocmalloc I_MALLOCMALLOC		/**/
+
 /* I_MNTENT:
  *	This symbol, if defined, indicates that <mntent.h> exists and
  *	should be included.

==== //depot/maint-5.10/perl/ext/NDBM_File/NDBM_File.xs#2 (text) ====
Index: perl/ext/NDBM_File/NDBM_File.xs
--- perl/ext/NDBM_File/NDBM_File.xs#1~32694~	2007-12-22 01:23:09.000000000 -0800
+++ perl/ext/NDBM_File/NDBM_File.xs	2008-05-21 09:37:54.000000000 -0700
@@ -1,7 +1,13 @@
 #include "EXTERN.h"
 #include "perl.h"
 #include "XSUB.h"
+#if defined(I_GDBM_NDBM)
+#  include <gdbm-ndbm.h> /* Debian compatibility version */
+#elif defined(I_GDBMNDBM)
+#  include <gdbm/ndbm.h> /* RedHat compatibility version */
+#elif defined(I_NDBM)
 #include <ndbm.h>
+#endif
 
 typedef struct {
 	DBM * 	dbp ;

==== //depot/maint-5.10/perl/hints/linux.sh#2 (text) ====
Index: perl/hints/linux.sh
--- perl/hints/linux.sh#1~32694~	2007-12-22 01:23:09.000000000 -0800
+++ perl/hints/linux.sh	2008-05-21 09:37:54.000000000 -0700
@@ -54,6 +54,9 @@
 shift
 libswanted="$*"
 
+# Debian 4.0 puts ndbm in the -lgdbm_compat library.
+libswanted="$libswanted gdbm_compat"
+
 # If you have glibc, then report the version for ./myconfig bug reporting.
 # (Configure doesn't need to know the specific version since it just uses
 # gcc to load the library for all tests.)
End of Patch.



Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About