1 /* _Float128 overrides for float128 in ppc64le multiarch env. 2 Copyright (C) 2020-2022 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 as 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 #ifndef _FLOAT128_PRIVATE_PPC64LE 20 #define _FLOAT128_PRIVATE_PPC64LE 1 21 22 #ifndef _F128_ENABLE_IFUNC 23 /* multiarch is not supported. Do nothing and pass through. */ 24 #include_next <float128_private.h> 25 #else 26 27 /* Include fenv.h now before turning off libm_hidden_proto. 28 At minimum, fereaiseexcept is needed. */ 29 #include <fenv.h> 30 31 /* The PLT bypass trick used by libm_hidden_proto uses asm-renames. 32 If gcc detects a second rename to a different function, it will 33 emit errors. */ 34 #undef libm_hidden_proto 35 #define libm_hidden_proto(f) 36 37 /* Always disable redirects. We supply these uniquely later on. */ 38 #undef NO_MATH_REDIRECT 39 #define NO_MATH_REDIRECT 40 #include <math.h> 41 #undef NO_MATH_REDIRECT 42 43 #include_next <float128_private.h> 44 45 #include <float128-ifunc-macros.h> 46 47 /* Declare these now. These prototyes are not included 48 in any header. */ 49 extern __typeof (cosf128) __ieee754_cosf128; 50 extern __typeof (asinhf128) __ieee754_asinhf128; 51 52 F128_REDIR (__ieee754_asinhf128) 53 F128_REDIR (__ieee754_cosf128) 54 F128_REDIR (__asinhf128) 55 F128_REDIR (__atanf128) 56 F128_REDIR (__cbrtf128) 57 F128_REDIR (__ceilf128) 58 F128_REDIR (__cosf128) 59 F128_REDIR (__erfcf128) 60 F128_REDIR (__erff128) 61 F128_REDIR (__expf128) 62 F128_REDIR (__expm1f128) 63 F128_REDIR (__fabsf128) 64 F128_REDIR (__fdimf128) 65 F128_REDIR (__floorf128) 66 F128_REDIR (__fmaf128) 67 F128_REDIR (__fmaxf128) 68 F128_REDIR (__fminf128) 69 F128_REDIR (__frexpf128) 70 F128_REDIR (__ldexpf128) 71 F128_REDIR (__llrintf128) 72 F128_REDIR (__llroundf128) 73 F128_REDIR (__log1pf128) 74 F128_REDIR (__logbf128) 75 F128_REDIR (__logf128) 76 F128_REDIR (__lrintf128) 77 F128_REDIR (__lroundf128) 78 F128_REDIR (__modff128) 79 F128_REDIR (__nearbyintf128) 80 F128_REDIR (__remquof128) 81 F128_REDIR (__rintf128) 82 F128_REDIR (__roundevenf128) 83 F128_REDIR (__roundf128) 84 F128_REDIR (__scalblnf128) 85 F128_REDIR (__scalbnf128) 86 F128_REDIR (__sincosf128) 87 F128_REDIR (__sinf128) 88 F128_REDIR (__sqrtf128) 89 F128_REDIR (__tanhf128) 90 F128_REDIR (__tanf128) 91 F128_REDIR (__truncf128) 92 F128_REDIR (__lgamma_productf128) 93 94 #include <float128-ifunc-redirects-mp.h> 95 #include <float128-ifunc-redirects.h> 96 97 #endif /* _F128_ENABLE_IFUNC */ 98 99 #endif /* _FLOAT128_PRIVATE_PPC64LE */ 100