hrev53683 adds 1 changeset to branch 'master'
old head: 92e9211d7b2d46e300ac6e3db9570daa26811a70
new head: 230ade30261a44cd02ed689a34b953406d0cc677
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=230ade30261a+%5E92e9211d7b2d
----------------------------------------------------------------------------
230ade30261a: x86_64: use a working implementation of atan2
The "generic" files are actually not generic at all. They were
imported for the PowerPC port and assume a matching format for float.
However, x86 uses a different format as the values are stored with 80
bit precision in the FPU. Therefore the generic implementation is
not appropriate whenever it does bit manipulations.
The glibc implementation uses the same sourcecode as the x86 version
for atan2, and there is no reason for us not to do the same.
Should fix #14933
Change-Id: I9addcfdf8b0f980c8842480885b59c0133866756
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2067
Reviewed-by: Adrien Destugues <pulkomandy@xxxxxxxxx>
[ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev53683
Commit: 230ade30261a44cd02ed689a34b953406d0cc677
URL: https://git.haiku-os.org/haiku/commit/?id=230ade30261a
Author: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date: Tue Dec 31 22:09:55 2019 UTC
Committer: Adrien Destugues <pulkomandy@xxxxxxxxx>
Commit-Date: Fri Jan 3 08:29:51 2020 UTC
Ticket: https://dev.haiku-os.org/ticket/14933
----------------------------------------------------------------------------
1 file changed, 10 insertions(+), 4 deletions(-)
src/system/libroot/posix/glibc/arch/x86_64/Jamfile | 14 ++++++++++----
----------------------------------------------------------------------------
diff --git a/src/system/libroot/posix/glibc/arch/x86_64/Jamfile
b/src/system/libroot/posix/glibc/arch/x86_64/Jamfile
index d92168d95e..43b5c57be8 100644
--- a/src/system/libroot/posix/glibc/arch/x86_64/Jamfile
+++ b/src/system/libroot/posix/glibc/arch/x86_64/Jamfile
@@ -32,7 +32,7 @@ local genericSources =
mplog.c mpsqrt.c mptan.c sincos32.c slowexp.c slowpow.c
e_acos.c e_acosf.c e_acosh.c e_acoshf.c e_acoshl.c e_asin.c e_asinf.c
- e_asinl.c e_atan2.c e_atan2f.c e_atanh.c e_atanhf.c e_atanhl.c e_cosh.c
+ e_asinl.c e_atan2f.c e_atanh.c e_atanhf.c e_atanhl.c e_cosh.c
e_coshf.c e_coshl.c e_exp.c e_exp10.c e_exp10f.c e_exp10l.c e_exp2.c
e_exp2f.c e_expf.c e_fmod.c e_fmodf.c e_gamma_r.c e_gammaf_r.c
e_gammal_r.c
e_hypot.c e_hypotf.c e_hypotl.c e_ilogbl.c e_j0.c e_j0f.c e_j0l.c e_j1.c
@@ -84,15 +84,17 @@ local genericSources =
w_tgammal.c
;
+local x86Sources = e_atan2.S ;
+
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup x86_64 ] {
on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ;
MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_e.o :
- e_acosl.c e_atan2l.c e_exp2l.S e_expl.S e_fmodl.S
e_log10l.S
- e_log2l.S e_logl.S e_powl.S e_remainderl.S
e_rem_pio2l.c e_scalbl.S
- e_sqrt.c e_sqrtf.c e_sqrtl.c
+ e_acosl.c $(x86Sources) e_atan2l.c e_exp2l.S e_expl.S
e_fmodl.S
+ e_log10l.S e_log2l.S e_logl.S e_powl.S e_remainderl.S
e_rem_pio2l.c
+ e_scalbl.S e_sqrt.c e_sqrtf.c e_sqrtl.c
;
@@ -138,6 +140,10 @@ for architectureObject in [ MultiArchSubDirSetup x86_64 ] {
<$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o
;
+ SEARCH on [ FGristFiles $(x86Sources) ]
+ = [ FDirName $(HAIKU_TOP) src system libroot posix
glibc arch x86 ] ;
+
+
SEARCH on [ FGristFiles $(genericSources) ]
= [ FDirName $(HAIKU_TOP) src system libroot posix
glibc arch
generic ]