Page MenuHomeFreeBSD

Disable -Woverflow errors for i386 for GCC 9.

Authored by jhb on Aug 26 2020, 6:45 PM.
Referenced Files
Unknown Object (File)
Wed, Nov 29, 8:20 AM
Unknown Object (File)
Fri, Nov 17, 8:19 PM
Unknown Object (File)
Sep 20 2023, 8:09 PM
Unknown Object (File)
Sep 6 2023, 9:25 AM
Unknown Object (File)
Aug 30 2023, 8:06 PM
Unknown Object (File)
Aug 16 2023, 5:48 AM
Unknown Object (File)
Jul 11 2023, 8:32 PM
Unknown Object (File)
Jun 27 2023, 8:09 AM



GCC 9 warns about floating point constants overflowing for i386.

Test Plan
  • build i386 and amd64 with gcc9

Diff Detail

rG FreeBSD src repository
Lint Not Applicable
Tests Not Applicable

Event Timeline

jhb requested review of this revision.Aug 26 2020, 6:45 PM
This revision is now accepted and ready to land.Aug 26 2020, 7:34 PM

There is a larger issue here that GCC has special features in place to deal with the unusual floating point setup FreeBSD/i386 uses. That is what triggers these warnings. clang treats FreeBSD/i386 like Linux i386 and assumes we use the same floating point setup as Linux. Probably we should really change FreeBSD to be more standard to match what clang assumes and let GCC drop patches that are only used on FreeBSD (AFAICT). It would also remove the need for the hack to not install GCC's float.h for amd64 and i386.

Is there a canonical reference for these differences?

Is this specifically for LDBL_MAX?

When I looked at something like this last (around r323003), gcc wasn't just producing a warning, it was also producing wrong code (an infinite value instead of a finite one).

Going to a more sane long double for i386 would be great, but might have some ABI/upgrade consequences.

jhb retitled this revision from Disabling -Woverflow errors for i386 for GCC 9. to Disable -Woverflow errors for i386 for GCC 9..Sep 13 2021, 3:50 PM
This revision was automatically updated to reflect the committed changes.