summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure129
-rw-r--r--Cross/config.sh-arm-linux17
-rw-r--r--Cross/config.sh-arm-linux-n77017
-rw-r--r--NetWare/config.wc17
-rw-r--r--NetWare/config_H.wc99
-rw-r--r--Porting/Glossary73
-rw-r--r--Porting/config.sh17
-rw-r--r--Porting/config_H100
-rwxr-xr-xconfig_h.SH100
-rw-r--r--configure.com32
-rw-r--r--hints/linux-android.sh12
-rw-r--r--perl.c8
-rw-r--r--plan9/config.plan999
-rw-r--r--plan9/config_h.sample99
-rw-r--r--plan9/config_sh.sample17
-rw-r--r--symbian/config.sh17
-rw-r--r--uconfig.h100
-rw-r--r--uconfig.sh17
-rw-r--r--uconfig64.sh17
-rw-r--r--win32/config.ce17
-rw-r--r--win32/config.gc17
-rw-r--r--win32/config.vc17
-rw-r--r--win32/config_H.ce99
-rw-r--r--win32/config_H.gc100
-rw-r--r--win32/config_H.vc100
25 files changed, 1337 insertions, 0 deletions
diff --git a/Configure b/Configure
index 3df0b1bab2..18bab85991 100755
--- a/Configure
+++ b/Configure
@@ -496,8 +496,10 @@ d_fpclassl=''
d_fpgetround=''
d_fpos64_t=''
d_frexpl=''
+d_fs_data_s=''
d_fseeko=''
d_fsetpos=''
+d_fstatfs=''
d_fsync=''
d_ftello=''
d_ftime=''
@@ -507,6 +509,7 @@ d_Gconvert=''
d_getaddrinfo=''
d_getcwd=''
d_getespwnam=''
+d_getfsstat=''
d_getgrent=''
d_getgrent_r=''
getgrent_r_proto=''
@@ -533,6 +536,8 @@ d_getitimer=''
d_getlogin=''
d_getlogin_r=''
getlogin_r_proto=''
+d_getmnt=''
+d_getmntent=''
d_getnameinfo=''
d_getnbyaddr=''
d_getnbyname=''
@@ -586,6 +591,7 @@ d_gmtime_r=''
gmtime_r_proto=''
d_gnulibc=''
gnulibc_version=''
+d_hasmntopt=''
d_htonl=''
d_hypot=''
d_ilogb=''
@@ -816,8 +822,12 @@ d_sresgproto=''
d_sresuproto=''
d_stat=''
d_statblks=''
+d_statfs_f_flags=''
+d_statfs_s=''
d_static_inline=''
perl_static_inline=''
+d_fstatvfs=''
+d_statvfs=''
d_stdio_cnt_lval=''
d_stdio_ptr_lval=''
d_stdio_ptr_lval_nochange_cnt=''
@@ -889,6 +899,7 @@ d_unordered=''
d_unsetenv=''
d_usleep=''
d_usleepproto=''
+d_ustat=''
d_pseudofork=''
d_vfork=''
usevfork=''
@@ -971,6 +982,7 @@ i_malloc=''
i_mallocmalloc=''
i_math=''
i_memory=''
+i_mntent=''
d_gdbm_ndbm_h_uses_prototypes=''
d_gdbmndbm_h_uses_prototypes=''
d_ndbm=''
@@ -1016,6 +1028,7 @@ i_syssockio=''
i_syslog=''
i_sysmman=''
i_sysmode=''
+i_sysmount=''
i_sysndir=''
i_sysparam=''
i_syspoll=''
@@ -1023,11 +1036,14 @@ i_sysresrc=''
i_syssecrt=''
i_sysselct=''
i_sysstat=''
+i_sysstatfs=''
+i_sysstatvfs=''
i_systimes=''
i_systypes=''
i_sysuio=''
i_sysun=''
i_sysutsname=''
+i_sysvfs=''
i_syswait=''
i_sgtty=''
i_termio=''
@@ -1039,6 +1055,7 @@ i_systimek=''
i_time=''
timeincl=''
i_unistd=''
+i_ustat=''
i_utime=''
i_values=''
i_stdarg=''
@@ -14073,6 +14090,20 @@ eval $inlibc
set sys/param.h i_sysparam
eval $inhdr
+: see if this is a sys/mount.h system
+set sys/mount.h i_sysmount
+eval $inhdr
+
+: Check for fs_data_s
+echo " "
+echo "Checking to see if your system supports struct fs_data..." >&4
+set d_fs_data_s fs_data $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h
+eval $hasstruct
+case "$d_fs_data_s" in
+"$define") echo "Yes, it does." ;;
+*) echo "No, it doesn't." ;;
+esac
+
: see if fseeko exists
set fseeko d_fseeko
eval $inlibc
@@ -14084,6 +14115,19 @@ esac
set fsetpos d_fsetpos
eval $inlibc
+: see if fstatfs exists
+set fstatfs d_fstatfs
+eval $inlibc
+
+: see if statvfs exists
+set statvfs d_statvfs
+eval $inlibc
+
+: see if fstatvfs exists
+set fstatvfs d_fstatvfs
+eval $inlibc
+
+
: see if fsync exists
set fsync d_fsync
eval $inlibc
@@ -14196,6 +14240,10 @@ eval $inlibc
set getespwnam d_getespwnam
eval $inlibc
+: see if getfsstat exists
+set getfsstat d_getfsstat
+eval $inlibc
+
: see if getgrent exists
set getgrent d_getgrent
eval $inlibc
@@ -14725,6 +14773,14 @@ case "$d_getlogin_r" in
;;
esac
+: see if getmnt exists
+set getmnt d_getmnt
+eval $inlibc
+
+: see if getmntent exists
+set getmntent d_getmntent
+eval $inlibc
+
: see if getnameinfo exists
set getnameinfo d_getnameinfo
eval $inlibc
@@ -15581,6 +15637,10 @@ case "$d_gmtime_r" in
;;
esac
+: see if hasmntopt exists
+set hasmntopt d_hasmntopt
+eval $inlibc
+
: see if this is a netinet/in.h or sys/in.h system
set netinet/in.h i_niin sys/in.h i_sysin
eval $inhdr
@@ -18865,6 +18925,43 @@ echo "Checking to see if your struct stat has st_blocks field..." >&4
set d_statblks stat st_blocks $i_sysstat sys/stat.h
eval $hasfield
+: see if this is a sys/vfs.h system
+set sys/vfs.h i_sysvfs
+eval $inhdr
+
+: see if this is a sys/statfs.h system
+set sys/statfs.h i_sysstatfs
+eval $inhdr
+
+: Check for statfs_s
+echo " "
+echo "Checking to see if your system supports struct statfs..." >&4
+set d_statfs_s statfs $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
+eval $hasstruct
+case "$d_statfs_s" in
+"$define") echo "Yes, it does." ;;
+*) echo "No, it doesn't." ;;
+esac
+
+
+: see if struct statfs knows about f_flags
+case "$d_statfs_s" in
+define)
+ echo " "
+ echo "Checking to see if your struct statfs has f_flags field..." >&4
+ set d_statfs_f_flags statfs f_flags $i_systypes sys/types.h $i_sysparam sys/param.h $i_sysmount sys/mount.h $i_sysvfs sys/vfs.h $i_sysstatfs sys/statfs.h
+ eval $hasfield
+ ;;
+*) val="$undef"
+ set d_statfs_f_flags
+ eval $setvar
+ ;;
+esac
+case "$d_statfs_f_flags" in
+"$define") echo "Yes, it does." ;;
+*) echo "No, it doesn't." ;;
+esac
+
: see what flavor, if any, of static inline is supported
echo " "
echo "Checking to see if your system supports static inline..."
@@ -19818,6 +19915,10 @@ echo " "
set d_usleepproto usleep $i_unistd unistd.h
eval $hasproto
+: see if ustat exists
+set ustat d_ustat
+eval $inlibc
+
: see if closedir exists
set closedir d_closedir
eval $inlibc
@@ -22888,6 +22989,10 @@ else
i_machcthr="$undef"
fi
+: see if this is a mntent.h system
+set mntent.h i_mntent
+eval $inhdr
+
: see if net/errno.h is available
val=''
set net/errno.h val
@@ -23328,6 +23433,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
@@ -23340,6 +23449,10 @@ eval $inhdr
set sys/wait.h i_syswait
eval $inhdr
+: see if this is a ustat.h system
+set ustat.h i_ustat
+eval $inhdr
+
: see if this is an utime system
set utime.h i_utime
eval $inhdr
@@ -24089,6 +24202,8 @@ d_frexpl='$d_frexpl'
d_fs_data_s='$d_fs_data_s'
d_fseeko='$d_fseeko'
d_fsetpos='$d_fsetpos'
+d_fstatfs='$d_fstatfs'
+d_fstatvfs='$d_fstatvfs'
d_fsync='$d_fsync'
d_ftello='$d_ftello'
d_ftime='$d_ftime'
@@ -24098,6 +24213,7 @@ d_gdbmndbm_h_uses_prototypes='$d_gdbmndbm_h_uses_prototypes'
d_getaddrinfo='$d_getaddrinfo'
d_getcwd='$d_getcwd'
d_getespwnam='$d_getespwnam'
+d_getfsstat='$d_getfsstat'
d_getgrent='$d_getgrent'
d_getgrent_r='$d_getgrent_r'
d_getgrgid_r='$d_getgrgid_r'
@@ -24114,6 +24230,8 @@ d_gethostprotos='$d_gethostprotos'
d_getitimer='$d_getitimer'
d_getlogin='$d_getlogin'
d_getlogin_r='$d_getlogin_r'
+d_getmnt='$d_getmnt'
+d_getmntent='$d_getmntent'
d_getnameinfo='$d_getnameinfo'
d_getnbyaddr='$d_getnbyaddr'
d_getnbyname='$d_getnbyname'
@@ -24154,6 +24272,7 @@ d_gmtime64='$d_gmtime64'
d_gmtime_r='$d_gmtime_r'
d_gnulibc='$d_gnulibc'
d_grpasswd='$d_grpasswd'
+d_hasmntopt='$d_hasmntopt'
d_htonl='$d_htonl'
d_hypot='$d_hypot'
d_ilogb='$d_ilogb'
@@ -24383,7 +24502,10 @@ d_sresgproto='$d_sresgproto'
d_sresuproto='$d_sresuproto'
d_stat='$d_stat'
d_statblks='$d_statblks'
+d_statfs_f_flags='$d_statfs_f_flags'
+d_statfs_s='$d_statfs_s'
d_static_inline='$d_static_inline'
+d_statvfs='$d_statvfs'
d_stdio_cnt_lval='$d_stdio_cnt_lval'
d_stdio_ptr_lval='$d_stdio_ptr_lval'
d_stdio_ptr_lval_nochange_cnt='$d_stdio_ptr_lval_nochange_cnt'
@@ -24442,6 +24564,7 @@ d_unordered='$d_unordered'
d_unsetenv='$d_unsetenv'
d_usleep='$d_usleep'
d_usleepproto='$d_usleepproto'
+d_ustat='$d_ustat'
d_vendorarch='$d_vendorarch'
d_vendorbin='$d_vendorbin'
d_vendorlib='$d_vendorlib'
@@ -24592,6 +24715,7 @@ i_malloc='$i_malloc'
i_mallocmalloc='$i_mallocmalloc'
i_math='$i_math'
i_memory='$i_memory'
+i_mntent='$i_mntent'
i_ndbm='$i_ndbm'
i_netdb='$i_netdb'
i_neterrno='$i_neterrno'
@@ -24622,6 +24746,7 @@ i_sysioctl='$i_sysioctl'
i_syslog='$i_syslog'
i_sysmman='$i_sysmman'
i_sysmode='$i_sysmode'
+i_sysmount='$i_sysmount'
i_sysndir='$i_sysndir'
i_sysparam='$i_sysparam'
i_syspoll='$i_syspoll'
@@ -24630,6 +24755,8 @@ i_syssecrt='$i_syssecrt'
i_sysselct='$i_sysselct'
i_syssockio='$i_syssockio'
i_sysstat='$i_sysstat'
+i_sysstatfs='$i_sysstatfs'
+i_sysstatvfs='$i_sysstatvfs'
i_systime='$i_systime'
i_systimek='$i_systimek'
i_systimes='$i_systimes'
@@ -24637,11 +24764,13 @@ i_systypes='$i_systypes'
i_sysuio='$i_sysuio'
i_sysun='$i_sysun'
i_sysutsname='$i_sysutsname'
+i_sysvfs='$i_sysvfs'
i_syswait='$i_syswait'
i_termio='$i_termio'
i_termios='$i_termios'
i_time='$i_time'
i_unistd='$i_unistd'
+i_ustat='$i_ustat'
i_utime='$i_utime'
i_values='$i_values'
i_varargs='$i_varargs'
diff --git a/Cross/config.sh-arm-linux b/Cross/config.sh-arm-linux
index 85d4abb114..cff0e036ef 100644
--- a/Cross/config.sh-arm-linux
+++ b/Cross/config.sh-arm-linux
@@ -222,8 +222,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='define'
+d_fs_data_s='undef'
d_fseeko='define'
d_fsetpos='define'
+d_fstatfs='define'
+d_fstatvfs='define'
d_fsync='define'
d_ftello='define'
d_ftime='undef'
@@ -233,6 +236,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='define'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -249,6 +253,8 @@ d_gethostprotos='define'
d_getitimer='define'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='define'
d_getnameinfo='undef'
d_getnbyaddr='define'
d_getnbyname='define'
@@ -289,6 +295,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='define'
d_grpasswd='define'
+d_hasmntopt='define'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -514,7 +521,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='define'
+d_statfs_f_flags='undef'
+d_statfs_s='define'
d_static_inline='undef'
+d_statvfs='define'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='define'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -573,6 +583,7 @@ d_unordered='undef'
d_unsetenv='define'
d_usleep='define'
d_usleepproto='define'
+d_ustat='define'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -719,6 +730,7 @@ i_malloc='define'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='define'
i_ndbm='undef'
i_netdb='define'
i_neterrno='undef'
@@ -749,6 +761,7 @@ i_sysioctl='define'
i_syslog='define'
i_sysmman='define'
i_sysmode='undef'
+i_sysmount='define'
i_sysndir='undef'
i_sysparam='define'
i_syspoll='undef'
@@ -757,6 +770,8 @@ i_syssecrt='undef'
i_sysselct='define'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='define'
+i_sysstatvfs='define'
i_systime='define'
i_systimek='undef'
i_systimes='define'
@@ -764,11 +779,13 @@ i_systypes='define'
i_sysuio='define'
i_sysun='define'
i_sysutsname='define'
+i_sysvfs='define'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='define'
i_unistd='define'
+i_ustat='define'
i_utime='define'
i_values='define'
i_varargs='undef'
diff --git a/Cross/config.sh-arm-linux-n770 b/Cross/config.sh-arm-linux-n770
index 6c803248c2..6ab342ad01 100644
--- a/Cross/config.sh-arm-linux-n770
+++ b/Cross/config.sh-arm-linux-n770
@@ -197,14 +197,18 @@ d_fpclassify='undef'
d_fpclassl='undef'
d_fpos64_t='undef'
d_frexpl='define'
+d_fs_data_s='undef'
d_fseeko='define'
d_fsetpos='define'
+d_fstatfs='define'
+d_fstatvfs='define'
d_fsync='define'
d_ftello='define'
d_ftime='undef'
d_futimes='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='define'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -221,6 +225,8 @@ d_gethostprotos='define'
d_getitimer='define'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='define'
d_getnbyaddr='define'
d_getnbyname='define'
d_getnent='define'
@@ -259,6 +265,7 @@ d_gettimeod='define'
d_gmtime_r='undef'
d_gnulibc='define'
d_grpasswd='define'
+d_hasmntopt='define'
d_htonl='define'
d_ilogbl='define'
d_inc_version_list='define'
@@ -434,6 +441,9 @@ d_srandom_r='undef'
d_sresgproto='undef'
d_sresuproto='undef'
d_statblks='define'
+d_statfs_f_flags='undef'
+d_statfs_s='define'
+d_statvfs='define'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='define'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -489,6 +499,7 @@ d_unordered='undef'
d_unsetenv='define'
d_usleep='define'
d_usleepproto='define'
+d_ustat='define'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -625,6 +636,7 @@ i_malloc='define'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='define'
i_ndbm='undef'
i_netdb='define'
i_neterrno='undef'
@@ -652,6 +664,7 @@ i_sysioctl='define'
i_syslog='define'
i_sysmman='define'
i_sysmode='undef'
+i_sysmount='define'
i_sysndir='undef'
i_syspoll='define'
i_sysparam='define'
@@ -660,6 +673,8 @@ i_syssecrt='undef'
i_sysselct='define'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='define'
+i_sysstatvfs='define'
i_systime='define'
i_systimek='undef'
i_systimes='define'
@@ -667,11 +682,13 @@ i_systypes='define'
i_sysuio='define'
i_sysun='define'
i_sysutsname='define'
+i_sysvfs='define'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='define'
i_unistd='define'
+i_ustat='define'
i_utime='define'
i_values='define'
i_varargs='undef'
diff --git a/NetWare/config.wc b/NetWare/config.wc
index 7e80150967..e70b4dfd16 100644
--- a/NetWare/config.wc
+++ b/NetWare/config.wc
@@ -210,8 +210,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='undef'
d_ftello='undef'
d_ftime='define'
@@ -221,6 +224,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='undef'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -237,6 +241,8 @@ d_gethostprotos='define'
d_getitimer='undef'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -278,6 +284,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -504,7 +511,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='undef'
+d_statvfs='undef'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -563,6 +573,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='undef'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -701,6 +712,7 @@ i_malloc='define'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='define'
i_neterrno='undef'
@@ -731,6 +743,7 @@ i_sysioctl='define'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='undef'
i_syspoll='undef'
@@ -739,6 +752,8 @@ i_syssecrt='undef'
i_sysselct='undef'
i_syssockio='define'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='undef'
@@ -746,11 +761,13 @@ i_systypes='define'
i_sysuio='undef'
i_sysun='undef'
i_sysutsname='define'
+i_sysvfs='undef'
i_syswait='undef'
i_termio='undef'
i_termios='undef'
i_time='define'
i_unistd='undef'
+i_ustat='undef'
i_utime='define'
i_values='undef'
i_varargs='undef'
diff --git a/NetWare/config_H.wc b/NetWare/config_H.wc
index 6df3ad5a5a..d98d830b1a 100644
--- a/NetWare/config_H.wc
+++ b/NetWare/config_H.wc
@@ -1313,12 +1313,24 @@
*/
/*#define HAS_FREXPL /**/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA /**/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO /**/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATFS /**/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -1361,6 +1373,12 @@
*/
/*#define HAS_GETESPWNAM /**/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT /**/
+
/* HAS_GETGRENT:
* This symbol, if defined, indicates that the getgrent routine is
* available for sequential access of the group database.
@@ -1428,6 +1446,18 @@
*/
/*#define HAS_GETITIMER /**/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT /**/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+/*#define HAS_GETMNTENT /**/
+
/* HAS_GETNETBYADDR:
* This symbol, if defined, indicates that the getnetbyaddr() routine is
* available to look up networks by their IP addresses.
@@ -1550,6 +1580,11 @@
#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
# define _GNU_SOURCE
#endif
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT /**/
/* HAS_HTONL:
* This symbol, if defined, indicates that the htonl() routine (and
@@ -2005,6 +2040,29 @@
/*#define USE_STAT_BLOCKS /**/
#endif
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS /**/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_STATFS /**/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATVFS /**/
+
/* USE_STDIO_PTR:
* This symbol is defined if the _ptr and _cnt fields (or similar)
* of the stdio FILE structure can be used to access the stdio buffer
@@ -2180,6 +2238,12 @@
/*#define USE_SEMCTL_SEMUN /**/
/*#define USE_SEMCTL_SEMID_DS /**/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+/*#define HAS_USTAT /**/
+
/* HAS_VFORK:
* This symbol, if defined, indicates that vfork() exists.
*/
@@ -2395,6 +2459,12 @@
*/
/*#define I_MACH_CTHREADS /**/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+/*#define I_MNTENT /**/
+
/* I_NETDB:
* This symbol, if defined, indicates that <netdb.h> exists and
* should be included.
@@ -2501,6 +2571,23 @@
*/
/*#define I_SYSMODE /**/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_MOUNT /**/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS /**/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_STATVFS /**/
+
/* I_SYSUIO:
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
@@ -2513,6 +2600,12 @@
*/
#define I_SYSUTSNAME /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS /**/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
@@ -2529,6 +2622,12 @@
/*#define I_SYS_TIME /**/
/*#define I_SYS_TIME_KERNEL /**/
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+/*#define I_USTAT /**/
+
/* PERL_INC_VERSION_LIST:
* This variable specifies the list of subdirectories in over
* which perl.c:incpush() and lib/lib.pm will automatically
diff --git a/Porting/Glossary b/Porting/Glossary
index ae8cc79261..68ee298416 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -932,6 +932,10 @@ d_frexpl (d_frexpl.U):
This variable conditionally defines the HAS_FREXPL symbol, which
indicates to the C program that the frexpl() routine is available.
+d_fs_data_s (d_fs_data_s.U):
+ This variable conditionally defines the HAS_STRUCT_FS_DATA symbol,
+ which indicates that the struct fs_data is supported.
+
d_fseeko (d_fseeko.U):
This variable conditionally defines the HAS_FSEEKO symbol, which
indicates to the C program that the fseeko() routine is available.
@@ -940,6 +944,14 @@ d_fsetpos (d_fsetpos.U):
This variable conditionally defines HAS_FSETPOS if fsetpos() is
available to set the file position indicator.
+d_fstatfs (d_fstatfs.U):
+ This variable conditionally defines the HAS_FSTATFS symbol, which
+ indicates to the C program that the fstatfs() routine is available.
+
+d_fstatvfs (d_statvfs.U):
+ This variable conditionally defines the HAS_FSTATVFS symbol, which
+ indicates to the C program that the fstatvfs() routine is available.
+
d_fsync (d_fsync.U):
This variable conditionally defines the HAS_FSYNC symbol, which
indicates to the C program that the fsync() routine is available.
@@ -1010,6 +1022,10 @@ d_getespwnam (d_getespwnam.U):
This variable conditionally defines HAS_GETESPWNAM if getespwnam() is
available to retrieve enhanced (shadow) password entries by name.
+d_getfsstat (d_getfsstat.U):
+ This variable conditionally defines the HAS_GETFSSTAT symbol, which
+ indicates to the C program that the getfsstat() routine is available.
+
d_getgrent (d_getgrent.U):
This variable conditionally defines the HAS_GETGRENT symbol, which
indicates to the C program that the getgrent() routine is available
@@ -1089,6 +1105,16 @@ d_getlogin_r (d_getlogin_r.U):
which indicates to the C program that the getlogin_r()
routine is available.
+d_getmnt (d_getmnt.U):
+ This variable conditionally defines the HAS_GETMNT symbol, which
+ indicates to the C program that the getmnt() routine is available
+ to retrieve one or more mount info blocks by filename.
+
+d_getmntent (d_getmntent.U):
+ This variable conditionally defines the HAS_GETMNTENT symbol, which
+ indicates to the C program that the getmntent() routine is available
+ to iterate through mounted files to get their mount info.
+
d_getnameinfo (d_getnameinfo.U):
This variable conditionally defines the HAS_GETNAMEINFO symbol,
which indicates to the C program that the getnameinfo() function
@@ -1284,6 +1310,11 @@ d_grpasswd (i_grp.U):
This variable conditionally defines GRPASSWD, which indicates
that struct group in <grp.h> contains gr_passwd.
+d_hasmntopt (d_hasmntopt.U):
+ This variable conditionally defines the HAS_HASMNTOPT symbol, which
+ indicates to the C program that the hasmntopt() routine is available
+ to query the mount options of file systems.
+
d_htonl (d_htonl.U):
This variable conditionally defines HAS_HTONL if htonl() and its
friends are available to do network order byte swapping.
@@ -2362,12 +2393,26 @@ d_statblks (d_statblks.U):
if this system has a stat structure declaring
st_blksize and st_blocks.
+d_statfs_f_flags (d_statfs_f_flags.U):
+ This variable conditionally defines the HAS_STRUCT_STATFS_F_FLAGS
+ symbol, which indicates to struct statfs from has f_flags member.
+ This kind of struct statfs is coming from sys/mount.h (BSD),
+ not from sys/statfs.h (SYSV).
+
+d_statfs_s (d_statfs_s.U):
+ This variable conditionally defines the HAS_STRUCT_STATFS symbol,
+ which indicates that the struct statfs is supported.
+
d_static_inline (d_static_inline.U):
This variable conditionally defines the HAS_STATIC_INLINE symbol,
which indicates that the C compiler supports C99-style static
inline. That is, the function can't be called from another
translation unit.
+d_statvfs (d_statvfs.U):
+ This variable conditionally defines the HAS_STATVFS symbol, which
+ indicates to the C program that the statvfs() routine is available.
+
d_stdio_cnt_lval (d_stdstdio.U):
This variable conditionally defines STDIO_CNT_LVALUE if the
FILE_cnt macro can be used as an lvalue.
@@ -2630,6 +2675,10 @@ d_usleepproto (d_usleepproto.U):
a prototype for the usleep() function. Otherwise, it is
up to the program to supply one.
+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.
@@ -3361,6 +3410,10 @@ i_memory (i_memory.U):
This variable conditionally defines the I_MEMORY symbol, and indicates
whether a C program should include <memory.h>.
+i_mntent (i_mntent.U):
+ This variable conditionally defines the I_MNTENT symbol, and indicates
+ whether a C program should include <mntent.h>.
+
i_ndbm (i_ndbm.U):
This variable conditionally defines the I_NDBM symbol, which
indicates to the C program that <ndbm.h> exists and should
@@ -3494,6 +3547,10 @@ i_sysmode (i_sysmode.U):
This variable conditionally defines the I_SYSMODE symbol,
and indicates whether a C program should include <sys/mode.h>.
+i_sysmount (i_sysmount.U):
+ This variable conditionally defines the I_SYSMOUNT symbol,
+ and indicates whether a C program should include <sys/mount.h>.
+
i_sysndir (i_sysndir.U):
This variable conditionally defines the I_SYS_NDIR symbol, and indicates
whether a C program should include <sys/ndir.h>.
@@ -3528,6 +3585,14 @@ i_sysstat (i_sysstat.U):
This variable conditionally defines the I_SYS_STAT symbol,
and indicates whether a C program should include <sys/stat.h>.
+i_sysstatfs (i_sysstatfs.U):
+ This variable conditionally defines the I_SYSSTATFS symbol,
+ and indicates whether a C program should include <sys/statfs.h>.
+
+i_sysstatvfs (i_sysstatvfs.U):
+ This variable conditionally defines the I_SYSSTATVFS symbol,
+ and indicates whether a C program should include <sys/statvfs.h>.
+
i_systime (i_time.U):
This variable conditionally defines I_SYS_TIME, which indicates
to the C program that it should include <sys/time.h>.
@@ -3558,6 +3623,10 @@ i_sysutsname (i_sysutsname.U):
This variable conditionally defines the I_SYSUTSNAME symbol,
and indicates whether a C program should include <sys/utsname.h>.
+i_sysvfs (i_sysvfs.U):
+ This variable conditionally defines the I_SYSVFS symbol,
+ and indicates whether a C program should include <sys/vfs.h>.
+
i_syswait (i_syswait.U):
This variable conditionally defines I_SYS_WAIT, which indicates
to the C program that it should include <sys/wait.h>.
@@ -3580,6 +3649,10 @@ i_unistd (i_unistd.U):
This variable conditionally defines the I_UNISTD symbol, and indicates
whether a C program should include <unistd.h>.
+i_ustat (i_ustat.U):
+ This variable conditionally defines the I_USTAT symbol, and indicates
+ whether a C program should include <ustat.h>.
+
i_utime (i_utime.U):
This variable conditionally defines the I_UTIME symbol, and indicates
whether a C program should include <utime.h>.
diff --git a/Porting/config.sh b/Porting/config.sh
index d22437c11f..b7e75bd311 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -231,8 +231,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='define'
+d_fs_data_s='undef'
d_fseeko='define'
d_fsetpos='define'
+d_fstatfs='define'
+d_fstatvfs='define'
d_fsync='define'
d_ftello='define'
d_ftime='undef'
@@ -242,6 +245,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='define'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='define'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -258,6 +262,8 @@ d_gethostprotos='define'
d_getitimer='define'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='define'
d_getnameinfo='define'
d_getnbyaddr='define'
d_getnbyname='define'
@@ -298,6 +304,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='define'
d_grpasswd='define'
+d_hasmntopt='define'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -525,7 +532,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='define'
+d_statfs_f_flags='define'
+d_statfs_s='define'
d_static_inline='define'
+d_statvfs='define'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='define'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -584,6 +594,7 @@ d_unordered='undef'
d_unsetenv='define'
d_usleep='define'
d_usleepproto='define'
+d_ustat='define'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -734,6 +745,7 @@ i_malloc='define'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='define'
i_ndbm='define'
i_netdb='define'
i_neterrno='undef'
@@ -764,6 +776,7 @@ i_sysioctl='define'
i_syslog='define'
i_sysmman='define'
i_sysmode='undef'
+i_sysmount='define'
i_sysndir='undef'
i_sysparam='define'
i_syspoll='define'
@@ -772,6 +785,8 @@ i_syssecrt='undef'
i_sysselct='define'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='define'
+i_sysstatvfs='define'
i_systime='define'
i_systimek='undef'
i_systimes='define'
@@ -779,11 +794,13 @@ i_systypes='define'
i_sysuio='define'
i_sysun='define'
i_sysutsname='define'
+i_sysvfs='define'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='define'
i_unistd='define'
+i_ustat='define'
i_utime='define'
i_values='define'
i_varargs='undef'
diff --git a/Porting/config_H b/Porting/config_H
index 1b9337a026..08ff181dab 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -3304,12 +3304,24 @@
*/
#define HAS_FREXPL /**/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA / **/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
#define HAS_FSEEKO /**/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+#define HAS_FSTATFS /**/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -3347,12 +3359,30 @@
*/
/*#define HAS_GETESPWNAM / **/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT / **/
+
/* HAS_GETITIMER:
* This symbol, if defined, indicates that the getitimer routine is
* available to return interval timers.
*/
#define HAS_GETITIMER /**/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT / **/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+#define HAS_GETMNTENT /**/
+
/* HAS_GETNAMEINFO:
* This symbol, if defined, indicates that the getnameinfo() function
* is available for use.
@@ -3371,6 +3401,12 @@
*/
#define HAS_GETSPNAM /**/
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+#define HAS_HASMNTOPT /**/
+
/* HAS_ILOGBL:
* This symbol, if defined, indicates that the ilogbl routine is
* available. If scalbnl is also present we can emulate frexpl.
@@ -3666,6 +3702,29 @@
*/
/*#define HAS_SETRESUID_PROTO / **/
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS / **/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+#define HAS_STRUCT_STATFS /**/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+#define HAS_FSTATVFS /**/
+
/* HAS_STRFTIME:
* This symbol, if defined, indicates that the strftime routine is
* available to do time formatting.
@@ -3803,6 +3862,12 @@
*/
#define HAS_USLEEP_PROTO /**/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+#define HAS_USTAT /**/
+
/* HAS_WRITEV:
* This symbol, if defined, indicates that the writev routine is
* available to do scatter writes.
@@ -3913,6 +3978,12 @@
*/
/*#define I_MALLOCMALLOC / **/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+#define I_MNTENT /**/
+
/* I_NETINET_TCP:
* This symbol, if defined, indicates to the C program that it should
* include <netinet/tcp.h>.
@@ -3961,12 +4032,41 @@
*/
/*#define I_SYSMODE / **/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+#define I_SYS_MOUNT /**/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+#define I_SYS_STATFS /**/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+#define I_SYS_STATVFS /**/
+
/* I_SYSUTSNAME:
* This symbol, if defined, indicates that <sys/utsname.h> exists and
* should be included.
*/
#define I_SYSUTSNAME /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+#define I_SYS_VFS /**/
+
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+#define I_USTAT /**/
+
/* PERL_PRIfldbl:
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for output.
diff --git a/config_h.SH b/config_h.SH
index 8bc6b9868e..aa806cfe2d 100755
--- a/config_h.SH
+++ b/config_h.SH
@@ -3711,12 +3711,24 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_frexpl HAS_FREXPL /**/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+#$d_fs_data_s HAS_STRUCT_FS_DATA /**/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
#$d_fseeko HAS_FSEEKO /**/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+#$d_fstatfs HAS_FSTATFS /**/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -3754,12 +3766,30 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_getespwnam HAS_GETESPWNAM /**/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+#$d_getfsstat HAS_GETFSSTAT /**/
+
/* HAS_GETITIMER:
* This symbol, if defined, indicates that the getitimer routine is
* available to return interval timers.
*/
#$d_getitimer HAS_GETITIMER /**/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+#$d_getmnt HAS_GETMNT /**/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+#$d_getmntent HAS_GETMNTENT /**/
+
/* HAS_GETNAMEINFO:
* This symbol, if defined, indicates that the getnameinfo() function
* is available for use.
@@ -3778,6 +3808,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_getspnam HAS_GETSPNAM /**/
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+#$d_hasmntopt HAS_HASMNTOPT /**/
+
/* HAS_HYPOT:
* This symbol, if defined, indicates that the hypot routine is
* available to do the hypotenuse function.
@@ -4287,6 +4323,29 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_sresuproto HAS_SETRESUID_PROTO /**/
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+#$d_statfs_f_flags HAS_STRUCT_STATFS_F_FLAGS /**/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+#$d_statfs_s HAS_STRUCT_STATFS /**/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+#$d_fstatvfs HAS_FSTATVFS /**/
+
/* HAS_STRFTIME:
* This symbol, if defined, indicates that the strftime routine is
* available to do time formatting.
@@ -4442,6 +4501,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$d_usleepproto HAS_USLEEP_PROTO /**/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+#$d_ustat HAS_USTAT /**/
+
/* HAS_WCSCMP:
* This symbol, if defined, indicates that the wcscmp routine is
* available to compare two wide character strings.
@@ -4578,6 +4643,12 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$i_mallocmalloc I_MALLOCMALLOC /**/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+#$i_mntent I_MNTENT /**/
+
/* I_NETINET_TCP:
* This symbol, if defined, indicates to the C program that it should
* include <netinet/tcp.h>.
@@ -4644,12 +4715,41 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
*/
#$i_sysmode I_SYSMODE /**/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+#$i_sysmount I_SYS_MOUNT /**/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+#$i_sysstatfs I_SYS_STATFS /**/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+#$i_sysstatvfs I_SYS_STATVFS /**/
+
/* I_SYSUTSNAME:
* This symbol, if defined, indicates that <sys/utsname.h> exists and
* should be included.
*/
#$i_sysutsname I_SYSUTSNAME /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+#$i_sysvfs I_SYS_VFS /**/
+
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+#$i_ustat I_USTAT /**/
+
/* DOUBLEINFBYTES:
* This symbol, if defined, is a comma-separated list of
* hexadecimal bytes for the double precision infinity.
diff --git a/configure.com b/configure.com
index 53fdd6afb2..f882e633d3 100644
--- a/configure.com
+++ b/configure.com
@@ -5277,6 +5277,20 @@ $ d_setreuid = "define"
$ d_setsid = "define"
$ endif
$!
+$! VMS V8 powered options
+$! We know that it is only available for 8.2 and later on 64 bit platforms.
+$!
+$ d_fstatvfs = "undef"
+$ d_statvfs = "undef"
+$ i_sysstatvfs = "undef"
+$ if (vms_ver .GES. "8.2")
+$ then
+$ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with 8.2 routines"
+$ d_fstatvfs = "define"
+$ d_statvfs = "define"
+$ i_sysstatvfs = "define"
+$ endif
+$!
$! Check rand48 and its ilk
$!
$ echo4 "Using our internal random number implementation..."
@@ -6024,8 +6038,11 @@ $ WC "d_fpclassl='undef'"
$ WC "d_fpgetround='undef'"
$ WC "d_fpos64_t='" + d_fpos64_t + "'"
$ WC "d_frexpl='" + d_frexpl + "'"
+$ WC "d_fs_data_s='undef'"
$ WC "d_fseeko='" + d_fseeko + "'"
$ WC "d_fsetpos='define'"
+$ WC "d_fstatfs='undef'"
+$ WC "d_fstatvfs='" + d_fstatvfs + "'"
$ WC "d_fsync='define'"
$ WC "d_ftello='" + d_ftello + "'"
$ WC "d_ftime='define'"
@@ -6035,6 +6052,7 @@ $ WC "d_gdbm_ndbm_h_uses_prototypes='undef'"
$ WC "d_getaddrinfo='define'"
$ WC "d_getcwd='define'"
$ WC "d_getespwnam='undef'"
+$ WC "d_getfsstat='undef'"
$ WC "d_getgrent='define'"
$ WC "d_getgrps='undef'"
$ WC "d_gethbyaddr='" + d_gethbyaddr + "'"
@@ -6044,6 +6062,8 @@ $ WC "d_gethname='" + d_gethname + "'"
$ WC "d_gethostprotos='" + d_gethostprotos + "'"
$ WC "d_getitimer='" + d_getitimer + "'"
$ WC "d_getlogin='define'"
+$ WC "d_getmnt='undef'"
+$ WC "d_getmntent='undef'"
$ WC "d_getnameinfo='define'"
$ WC "d_getnbyaddr='" + d_getnbyaddr + "'"
$ WC "d_getnbyname='" + d_getnbyname + "'"
@@ -6070,6 +6090,7 @@ $ WC "d_gettimeod='" + d_gettimeod + "'"
$ WC "d_gmtime64='undef'"
$ WC "d_gnulibc='undef'"
$ WC "d_grpasswd='undef'"
+$ WC "d_hasmntopt='undef'"
$ WC "d_htonl='" + d_htonl + "'"
$ WC "d_hypot='" + d_hypot + "'"
$ WC "d_ilogb='" + d_ilogb + "'"
@@ -6298,6 +6319,9 @@ $ WC "d_sresproto='undef'"
$ WC "d_sresuproto='undef'"
$ WC "d_stat='define'"
$ WC "d_statblks='undef'"
+$ WC "d_statfs_f_flags='undef'"
+$ WC "d_statfs_s='undef'"
+$ WC "d_statfsflags='undef'"
$ WC "d_static_inline='define'"
$ WC "d_stdio_cnt_lval='" + d_stdio_cnt_lval + "'"
$ WC "d_stdio_ptr_lval='" + d_stdio_ptr_lval + "'"
@@ -6307,6 +6331,7 @@ $ WC "d_stdio_stream_array='undef'"
$ WC "d_stdiobase='" + d_stdiobase + "'"
$ WC "d_stdstdio='" + d_stdstdio + "'"
$ WC "d_faststdio='" + d_faststdio + "'"
+$ WC "d_statvfs='" + d_statvfs + "'"
$ WC "d_strchr='define'"
$ WC "d_strcoll='" + d_strcoll + "'"
$ WC "d_strctcpy='define'"
@@ -6363,6 +6388,7 @@ $ WC "d_unsetenv='" + d_unsetenv + "'"
$ WC "d_clearenv='" + d_clearenv + "'"
$ WC "d_usleep='" + d_usleep + "'"
$ WC "d_usleepproto='" + d_usleep + "'"
+$ WC "d_ustat='undef'"
$ WC "d_vendorarch='undef'"
$ WC "d_vendorbin='undef'"
$ WC "d_vendorlib='undef'"
@@ -6474,6 +6500,7 @@ $ WC "i_malloc='undef'"
$ WC "i_mallocmalloc='undef'"
$ WC "i_math='define'"
$ WC "i_memory='undef'"
+$ WC "i_mntent='undef'"
$ WC "i_ndbm='undef'"
$ WC "i_netdb='" + i_netdb + "'"
$ WC "i_neterrno='define'"
@@ -6509,6 +6536,7 @@ $ WC "i_sysioctl='" + i_sysioctl + "'"
$ WC "i_syslog='" + i_syslog + "'"
$ WC "i_sysmman='undef'"
$ WC "i_sysmode='" + i_sysmode + "'"
+$ WC "i_sysmount='undef'"
$ WC "i_sysndir='undef'"
$ WC "i_sysparam='undef'"
$ WC "i_syspoll='" + i_syspoll + "'"
@@ -6517,6 +6545,8 @@ $ WC "i_syssecrt='" + i_syssecrt + "'"
$ WC "i_sysselct='undef'"
$ WC "i_syssockio='undef'"
$ WC "i_sysstat='define'"
+$ WC "i_sysstatfs='undef'"
+$ WC "i_sysstatvfs='" + i_sysstatvfs + "'"
$ WC "i_systime='undef'"
$ WC "i_systimek='undef'"
$ WC "i_systimes='undef'"
@@ -6524,11 +6554,13 @@ $ WC "i_systypes='define'"
$ WC "i_sysuio='" + i_sysuio + "'"
$ WC "i_sysun='" + i_sysun + "'"
$ WC "i_sysutsname='" + i_sysutsname + "'"
+$ WC "i_sysvfs='undef'"
$ WC "i_syswait='undef'"
$ WC "i_termio='undef'"
$ WC "i_termios='undef'"
$ WC "i_time='define'"
$ WC "i_unistd='" + i_unistd + "'"
+$ WC "i_ustat='undef'"
$ WC "i_utime='" + i_utime + "'"
$ WC "i_values='undef'"
$ WC "i_varargs='undef'"
diff --git a/hints/linux-android.sh b/hints/linux-android.sh
index 51fd5f51f6..6a59cb726e 100644
--- a/hints/linux-android.sh
+++ b/hints/linux-android.sh
@@ -80,6 +80,18 @@ if test "X$android_warn" != X; then
fi
$cat > try.c << 'EOM'
+#include <stdio.h>
+#include <mntent.h>
+#include <unistd.h>
+int main() { (void) getmntent(stdout); return(0); }
+EOM
+$cc $ccflags try.c -o try
+android_warn=`$run ./try 2>&1 | $egrep "$android_stub"`
+if test "X$android_warn" != X; then
+ d_getmntent="$undef"
+fi
+
+$cat > try.c << 'EOM'
#include <netdb.h>
int main() { (void) getprotobyname("foo"); return(0); }
EOM
diff --git a/perl.c b/perl.c
index e3d6545419..f0d056f607 100644
--- a/perl.c
+++ b/perl.c
@@ -3834,6 +3834,14 @@ S_open_script(pTHX_ const char *scriptname, bool dosearch, bool *suidscript)
return rsfp;
}
+/* Mention
+ * I_SYSSTATVFS HAS_FSTATVFS
+ * I_SYSMOUNT
+ * I_STATFS HAS_FSTATFS HAS_GETFSSTAT
+ * I_MNTENT HAS_GETMNTENT HAS_HASMNTOPT
+ * here so that metaconfig picks them up. */
+
+
#ifdef SETUID_SCRIPTS_ARE_SECURE_NOW
/* Don't even need this function. */
#else
diff --git a/plan9/config.plan9 b/plan9/config.plan9
index ce7cb0edc2..722e82999e 100644
--- a/plan9/config.plan9
+++ b/plan9/config.plan9
@@ -1478,12 +1478,24 @@
*/
/*#define HAS_FREXPL / **/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA / **/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO / **/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATFS / **/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -1526,6 +1538,12 @@
*/
/*#define HAS_GETESPWNAM / **/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT / **/
+
/* HAS_GETGRENT:
* This symbol, if defined, indicates that the getgrent routine is
* available for sequential access of the group database.
@@ -1645,6 +1663,18 @@
/*#define HAS_GETLOGIN_R / **/
#define GETLOGIN_R_PROTO 0 /**/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT / **/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+/*#define HAS_GETMNTENT / **/
+
/* HAS_GETNETBYADDR:
* This symbol, if defined, indicates that the getnetbyaddr() routine is
* available to look up networks by their IP addresses.
@@ -1832,6 +1862,11 @@
#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
# define _GNU_SOURCE
#endif
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT / **/
/* HAS_HTONL:
* This symbol, if defined, indicates that the htonl() routine (and
@@ -2390,6 +2425,29 @@
/*#define USE_STAT_BLOCKS / **/
#endif
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS / **/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_STATFS / **/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATVFS / **/
+
/* USE_STDIO_PTR:
* This symbol is defined if the _ptr and _cnt fields (or similar)
* of the stdio FILE structure can be used to access the stdio buffer
@@ -2602,6 +2660,12 @@
*/
/*#define HAS_UNORDERED / **/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+/*#define HAS_USTAT / **/
+
/* HAS_VFORK:
* This symbol, if defined, indicates that vfork() exists.
*/
@@ -2783,6 +2847,12 @@
*/
/*#define I_MACH_CTHREADS / **/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+/*#define I_MNTENT / **/
+
/* I_NETDB:
* This symbol, if defined, indicates that <netdb.h> exists and
* should be included.
@@ -2889,6 +2959,23 @@
*/
/*#define I_SYSMODE / **/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_MOUNT / **/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS / **/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_STATVFS / **/
+
/* I_SYSUIO:
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
@@ -2901,6 +2988,12 @@
*/
#define I_SYSUTSNAME /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS / **/
+
/* Plan 9: P9 has both <time.h> and <sys/time.h> */
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
@@ -2926,6 +3019,12 @@
/*#define I_SYS_TIME_KERNEL / **/
/*#define HAS_TM_TM_ZONE / **/
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+/*#define I_USTAT / **/
+
/* PERL_INC_VERSION_LIST:
* This variable specifies the list of subdirectories in over
* which perl.c:incpush() and lib/lib.pm will automatically
diff --git a/plan9/config_h.sample b/plan9/config_h.sample
index c89ab71453..d88498430c 100644
--- a/plan9/config_h.sample
+++ b/plan9/config_h.sample
@@ -1431,12 +1431,24 @@
*/
/*#define HAS_FREXPL / **/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA / **/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO / **/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATFS / **/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -1479,6 +1491,12 @@
*/
/*#define HAS_GETESPWNAM / **/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT / **/
+
/* HAS_GETGRENT:
* This symbol, if defined, indicates that the getgrent routine is
* available for sequential access of the group database.
@@ -1598,6 +1616,18 @@
/*#define HAS_GETLOGIN_R / **/
#define GETLOGIN_R_PROTO 0 /**/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT / **/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+/*#define HAS_GETMNTENT / **/
+
/* HAS_GETNETBYADDR:
* This symbol, if defined, indicates that the getnetbyaddr() routine is
* available to look up networks by their IP addresses.
@@ -1785,6 +1815,11 @@
#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
# define _GNU_SOURCE
#endif
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT / **/
/* HAS_HTONL:
* This symbol, if defined, indicates that the htonl() routine (and
@@ -2322,6 +2357,29 @@
/*#define USE_STAT_BLOCKS / **/
#endif
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS / **/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_STATFS / **/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATVFS / **/
+
/* USE_STDIO_PTR:
* This symbol is defined if the _ptr and _cnt fields (or similar)
* of the stdio FILE structure can be used to access the stdio buffer
@@ -2534,6 +2592,12 @@
*/
/*#define HAS_UNORDERED / **/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+/*#define HAS_USTAT / **/
+
/* HAS_VFORK:
* This symbol, if defined, indicates that vfork() exists.
*/
@@ -2715,6 +2779,12 @@
*/
/*#define I_MACH_CTHREADS / **/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+/*#define I_MNTENT / **/
+
/* I_NETDB:
* This symbol, if defined, indicates that <netdb.h> exists and
* should be included.
@@ -2821,6 +2891,23 @@
*/
/*#define I_SYSMODE / **/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_MOUNT / **/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS / **/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_STATVFS / **/
+
/* I_SYSUIO:
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
@@ -2833,6 +2920,12 @@
*/
#define I_SYSUTSNAME /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS / **/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
@@ -2857,6 +2950,12 @@
/*#define I_SYS_TIME_KERNEL / **/
/*#define HAS_TM_TM_ZONE / **/
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+/*#define I_USTAT / **/
+
/* PERL_INC_VERSION_LIST:
* This variable specifies the list of subdirectories in over
* which perl.c:incpush() and lib/lib.pm will automatically
diff --git a/plan9/config_sh.sample b/plan9/config_sh.sample
index 86802f02dc..4dd6efb049 100644
--- a/plan9/config_sh.sample
+++ b/plan9/config_sh.sample
@@ -222,8 +222,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='define'
d_ftello='undef'
d_ftime='undef'
@@ -233,6 +236,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='define'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -249,6 +253,8 @@ d_gethostprotos='undef'
d_getitimer='undef'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -289,6 +295,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -514,7 +521,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='undef'
+d_statvfs='undef'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -573,6 +583,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='undef'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -713,6 +724,7 @@ i_malloc='undef'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='define'
i_neterrno='undef'
@@ -743,6 +755,7 @@ i_sysioctl='define'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='define'
i_syspoll='undef'
@@ -751,6 +764,8 @@ i_syssecrt='undef'
i_sysselct='define'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='define'
@@ -758,11 +773,13 @@ i_systypes='define'
i_sysuio='define'
i_sysun='define'
i_sysutsname='define'
+i_sysvfs='undef'
i_syswait='define'
i_termio='undef'
i_termios='define'
i_time='define'
i_unistd='define'
+i_ustat='undef'
i_utime='define'
i_values='undef'
i_varargs='undef'
diff --git a/symbian/config.sh b/symbian/config.sh
index f1cf6ad7b8..a5aa4779a0 100644
--- a/symbian/config.sh
+++ b/symbian/config.sh
@@ -166,8 +166,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='undef'
d_ftello='undef'
d_ftime='undef'
@@ -178,6 +181,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='undef'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -194,6 +198,8 @@ d_gethostprotos='define'
d_getitimer='undef'
d_getlogin='undef'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -235,6 +241,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -462,7 +469,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='undef'
+d_statvfs='undef'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -521,6 +531,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='define'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -640,6 +651,7 @@ i_malloc='undef'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='define'
i_neterrno='undef'
@@ -670,6 +682,7 @@ i_sysioctl='define'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='undef'
i_syspoll='undef'
@@ -678,6 +691,8 @@ i_syssecrt='undef'
i_sysselct='undef'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='define'
i_systimek='undef'
i_systimes='define'
@@ -685,11 +700,13 @@ i_systypes='define'
i_sysuio='undef'
i_sysun='undef'
i_sysutsname='undef'
+i_sysvfs='undef'
i_syswait='undef'
i_termio='undef'
i_termios='undef'
i_time='define'
i_unistd='define'
+i_ustat='undef'
i_utime='undef'
i_values='undef'
i_varargs='undef'
diff --git a/uconfig.h b/uconfig.h
index 127d0a9c3f..58dc073f84 100644
--- a/uconfig.h
+++ b/uconfig.h
@@ -3676,12 +3676,24 @@
*/
/*#define HAS_FREXPL / **/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA / **/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO / **/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATFS / **/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -3719,12 +3731,30 @@
*/
/*#define HAS_GETESPWNAM / **/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT / **/
+
/* HAS_GETITIMER:
* This symbol, if defined, indicates that the getitimer routine is
* available to return interval timers.
*/
/*#define HAS_GETITIMER / **/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT / **/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+/*#define HAS_GETMNTENT / **/
+
/* HAS_GETNAMEINFO:
* This symbol, if defined, indicates that the getnameinfo() function
* is available for use.
@@ -3743,6 +3773,12 @@
*/
/*#define HAS_GETSPNAM / **/
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT / **/
+
/* HAS_HYPOT:
* This symbol, if defined, indicates that the hypot routine is
* available to do the hypotenuse function.
@@ -4252,6 +4288,29 @@
*/
/*#define HAS_SETRESUID_PROTO / **/
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS / **/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_STATFS / **/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATVFS / **/
+
/* HAS_STRFTIME:
* This symbol, if defined, indicates that the strftime routine is
* available to do time formatting.
@@ -4407,6 +4466,12 @@
*/
/*#define HAS_USLEEP_PROTO / **/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+/*#define HAS_USTAT / **/
+
/* HAS_WCSCMP:
* This symbol, if defined, indicates that the wcscmp routine is
* available to compare two wide character strings.
@@ -4543,6 +4608,12 @@
*/
/*#define I_MALLOCMALLOC / **/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+/*#define I_MNTENT / **/
+
/* I_NETINET_TCP:
* This symbol, if defined, indicates to the C program that it should
* include <netinet/tcp.h>.
@@ -4609,12 +4680,41 @@
*/
/*#define I_SYSMODE / **/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_MOUNT / **/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS / **/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_STATVFS / **/
+
/* I_SYSUTSNAME:
* This symbol, if defined, indicates that <sys/utsname.h> exists and
* should be included.
*/
/*#define I_SYSUTSNAME / **/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS / **/
+
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+/*#define I_USTAT / **/
+
/* DOUBLEINFBYTES:
* This symbol, if defined, is a comma-separated list of
* hexadecimal bytes for the double precision infinity.
diff --git a/uconfig.sh b/uconfig.sh
index 97f55a050b..bd889e30f9 100644
--- a/uconfig.sh
+++ b/uconfig.sh
@@ -160,8 +160,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='undef'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='undef'
d_ftello='undef'
d_ftime='undef'
@@ -171,6 +174,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='undef'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='undef'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -187,6 +191,8 @@ d_gethostprotos='undef'
d_getitimer='undef'
d_getlogin='undef'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -228,6 +234,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='undef'
d_hypot='undef'
d_ilogb='undef'
@@ -453,7 +460,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='undef'
+d_statvfs='undef'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -512,6 +522,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='undef'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -626,6 +637,7 @@ i_malloc='undef'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='undef'
i_neterrno='undef'
@@ -656,6 +668,7 @@ i_sysioctl='undef'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='undef'
i_syspoll='undef'
@@ -664,6 +677,8 @@ i_syssecrt='undef'
i_sysselct='undef'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='undef'
@@ -671,11 +686,13 @@ i_systypes='undef'
i_sysuio='undef'
i_sysun='undef'
i_sysutsname='undef'
+i_sysvfs='undef'
i_syswait='undef'
i_termio='undef'
i_termios='undef'
i_time='define'
i_unistd='undef'
+i_ustat='undef'
i_utime='undef'
i_values='undef'
i_varargs='undef'
diff --git a/uconfig64.sh b/uconfig64.sh
index 57b4cae2f3..ec09c1e2f8 100644
--- a/uconfig64.sh
+++ b/uconfig64.sh
@@ -161,8 +161,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='undef'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='undef'
d_ftello='undef'
d_ftime='undef'
@@ -172,6 +175,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='undef'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='undef'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -188,6 +192,8 @@ d_gethostprotos='undef'
d_getitimer='undef'
d_getlogin='undef'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -229,6 +235,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='undef'
d_hypot='undef'
d_ilogb='undef'
@@ -454,7 +461,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='undef'
+d_statvfs='undef'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -513,6 +523,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='undef'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -627,6 +638,7 @@ i_malloc='undef'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='undef'
i_neterrno='undef'
@@ -657,6 +669,7 @@ i_sysioctl='undef'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='undef'
i_syspoll='undef'
@@ -665,6 +678,8 @@ i_syssecrt='undef'
i_sysselct='undef'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='undef'
@@ -672,11 +687,13 @@ i_systypes='undef'
i_sysuio='undef'
i_sysun='undef'
i_sysutsname='undef'
+i_sysvfs='undef'
i_syswait='undef'
i_termio='undef'
i_termios='undef'
i_time='define'
i_unistd='undef'
+i_ustat='undef'
i_utime='undef'
i_values='undef'
i_varargs='undef'
diff --git a/win32/config.ce b/win32/config.ce
index c3f1e4906c..3c10d778d7 100644
--- a/win32/config.ce
+++ b/win32/config.ce
@@ -208,8 +208,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='undef'
d_ftello='undef'
d_ftime='define'
@@ -219,6 +222,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='undef'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -235,6 +239,8 @@ d_gethostprotos='define'
d_getitimer='undef'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -276,6 +282,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -502,7 +509,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='undef'
+d_statvfs='undef'
d_stdio_cnt_lval='undef'
d_stdio_ptr_lval='undef'
d_stdio_ptr_lval_nochange_cnt='undef'
@@ -561,6 +571,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='undef'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -697,6 +708,7 @@ i_malloc='define'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='undef'
i_neterrno='undef'
@@ -727,6 +739,7 @@ i_sysioctl='undef'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='undef'
i_syspoll='undef'
@@ -735,6 +748,8 @@ i_syssecrt='undef'
i_sysselct='undef'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='undef'
@@ -742,11 +757,13 @@ i_systypes='undef'
i_sysuio='undef'
i_sysun='undef'
i_sysutsname='undef'
+i_sysvfs='undef'
i_syswait='undef'
i_termio='undef'
i_termios='undef'
i_time='undef'
i_unistd='undef'
+i_ustat='undef'
i_utime='define'
i_values='undef'
i_varargs='undef'
diff --git a/win32/config.gc b/win32/config.gc
index ac7d288221..e0eb2382b6 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -209,8 +209,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='undef'
d_ftello='undef'
d_ftime='define'
@@ -220,6 +223,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='undef'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -236,6 +240,8 @@ d_gethostprotos='define'
d_getitimer='undef'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -276,6 +282,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -502,7 +509,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='define'
+d_statvfs='undef'
d_stdio_cnt_lval='define'
d_stdio_ptr_lval='define'
d_stdio_ptr_lval_nochange_cnt='define'
@@ -561,6 +571,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='undef'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -709,6 +720,7 @@ i_malloc='define'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='undef'
i_neterrno='undef'
@@ -739,6 +751,7 @@ i_sysioctl='undef'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='undef'
i_syspoll='undef'
@@ -747,6 +760,8 @@ i_syssecrt='undef'
i_sysselct='undef'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='undef'
@@ -754,11 +769,13 @@ i_systypes='define'
i_sysuio='undef'
i_sysun='undef'
i_sysutsname='undef'
+i_sysvfs='undef'
i_syswait='undef'
i_termio='undef'
i_termios='undef'
i_time='define'
i_unistd='undef'
+i_ustat='undef'
i_utime='define'
i_values='undef'
i_varargs='undef'
diff --git a/win32/config.vc b/win32/config.vc
index 2a44a067fd..b4efd32b1b 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -209,8 +209,11 @@ d_fpclassl='undef'
d_fpgetround='undef'
d_fpos64_t='undef'
d_frexpl='undef'
+d_fs_data_s='undef'
d_fseeko='undef'
d_fsetpos='define'
+d_fstatfs='undef'
+d_fstatvfs='undef'
d_fsync='undef'
d_ftello='undef'
d_ftime='define'
@@ -220,6 +223,7 @@ d_gdbmndbm_h_uses_prototypes='undef'
d_getaddrinfo='undef'
d_getcwd='define'
d_getespwnam='undef'
+d_getfsstat='undef'
d_getgrent='undef'
d_getgrent_r='undef'
d_getgrgid_r='undef'
@@ -236,6 +240,8 @@ d_gethostprotos='define'
d_getitimer='undef'
d_getlogin='define'
d_getlogin_r='undef'
+d_getmnt='undef'
+d_getmntent='undef'
d_getnameinfo='undef'
d_getnbyaddr='undef'
d_getnbyname='undef'
@@ -276,6 +282,7 @@ d_gmtime64='undef'
d_gmtime_r='undef'
d_gnulibc='undef'
d_grpasswd='undef'
+d_hasmntopt='undef'
d_htonl='define'
d_hypot='undef'
d_ilogb='undef'
@@ -502,7 +509,10 @@ d_sresgproto='undef'
d_sresuproto='undef'
d_stat='define'
d_statblks='undef'
+d_statfs_f_flags='undef'
+d_statfs_s='undef'
d_static_inline='define'
+d_statvfs='undef'
d_stdio_cnt_lval='define'
d_stdio_ptr_lval='define'
d_stdio_ptr_lval_nochange_cnt='define'
@@ -561,6 +571,7 @@ d_unordered='undef'
d_unsetenv='undef'
d_usleep='undef'
d_usleepproto='undef'
+d_ustat='undef'
d_vendorarch='undef'
d_vendorbin='undef'
d_vendorlib='undef'
@@ -708,6 +719,7 @@ i_malloc='define'
i_mallocmalloc='undef'
i_math='define'
i_memory='undef'
+i_mntent='undef'
i_ndbm='undef'
i_netdb='undef'
i_neterrno='undef'
@@ -738,6 +750,7 @@ i_sysioctl='undef'
i_syslog='undef'
i_sysmman='undef'
i_sysmode='undef'
+i_sysmount='undef'
i_sysndir='undef'
i_sysparam='undef'
i_syspoll='undef'
@@ -746,6 +759,8 @@ i_syssecrt='undef'
i_sysselct='undef'
i_syssockio='undef'
i_sysstat='define'
+i_sysstatfs='undef'
+i_sysstatvfs='undef'
i_systime='undef'
i_systimek='undef'
i_systimes='undef'
@@ -753,11 +768,13 @@ i_systypes='define'
i_sysuio='undef'
i_sysun='undef'
i_sysutsname='undef'
+i_sysvfs='undef'
i_syswait='undef'
i_termio='undef'
i_termios='undef'
i_time='define'
i_unistd='undef'
+i_ustat='undef'
i_utime='define'
i_values='undef'
i_varargs='undef'
diff --git a/win32/config_H.ce b/win32/config_H.ce
index 13f28b2df7..e755bc1312 100644
--- a/win32/config_H.ce
+++ b/win32/config_H.ce
@@ -1409,12 +1409,24 @@
*/
/*#define HAS_FREXPL /**/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA /**/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO /**/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATFS /**/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -1463,6 +1475,12 @@
*/
/*#define HAS_GETESPWNAM /**/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT /**/
+
/* HAS_GETGRENT:
* This symbol, if defined, indicates that the getgrent routine is
* available for sequential access of the group database.
@@ -1582,6 +1600,18 @@
/*#define HAS_GETLOGIN_R /**/
#define GETLOGIN_R_PROTO 0 /**/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT /**/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+/*#define HAS_GETMNTENT /**/
+
/* HAS_GETNETBYADDR:
* This symbol, if defined, indicates that the getnetbyaddr() routine is
* available to look up networks by their IP addresses.
@@ -1769,6 +1799,11 @@
#if defined(HAS_GNULIBC) && !defined(_GNU_SOURCE)
# define _GNU_SOURCE
#endif
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT /**/
/* HAS_HTONL:
* This symbol, if defined, indicates that the htonl() routine (and
@@ -2345,6 +2380,29 @@
/*#define USE_STAT_BLOCKS /**/
#endif
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS /**/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_STATFS /**/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATVFS /**/
+
/* USE_STDIO_PTR:
* This symbol is defined if the _ptr and _cnt fields (or similar)
* of the stdio FILE structure can be used to access the stdio buffer
@@ -2563,6 +2621,12 @@
*/
/*#define HAS_UNSETENV /**/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+/*#define HAS_USTAT /**/
+
/* HAS_VFORK:
* This symbol, if defined, indicates that vfork() exists.
*/
@@ -2784,6 +2848,12 @@
*/
/*#define I_MACH_CTHREADS /**/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+/*#define I_MNTENT /**/
+
/* I_NETDB:
* This symbol, if defined, indicates that <netdb.h> exists and
* should be included.
@@ -2890,6 +2960,23 @@
*/
/*#define I_SYSMODE /**/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_MOUNT /**/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS /**/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_STATVFS /**/
+
/* I_SYSUIO:
* This symbol, if defined, indicates that <sys/uio.h> exists and
* should be included.
@@ -2902,6 +2989,12 @@
*/
/*#define I_SYSUTSNAME /**/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS /**/
+
/* I_TIME:
* This symbol, if defined, indicates to the C program that it should
* include <time.h>.
@@ -2928,6 +3021,12 @@
/*#define HAS_TM_TM_ZONE /**/
/*#define HAS_TM_TM_GMTOFF /**/
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+/*#define I_USTAT /**/
+
/* PERL_INC_VERSION_LIST:
* This variable specifies the list of subdirectories in over
* which perl.c:incpush() and lib/lib.pm will automatically
diff --git a/win32/config_H.gc b/win32/config_H.gc
index 41d8395a47..8480c77bde 100644
--- a/win32/config_H.gc
+++ b/win32/config_H.gc
@@ -3638,12 +3638,24 @@
*/
/*#define HAS_FREXPL / **/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA / **/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO / **/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATFS / **/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -3681,12 +3693,30 @@
*/
/*#define HAS_GETESPWNAM / **/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT / **/
+
/* HAS_GETITIMER:
* This symbol, if defined, indicates that the getitimer routine is
* available to return interval timers.
*/
/*#define HAS_GETITIMER / **/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT / **/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+/*#define HAS_GETMNTENT / **/
+
/* HAS_GETNAMEINFO:
* This symbol, if defined, indicates that the getnameinfo() function
* is available for use.
@@ -3705,6 +3735,12 @@
*/
/*#define HAS_GETSPNAM / **/
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT / **/
+
/* HAS_ILOGBL:
* This symbol, if defined, indicates that the ilogbl routine is
* available. If scalbnl is also present we can emulate frexpl.
@@ -4037,6 +4073,29 @@
*/
/*#define HAS_SETRESUID_PROTO / **/
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS / **/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_STATFS / **/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATVFS / **/
+
/* HAS_STRFTIME:
* This symbol, if defined, indicates that the strftime routine is
* available to do time formatting.
@@ -4180,6 +4239,12 @@
*/
/*#define HAS_USLEEP_PROTO / **/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+/*#define HAS_USTAT / **/
+
/* HAS_WCSCMP:
* This symbol, if defined, indicates that the wcscmp routine is
* available to compare two wide character strings.
@@ -4316,6 +4381,12 @@
*/
/*#define I_MALLOCMALLOC / **/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+/*#define I_MNTENT / **/
+
/* I_NETINET_TCP:
* This symbol, if defined, indicates to the C program that it should
* include <netinet/tcp.h>.
@@ -4376,12 +4447,41 @@
*/
/*#define I_SYSMODE / **/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_MOUNT / **/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS / **/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_STATVFS / **/
+
/* I_SYSUTSNAME:
* This symbol, if defined, indicates that <sys/utsname.h> exists and
* should be included.
*/
/*#define I_SYSUTSNAME / **/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS / **/
+
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+/*#define I_USTAT / **/
+
/* PERL_PRIfldbl:
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for output.
diff --git a/win32/config_H.vc b/win32/config_H.vc
index 7a76f1d5df..f1e851794f 100644
--- a/win32/config_H.vc
+++ b/win32/config_H.vc
@@ -3630,12 +3630,24 @@
*/
/*#define HAS_FREXPL / **/
+/* HAS_STRUCT_FS_DATA:
+ * This symbol, if defined, indicates that the struct fs_data
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_FS_DATA / **/
+
/* HAS_FSEEKO:
* This symbol, if defined, indicates that the fseeko routine is
* available to fseek beyond 32 bits (useful for ILP32 hosts).
*/
/*#define HAS_FSEEKO / **/
+/* HAS_FSTATFS:
+ * This symbol, if defined, indicates that the fstatfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATFS / **/
+
/* HAS_FSYNC:
* This symbol, if defined, indicates that the fsync routine is
* available to write a file's modified data and attributes to
@@ -3673,12 +3685,30 @@
*/
/*#define HAS_GETESPWNAM / **/
+/* HAS_GETFSSTAT:
+ * This symbol, if defined, indicates that the getfsstat routine is
+ * available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT / **/
+
/* HAS_GETITIMER:
* This symbol, if defined, indicates that the getitimer routine is
* available to return interval timers.
*/
/*#define HAS_GETITIMER / **/
+/* HAS_GETMNT:
+ * This symbol, if defined, indicates that the getmnt routine is
+ * available to get filesystem mount info by filename.
+ */
+/*#define HAS_GETMNT / **/
+
+/* HAS_GETMNTENT:
+ * This symbol, if defined, indicates that the getmntent routine is
+ * available to iterate through mounted file systems to get their info.
+ */
+/*#define HAS_GETMNTENT / **/
+
/* HAS_GETNAMEINFO:
* This symbol, if defined, indicates that the getnameinfo() function
* is available for use.
@@ -3697,6 +3727,12 @@
*/
/*#define HAS_GETSPNAM / **/
+/* HAS_HASMNTOPT:
+ * This symbol, if defined, indicates that the hasmntopt routine is
+ * available to query the mount options of file systems.
+ */
+/*#define HAS_HASMNTOPT / **/
+
/* HAS_ILOGBL:
* This symbol, if defined, indicates that the ilogbl routine is
* available. If scalbnl is also present we can emulate frexpl.
@@ -4029,6 +4065,29 @@
*/
/*#define HAS_SETRESUID_PROTO / **/
+/* HAS_STRUCT_STATFS_F_FLAGS:
+ * This symbol, if defined, indicates that the struct statfs
+ * does have the f_flags member containing the mount flags of
+ * the filesystem containing the file.
+ * This kind of struct statfs is coming from <sys/mount.h> (BSD 4.3),
+ * not from <sys/statfs.h> (SYSV). Older BSDs (like Ultrix) do not
+ * have statfs() and struct statfs, they have ustat() and getmnt()
+ * with struct ustat and struct fs_data.
+ */
+/*#define HAS_STRUCT_STATFS_F_FLAGS / **/
+
+/* HAS_STRUCT_STATFS:
+ * This symbol, if defined, indicates that the struct statfs
+ * to do statfs() is supported.
+ */
+/*#define HAS_STRUCT_STATFS / **/
+
+/* HAS_FSTATVFS:
+ * This symbol, if defined, indicates that the fstatvfs routine is
+ * available to stat filesystems by file descriptors.
+ */
+/*#define HAS_FSTATVFS / **/
+
/* HAS_STRFTIME:
* This symbol, if defined, indicates that the strftime routine is
* available to do time formatting.
@@ -4172,6 +4231,12 @@
*/
/*#define HAS_USLEEP_PROTO / **/
+/* HAS_USTAT:
+ * This symbol, if defined, indicates that the ustat system call is
+ * available to query file system statistics by dev_t.
+ */
+/*#define HAS_USTAT / **/
+
/* HAS_WCSCMP:
* This symbol, if defined, indicates that the wcscmp routine is
* available to compare two wide character strings.
@@ -4308,6 +4373,12 @@
*/
/*#define I_MALLOCMALLOC / **/
+/* I_MNTENT:
+ * This symbol, if defined, indicates that <mntent.h> exists and
+ * should be included.
+ */
+/*#define I_MNTENT / **/
+
/* I_NETINET_TCP:
* This symbol, if defined, indicates to the C program that it should
* include <netinet/tcp.h>.
@@ -4368,12 +4439,41 @@
*/
/*#define I_SYSMODE / **/
+/* I_SYS_MOUNT:
+ * This symbol, if defined, indicates that <sys/mount.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_MOUNT / **/
+
+/* I_SYS_STATFS:
+ * This symbol, if defined, indicates that <sys/statfs.h> exists.
+ */
+/*#define I_SYS_STATFS / **/
+
+/* I_SYS_STATVFS:
+ * This symbol, if defined, indicates that <sys/statvfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_STATVFS / **/
+
/* I_SYSUTSNAME:
* This symbol, if defined, indicates that <sys/utsname.h> exists and
* should be included.
*/
/*#define I_SYSUTSNAME / **/
+/* I_SYS_VFS:
+ * This symbol, if defined, indicates that <sys/vfs.h> exists and
+ * should be included.
+ */
+/*#define I_SYS_VFS / **/
+
+/* I_USTAT:
+ * This symbol, if defined, indicates that <ustat.h> exists and
+ * should be included.
+ */
+/*#define I_USTAT / **/
+
/* PERL_PRIfldbl:
* This symbol, if defined, contains the string used by stdio to
* format long doubles (format 'f') for output.