[PATCH] PR79017 workaround incomplete C99 math on darwin

Mike Stump mikestump@comcast.net
Mon Jan 9 18:43:00 GMT 2017


On Jan 9, 2017, at 9:16 AM, Jonathan Wakely <jwakely@redhat.com> wrote:
> 
> Older versions of OS X (at least Leopard) are missing some
> declarations of C99 functions from <math.h>, which causes our
> configure test to decide that all C99 functions are missing from
> <math.h>. Rather then splitting up the check into dozens of smaller
> checks for individual functions (which would be stage 1 material) this
> just adds a special case for the six missing functions, so that darwin
> checks for them separately and defaines a new macro to say they're
> missing.
> 
> 	PR libstdc++/79017
> 	* acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround
> 	functions separately on darwin and if they're missing define
> 	_GLIBCXX_NO_C99_ROUNDING_FUNCS.
> 	* config.h.in: Regenerate.
> 	* configure: Regenerate.
> 	* include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint)
> 	(llrintf, llrintl, llround, llroundf, llroundl): Do not define.

Another possibility might be possible if llrint is the same as lrint and lrint is present... then liberty can define forwarders on a per function basis if they aren't there.

I think this is the case when sizeof (long long) == sizeof(long).



More information about the Libstdc++ mailing list