Fix long double support for ARM.

Fixes #15056.

Change-Id: I48c00b955346971aa88b731ccad1953a4044983d
Reviewed-on: https://review.haiku-os.org/c/1442
Reviewed-by: Alex von Gluck IV <[email protected]>
This commit is contained in:
PulkoMandy
2019-05-08 20:14:25 +00:00
committed by Alex von Gluck IV
parent 7f6254d1e9
commit 00b283c042
3 changed files with 22 additions and 12 deletions
+12 -12
View File
@@ -32,15 +32,15 @@ local genericSources =
mul.c mul_n.c
s_isinf.c s_isinff.c
s_isnan.c s_isnanf.c
s_signbit.c s_signbitf.c s_signbitl.c
s_signbit.c s_signbitf.c
s_nan.c s_nanf.c s_nanl.c
e_hypot.c e_hypotf.c e_hypotl.c
w_hypot.c w_hypotf.c w_hypotl.c
s_nan.c s_nanf.c
e_hypot.c e_hypotf.c
w_hypot.c w_hypotf.c
s_fpclassify.c s_fpclassifyf.c
s_clog.c s_clogf.c s_clogl.c
s_log1p.c s_log1pf.c s_log1pl.c
s_csqrt.c s_csqrtf.c s_csqrtl.c
s_clog.c s_clogf.c
s_log1p.c s_log1pf.c
s_csqrt.c s_csqrtf.c
s_floor.c s_floorf.c
s_ceil.c s_ceilf.c
s_modf.c
@@ -55,15 +55,15 @@ local genericSources =
halfulp.c
mpa.c mplog.c mpexp.c
s_sin.c
s_atan.c s_atanf.c s_atanl.c
s_atan.c s_atanf.c
s_tan.c
e_asin.c e_asinl.c
w_asin.c w_asinl.c
w_asin.c
e_log10.c w_log10.c
e_logf.c e_logl.c
e_acos.c w_acos.c
e_atan2.c e_atan2l.c
w_atan2.c w_atan2l.c mpatan2.c mpatan.c mptan.c mpsqrt.c w_sqrt.c w_sqrtf.c
e_atan2.c
w_atan2.c mpatan2.c mpatan.c mptan.c mpsqrt.c w_sqrt.c w_sqrtf.c
e_sqrtl.c
e_fmod.c w_fmod.c
e_log.c w_log.c
@@ -73,7 +73,7 @@ local genericSources =
s_sinf.c k_sinf.c
s_ldexp.c s_ldexpf.c
s_scalbnf.c s_scalbn.c
s_copysign.c s_copysignf.c s_copysignl.c
s_copysign.c s_copysignf.c
s_tanh.c s_tanf.c k_tanf.c
s_lround.c s_lroundf.c s_round.c s_roundf.c
s_rint.c s_rintf.c s_lrintf.c
@@ -188,6 +188,11 @@
/* Mach/i386 specific: define if the `i386_set_gdt' RPC is available. */
#undef HAVE_I386_SET_GDT
/* arm does not support 128bit long doubles, so let's just use 64bit ones.
* This mcro aliases the long double symbols to the double implementation. */
#define NO_LONG_DOUBLE 1
#define __NO_LONG_DOUBLE_MATH 1
/*
*/
@@ -17,10 +17,15 @@ for architectureObject in [ MultiArchSubDirSetup ] {
UsePrivateHeaders libroot ;
# ppc, m68k and arm use regular doubles as long doubles (through
# aliases), so they must be built without these files.
# FIXME: ppc should use ldbl-128ibm, and m68k should probably use
# ldbl-96 as for x86.
local longDoubleObjects ;
switch $(architecture) {
case ppc : longDoubleObjects = ;
case m68k : longDoubleObjects = ;
case arm : longDoubleObjects = ;
case * : longDoubleObjects = cabsl.c cargl.c cimagl.c conjl.c creall.c k_casinhl.c ;
}