Configure update.
Jarkko Hietaniemi [Sun, 7 Feb 1999 23:49:46 +0000 (23:49 +0000)]
Probe for mmap() et alia.
The *cc*symbols patch (just Configure, no h2ph).

p4raw-id: //depot/cfgperl@2829

Configure
Porting/config.sh
Porting/config_H
config_h.SH
perl.h

index 61f8125..a421b84 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 Tue Feb  2 22:42:52 EET 1999 [metaconfig 3.0 PL70]
+# Generated on Mon Feb  8 01:45:46 EET 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -153,6 +153,9 @@ esac
 test -d UU || mkdir UU
 cd UU && rm -f ./*
 
+ccsymbols=''
+cppccsymbols=''
+cppsymbols=''
 dynamic_ext=''
 extensions=''
 known_extensions=''
@@ -386,6 +389,7 @@ longdblsize=''
 d_longlong=''
 longlongsize=''
 d_lstat=''
+d_madvise=''
 d_mblen=''
 d_mbstowcs=''
 d_mbtowc=''
@@ -396,11 +400,16 @@ d_memset=''
 d_mkdir=''
 d_mkfifo=''
 d_mktime=''
+d_mmap=''
+mmaptype=''
+d_mprotect=''
 d_msg=''
 d_msgctl=''
 d_msgget=''
 d_msgrcv=''
 d_msgsnd=''
+d_msync=''
+d_munmap=''
 d_nice=''
 d_open3=''
 d_fpathconf=''
@@ -610,6 +619,7 @@ i_bsdioctl=''
 i_sysfilio=''
 i_sysioctl=''
 i_syssockio=''
+i_sysmman=''
 i_sysmount=''
 i_sysndir=''
 i_sysparam=''
@@ -8599,6 +8609,10 @@ $rm -f try.c try
 set lstat d_lstat
 eval $inlibc
 
+: see if madvise exists
+set madvise d_madvise
+eval $inlibc
+
 : see if mblen exists
 set mblen d_mblen
 eval $inlibc
@@ -8639,6 +8653,37 @@ eval $inlibc
 set mktime d_mktime
 eval $inlibc
 
+: see if this is a sys/mman.h system
+set sys/mman.h i_sysmman
+eval $inhdr
+
+: see if mmap exists
+set mmap d_mmap
+eval $inlibc
+: see what shmat returns
+: default to something harmless
+mmaptype='void *'
+case "$i_sysmman$d_mmap" in
+"$define$define")
+       $cat >mmap.c <<'END'
+#include <sys/mman.h>
+void *mmap();
+END
+       if $cc $ccflags -c mmap.c >/dev/null 2>&1; then
+               mmaptype='void *'
+       else
+               mmaptype='caddr_t'
+       fi
+       echo "and it returns ($mmaptype)." >&4
+       ;;
+esac
+
+
+
+: see if mprotect exists
+set mprotect d_mprotect
+eval $inlibc
+
 : see if msgctl exists
 set msgctl d_msgctl
 eval $inlibc
@@ -8691,6 +8736,14 @@ fi
 set d_msg
 eval $setvar
 
+: see if msync exists
+set msync d_msync
+eval $inlibc
+
+: see if munmap exists
+set munmap d_munmap
+eval $inlibc
+
 : see if nice exists
 set nice d_nice
 eval $inlibc
@@ -11871,32 +11924,37 @@ $comm -13 ccsym.true ccsym.list >ccsym.own
 $comm -12 ccsym.true ccsym.list >ccsym.com
 $comm -23 ccsym.true ccsym.list >ccsym.cpp
 also=''
-symbols='symbols'
 if $test -z ccsym.raw; then
-       echo "Your C compiler doesn't seem to define any symbol!" >&4
+       echo "Your C compiler doesn't seem to define any symbols!" >&4
        echo " "
-       echo "However, your C preprocessor defines the following ones:"
+       echo "However, your C preprocessor defines the following symbols:"
        $cat Cppsym.true
+       ccsymbols=''
+       cppsymbols=`$cat Cppsym.true`
+       cppccsymbols="$cppsymbols"
 else
        if $test -s ccsym.com; then
                echo "Your C compiler and pre-processor define these symbols:"
                $sed -e 's/\(.*\)=.*/\1/' ccsym.com
                also='also '
                symbols='ones'
+               cppccsymbols=`$cat ccsym.com`
                $test "$silent" || sleep 1
        fi
        if $test -s ccsym.cpp; then
                $test "$also" && echo " "
-               echo "Your C pre-processor ${also}defines the following $symbols:"
+               echo "Your C pre-processor ${also}defines the following symbols:"
                $sed -e 's/\(.*\)=.*/\1/' ccsym.cpp
                also='further '
+               cppsymbols=`$cat ccsym.cpp`
                $test "$silent" || sleep 1
        fi
        if $test -s ccsym.own; then
                $test "$also" && echo " "
-               echo "Your C compiler ${also}defines the following cpp variables:"
+               echo "Your C compiler ${also}defines the following cpp symbols:"
                $sed -e 's/\(.*\)=1/\1/' ccsym.own
                $sed -e 's/\(.*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true
+               ccsymbols=`$cat ccsym.own`
                $test "$silent" || sleep 1
        fi
 fi
@@ -12480,6 +12538,7 @@ cc='$cc'
 cccdlflags='$cccdlflags'
 ccdlflags='$ccdlflags'
 ccflags='$ccflags'
+ccsymbols='$ccsymbols'
 cf_by='$cf_by'
 cf_email='$cf_email'
 cf_time='$cf_time'
@@ -12494,11 +12553,13 @@ cp='$cp'
 cpio='$cpio'
 cpp='$cpp'
 cpp_stuff='$cpp_stuff'
+cppccsymbols='$cppccsymbols'
 cppflags='$cppflags'
 cpplast='$cpplast'
 cppminus='$cppminus'
 cpprun='$cpprun'
 cppstdin='$cppstdin'
+cppsymbols='$cppsymbols'
 cryptlib='$cryptlib'
 csh='$csh'
 d_Gconvert='$d_Gconvert'
@@ -12624,6 +12685,7 @@ d_longlong='$d_longlong'
 d_lseek64='$d_lseek64'
 d_lstat64='$d_lstat64'
 d_lstat='$d_lstat'
+d_madvise='$d_madvise'
 d_mblen='$d_mblen'
 d_mbstowcs='$d_mbstowcs'
 d_mbtowc='$d_mbtowc'
@@ -12634,6 +12696,8 @@ d_memset='$d_memset'
 d_mkdir='$d_mkdir'
 d_mkfifo='$d_mkfifo'
 d_mktime='$d_mktime'
+d_mmap='$d_mmap'
+d_mprotect='$d_mprotect'
 d_msg='$d_msg'
 d_msg_ctrunc='$d_msg_ctrunc'
 d_msg_dontroute='$d_msg_dontroute'
@@ -12645,6 +12709,8 @@ d_msgget='$d_msgget'
 d_msghdr_s='$d_msghdr_s'
 d_msgrcv='$d_msgrcv'
 d_msgsnd='$d_msgsnd'
+d_msync='$d_msync'
+d_munmap='$d_munmap'
 d_mymalloc='$d_mymalloc'
 d_nextkey64='$d_nextkey64'
 d_nice='$d_nice'
@@ -12855,6 +12921,7 @@ i_sysfile='$i_sysfile'
 i_sysfilio='$i_sysfilio'
 i_sysin='$i_sysin'
 i_sysioctl='$i_sysioctl'
+i_sysmman='$i_sysmman'
 i_sysmount='$i_sysmount'
 i_sysndir='$i_sysndir'
 i_sysparam='$i_sysparam'
@@ -12938,6 +13005,7 @@ medium='$medium'
 mips='$mips'
 mips_type='$mips_type'
 mkdir='$mkdir'
+mmaptype='$mmaptype'
 models='$models'
 modetype='$modetype'
 more='$more'
index 0c46171..d6a19ed 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Thu Dec  3 15:05:16 EET 1998
+# Configuration time: Mon Feb  8 01:11:15 EET 1999
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -54,7 +54,7 @@ ccdlflags=' '
 ccflags='-pthread -std -D__LANGUAGE_C__'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Thu Dec  3 15:05:16 EET 1998'
+cf_time='Mon Feb  8 01:11:15 EET 1999'
 chgrp=''
 chmod=''
 chown=''
@@ -142,6 +142,8 @@ d_fseeko='undef'
 d_fsetpos64='undef'
 d_fsetpos='define'
 d_fstat64='undef'
+d_fstatfs='define'
+d_fstatvfs='define'
 d_ftell64='undef'
 d_ftello64='undef'
 d_ftello='undef'
@@ -194,6 +196,7 @@ d_longlong='define'
 d_lseek64='undef'
 d_lstat64='undef'
 d_lstat='define'
+d_madvise='define'
 d_mblen='define'
 d_mbstowcs='define'
 d_mbtowc='define'
@@ -204,6 +207,8 @@ d_memset='define'
 d_mkdir='define'
 d_mkfifo='define'
 d_mktime='define'
+d_mmap='define'
+d_mprotect='define'
 d_msg='define'
 d_msg_ctrunc='define'
 d_msg_dontroute='define'
@@ -215,6 +220,8 @@ d_msgget='define'
 d_msghdr_s='define'
 d_msgrcv='define'
 d_msgsnd='define'
+d_msync='define'
+d_munmap='define'
 d_mymalloc='undef'
 d_nextkey64='undef'
 d_nice='define'
@@ -299,6 +306,9 @@ d_socket='define'
 d_sockpair='define'
 d_stat64='undef'
 d_statblks='define'
+d_statfs='define'
+d_statfsflags='define'
+d_statvfs='define'
 d_stdio_cnt_lval='define'
 d_stdio_ptr_lval='define'
 d_stdiobase='define'
@@ -324,6 +334,7 @@ d_tcgetpgrp='define'
 d_tcsetpgrp='define'
 d_telldir64='undef'
 d_telldir='define'
+d_telldirproto='define'
 d_time='define'
 d_times='define'
 d_tmpfile64='undef'
@@ -401,6 +412,7 @@ i_machcthr='undef'
 i_malloc='define'
 i_math='define'
 i_memory='undef'
+i_mntent='undef'
 i_ndbm='define'
 i_netdb='define'
 i_neterrno='undef'
@@ -420,6 +432,8 @@ i_sysfile='define'
 i_sysfilio='undef'
 i_sysin='undef'
 i_sysioctl='define'
+i_sysmman='define'
+i_sysmount='define'
 i_sysndir='undef'
 i_sysparam='define'
 i_sysresrc='define'
@@ -427,6 +441,7 @@ i_syssecrt='define'
 i_sysselct='define'
 i_syssockio=''
 i_sysstat='define'
+i_sysstatvfs='define'
 i_systime='define'
 i_systimek='undef'
 i_systimes='define'
@@ -454,6 +469,7 @@ installprivlib='/opt/perl/lib/5.00554'
 installscript='/opt/perl/bin'
 installsitearch='/opt/perl/lib/site_perl/5.00554/alpha-dec_osf-thread'
 installsitelib='/opt/perl/lib/site_perl/5.00554'
+installusrbinperl='define'
 intsize='4'
 known_extensions='B DB_File Data/Dumper Devel/Peek Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
 ksh=''
@@ -500,6 +516,7 @@ medium=''
 mips=''
 mips_type=''
 mkdir='mkdir'
+mmaptype='void *'
 models='none'
 modetype='mode_t'
 more='more'
index c343f44..89e106d 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Thu Dec  3 15:05:16 EET 1998
+ * Configuration time: Mon Feb  8 01:11:15 EET 1999
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  */
 #define HAS_MKTIME             /**/
 
+/* HAS_MSYNC:
+ *     This symbol, if defined, indicates that the msync system call is
+ *     available to synchronize a mapped file.
+ */
+#define HAS_MSYNC              /**/
+
+/* HAS_MUNMAP:
+ *     This symbol, if defined, indicates that the munmap system call is
+ *     available to unmap a region, usually mapped by mmap().
+ */
+#define HAS_MUNMAP             /**/
+
 /* HAS_NICE:
  *     This symbol, if defined, indicates that the nice routine is
  *     available.
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* HAS_MMAP:
+ *     This symbol, if defined, indicates that the mmap system call is
+ *     available to map a file into memory.
+ */
+/* Mmap_t:
+ *     This symbol holds the return type of the mmap() system call
+ *     (and simultaneously the type of the first argument).
+ *     Usually set to 'void *' or 'cadd_t'.
+ */
+#define HAS_MMAP               /**/
+#define Mmap_t void *  /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
  */
 /*#define HAS_FTELLO           / **/
 
+/* HAS_MADVISE:
+ *     This symbol, if defined, indicates that the madvise system call is
+ *     available to map a file into memory.
+ */
+#define HAS_MADVISE            /**/
+
+/* HAS_MPROTECT:
+ *     This symbol, if defined, indicates that the mprotect system call is
+ *     available to modify the access protection of a memory mapped file.
+ */
+#define HAS_MPROTECT           /**/
+
 /* HAS_READV:
  *     This symbol, if defined, indicates that the readv routine is
  *     available to do gather reads.  You will also need <sys/uio.h>
  */
 /*#define      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).
+ */
+#define HAS_FSTATFS            /**/
+#define HAS_STRUCT_STATFS_FLAGS                /**/
+
+/* HAS_FSTATVFS:
+ *     This symbol, if defined, indicates that the fstatvfs routine is
+ *     available to do stat filesystems of file descriptors.
+ */
+#define HAS_FSTATVFS           /**/
+
+/* HAS_TELLDIR_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the telldir() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern long telldir _((DIR*));
+ */
+#define        HAS_TELLDIR_PROTO       /**/
+
 /* HAS_WRITEV:
  *     This symbol, if defined, indicates that the writev routine is
  *     available to do scatter writes.
 /*#define   I_INTTYPES                / **/
 /*#define     HAS_INT64_T               / **/
 
+/* I_MNTENT:
+ *     This symbol, if defined, indicates that <mntent.h> exists and
+ *     should be included.
+ */
+/*#define      I_MNTENT                / **/
+
 /* I_POLL:
  *     This symbol, if defined, indicates that <poll.h> exists and
  *     should be included.
  */
 #define        I_POLL          /**/
 
+/* I_SYS_MMAN:
+ *     This symbol, if defined, indicates that <sys/mman.h> exists and
+ *     should be included.
+ */
+#define        I_SYS_MMAN              /**/
+
+/* I_SYS_MOUNT:
+ *     This symbol, if defined, indicates that <sys/mount.h> exists and
+ *     should be included.
+ */
+#define        I_SYS_MOUNT             /**/
+
+/* I_SYS_STATVFS:
+ *     This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ *     should be included.
+ */
+#define        I_SYS_STATVFS           /**/
+
+/* INSTALL_USR_BIN_PERL:
+ *     This symbol, if defined, indicates that Perl is to be installed
+ *     also as /usr/bin/perl.
+ */
+#define 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.
  */
 #define        USE_64_BITS             /**/
 
+/* MULTIPLICITY:
+ *     This symbol, if defined, indicates that Perl should
+ *     be built to use multiplicity.
+ */
+/*#define      MULTIPLICITY            / **/
+
 /* USE_PERLIO:
  *     This symbol, if defined, indicates that the PerlIO abstraction should
  *     be used throughout.  If not defined, stdio should be
  *     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.
  */
 /*#define OLD_PTHREAD_CREATE_JOINABLE  / **/
  */
 /*#define   I_MACH_CTHREADS    / **/
 
-/* MULTIPLICITY:
- *     This symbol, if defined, indicates that Perl should
- *     be built to use multiplicity.
- */
-/*#define      MULTIPLICITY            / **/
-
 /* USE_THREADS:
  *     This symbol, if defined, indicates that Perl should
  *     be built to use threads.
index 2a14102..7047dfa 100644 (file)
@@ -408,6 +408,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_mktime HAS_MKTIME          /**/
 
+/* HAS_MSYNC:
+ *     This symbol, if defined, indicates that the msync system call is
+ *     available to synchronize a mapped file.
+ */
+#$d_msync HAS_MSYNC            /**/
+
+/* HAS_MUNMAP:
+ *     This symbol, if defined, indicates that the munmap system call is
+ *     available to unmap a region, usually mapped by mmap().
+ */
+#$d_munmap HAS_MUNMAP          /**/
+
 /* HAS_NICE:
  *     This symbol, if defined, indicates that the nice routine is
  *     available.
@@ -1655,6 +1667,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define LONGLONGSIZE $longlongsize             /**/
 #endif
 
+/* HAS_MMAP:
+ *     This symbol, if defined, indicates that the mmap system call is
+ *     available to map a file into memory.
+ */
+/* Mmap_t:
+ *     This symbol holds the return type of the mmap() system call
+ *     (and simultaneously the type of the first argument).
+ *     Usually set to 'void *' or 'cadd_t'.
+ */
+#$d_mmap HAS_MMAP              /**/
+#define Mmap_t $mmaptype       /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
@@ -2038,6 +2062,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_ftello HAS_FTELLO          /**/
 
+/* HAS_MADVISE:
+ *     This symbol, if defined, indicates that the madvise system call is
+ *     available to map a file into memory.
+ */
+#$d_madvise HAS_MADVISE                /**/
+
+/* HAS_MPROTECT:
+ *     This symbol, if defined, indicates that the mprotect system call is
+ *     available to modify the access protection of a memory mapped file.
+ */
+#$d_mprotect HAS_MPROTECT              /**/
+
 /* HAS_READV:
  *     This symbol, if defined, indicates that the readv routine is
  *     available to do gather reads.  You will also need <sys/uio.h>
@@ -2164,6 +2200,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_poll       I_POLL          /**/
 
+/* I_SYS_MMAN:
+ *     This symbol, if defined, indicates that <sys/mman.h> exists and
+ *     should be included.
+ */
+#$i_sysmman    I_SYS_MMAN              /**/
+
 /* I_SYS_MOUNT:
  *     This symbol, if defined, indicates that <sys/mount.h> exists and
  *     should be included.
diff --git a/perl.h b/perl.h
index 1b44aa6..0cfe3e6 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -2782,7 +2782,19 @@ typedef struct am_table_short AMTS;
 #   endif
 #endif
 
-/* Mention INSTALL_USR_BIN_PERL here so that Configure picks it up. */
+/* Mention
+
+   INSTALL_USR_BIN_PERL
+
+   I_SYS_MMAN
+   HAS_MMAP
+   HAS_MUNMAP
+   HAS_MPROTECT
+   HAS_MSYNC
+   HAS_MADVISE
+   Mmap_t
+
+   here so that Configure picks them up. */
 
 #ifdef IAMSUID