libm: Add .section .note.GNU-stack to all assembly files GCC always appends the following line to assembly files it generates: .section .note.GNU-stack,"",@progbits This creates an empty section named ".note.GNU-stack" to the object file which servers as a hint to GNU linkers that this object file does not require an executable stack. When all linked object files indicate that no executable stack is needed, the executable NX bit is set such as the binary is run on a non-executable stack. This is a free security improvement against buffer overflow attacks.
libm: Sync with NetBSD Adds the following assembly function: logbl, ilogbl, modf, scalbnl Adds the following source functions: exp2, exp2f, frexp, nextafterl, nexttoward, requo, remquof, and fabsl Captures all the bug fixes since last sync Synchronizes with current NetBSD versions where possible. Required to fix modern gcc/fortran and other packages. Gets closer to C99 capability.
FreeBSD and NetBSD both use derivates of Sun's math library. On FreeBSD, it's been put into lib/msun, on NetBSD it is under lib/libm. Since DragonFly misses a lot of the changes which went into both and I consider the NetBSD version cleaner, switch to that. Biggest difference to NetBSD is the omission of wrappers for non-IEEE757 floating point support. There's no point in supporting anything but IEEE 757 and that saves at least a function call per math entry point. Addtionally, important the fpclassify, isinf, isnan and signbit functions into libc as required for C99. Remove the support for non-POSIX operation. matherr is pointless and wasn't really supported anyway.