Configure patch to add detection for DIR.dd_fd member variable
Steve Peters [Sun, 5 Nov 2006 01:40:34 +0000 (19:40 -0600)]
From: "Steve Peters" <steve.peters@gmail.com>
Message-ID: <fd7a59d30611042340p5543442ctad306aeb748b6bfe@mail.gmail.com>

p4raw-id: //depot/perl@29238

15 files changed:
Configure
Cross/config.sh-arm-linux
NetWare/config.wc
Porting/Glossary
config_h.SH
configure.com
epoc/config.sh
handy.h
plan9/config_sh.sample
symbian/config.sh
uconfig.sh
win32/config.bc
win32/config.gc
win32/config.vc
win32/config.vc64

index 0e4de27..533bf25 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -26,7 +26,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Mon Nov  6 16:18:02 CET 2006 [metaconfig 3.0 PL70]
+# Generated on Wed Nov  8 17:31:20 CET 2006 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.org)
 
 cat >c1$$ <<EOF
@@ -401,6 +401,7 @@ d_cuserid=''
 d_dbl_dig=''
 d_dbminitproto=''
 d_difftime=''
+d_dir_dd_fd=''
 d_dirfd=''
 d_dlerror=''
 d_dlopen=''
@@ -11248,6 +11249,42 @@ set d_dirnamlen
 eval $setvar
 $rm -f try.c
 
+: Look for DIR.dd_fd
+case "$i_dirent" in
+"$define")
+    echo "Checking to see if DIR has a dd_fd member variable" >&4
+    $cat >try.c <<EOCP
+#$i_stdlib I_STDLIB
+#ifdef I_STDLIB
+#include <stdlib.h>
+#endif
+#include <dirent.h>
+
+int main() {
+    DIR dir;
+    dir.dd_fd = 1;
+    return 0;
+}
+EOCP
+    val=$undef
+    set try
+    if eval $compile; then
+        echo "Yes, it does."
+        val="$define"
+    else
+        echo "No, it does not."
+        val="$undef"
+    fi
+    ;;
+*)
+    echo "You don't have a <dirent.h>, so not checking for dd_fd." >&4
+    val="$undef"
+    ;;
+esac
+set d_dir_dd_fd
+eval $setvar
+$rm -f try try.*
+
 : see if this is an sysdir system
 set sys/dir.h i_sysdir
 eval $inhdr
@@ -21438,6 +21475,7 @@ d_cuserid='$d_cuserid'
 d_dbl_dig='$d_dbl_dig'
 d_dbminitproto='$d_dbminitproto'
 d_difftime='$d_difftime'
+d_dir_dd_fd='$d_dir_dd_fd'
 d_dirfd='$d_dirfd'
 d_dirnamlen='$d_dirnamlen'
 d_dlerror='$d_dlerror'
index be17a38..ce98b3d 100644 (file)
@@ -148,6 +148,7 @@ d_cuserid='define'
 d_dbl_dig='define'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='define'
 d_dirnamlen='undef'
 d_dlerror='define'
index 675d934..e84b02e 100644 (file)
@@ -135,6 +135,7 @@ d_cuserid='undef'
 d_dbl_dig='define'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
 d_dlerror='define'
index 0c6b247..0f89187 100644 (file)
@@ -588,6 +588,11 @@ d_difftime (d_difftime.U):
        This variable conditionally defines the HAS_DIFFTIME symbol, which
        indicates to the C program that the difftime() routine is available.
 
+d_dir_dd_fd (d_dir_dd_fd.U)
+       This variable conditionally defines the HAS_DIR_DD_FD symbol, which
+       indicates that the DIR directory stream type contains a member
+       variable called dd_fd.
+
 d_dirfd (d_dirfd.U):
        This variable conditionally defines the HAS_DIRFD constant,
        which indicates to the C program that dirfd() is available
index 957c05b..abcea7e 100644 (file)
@@ -4456,5 +4456,11 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define M_VOID                 /* Xenix strikes again */
 #endif
 
+/* HAS_DIR_DD_FD:
+ *     This symbol, if defined, indicates that the the DIR* dirstream
+ *     structure contains a member variable named dd_fd.
+ */
+#$d_dir_dd_fd HAS_DIR_DD_FD            /**/
+
 #endif
 !GROK!THIS!
index 47537f0..aeb18fe 100644 (file)
@@ -5708,6 +5708,7 @@ $ WC "d_c99_variadic_macros='undef'"
 $ WC "d_dbl_dig='define'"
 $ WC "d_dbminitproto='undef'"
 $ WC "d_difftime='define'"
+$ WC "d_dir_dd_fd='undef'"
 $ WC "d_dirfd='undef'"
 $ WC "d_dirnamlen='define'"
 $ WC "d_dlerror='undef'"
index 03e4261..ad559c8 100644 (file)
@@ -140,6 +140,7 @@ d_cuserid='undef'
 d_dbl_dig='undef'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
 d_dlerror='undef'
diff --git a/handy.h b/handy.h
index 0aa2b78..81bdd03 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -175,7 +175,7 @@ typedef U64TYPE U64;
 #endif
 
 /* HMB H.Merijn Brand - a placeholder for preparing Configure patches */
-#if defined(HAS_MALLOC_SIZE) && defined(LOCALTIME_R_NEEDS_TZSET)
+#if defined(HAS_MALLOC_SIZE) && defined(LOCALTIME_R_NEEDS_TZSET) && defined(HAS_DIR_DD_FD)
 /* Not (yet) used at top level, but mention them for metaconfig */
 #endif
 
index 08d181b..86771d9 100644 (file)
@@ -146,6 +146,7 @@ d_cuserid='define'
 d_dbl_dig='define'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
 d_dlerror='undef'
index 4824a3e..450effb 100644 (file)
@@ -89,6 +89,7 @@ d_cuserid='undef'
 d_dbl_dig='undef'
 d_dbminitproto='undef'
 d_difftime='undef'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
 d_dlerror='undef'
index b1d6c71..2e903d1 100755 (executable)
@@ -78,6 +78,7 @@ d_cuserid='undef'
 d_dbl_dig='undef'
 d_dbminitproto='undef'
 d_difftime='undef'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='undef'
 d_dlerror='undef'
index cd2dca4..077685d 100644 (file)
@@ -137,6 +137,7 @@ d_cuserid='undef'
 d_dbl_dig='define'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
 d_dlerror='define'
index 8f45dd0..7030d74 100644 (file)
@@ -137,6 +137,7 @@ d_cuserid='undef'
 d_dbl_dig='define'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
 d_dlerror='define'
index 0fbc876..0c50145 100644 (file)
@@ -137,6 +137,7 @@ d_cuserid='undef'
 d_dbl_dig='define'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
 d_dlerror='define'
index 8549af7..7ac7fe9 100644 (file)
@@ -137,6 +137,7 @@ d_cuserid='undef'
 d_dbl_dig='define'
 d_dbminitproto='undef'
 d_difftime='define'
+d_dir_dd_fd='undef'
 d_dirfd='undef'
 d_dirnamlen='define'
 d_dlerror='define'