Ignore:
Timestamp:
Feb 3, 2017, 2:02:34 PM (8 years ago)
Author:
Silvan Scherrer
Message:

cpio: update vendor to version 2.12

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified cpio/vendor/current/gnu/float.in.h

    r118 r1964  
    1 /* -*- buffer-read-only: t -*- vi: set ro: */
    2 /* DO NOT EDIT! GENERATED AUTOMATICALLY! */
    31/* A correct <float.h>.
    42
    5    Copyright (C) 2007-2010 Free Software Foundation, Inc.
     3   Copyright (C) 2007-2015 Free Software Foundation, Inc.
    64
    75   This program is free software: you can redistribute it and/or modify
     
    1816   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1917
    20 #ifndef _GL_FLOAT_H
     18#ifndef _@GUARD_PREFIX@_FLOAT_H
    2119
    2220#if __GNUC__ >= 3
    2321@PRAGMA_SYSTEM_HEADER@
    2422#endif
     23@PRAGMA_COLUMNS@
    2524
    2625/* The include_next requires a split double-inclusion guard.  */
    2726#@INCLUDE_NEXT@ @NEXT_FLOAT_H@
    2827
    29 #ifndef _GL_FLOAT_H
    30 #define _GL_FLOAT_H
     28#ifndef _@GUARD_PREFIX@_FLOAT_H
     29#define _@GUARD_PREFIX@_FLOAT_H
    3130
    3231/* 'long double' properties.  */
     32
    3333#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
    3434/* Number of mantissa units, in base FLT_RADIX.  */
     
    6161#endif
    6262
    63 #endif /* _GL_FLOAT_H */
    64 #endif /* _GL_FLOAT_H */
     63/* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of
     64   precision in the compiler but 64 bits of precision at runtime.  See
     65   <http://lists.gnu.org/archive/html/bug-gnulib/2008-07/msg00063.html>.  */
     66#if defined __i386__ && defined __FreeBSD__
     67/* Number of mantissa units, in base FLT_RADIX.  */
     68# undef LDBL_MANT_DIG
     69# define LDBL_MANT_DIG   64
     70/* Number of decimal digits that is sufficient for representing a number.  */
     71# undef LDBL_DIG
     72# define LDBL_DIG        18
     73/* x-1 where x is the smallest representable number > 1.  */
     74# undef LDBL_EPSILON
     75# define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */
     76/* Minimum e such that FLT_RADIX^(e-1) is a normalized number.  */
     77# undef LDBL_MIN_EXP
     78# define LDBL_MIN_EXP    (-16381)
     79/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number.  */
     80# undef LDBL_MAX_EXP
     81# define LDBL_MAX_EXP    16384
     82/* Minimum positive normalized number.  */
     83# undef LDBL_MIN
     84# define LDBL_MIN        3.3621031431120935E-4932L /* = 0x1p-16382L */
     85/* Maximum representable finite number.  */
     86# undef LDBL_MAX
     87/* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }.
     88   But the largest literal that GCC allows us to write is
     89   0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }.
     90   So, define it like this through a reference to an external variable
     91
     92     const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 };
     93     extern const long double LDBL_MAX;
     94
     95   Unfortunately, this is not a constant expression.  */
     96union gl_long_double_union
     97  {
     98    struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd;
     99    long double ld;
     100  };
     101extern const union gl_long_double_union gl_LDBL_MAX;
     102# define LDBL_MAX (gl_LDBL_MAX.ld)
     103/* Minimum e such that 10^e is in the range of normalized numbers.  */
     104# undef LDBL_MIN_10_EXP
     105# define LDBL_MIN_10_EXP (-4931)
     106/* Maximum e such that 10^e is in the range of representable finite numbers.  */
     107# undef LDBL_MAX_10_EXP
     108# define LDBL_MAX_10_EXP 4932
     109#endif
     110
     111/* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are
     112   wrong.
     113   On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong.  */
     114#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
     115# undef LDBL_MIN_EXP
     116# define LDBL_MIN_EXP DBL_MIN_EXP
     117# undef LDBL_MIN_10_EXP
     118# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
     119# undef LDBL_MIN
     120# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
     121#endif
     122#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
     123# undef LDBL_MAX
     124/* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }.
     125   It is not easy to define:
     126     #define LDBL_MAX 1.79769313486231580793728971405302307166e308L
     127   is too small, whereas
     128     #define LDBL_MAX 1.79769313486231580793728971405302307167e308L
     129   is too large.  Apparently a bug in GCC decimal-to-binary conversion.
     130   Also, I can't get values larger than
     131     #define LDBL63 ((long double) (1ULL << 63))
     132     #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
     133     #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
     134     #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
     135     #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL)
     136   which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }.
     137   So, define it like this through a reference to an external variable
     138
     139     const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL };
     140     extern const long double LDBL_MAX;
     141
     142   or through a pointer cast
     143
     144     #define LDBL_MAX \
     145       (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL })
     146
     147   Unfortunately, this is not a constant expression, and the latter expression
     148   does not work well when GCC is optimizing..  */
     149union gl_long_double_union
     150  {
     151    struct { double hi; double lo; } dd;
     152    long double ld;
     153  };
     154extern const union gl_long_double_union gl_LDBL_MAX;
     155# define LDBL_MAX (gl_LDBL_MAX.ld)
     156#endif
     157
     158/* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong.
     159   On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON
     160   are wrong.  */
     161#if defined __sgi && (LDBL_MANT_DIG >= 106)
     162# undef LDBL_MANT_DIG
     163# define LDBL_MANT_DIG 106
     164# if defined __GNUC__
     165#  undef LDBL_MIN_EXP
     166#  define LDBL_MIN_EXP DBL_MIN_EXP
     167#  undef LDBL_MIN_10_EXP
     168#  define LDBL_MIN_10_EXP DBL_MIN_10_EXP
     169#  undef LDBL_MIN
     170#  define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
     171#  undef LDBL_EPSILON
     172#  define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */
     173# endif
     174#endif
     175
     176#if @REPLACE_ITOLD@
     177/* Pull in a function that fixes the 'int' to 'long double' conversion
     178   of glibc 2.7.  */
     179extern
     180# ifdef __cplusplus
     181"C"
     182# endif
     183void _Qp_itoq (long double *, int);
     184static void (*_gl_float_fix_itold) (long double *, int) = _Qp_itoq;
     185#endif
     186
     187#endif /* _@GUARD_PREFIX@_FLOAT_H */
     188#endif /* _@GUARD_PREFIX@_FLOAT_H */
Note: See TracChangeset for help on using the changeset viewer.