svn commit: r329859 - in head: contrib/compiler-rt/lib/builtins include stand sys/arm/include sys/arm64/include sys/mips/include sys/powerpc/include sys/riscv/include sys/sparc64/include sys/sys sy...

Bruce Evans brde at optusnet.com.au
Fri Feb 23 09:03:00 UTC 2018


On Fri, 23 Feb 2018, Bruce Evans wrote:

> On Fri, 23 Feb 2018, Warner Losh wrote:
>
>> Log:
>>  Do not include float interfaces when using libsa.
>> 
>>  We don't support float in the boot loaders, so don't include
>>  interfaces for float or double in systems headers. In addition, take
>>  the unusual step of spiking double and float to prevent any more
>>  accidental seepage.
>
> This unimproves all the _types.h headers, probably for no benefits for lua.
>
>> Modified: head/sys/arm/include/_types.h
>> ==============================================================================
>> --- head/sys/arm/include/_types.h	Fri Feb 23 04:04:18 2018 
>> (r329858)
>> +++ head/sys/arm/include/_types.h	Fri Feb 23 04:04:25 2018 
>> (r329859)
>> @@ -70,8 +70,10 @@ typedef	unsigned long long	__uint64_t;
>>  */
>> typedef	__uint32_t	__clock_t;		/* clock()... */
>> typedef	__int32_t	__critical_t;
>> +#ifndef _STANDALONE
>> typedef	double		__double_t;
>> typedef	float		__float_t;
>> +#endif
>> typedef	__int32_t	__intfptr_t;
>> typedef	__int64_t	__intmax_t;
>> typedef	__int32_t	__intptr_t;
>
> __types.h headers exist to avoid ifdefs like this.  They only define types
> in the implementation namespace.  Nothing except <math.h> should use
> __double_t or __float_t directly.  There is only a problem if some option
> like -fno-float turns off floating point completely, so that 'float' is
> a syntax error.

Actually you created the syntax errors by defining float and double in
makefiles.  This gives undefined behaviour.

Bruce


More information about the svn-src-head mailing list