Page MenuHomeFreeBSD

Fix printf(3) output of long doubles on RISC-V

Authored by mhorne on Jun 23 2020, 8:33 PM.



When the RISC-V port was initially committed to FreeBSD, GCC would
generate 64-bit long doubles, and the definitions in _fpmath.h reflected
that. This was changed to 128-bit in GCC later that year [1], but the
definitions were never updated. This causes printf(3) and friends to
interpret only the low 64-bits of a long double in ldtoa, thereby
printing incorrect values.

Update the definitions now that both clang and GCC generate 128-bit long

PR: 242067


Test Plan

Verify that the test program from the PR gives the expected output for libc built with clang and gcc.

Diff Detail

Lint OK
No Unit Test Coverage
Build Status
Buildable 31908
Build 29460: arc lint + arc unit

Event Timeline

mhorne created this revision.
This revision was not accepted when it landed; it landed in state Needs Review.Jun 29 2020, 7:30 PM
This revision was automatically updated to reflect the committed changes.