(root)/
glibc-2.38/
bits/
long-double.h
       1  /* Properties of long double type.
       2     Copyright (C) 2016-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public
       7     License  published by the Free Software Foundation; either
       8     version 2.1 of the License, or (at your option) any later version.
       9  
      10     The GNU C Library is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  /* This header is included by <sys/cdefs.h>.
      20  
      21     If long double is ABI-compatible with double, it should define
      22     __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
      23     __NO_LONG_DOUBLE_MATH undefined.
      24  
      25     If this build of the GNU C Library supports both long double
      26     ABI-compatible with double and some other long double format not
      27     ABI-compatible with double, it should define
      28     __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
      29     __LONG_DOUBLE_MATH_OPTIONAL undefined.
      30  
      31     If __NO_LONG_DOUBLE_MATH is already defined, this header must not
      32     define anything; this is needed to work with the definition of
      33     __NO_LONG_DOUBLE_MATH in nldbl-compat.h.  */
      34  
      35  /* In the default version of this header, long double is
      36     ABI-compatible with double.  */
      37  #ifndef __NO_LONG_DOUBLE_MATH
      38  # define __NO_LONG_DOUBLE_MATH	1
      39  #endif
      40  
      41  /* The macro __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI is used to determine the
      42     choice of the underlying ABI of long double.  It will always assume
      43     a constant value for each translation unit.
      44  
      45     If the value is non-zero, any API which is parameterized by the long
      46     double type (i.e the scanf/printf family of functions or the explicitly
      47     parameterized math.h functions) will be redirected to a compatible
      48     implementation using _Float128 ABI via symbols suffixed with ieee128.
      49  
      50     The mechanism this macro uses to acquire may be a function
      51     of architecture, or target specific options used to invoke the
      52     compiler.  */
      53  #define __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0