This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH 2/8] float128: Add _Float128 make bits to libm.
- From: "Gabriel F. T. Gomes" <gftg at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Wed, 9 Nov 2016 16:40:53 -0200
- Subject: [PATCH 2/8] float128: Add _Float128 make bits to libm.
- Authentication-results: sourceware.org; auth=none
- References: <1478716859-3246-1-git-send-email-gftg@linux.vnet.ibm.com>
From: "Paul E. Murphy" <murphyp@linux.vnet.ibm.com>
This adds the appropriate common bits for a platform to
enable float128 and expose ABI.
2016-10-21 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
* math/Makefile:
(type-float128-suffix): New variable
(type-float128-routines): Likewise
(type-float128-yes): Likewise
(types): Append float128 if supported
* sysdeps/ieee754/float128/Makeconfig: New file.
* sysdeps/ieee754/float128/Versions: New file.
---
math/Makefile | 6 ++
sysdeps/ieee754/float128/Makeconfig | 3 +
sysdeps/ieee754/float128/Versions | 133 ++++++++++++++++++++++++++++++++++++
3 files changed, 142 insertions(+)
create mode 100644 sysdeps/ieee754/float128/Makeconfig
create mode 100644 sysdeps/ieee754/float128/Versions
diff --git a/math/Makefile b/math/Makefile
index f400d7b..37e7ea0 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -108,6 +108,11 @@ type-double-routines := branred doasin dosincos halfulp mpa mpatan2 \
type-float-suffix := f
type-float-routines := k_rem_pio2f
+# _Float128 support
+type-float128-suffix := f128
+type-float128-routines := t_sincosf128 k_sincosf128
+type-float128-yes := float128
+types += $(type-float128-$(float128-fcts))
# Apply suffix to each type in arg 1
type-foreach = $(foreach t,$(types),$(subst F,$(type-$(t)-suffix),$(1)))
@@ -374,6 +379,7 @@ endif
CFLAGS-s_modf.c += -fsignaling-nans
CFLAGS-s_modff.c += -fsignaling-nans
CFLAGS-s_modfl.c += -fsignaling-nans
+CFLAGS-s_modff128.c += -fsignaling-nans
# The -lieee library is actually an object file.
# The module just defines the _LIB_VERSION_ variable.
diff --git a/sysdeps/ieee754/float128/Makeconfig b/sysdeps/ieee754/float128/Makeconfig
new file mode 100644
index 0000000..6c385d2
--- /dev/null
+++ b/sysdeps/ieee754/float128/Makeconfig
@@ -0,0 +1,3 @@
+# Include this earlier so it can be used earlier in Makefiles,
+# and sysdep/ makefiles.
+float128-fcts = yes
diff --git a/sysdeps/ieee754/float128/Versions b/sysdeps/ieee754/float128/Versions
new file mode 100644
index 0000000..cee823b
--- /dev/null
+++ b/sysdeps/ieee754/float128/Versions
@@ -0,0 +1,133 @@
+%include <float128-abi.h>
+%ifndef FLOAT128_VERSION
+% error "float128-abi.h must define FLOAT128_VERSION"
+%endif
+libm {
+ FLOAT128_VERSION {
+ acosf128;
+ acoshf128;
+ asinf128;
+ asinhf128;
+ atan2f128;
+ atanf128;
+ atanhf128;
+ copysignf128;
+ cosf128;
+ coshf128;
+ erff128;
+ erfcf128;
+ exp2f128;
+ expf128;
+ expm1f128;
+ fabsf128;
+ fdimf128;
+ floorf128;
+ fmaf128;
+ fmaxf128;
+ fminf128;
+ fmodf128;
+ frexpf128;
+ getpayloadf128;
+ hypotf128;
+ ilogbf128;
+ ldexpf128;
+ lgammaf128;
+ llrintf128;
+ llroundf128;
+ log10f128;
+ log1pf128;
+ log2f128;
+ logf128;
+ logbf128;
+ lrintf128;
+ lroundf128;
+ modff128;
+ nanf128;
+ nearbyintf128;
+ nextafterf128;
+ nextdownf128;
+ nextupf128;
+ powf128;
+ remainderf128;
+ remquof128;
+ rintf128;
+ roundf128;
+ scalblnf128;
+ scalbnf128;
+ sinf128;
+ sinhf128;
+ sqrtf128;
+ tanf128;
+ tanhf128;
+ tgammaf128;
+ totalorderf128;
+ totalordermagf128;
+ truncf128;
+ exp10f128;
+ j0f128;
+ j1f128;
+ jnf128;
+ lgammaf128_r;
+ sincosf128;
+ y0f128;
+ y1f128;
+ ynf128;
+ __finitef128;
+ __fpclassifyf128;
+ __isinff128;
+ __isnanf128;
+ __issignalingf128;
+ __signbitf128;
+ cabsf128;
+ cacosf128;
+ cacoshf128;
+ cargf128;
+ casinf128;
+ casinhf128;
+ catanf128;
+ catanhf128;
+ cbrtf128;
+ ccosf128;
+ ccoshf128;
+ ceilf128;
+ cexpf128;
+ cimagf128;
+ clogf128;
+ conjf128;
+ cprojf128;
+ crealf128;
+ csinf128;
+ csinhf128;
+ csqrtf128;
+ ctanf128;
+ ctanhf128;
+ cpowf128;
+ clog10f128;
+ __acosf128_finite;
+ __acoshf128_finite;
+ __asinf128_finite;
+ __atan2f128_finite;
+ __atanhf128_finite;
+ __coshf128_finite;
+ __exp2f128_finite;
+ __expf128_finite;
+ __fmodf128_finite;
+ __hypotf128_finite;
+ __lgammaf128_r_finite;
+ __log10f128_finite;
+ __log2f128_finite;
+ __logf128_finite;
+ __powf128_finite;
+ __remainderf128_finite;
+ __sinhf128_finite;
+ __sqrtf128_finite;
+ __gammaf128_r_finite;
+ __exp10f128_finite;
+ __j0f128_finite;
+ __j1f128_finite;
+ __jnf128_finite;
+ __y0f128_finite;
+ __y1f128_finite;
+ __ynf128_finite;
+ }
+}
--
2.4.11