This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Configure: VAX format H
authorJarkko Hietaniemi <jhi@iki.fi>
Wed, 27 Jul 2016 02:10:42 +0000 (22:10 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Thu, 28 Jul 2016 02:01:02 +0000 (22:01 -0400)
Configure
config_h.SH
uconfig.h

index 3a96351..658291d 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -7044,6 +7044,16 @@ int main() {
     exit(0);
   }
 #endif
+/* We are largely making this up because it may well be
+ * that the VAX format H was never made available to C,
+ * only to Fortran. */
+#if LONGDBLSIZE == 16 && defined(__vax__)
+  if (b[0] == 0xFD && b[15] == 0x99) {
+    /* VAX format H, PDP-11 mixed endian. */
+    printf("9\n");
+    exit(0);
+  }
+#endif
   printf("-1\n"); /* unknown */
   exit(0);
 }
@@ -7065,8 +7075,9 @@ case "$longdblkind" in
 4) echo "You have x86 80-bit big endian long doubles." >& 4 ;;
 5) echo "You have 128-bit fully little-endian double-double long doubles (64-bit LEs in LE)." >& 4 ;;
 6) echo "You have 128-bit fully big-endian double-double long doubles (64-bit BEs in BE)." >& 4 ;;
-7) echo "You have 128-bit mixed double-double long doubles (64-bit LEs in BE)." >& 4 ;;
-8) echo "You have 128-bit mixed double-double long doubles (64-bit BEs in LE)." >& 4 ;;
+7) echo "You have 128-bit mixed-endian double-double long doubles (64-bit LEs in BE)." >& 4 ;;
+8) echo "You have 128-bit mixed-endian double-double long doubles (64-bit BEs in LE)." >& 4 ;;
+9) echo "You have 128-bit PDP-style mixed-endian long doubles." >& 4 ;;
 *) echo "Cannot figure out your long double." >&4 ;;
 esac
 $rm_try
index 9d3b5d8..2aa37c3 100755 (executable)
@@ -1959,6 +1959,7 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE      6
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE      7
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE      8
+#define LONG_DOUBLE_IS_VAX_H_FLOAT                     9
 #define LONG_DOUBLE_IS_UNKNOWN_FORMAT                  -1
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN      LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE /* back-compat */
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE /* back-compat */
index 415ec7c..3f38508 100644 (file)
--- a/uconfig.h
+++ b/uconfig.h
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE      6
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE      7
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE      8
+#define LONG_DOUBLE_IS_VAX_H_FLOAT                     9
 #define LONG_DOUBLE_IS_UNKNOWN_FORMAT                  -1
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN      LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE /* back-compat */
 #define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE /* back-compat */
 #endif
 
 /* Generated from:
- * 8559c6ec4e935f6478ac3149c106aed3eacfd60544281f97fd1383110d8a5cce config_h.SH
+ * 6ebf4d7bc0bc6e96ef5cba3f8321c118c457d80034521b13e3086ef8ee1c850d config_h.SH
  * 3b14c76342a834042da506e8c3b4269f7d545453079733cb740970ab9cc4294e uconfig.sh
  * ex: set ro: */