Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:38

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @brief Defines NEWLIB_HAS_LONG_DOUBLE_MATH_FUNCTIONS
0007  *
0008  * This file uses logic copied from newlib's math.h on 21 Jan 2021
0009  * to determine whether or not the long double math functions tests
0010  * should be built. The original math.h file was sourced from
0011  * https://codeload.github.com/RTEMS/sourceware-mirror-newlib-cygwin/tar.gz/a0d7982
0012  * The original math.h this is based on has no license or copyright notice
0013  */
0014 
0015 /*
0016  * Copyright (C) 2021 OAR Corporation.
0017  *
0018  * Redistribution and use in source and binary forms, with or without
0019  * modification, are permitted provided that the following conditions
0020  * are met:
0021  * 1. Redistributions of source code must retain the above copyright
0022  *    notice, this list of conditions and the following disclaimer.
0023  * 2. Redistributions in binary form must reproduce the above copyright
0024  *    notice, this list of conditions and the following disclaimer in the
0025  *    documentation and/or other materials provided with the distribution.
0026  *
0027  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0028  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0029  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0030  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0031  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0032  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0033  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0034  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0035  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0036  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0037  * POSSIBILITY OF SUCH DAMAGE.
0038  */
0039 
0040 #ifndef HAS_LONG_DOUBLE_H
0041 #define HAS_LONG_DOUBLE_H
0042 
0043 /* Newlib doesn't fully support long double math functions so far.
0044    On platforms where long double equals double the long double functions
0045    simply call the double functions.  On Cygwin the long double functions
0046    are implemented independently from newlib to be able to use optimized
0047    assembler functions despite using the Microsoft x86_64 ABI. */
0048 #if defined (_LDBL_EQ_DBL) || defined (__CYGWIN__)
0049 #ifndef __math_68881
0050 #define NEWLIB_HAS_LONG_DOUBLE_MATH_FUNCTIONS 1
0051 #endif
0052 #endif
0053 
0054 #endif