From: Jarkko Hietaniemi <jhi@iki.fi>
Date: Tue, 19 Jan 1999 12:44:02 +0000 (+0000)
Subject: Jumbo Configure update.
X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=104d25b722892cb36f4c988c17016ee0180c3b1a;p=p5sagit%2Fp5-mst-13.2.git

Jumbo Configure update.
* -Uinstallusrbinperl: disable /usr/bin/perl installation
   by installperl
* usethreads.cbu
* use64bits.cbu
* "nosuid"

p4raw-id: //depot/cfgperl@2649
---

diff --git a/Configure b/Configure
index 1d99afe..9c16607 100755
--- 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 Sat Jan  9 18:00:39 EET 1999 [metaconfig 3.0 PL70]
+# Generated on Tue Jan 19 14:08:44 EET 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by jhi@iki.fi)
 
 cat >/tmp/c1$$ <<EOF
@@ -481,6 +481,11 @@ d_sockpair=''
 sockethdr=''
 socketlib=''
 d_statblks=''
+d_fstatfs=''
+d_statfs=''
+d_statfsflags=''
+d_fstatvfs=''
+d_statvfs=''
 d_stdio_cnt_lval=''
 d_stdio_ptr_lval=''
 d_stdiobase=''
@@ -603,12 +608,14 @@ i_bsdioctl=''
 i_sysfilio=''
 i_sysioctl=''
 i_syssockio=''
+i_sysmount=''
 i_sysndir=''
 i_sysparam=''
 i_sysresrc=''
 i_syssecrt=''
 i_sysselct=''
 i_sysstat=''
+i_sysstatvfs=''
 i_systimes=''
 i_systypes=''
 d_iovec_s=''
@@ -629,6 +636,7 @@ i_stdarg=''
 i_varargs=''
 i_varhdr=''
 i_vfork=''
+installusrbinperl=''
 intsize=''
 longsize=''
 shortsize=''
@@ -2476,16 +2484,7 @@ y|Y)    val="$define" ;;
 esac
 set usethreads
 eval $setvar 
-: Look for a hint-file generated 'call-back-unit'.  If the
-: user has specified that a threading perl is to be built,
-: we may need to set or change some other defaults.
-case "$usethreads" in
-$define|true|[yY]*)
-	if $test -f usethreads.cbu; then
-		. ./usethreads.cbu
-	fi
-	;;
-esac
+
 case "$d_oldpthreads" in
 '')	: Configure tests would be welcome here.  For now, assume undef.
 	val="$undef" ;;
@@ -2496,247 +2495,30 @@ eval $setvar
 
 
 case "$usethreads" in
-"$define")
-    case "$osname" in
-    aix)
-        ccflags="$ccflags -DNEED_PTHREAD_INIT"
-        case "$cc" in
-        xlc_r | cc_r) ;;
-        cc) 
-	    echo >&4 "Switching cc to xlc_r because of POSIX threads."
-	    cc=xlc_r
-            ;;
-        '') 
-	    cc=xlc_r
-            ;;
-        *)
- 	    cat >&4 <<EOM
-For pthreads you should use the AIX C compilers xlc_r or cc_r.
-(now your compiler was '$cc')
-Cannot continue, aborting.
-EOM
- 	    exit 1
-	    ;;
-        esac
-
-        # Add the POSIX threads library and the re-entrant libc.
-
-        lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'`
-
-        # Add the c_r library to the list of wanted libraries.
-        # Make sure the c_r library is before the c library or
-        # make will fail.
-        set `echo X "$libswanted "| sed -e 's/ c / c_r c /'`
-        shift
-        libswanted="$*"
-	;;
-    dec_osf)
-        # Threads interfaces changed with V4.0.
-        case "`uname -r`" in
-        *[123].*)
-	    libswanted="$libswanted pthreads mach exc c_r"
-  	    ccflags="-threads $ccflags"
-	    ;;
-        *)
-	    libswanted="$libswanted pthread exc"
-    	    ccflags="-pthread $ccflags"
-	    ;;
-        esac
-
-        usemymalloc='n'
-	;;
-    dos_djgpp)
-        set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'`
-        shift
-        libswanted="$*"
-	;;
-    freebsd)
-        case "$osvers" in  
-        [34].*) ldflags="-pthread $ldflags"
-              ;;
-        2.2*) if [ ! -r /usr/lib/libc_r ]; then
-              cat <<'EOM' >&4
-POSIX threads are not supported by default on FreeBSD $osvers.  Follow the
-instructions in 'man pthread' to build and install the needed libraries.
-EOM
-                 exit 1
-              fi
-              set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
-              shift
-              libswanted="$*"
-              # Configure will probably pick the wrong libc to use for nm
-              # scan.
-              # The safest quick-fix is just to not use nm at all.
-              usenm=false
-              ;;
-         *)   cat <<'EOM' >&4
-
-It is not known if FreeBSD $osvers supports POSIX threads or not.
-Consider upgrading to the latest STABLE release.
-
-EOM
-              exit 1
-              ;;
-        esac
-	;;
-    hpux)
-        if [ "$xxOsRevMajor" -lt 10 ]; then
-            cat <<EOM >&4
-HP-UX $xxOsRevMajor cannot support POSIX threads.
-Consider upgrading to at least HP-UX 11.
-Cannot continue, aborting.
-EOM
-            exit 1
-        fi
-        case "$xxOsRevMajor" in
-        10)
-            # Under 10.X, a threaded perl can be built, but it needs
-            # libcma and OLD_PTHREADS_API.  Also <pthread.h> needs to
-            # be #included before any other includes (in perl.h)
-            if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
-                cat <<EOM >&4
-In HP-UX 10.X for POSIX threads you need both of the files
-/usr/include/pthread.h and /usr/lib/libcma.sl.
-Either you must install the CMA package or you must upgrade to HP-UX 11.
-Cannot continue, aborting.
-EOM
-     	        exit 1
-            fi
-
-            # HP-UX 10.X uses the old pthreads API
-            case "$d_oldpthreads" in
-            '') d_oldpthreads="$define" ;;
-            esac
-
-            # include libcma before all the others
-            libswanted="cma $libswanted"
-
-            # tell perl.h to include <pthread.h> before other include files
-            ccflags="$ccflags -DPTHREAD_H_FIRST"
-
-            # CMA redefines select to cma_select, and cma_select expects int *
-            # instead of fd_set * (just like 9.X)
-            selecttype='int *'
-            ;;
-        11 | 12) # 12 may want upping the _POSIX_C_SOURCE
-            ccflags="$ccflags -D_POSIX_C_SOURCE=199506L"
-            libswanted="$libswanted pthread"
-	    ;;
-        esac
-	;;
-    irix)
-        if test ! -f ${TOOLROOT}/usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
-            case "`uname -r`" in
-            [1-5].*|6.[01]|6.[01])
- 	        cat >&4 <<EOM
-IRIX `uname -r` does not support POSIX threads.
-You should upgrade to at least IRIX 6.2 with pthread patches.
-EOM
-	        ;;
-	    6.2)
- 	        cat >&4 <<EOM
-IRIX 6.2 can have the POSIX threads.
-However,the following IRIX patches (or their replacements) MUST be installed:
-        1404 Irix 6.2 Posix 1003.1b man pages
-        1645 IRIX 6.2 & 6.3 POSIX header file updates
-        2000 Irix 6.2 Posix 1003.1b support modules
-        2254 Pthread library fixes
-	2401 6.2 all platform kernel rollup
-IMPORTANT:
-	Without patch 2401, a kernel bug in IRIX 6.2 will
-	cause your machine to panic and crash when running
-	threaded perl. IRIX 6.3 and up should be OK.
-EOM
-	        ;;
-  	    [67].*)
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a threading perl is to be built,
+: we may need to set or change some other defaults.
+	if $test -f usethreads.cbu; then
+		. ./usethreads.cbu
+	fi
+	case "$osname" in
+	aix|dec_osf|dos_djgpp|freebsd|hpux|irix|linux|os2|solaris|vmesa)
+		# Known thread-capable platforms.
+		;;
+	*)
 	        cat >&4 <<EOM
-IRIX `uname -r` should have the POSIX threads.
-But, somehow, you do not seem to have them installed.
-EOM
-	        ;;
-	    esac
-            cat >&4 <<EOM
-Cannot continue, aborting.
-EOM
-            exit 1
-        fi
-        set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
-        ld="${cc:-cc}"
-        shift
-        libswanted="$*"
-
-        usemymalloc='n'
-	;;
-    linux)
-        ccflags="-D_REENTRANT $ccflags"
-
-        set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
-        shift
-        libswanted="$*"
-	;;
-    os2)
-	ccflags="-Zmt $ccflags"
-        cppflags="-Zmt $cppflags"  # Do we really need to set this?
-        aout_ccflags="-DUSE_THREADS $aout_ccflags"
-        aout_cppflags="-DUSE_THREADS $aout_cppflags"
-        aout_lddlflags="-Zmt $aout_lddlflags"
-        aout_ldflags="-Zmt $aout_ldflags"
-	;;
-    solaris)
-        ccflags="-D_REENTRANT $ccflags"
-
-        # sched_yield is in -lposix4
-        set `echo X "$libswanted "| sed -e 's/ c / posix4 pthread c /'`
-        shift
-        libswanted="$*"
-
-        # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
-        # when linked with the threads library, such that whatever positive
-        # value you pass to siglongjmp(), sigsetjmp() returns 1.
-        # Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report.
-        # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by
-        # siglongjmp in a MT program". As of 19980622, there is no patch
-        # available.
-        cat >try.c <<'EOM'
-	/* Test for sig(set|long)jmp bug. */
-	#include <setjmp.h>
-	 
-	main()
-	{
-	    sigjmp_buf env;
-	    int ret;
-	
-	    ret = sigsetjmp(env, 1);
-	    if (ret) { return ret == 2; }
-	    siglongjmp(env, 2);
-	}
-EOM
-        if test "`arch`" = i86pc -a "$osvers" = 2.6 && \
-           ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then
- 	    d_sigsetjmp=$undef
-	    cat << 'EOM' >&2
-
-You will see a *** WHOA THERE!!! ***  message from Configure for
-d_sigsetjmp.  Keep the recommended value.  See hints/solaris_2.sh
-for more information.
-
-EOM
-        fi
-	;;
-    vmesa)
-	;;
-    *)
-        cat >&4 <<EOM
 $osname is not known to support threads.
 Please let me (jhi@iki.fi) know how to do that.
 
 Cannot continue, aborting.
 EOM
-	exit 1
+		exit 1
 	;;
-    esac # $osname
+    	esac # $osname
     ;;
 esac # $usethreads
+
 cat <<EOM
 
 Perl can be built so that multiple Perl interpreters can coexist
@@ -2783,97 +2565,35 @@ esac
 set use64bits
 eval $setvar
 
-archname64=''
+case "$archname64" in
+'') archname64='' ;;	# not a typo
+esac
 
 case "$use64bits" in
-"$define")
+"$define"|true|[yY]*)
+: Look for a hint-file generated 'call-back-unit'.  If the
+: user has specified that a threading perl is to be built,
+: we may need to set or change some other defaults.
+	if $test -f use64bits.cbu; then
+		. ./use64bits.cbu
+	fi
 	case "$osname" in
-	dec_osf)
-	    # Pretty much everything is 64-bit already.
-	    ;;
-	hpux)
-	    if [ "$xxOsRevMajor" -lt 11 ]; then
-		cat <<EOM >&4
-64-bit compilation is not supported on HP-UX $xxOsRevMajor.
-You need at least HP-UX 11.0.
-Cannot continue, aborting.
-EOM
-		exit 1
-	    fi
-	    if [ ! -d /lib/pa20_64 ]; then
-		cat <<EOM >&4
-You do not seem to have the 64-bit libraries, /lib/pa20_64.
-Cannot continue, aborting.
-EOM
-		exit 1
-	    fi
-	    ccflags="$ccflags +DD64 -D_FILE_OFFSET_BITS=64"
-	    ldflags="$ldflags +DD64"
-	    ld=/usr/bin/ld
-	    set `echo " $libswanted " | sed -e 's@ dl @ @'`
-	    libswanted="$*"
-	    glibpth="/lib/pa20_64"
-	    ;;
-	irix)
-	    case "`uname -r`" in
-	    [1-5]*|6.[01])
-		cat >&4 <<EOM
-IRIX `uname -r` does not support 64-bit types.
-You should upgrade to at least IRIX 6.2.
-Cannot continue, aborting.
-EOM
-		exit 1
-		;;
-	    esac
-	    case "$ccflags" in
-	    *-n32*)
-		ccflags="$ccflags -DUSE_LONG_LONG"
-		archname64="-n32"
-		d_open64="$undef"
-		# In -n32 mode (ILP32LL64) we use the standard open().
-		# In -64 we will use the open64().
-		cat << 'EOM' >&2
-
-You will see a *** WHOA THERE!!! ***  message from Configure for
-d_open64.  Keep the recommended value.  See hints/irix6.sh
-for more information.
-
-EOM
-		;;
-	    esac
-	    ccflags="$ccflags -DUSE_64_BIT_FILES"
-	    ;;
-	solaris)
-	    case "`uname -r`" in
-	    1.*|2.[1-5])
-		cat >&4 <<EOM
-Solaris `uname -r` does not support 64-bit interfaces.
-You should upgrade to at least Solaris 2.6.
-EOM
-		exit 1
+	dec_osf|hpux|irix|solaris|unicos)
+		# Known 64-bit capable platforms.
 		;;
-	    esac
-	    ccflags="$ccflags `getconf LFS_CFLAGS` -DUSE_LONG_LONG"
-	    ldflags="$ldflags `getconf LFS_LDFLAGS`"
-	    libswanted="$libswanted `getconf LFS_LIBS`"
-	    # When a 64-bit cc becomes available $archname64
-	    # may need setting so that $archname gets it attached.
-	    ;;
-	unicos)
-	    # Pretty much everything is 64-bit already.
-	    ;;
 	*)
-	    cat >&4 <<EOM
+		cat >&4 <<EOM
 $osname is not known to support 64-bit interfaces.
 Please let me (jhi@iki.fi) know how to do that.
 
 Cannot continue, aborting.
 EOM
-	    exit 1
-	    ;;
+		exit 1
+		;;
 	esac
 	;;
 esac
+
 : determine the architecture name
 echo " "
 if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then
@@ -4797,6 +4517,33 @@ else
 	installbin="$binexp"
 fi
 
+: determine whether to install perl also as /usr/bin/perl
+
+echo " "
+case "$installusrbinperl" in
+'') 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.
+I can install the perl you are about to compile also as /usr/bin/perl
+(in addition to $installbin/perl).
+EOM
+	dflt='y'
+	rp="Do you want to install perl as /usr/bin/perl?"
+	. ./myread
+	case "$ans" in
+	[yY]*)	val="$define";;
+	*)	val="$undef";;
+	esac
+    fi
+    ;;
+esac
+case "$installusrbinperl" in
+"$undef"|[nN]*)	val="$undef";;
+*)		val="$define";;
+esac
+set installusrbinperl
+eval $setvar
+
 : define a shorthand compile call
 compile='
 mc_file=$1;
@@ -8230,6 +7977,33 @@ eval $inlibc
 set fsetpos d_fsetpos
 eval $inlibc
 
+: see if this is a sys/mount.h system
+set sys/mount.h i_sysmount
+eval $inhdr
+
+
+: see if statfs exists
+set statfs d_statfs
+eval $inlibc
+
+: see if fstatfs exists
+set fstatfs d_fstatfs
+eval $inlibc
+
+: see if statfs knows about mount flags
+set d_statfsflags statfs f_flags $i_sysmount sys/mount.h
+eval $hasfield
+
+
+: see if statvfs exists
+set statvfs d_statvfs
+eval $inlibc
+
+: see if fstatvfs exists
+set fstatvfs d_fstatvfs
+eval $inlibc
+
+
 : see if ftello exists
 set ftello d_ftello
 eval $inlibc
@@ -12303,6 +12077,10 @@ eval $inhdr
 set sys/security.h i_syssecrt
 eval $inhdr
 
+: see if this is a sys/statvfs.h system
+set sys/statvfs.h i_sysstatvfs
+eval $inhdr
+
 : see if this is a sys/un.h system
 set sys/un.h i_sysun
 eval $inhdr
@@ -12777,6 +12555,8 @@ d_fseeko='$d_fseeko'
 d_fsetpos64='$d_fsetpos64'
 d_fsetpos='$d_fsetpos'
 d_fstat64='$d_fstat64'
+d_fstatfs='$d_fstatfs'
+d_fstatvfs='$d_fstatvfs'
 d_ftell64='$d_ftell64'
 d_ftello64='$d_ftello64'
 d_ftello='$d_ftello'
@@ -12934,6 +12714,9 @@ d_socket='$d_socket'
 d_sockpair='$d_sockpair'
 d_stat64='$d_stat64'
 d_statblks='$d_statblks'
+d_statfs='$d_statfs'
+d_statfsflags='$d_statfsflags'
+d_statvfs='$d_statvfs'
 d_stdio_cnt_lval='$d_stdio_cnt_lval'
 d_stdio_ptr_lval='$d_stdio_ptr_lval'
 d_stdiobase='$d_stdiobase'
@@ -13055,6 +12838,7 @@ i_sysfile='$i_sysfile'
 i_sysfilio='$i_sysfilio'
 i_sysin='$i_sysin'
 i_sysioctl='$i_sysioctl'
+i_sysmount='$i_sysmount'
 i_sysndir='$i_sysndir'
 i_sysparam='$i_sysparam'
 i_sysresrc='$i_sysresrc'
@@ -13062,6 +12846,7 @@ i_syssecrt='$i_syssecrt'
 i_sysselct='$i_sysselct'
 i_syssockio='$i_syssockio'
 i_sysstat='$i_sysstat'
+i_sysstatvfs='$i_sysstatvfs'
 i_systime='$i_systime'
 i_systimek='$i_systimek'
 i_systimes='$i_systimes'
@@ -13089,6 +12874,7 @@ installprivlib='$installprivlib'
 installscript='$installscript'
 installsitearch='$installsitearch'
 installsitelib='$installsitelib'
+installusrbinperl='$installusrbinperl'
 intsize='$intsize'
 known_extensions='$known_extensions'
 ksh='$ksh'
diff --git a/config_h.SH b/config_h.SH
index d286068..dc17cf6 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -2051,6 +2051,26 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_sfio	USE_SFIO		/**/
 
+/* HAS_FSTATFS:
+ *	This symbol, if defined, indicates that the fstatfs routine is
+ *	available to do stat filesystems of file descriptors.
+ */
+/* HAS_STRUCT_STATFS_FLAGS:
+ *	This symbol, if defined, indicates that the struct statfs
+ *	does have the f_flags member containing the mount flags of
+ *	the filesystem holding the file.
+ *	This kind of struct statfs is coming from sys/mount.h (BSD)
+ *	and not from sys/statfs.h (SYSV).
+ */
+#$d_fstatfs HAS_FSTATFS		/**/
+#$d_statfsflags HAS_STRUCT_STATFS_FLAGS		/**/
+
+/* HAS_FSTATVFS:
+ *	This symbol, if defined, indicates that the fstatvfs routine is
+ *	available to do stat filesystems of file descriptors.
+ */
+#$d_fstatvfs HAS_FSTATVFS		/**/
+
 /* HAS_WRITEV:
  *	This symbol, if defined, indicates that the writev routine is
  *	available to do scatter writes.
@@ -2130,6 +2150,24 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_poll	I_POLL		/**/
 
+/* I_SYS_MOUNT:
+ *	This symbol, if defined, indicates that <sys/mount.h> exists and
+ *	should be included.
+ */
+#$i_sysmount	I_SYS_MOUNT		/**/
+
+/* I_SYS_STATVFS:
+ *	This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ *	should be included.
+ */
+#$i_sysstatvfs	I_SYS_STATVFS		/**/
+
+/* INSTALL_USR_BIN_PERL:
+ *	This symbol, if defined, indicates that Perl is to be installed
+ * 	also as /usr/bin/perl.
+ */
+#$installusrbinperl INSTALL_USR_BIN_PERL	/**/
+
 /* HAS_FSTAT64:
  *	This symbol, if defined, indicates that the fstat64 routine is
  *	available to stat files (fds) larger than 2 gigabytes.
@@ -2308,6 +2346,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$use64bits	USE_64_BITS		/**/
 
+/* MULTIPLICITY:
+ *	This symbol, if defined, indicates that Perl should
+ *	be built to use multiplicity.
+ */
+#$usemultiplicity	MULTIPLICITY		/**/
+
 /* USE_PERLIO:
  *	This symbol, if defined, indicates that the PerlIO abstraction should
  *	be used throughout.  If not defined, stdio should be
@@ -2397,7 +2441,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *	in joinable (aka undetached) state.  NOTE: not defined
  *	if pthread.h already has defined PTHREAD_CREATE_JOINABLE
  *	(the new version of the constant).
- *	If defined, possible values are PTHREAD_CREATE_UNDETACHED
+ *	If defined, known values are PTHREAD_CREATE_UNDETACHED
  *	and __UNDETACHED.
  */
 #$d_old_pthread_create_joinable OLD_PTHREAD_CREATE_JOINABLE $old_pthread_create_joinable /**/
@@ -2427,12 +2471,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_machcthr   I_MACH_CTHREADS	/**/
 
-/* MULTIPLICITY:
- *	This symbol, if defined, indicates that Perl should
- *	be built to use multiplicity.
- */
-#$usemultiplicity	MULTIPLICITY		/**/
-
 /* USE_THREADS:
  *	This symbol, if defined, indicates that Perl should
  *	be built to use threads.
diff --git a/hints/aix.sh b/hints/aix.sh
index bbcc522..727cf93 100644
--- a/hints/aix.sh
+++ b/hints/aix.sh
@@ -74,3 +74,41 @@ case "$osvers" in
     ;;
 esac
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+        ccflags="$ccflags -DNEED_PTHREAD_INIT"
+        case "$cc" in
+        xlc_r | cc_r) ;;
+        cc) 
+	    echo >&4 "Switching cc to xlc_r because of POSIX threads."
+	    cc=xlc_r
+            ;;
+        '') 
+	    cc=xlc_r
+            ;;
+        *)
+ 	    cat >&4 <<EOM
+For pthreads you should use the AIX C compilers xlc_r or cc_r.
+(now your compiler was '$cc')
+Cannot continue, aborting.
+EOM
+ 	    exit 1
+	    ;;
+        esac
+
+        # Add the POSIX threads library and the re-entrant libc.
+
+        lddlflags=`echo $lddlflags | sed 's/ -lc$/ -lpthreads -lc_r -lc/'`
+
+        # Add the c_r library to the list of wanted libraries.
+        # Make sure the c_r library is before the c library or
+        # make will fail.
+        set `echo X "$libswanted "| sed -e 's/ c / c_r c /'`
+        shift
+        libswanted="$*"
+	;;
+esac
+EOCBU
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index b2a7300..686ae2c 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -191,6 +191,28 @@ esac
 
 pp_sys_cflags='ccflags="$ccflags -DNO_EFF_ONLY_OK"'
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+        # Threads interfaces changed with V4.0.
+        case "`uname -r`" in
+        *[123].*)
+	    libswanted="$libswanted pthreads mach exc c_r"
+  	    ccflags="-threads $ccflags"
+	    ;;
+        *)
+	    libswanted="$libswanted pthread exc"
+    	    ccflags="-pthread $ccflags"
+	    ;;
+        esac
+
+        usemymalloc='n'
+	;;
+esac
+EOCBU
+
 #
 # Unset temporary variables no more needed.
 #
@@ -326,3 +348,5 @@ unset _DEC_cc_style
 #	* Set -Olimit to 3200 because perl_yylex.c got too big
 #	  for the optimizer.
 #
+
+
diff --git a/hints/dos_djgpp.sh b/hints/dos_djgpp.sh
index 94c09d0..db09cbc 100644
--- a/hints/dos_djgpp.sh
+++ b/hints/dos_djgpp.sh
@@ -52,3 +52,15 @@ sitearch=$sitelib
 eagain='EAGAIN'
 rd_nodata='-1'
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+        set `echo X "$libswanted "| sed -e 's/ c / gthreads c /'`
+        shift
+        libswanted="$*"
+	;;
+esac
+EOCBU
+
diff --git a/hints/freebsd.sh b/hints/freebsd.sh
index d638462..96df283 100644
--- a/hints/freebsd.sh
+++ b/hints/freebsd.sh
@@ -139,4 +139,39 @@ EOM
 signal_t='void'
 d_voidsig='define'
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+        case "$osvers" in  
+        [34].*) ldflags="-pthread $ldflags"
+              ;;
+        2.2*) if [ ! -r /usr/lib/libc_r ]; then
+              cat <<'EOM' >&4
+POSIX threads are not supported by default on FreeBSD $osvers.  Follow the
+instructions in 'man pthread' to build and install the needed libraries.
+EOM
+                 exit 1
+              fi
+              set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
+              shift
+              libswanted="$*"
+              # Configure will probably pick the wrong libc to use for nm
+              # scan.
+              # The safest quick-fix is just to not use nm at all.
+              usenm=false
+              ;;
+         *)   cat <<'EOM' >&4
+
+It is not known if FreeBSD $osvers supports POSIX threads or not.
+Consider upgrading to the latest STABLE release.
+
+EOM
+              exit 1
+              ;;
+        esac
+	;;
+esac
+EOCBU
 
diff --git a/hints/hpux.sh b/hints/hpux.sh
index ceef5a3..70250b7 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -193,3 +193,84 @@ esac
 #     assembler of the form:
 #          (warning) Use of GR3 when frame >= 8192 may cause conflict.
 #     These warnings are harmless and can be safely ignored.
+
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+        if [ "$xxOsRevMajor" -lt 10 ]; then
+            cat <<EOM >&4
+HP-UX $xxOsRevMajor cannot support POSIX threads.
+Consider upgrading to at least HP-UX 11.
+Cannot continue, aborting.
+EOM
+            exit 1
+        fi
+        case "$xxOsRevMajor" in
+        10)
+            # Under 10.X, a threaded perl can be built, but it needs
+            # libcma and OLD_PTHREADS_API.  Also <pthread.h> needs to
+            # be #included before any other includes (in perl.h)
+            if [ ! -f /usr/include/pthread.h -o ! -f /usr/lib/libcma.sl ]; then
+                cat <<EOM >&4
+In HP-UX 10.X for POSIX threads you need both of the files
+/usr/include/pthread.h and /usr/lib/libcma.sl.
+Either you must install the CMA package or you must upgrade to HP-UX 11.
+Cannot continue, aborting.
+EOM
+     	        exit 1
+            fi
+
+            # HP-UX 10.X uses the old pthreads API
+            case "$d_oldpthreads" in
+            '') d_oldpthreads="$define" ;;
+            esac
+
+            # include libcma before all the others
+            libswanted="cma $libswanted"
+
+            # tell perl.h to include <pthread.h> before other include files
+            ccflags="$ccflags -DPTHREAD_H_FIRST"
+
+            # CMA redefines select to cma_select, and cma_select expects int *
+            # instead of fd_set * (just like 9.X)
+            selecttype='int *'
+            ;;
+        11 | 12) # 12 may want upping the _POSIX_C_SOURCE
+            ccflags="$ccflags -D_POSIX_C_SOURCE=199506L"
+            libswanted="$libswanted pthread"
+	    ;;
+        esac
+	;;
+esac
+EOCBU
+
+# This script UU/use64bits.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use 64 bits.
+cat > UU/use64bits.cbu <<'EOCBU'
+case "$use64bits" in
+$define|true|[yY]*)
+	    if [ "$xxOsRevMajor" -lt 11 ]; then
+		cat <<EOM >&4
+64-bit compilation is not supported on HP-UX $xxOsRevMajor.
+You need at least HP-UX 11.0.
+Cannot continue, aborting.
+EOM
+		exit 1
+	    fi
+	    if [ ! -d /lib/pa20_64 ]; then
+		cat <<EOM >&4
+You do not seem to have the 64-bit libraries, /lib/pa20_64.
+Cannot continue, aborting.
+EOM
+		exit 1
+	    fi
+	    ccflags="$ccflags +DD64 -D_FILE_OFFSET_BITS=64"
+	    ldflags="$ldflags +DD64"
+	    ld=/usr/bin/ld
+	    set `echo " $libswanted " | sed -e 's@ dl @ @'`
+	    libswanted="$*"
+	    glibpth="/lib/pa20_64"
+esac
+EOCBU
diff --git a/hints/irix_4.sh b/hints/irix_4.sh
index f5883f3..1e90f98 100644
--- a/hints/irix_4.sh
+++ b/hints/irix_4.sh
@@ -22,3 +22,24 @@ If you have problems, you might have try including
 	-DSTANDARD_C -cckr 
 in ccflags.
 EOM
+
+case "$usethreads" in
+$define|true|[yY]*)
+        cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+	exit 1
+	;;
+esac
+
+case "$use64bits" in
+$define|true|[yY]*)
+	cat >&4 <<EOM
+IRIX `uname -r` does not support 64-bit types.
+You should upgrade to at least IRIX 6.2.
+Cannot continue, aborting.
+EOM
+	exit 1
+esac
+
diff --git a/hints/irix_5.sh b/hints/irix_5.sh
index 9d6e802..30f11d7 100644
--- a/hints/irix_5.sh
+++ b/hints/irix_5.sh
@@ -32,3 +32,24 @@ libswanted="$*"
 # patchSG0000596.  The patch can be downloaded from Advantage OnLine (SGI's
 # WWW server) or from the Support Advantage 9/95 Patch CDROM.  Thanks to Tom 
 # Christiansen and others who provided assistance.
+
+case "$usethreads" in
+$define|true|[yY]*)
+        cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+	exit 1
+	;;
+esac
+
+case "$use64bits" in
+$define|true|[yY]*)
+	cat >&4 <<EOM
+IRIX `uname -r` does not support 64-bit types.
+You should upgrade to at least IRIX 6.2.
+Cannot continue, aborting.
+EOM
+	exit 1
+esac
+
diff --git a/hints/irix_6.sh b/hints/irix_6.sh
index 8f4dbd6..e6ad096 100644
--- a/hints/irix_6.sh
+++ b/hints/irix_6.sh
@@ -161,3 +161,89 @@ set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /'
 shift
 libswanted="$*"
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+        if test ! -f ${TOOLROOT}/usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
+            case "`uname -r`" in
+            [1-5].*|6.[01])
+ 	        cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+	        ;;
+	    6.2)
+ 	        cat >&4 <<EOM
+IRIX 6.2 can have the POSIX threads.
+However,the following IRIX patches (or their replacements) MUST be installed:
+        1404 Irix 6.2 Posix 1003.1b man pages
+        1645 IRIX 6.2 & 6.3 POSIX header file updates
+        2000 Irix 6.2 Posix 1003.1b support modules
+        2254 Pthread library fixes
+	2401 6.2 all platform kernel rollup
+IMPORTANT:
+	Without patch 2401, a kernel bug in IRIX 6.2 will
+	cause your machine to panic and crash when running
+	threaded perl. IRIX 6.3 and up should be OK.
+EOM
+	        ;;
+  	    [67].*)
+	        cat >&4 <<EOM
+IRIX `uname -r` should have the POSIX threads.
+But, somehow, you do not seem to have them installed.
+EOM
+	        ;;
+	    esac
+            cat >&4 <<EOM
+Cannot continue, aborting.
+EOM
+            exit 1
+        fi
+        set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
+        ld="${cc:-cc}"
+        shift
+        libswanted="$*"
+
+        usemymalloc='n'
+	;;
+esac
+EOCBU
+
+# This script UU/use64bits.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use 64 bits.
+cat > UU/use64bits.cbu <<'EOCBU'
+case "$use64bits" in
+$define|true|[yY]*)
+esac
+	    case "`uname -r`" in
+	    [1-5]*|6.[01])
+		cat >&4 <<EOM
+IRIX `uname -r` does not support 64-bit types.
+You should upgrade to at least IRIX 6.2.
+Cannot continue, aborting.
+EOM
+		exit 1
+		;;
+	    esac
+	    case "$ccflags" in
+	    *-n32*)
+		ccflags="$ccflags -DUSE_LONG_LONG"
+		archname64="-n32"
+		d_open64="$undef"
+		# In -n32 mode (ILP32LL64) we use the standard open().
+		# In -64 we will use the open64().
+		cat << 'EOM' >&2
+
+You will see a *** WHOA THERE!!! ***  message from Configure for
+d_open64.  Keep the recommended value.  See hints/irix6.sh
+for more information.
+
+EOM
+		;;
+	    esac
+	    ccflags="$ccflags -DUSE_64_BIT_FILES"
+	    ;;
+esac
+EOCBU
diff --git a/hints/irix_6_0.sh b/hints/irix_6_0.sh
index 38fe27d..b34b3ec 100644
--- a/hints/irix_6_0.sh
+++ b/hints/irix_6_0.sh
@@ -41,3 +41,24 @@ libswanted="$*"
 # set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ sun / /' -e 's/ crypt / /' -e 's/ nsl / /' -e 's/ dl / /'`
 # shift
 # libswanted="$*"
+
+case "$usethreads" in
+$define|true|[yY]*)
+        cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+	exit 1
+	;;
+esac
+
+case "$use64bits" in
+$define|true|[yY]*)
+	cat >&4 <<EOM
+IRIX `uname -r` does not support 64-bit types.
+You should upgrade to at least IRIX 6.2.
+Cannot continue, aborting.
+EOM
+	exit 1
+esac
+
diff --git a/hints/irix_6_1.sh b/hints/irix_6_1.sh
index 38fe27d..3359639 100644
--- a/hints/irix_6_1.sh
+++ b/hints/irix_6_1.sh
@@ -41,3 +41,23 @@ libswanted="$*"
 # set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ sun / /' -e 's/ crypt / /' -e 's/ nsl / /' -e 's/ dl / /'`
 # shift
 # libswanted="$*"
+
+case "$usethreads" in
+$define|true|[yY]*)
+        cat >&4 <<EOM
+IRIX `uname -r` does not support POSIX threads.
+You should upgrade to at least IRIX 6.2 with pthread patches.
+EOM
+	exit 1
+	;;
+esac
+
+case "$use64bits" in
+$define|true|[yY]*)
+	cat >&4 <<EOM
+IRIX `uname -r` does not support 64-bit types.
+You should upgrade to at least IRIX 6.2.
+Cannot continue, aborting.
+EOM
+	exit 1
+esac
diff --git a/hints/linux.sh b/hints/linux.sh
index 9b69e9b..a49e004 100644
--- a/hints/linux.sh
+++ b/hints/linux.sh
@@ -216,3 +216,15 @@ fi
 # it should be:
 # ccdlflags='-Wl,-E'
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+        ccflags="-D_REENTRANT $ccflags"
+        set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
+        shift
+        libswanted="$*"
+	;;
+esac
+EOCBU
diff --git a/hints/os2.sh b/hints/os2.sh
index 0560175..1744fa9 100644
--- a/hints/os2.sh
+++ b/hints/os2.sh
@@ -289,6 +289,20 @@ for xxx in * ; do
 	fi
 done
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+esac
+	ccflags="-Zmt $ccflags"
+        cppflags="-Zmt $cppflags"  # Do we really need to set this?
+        aout_ccflags="-DUSE_THREADS $aout_ccflags"
+        aout_cppflags="-DUSE_THREADS $aout_cppflags"
+        aout_lddlflags="-Zmt $aout_lddlflags"
+        aout_ldflags="-Zmt $aout_ldflags"
+	;;
+EOCBU
 
 # Now go back
 cd ../..
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index e518540..98230dd 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -261,6 +261,77 @@ rm -f core
 # XXX
 EOSH
 
+# This script UU/usethreads.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+esac
+        ccflags="-D_REENTRANT $ccflags"
+
+        # sched_yield is in -lposix4
+        set `echo X "$libswanted "| sed -e 's/ c / posix4 pthread c /'`
+        shift
+        libswanted="$*"
+
+        # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
+        # when linked with the threads library, such that whatever positive
+        # value you pass to siglongjmp(), sigsetjmp() returns 1.
+        # Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report.
+        # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by
+        # siglongjmp in a MT program". As of 19980622, there is no patch
+        # available.
+        cat >try.c <<'EOM'
+	/* Test for sig(set|long)jmp bug. */
+	#include <setjmp.h>
+	 
+	main()
+	{
+	    sigjmp_buf env;
+	    int ret;
+	
+	    ret = sigsetjmp(env, 1);
+	    if (ret) { return ret == 2; }
+	    siglongjmp(env, 2);
+	}
+EOM
+        if test "`arch`" = i86pc -a "$osvers" = 2.6 && \
+           ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then
+ 	    d_sigsetjmp=$undef
+	    cat << 'EOM' >&2
+
+You will see a *** WHOA THERE!!! ***  message from Configure for
+d_sigsetjmp.  Keep the recommended value.  See hints/solaris_2.sh
+for more information.
+
+EOM
+        fi
+	;;
+EOCBU
+
+# This script UU/use64bits.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use 64 bits.
+cat > UU/use64bits.cbu <<'EOCBU'
+case "$use64bits" in
+$define|true|[yY]*)
+	    case "`uname -r`" in
+	    2.[1-5])
+		cat >&4 <<EOM
+Solaris `uname -r` does not support 64-bit interfaces.
+You should upgrade to at least Solaris 2.6.
+EOM
+		exit 1
+		;;
+	    esac
+	    ccflags="$ccflags `getconf LFS_CFLAGS` -DUSE_LONG_LONG"
+	    ldflags="$ldflags `getconf LFS_LDFLAGS`"
+	    libswanted="$libswanted `getconf LFS_LIBS`"
+	    # When a 64-bit cc becomes available $archname64
+	    # may need setting so that $archname gets it attached.
+	    ;;
+esac
+EOCBU
+
 # This is just a trick to include some useful notes.
 cat > /dev/null <<'End_of_Solaris_Notes'
 
diff --git a/perl.c b/perl.c
index 95cb0d0..8a4fedf 100644
--- a/perl.c
+++ b/perl.c
@@ -64,6 +64,9 @@ static void my_exit_jump _((void)) __attribute__((noreturn));
 static void nuke_stacks _((void));
 static void open_script _((char *, bool, SV *, int *fd));
 static void usage _((char *));
+#ifdef IAMSUID
+static int  fd_on_nosuid_fs _((int));
+#endif
 static void validate_suid _((char *, char*, int));
 static I32 read_e_script _((int idx, SV *buf_sv, int maxlen));
 #endif
@@ -2110,6 +2113,70 @@ sed %s -e \"/^[^#]/b\" \
     }
 }
 
+#ifdef IAMSUID
+static int
+fd_on_nosuid_fs(int fd)
+{
+    int on_nosuid  = 0;
+    int check_okay = 0;
+/*
+ * Preferred order: fstatvfs(), fstatfs(), getmntent().
+ * fstatvfs() is UNIX98.
+ * fstatfs() is BSD.
+ * getmntent() is O(number-of-mounted-filesystems) and can hang.
+ */
+
+#   ifdef HAS_FSTATVFS
+    struct statvfs stfs;
+    check_okay = fstatvfs(fd, &stfs) == 0;
+    on_nosuid  = check_okay && (stfs.f_flag  & ST_NOSUID);
+#   else
+#       if defined(HAS_FSTATFS) && defined(HAS_STRUCT_STATFS_FLAGS)
+    struct statfs  stfs;
+    check_okay = fstatfs(fd, &stfs)  == 0;
+#           undef PERL_MOUNT_NOSUID
+#           if !defined(PERL_MOUNT_NOSUID) && defined(MNT_NOSUID)
+#              define PERL_MOUNT_NOSUID MNT_NOSUID
+#           endif
+#           if !defined(PERL_MOUNT_NOSUID) && defined(MS_NOSUID)
+#              define PERL_MOUNT_NOSUID MS_NOSUID
+#           endif
+#           if !defined(PERL_MOUNT_NOSUID) && defined(M_NOSUID)
+#              define PERL_MOUNT_NOSUID M_NOSUID
+#           endif
+#           ifdef PERL_MOUNT_NOSUID
+    on_nosuid  = check_okay && (stfs.f_flags & PERL_MOUNT_NOSUID);
+#           endif
+#       else
+#           if defined(HAS_GETMNENT) && defined(HAS_HASMNTOPT) && defined(MNTOPT_NOSUID)
+    FILE		*mtab = fopen("/etc/mtab", "r");
+    struct mntent	*entry;
+    struct stat		stb, fsb;
+
+    if (mtab && (fstat(fd, &stb) == 0)) {
+	while (entry = getmntent(mtab)) {
+	    if (stat(entry->mnt_dir, &fsb) == 0
+		&& fsb.st_dev == stb.st_dev)
+	    {
+		/* found the filesystem */
+		check_okay = 1;
+		if (hasmntopt(entry, MNTOPT_NOSUID))
+		    on_nosuid = 1;
+		break;
+	    } /* A single fs may well fail its stat(). */
+	}
+    }
+    if (mtab)
+	fclose(mtab);
+#           endif /* mntent */
+#       endif /* statfs */
+#   endif /* statvfs */
+    if (!check_okay) 
+	croak("Can't check filesystem of script \"%s\"", PL_origfilename);
+    return on_nosuid;
+}
+#endif /* IAMSUID */
+
 STATIC void
 validate_suid(char *validarg, char *scriptname, int fdscript)
 {
@@ -2178,6 +2245,10 @@ validate_suid(char *validarg, char *scriptname, int fdscript)
 		croak("Can't swap uid and euid");	/* really paranoid */
 	    if (PerlLIO_stat(SvPVX(GvSV(PL_curcop->cop_filegv)),&tmpstatbuf) < 0)
 		croak("Permission denied");	/* testing full pathname here */
+#ifdef IAMSUID
+	    if (fd_on_nosuid_fs(PerlIO_fileno(PL_rsfp)))
+		croak("Permission denied");
+#endif
 	    if (tmpstatbuf.st_dev != PL_statbuf.st_dev ||
 		tmpstatbuf.st_ino != PL_statbuf.st_ino) {
 		(void)PerlIO_close(PL_rsfp);
diff --git a/perl.h b/perl.h
index 1546bcd..9dd71e5 100644
--- a/perl.h
+++ b/perl.h
@@ -2778,4 +2778,22 @@ typedef struct am_table_short AMTS;
 #   endif
 #endif
 
+/* Mention INSTALL_USR_BIN_PERL here so that Configure picks it up. */
+
+#ifdef IAMSUID
+
+#ifdef I_SYS_STATVFS
+#   include <sys/statvfs.h>
+#else
+#   ifdef I_SYS_MOUNT
+#       include <sys/mount.h>
+#   else
+#       ifdef I_MNTENT
+#           include <mntent.h>
+#       endif
+#   endif
+#endif
+
+#endif /* IAMSUID */
+
 #endif /* Include guard */
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 211262c..fc36274 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -517,6 +517,10 @@ Something like this will reproduce the error:
 (F) You called C<perl -x/foo/bar>, but C</foo/bar> is not a directory
 that you can chdir to, possibly because it doesn't exist.
 
+=item Can't check filesystem of script "%s"
+
+(P) For some reason you can't check the filesystem of the script for nosuid.
+
 =item Can't coerce %s to integer in %s
 
 (F) Certain types of SVs, in particular real symbol table entries