This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Assume C89 "volatile" keyword
authorAaron Crane <arc@cpan.org>
Thu, 12 Oct 2017 13:46:20 +0000 (15:46 +0200)
committerAaron Crane <arc@cpan.org>
Sat, 21 Oct 2017 15:51:53 +0000 (16:51 +0100)
The Configure changes here were generated using a version of metaconfig
that makes U/perl/perlxv.U assume that the keyword exists, and prevents
U/modified/d_volatile.U from promising to define a "volatile" keyword;
otherwise, those units would bring in the relevant Configure probe anyway.

26 files changed:
Configure
Cross/config.sh-arm-linux
Cross/config.sh-arm-linux-n770
NetWare/config.wc
NetWare/config_H.wc
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
configure.com
hints/mips.sh
hints/ultrix_4.sh
perl.h
plan9/config.plan9
plan9/config_h.sample
plan9/config_sh.sample
symbian/config.sh
uconfig.h
uconfig.sh
uconfig64.sh
win32/config.ce
win32/config.gc
win32/config.vc
win32/config_H.ce
win32/config_H.gc
win32/config_H.vc

index 6a9dccc..7dba1da 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -928,7 +928,6 @@ d_vfork=''
 usevfork=''
 d_voidsig=''
 signal_t=''
-d_volatile=''
 d_charvspr=''
 d_vprintf=''
 d_wait4=''
@@ -16836,37 +16835,6 @@ eval $inlibc
 set quadmath.h i_quadmath
 eval $inhdr
 
-: check for volatile keyword
-echo " "
-echo 'Checking to see if your C compiler knows about "volatile"...' >&4
-$cat >try.c <<'EOCP'
-int main()
-{
-       typedef struct _goo_struct goo_struct;
-       goo_struct * volatile goo = ((goo_struct *)0);
-       struct _goo_struct {
-               long long_int;
-               int reg_int;
-               char char_var;
-       };
-       typedef unsigned short foo_t;
-       char *volatile foo;
-       volatile int bar;
-       volatile foo_t blech;
-       foo = foo;
-}
-EOCP
-if $cc -c $ccflags try.c >/dev/null 2>&1 ; then
-       val="$define"
-       echo "Yup, it does."
-else
-       val="$undef"
-       echo "Nope, it doesn't."
-fi
-set d_volatile
-eval $setvar
-$rm_try
-
 : Check basic sizes
 echo " "
 $echo "Choosing the C types to be used for Perl's internal types..." >&4
@@ -17060,10 +17028,6 @@ case "$i64type" in
 esac
 
 $echo "Checking how many bits of your UVs your NVs can preserve..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 #$i_stdlib I_STDLIB
@@ -17073,7 +17037,8 @@ $cat <<EOP >try.c
 #include <sys/types.h>
 #include <signal.h>
 #ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
 $signal_t blech(int s) { bletched = 1; }
 #endif
 int main() {
@@ -17124,10 +17089,6 @@ esac
 $rm_try
 
 $echo "Checking to find the largest integer value your NVs can hold..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 
@@ -17139,10 +17100,11 @@ main() {
   int count = 1;
 
   while(count < 256) {
-    $volatile NV up = value + 1.0;
-    $volatile NV negated = -value;
-    $volatile NV down = negated - 1.0;
-    $volatile NV got_up = up - value;
+    /* volatile so that the compiler has to store it out to memory */
+    volatile NV up = value + 1.0;
+    volatile NV negated = -value;
+    volatile NV down = negated - 1.0;
+    volatile NV got_up = up - value;
     int up_good = got_up == 1.0;
     int got_down = down - negated;
     int down_good = got_down == -1.0;
 $rm_try
 
 $echo "Checking whether NV 0.0 is all bits zero in memory..." >&4
-: volatile so that the compiler has to store it out to memory.
-if test X"$d_volatile" = X"$define"; then
-       volatile=volatile
-fi
 $cat <<EOP >try.c
 #include <stdio.h>
 #$i_stdlib I_STDLIB
@@ -17226,7 +17184,8 @@ $cat <<EOP >try.c
 #include <sys/types.h>
 #include <signal.h>
 #ifdef SIGFPE
-$volatile int bletched = 0;
+/* volatile so that the compiler has to store it out to memory */
+volatile int bletched = 0;
 $signal_t blech(int s) { bletched = 1; }
 #endif
 
@@ -24946,7 +24905,6 @@ d_vfork='$d_vfork'
 d_void_closedir='$d_void_closedir'
 d_voidsig='$d_voidsig'
 d_voidtty='$d_voidtty'
-d_volatile='$d_volatile'
 d_vprintf='$d_vprintf'
 d_vsnprintf='$d_vsnprintf'
 d_wait4='$d_wait4'
index 9de265e..51fca47 100644 (file)
@@ -624,7 +624,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='define'
index c6903d0..1739595 100644 (file)
@@ -496,7 +496,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='define'
index 2f8f555..31593db 100644 (file)
@@ -613,7 +613,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
index 436b061..5c67388 100644 (file)
  */
 /*#define HAS_USLEEP           /**/
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#define        HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* HAS_WAIT4:
  *     This symbol, if defined, indicates that wait4() exists.
  */
index 6053672..1e1deab 100644 (file)
@@ -2848,11 +2848,6 @@ d_voidtty (i_sysioctl.U):
        Otherwise (on USG probably), it is enough to close the standard file
        descriptors and do a setpgrp().
 
-d_volatile (d_volatile.U):
-       This variable conditionally defines the HASVOLATILE symbol, which
-       indicates to the C program that this C compiler knows about the
-       volatile declaration.
-
 d_vprintf (d_vprintf.U):
        This variable conditionally defines the HAS_VPRINTF symbol, which
        indicates to the C program that the vprintf() routine is available
index a050b33..61b921c 100644 (file)
@@ -637,7 +637,6 @@ d_vfork='define'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='define'
index 8ca64d8..255303e 100644 (file)
  */
 #define Signal_t void  /* Signal handler's return type */
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#define        HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* I_DIRENT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <dirent.h>. Using this symbol also triggers the definition
index 66039d3..e2ff49d 100755 (executable)
@@ -2168,15 +2168,6 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
  */
 #define Signal_t $signal_t     /* Signal handler's return type */
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#$d_volatile   HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* I_DIRENT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <dirent.h>. Using this symbol also triggers the definition
index db85307..f3048b8 100644 (file)
@@ -6469,7 +6469,6 @@ $ WC "d_vms_shorten_long_symbols='" + d_vms_shorten_long_symbols + "'" ! VMS
 $ WC "d_void_closedir='define'"
 $ WC "d_voidsig='undef'"
 $ WC "d_voidtty='" + "'"
-$ WC "d_volatile='define'"
 $ WC "d_vprintf='define'"
 $ WC "d_vsnprintf='" + d_vsnprintf + "'"
 $ WC "d_wait4='" + d_wait4 + "'"
index bc0b7e8..61ab39a 100644 (file)
@@ -1,5 +1,4 @@
 perl_cflags='optimize="-g"'
-d_volatile=undef
 d_castneg=undef
 cc=cc
 glibpth="/usr/lib/cmplrs/cc $glibpth"
index e736082..f32f06d 100644 (file)
@@ -38,10 +38,6 @@ case "$cc" in
     *4.2*)     ccflags="$ccflags -DLANGUAGE_C -Olimit 3800"
                # Prototypes sometimes cause compilation errors in 4.2.
                prototype=undef   
-               case "$myuname" in
-               *risc*)  d_volatile=undef ;;
-               esac
-               ;;
     *4.3*)     ccflags="$ccflags -std1 -DLANGUAGE_C -Olimit 3800" ;;
     *) ccflags="$ccflags -std -Olimit 3800" ;;
     esac
diff --git a/perl.h b/perl.h
index 7c698cf..1623057 100644 (file)
--- a/perl.h
+++ b/perl.h
 # define DONT_DECLARE_STD 1
 #endif
 
-#if defined(HASVOLATILE) || defined(STANDARD_C)
-#      define VOL volatile
-#else
-#   define VOL
-#endif
+/* This exists only for back-compat. */
+#define VOL volatile
 
 /* By compiling a perl with -DNO_TAINT_SUPPORT or -DSILENT_NO_TAINT_SUPPORT,
  * you get a perl without taint support, but doubtlessly with a lesser
index 4a2a305..1afcbaf 100644 (file)
  */
 /*#define HAS_USLEEP           / **/
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#define        HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile       /* config-skip */
-#endif
-
 /* HAS_WAIT4:
  *     This symbol, if defined, indicates that wait4() exists.
  */
index 6e76bdd..766426e 100644 (file)
  */
 /*#define HAS_USLEEP           / **/
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#define        HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* HAS_WAIT4:
  *     This symbol, if defined, indicates that wait4() exists.
  */
index 6315595..f35bb1f 100644 (file)
@@ -623,7 +623,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
index 2af4d0d..90980d7 100644 (file)
@@ -571,7 +571,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='undef'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
index 17b0437..125994b 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
  */
 #define Signal_t int   /* Signal handler's return type */
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-/*#define      HASVOLATILE     / **/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* I_DIRENT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <dirent.h>. Using this symbol also triggers the definition
 #endif
 
 /* Generated from:
- * b0245f5f4da83b1e4e1dbcd8ffe33f50da89f790dc389b2868fc620cf460c375 config_h.SH
- * f8fa6d0de3a2fb09b8ae480de350caefa12b0272cc67b1bc9f7e02427a3e9a14 uconfig.sh
+ * de64a83defbfab2e684766a378e7304e30db7e2e8545430f86e0239f6850ac8a config_h.SH
+ * 034e09d42cd2ce87573eb1bd11b7169cb5a57d0d0741d379d39c1f3c4fc2f24e uconfig.sh
  * ex: set ro: */
index b5a7d25..616eab6 100644 (file)
@@ -562,7 +562,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='undef'
 d_voidtty=''
-d_volatile='undef'
 d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
index 0751f9a..0842bad 100644 (file)
@@ -563,7 +563,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='undef'
 d_voidtty=''
-d_volatile='undef'
 d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
index 55a5f57..8ae0159 100644 (file)
@@ -611,7 +611,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='undef'
 d_wait4='undef'
index 07d9a95..528dc93 100644 (file)
@@ -612,7 +612,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='undef'
index a1b1164..f0dc118 100644 (file)
@@ -612,7 +612,6 @@ d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
 d_voidtty=''
-d_volatile='define'
 d_vprintf='define'
 d_vsnprintf='define'
 d_wait4='undef'
index 8146c77..22cef32 100644 (file)
  */
 /*#define HAS_USLEEP           /**/
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#define        HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* HAS_WAIT4:
  *     This symbol, if defined, indicates that wait4() exists.
  */
index f2dbf31..ddb834b 100644 (file)
  */
 #define Signal_t void  /* Signal handler's return type */
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#define        HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* I_DIRENT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <dirent.h>. Using this symbol also triggers the definition
index 990c330..0eb1f8a 100644 (file)
  */
 #define Signal_t void  /* Signal handler's return type */
 
-/* HASVOLATILE:
- *     This symbol, if defined, indicates that this C compiler knows about
- *     the volatile declaration.
- */
-#define        HASVOLATILE     /**/
-#ifndef HASVOLATILE
-#define volatile
-#endif
-
 /* I_DIRENT:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <dirent.h>. Using this symbol also triggers the definition