NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lib/58337: logl() crashes on arm64



>Number:         58337
>Category:       lib
>Synopsis:       logl() crashes on arm64
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Jun 11 21:50:00 +0000 2024
>Originator:     matthew green
>Release:        -current
>Organization:
bozotic softwar foundation
>Environment:
arm64, cortex a-72
>Description:
pkgsrc/audio/fluidsynth build crashes in logl().  Taylor tracked it down
to the EXTRACT_LDBL128_WORDS() macro switching the high/low portions.
swapping the extu_fracl/extu_frach parts makes it work again.
>How-To-Repeat:
build pkgsrc/audio/fluidsynth on arm64.
>Fix:
Index: src/math_private.h
===================================================================
RCS file: /cvsroot/src/lib/libm/src/math_private.h,v
retrieving revision 1.32
diff -p -u -r1.32 math_private.h
--- src/math_private.h  3 Apr 2024 04:40:23 -0000       1.32
+++ src/math_private.h  11 Jun 2024 21:45:39 -0000
@@ -264,8 +264,8 @@ do {                                                                \
   union ieee_ext_u ew_u;                                       \
   ew_u.extu_ld = (d);                                          \
   (ix0) = GET_EXPSIGN(&ew_u);                                  \
-  (ix1) = ew_u.extu_fracl;                                     \
-  (ix2) = ew_u.extu_frach;                                     \
+  (ix1) = ew_u.extu_frach;                                     \
+  (ix2) = ew_u.extu_fracl;                                     \
 } while (0)
 
 /* Get expsign as a 16 bit int from a long double.  */



Home | Main Index | Thread Index | Old Index