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