diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 2015-12-08 08:48:40 -0500 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 2015-12-14 06:38:34 -0500 |
commit | 3118d7d684b56cbeb702af874f4326683c45f045 (patch) | |
tree | 937a3fec05ec874b35552c3d82fe01a6c9fb83a6 /win32 | |
parent | b5897239a0c3c2f5ec699690086b30e7db4305d4 (diff) | |
download | perl-3118d7d684b56cbeb702af874f4326683c45f045.tar.gz |
Configure: mixed-endian double-doubles
The ppc64el is the first seen little-endian double-double (and also
the first little-endian ppc), but it turns out its little-endianness
is mixed: the doubles are still in big-endian order. Configure was
expecting wrongly a fully byte-reversed double-double.
Therefore extend the long double format detection to cover all the
(double-double) permutations, though the formats of five and eight
are rather unlikely (based on current platforms using double-double).
Diffstat (limited to 'win32')
-rw-r--r-- | win32/config_H.gc | 12 | ||||
-rw-r--r-- | win32/config_H.vc | 12 |
2 files changed, 16 insertions, 8 deletions
diff --git a/win32/config_H.gc b/win32/config_H.gc index 8480c77bde..2254974a27 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -1918,8 +1918,10 @@ * LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN * LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN * LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN - * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN - * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE * LONG_DOUBLE_IS_UNKNOWN_FORMAT * It is only defined if the system supports long doubles. */ @@ -1933,8 +1935,10 @@ #define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 2 #define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN 3 #define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN 4 -#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN 5 -#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN 6 +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE 5 +#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_UNKNOWN_FORMAT -1 #endif diff --git a/win32/config_H.vc b/win32/config_H.vc index f1e851794f..3d17f639ea 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -1912,8 +1912,10 @@ * LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN * LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN * LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN - * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN - * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_BE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_BE + * LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BE_LE * LONG_DOUBLE_IS_UNKNOWN_FORMAT * It is only defined if the system supports long doubles. */ @@ -1927,8 +1929,10 @@ #define LONG_DOUBLE_IS_IEEE_754_128_BIT_BIG_ENDIAN 2 #define LONG_DOUBLE_IS_X86_80_BIT_LITTLE_ENDIAN 3 #define LONG_DOUBLE_IS_X86_80_BIT_BIG_ENDIAN 4 -#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LITTLE_ENDIAN 5 -#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_BIG_ENDIAN 6 +#define LONG_DOUBLE_IS_DOUBLEDOUBLE_128_BIT_LE_LE 5 +#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_UNKNOWN_FORMAT -1 #endif |