Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Feb 2018 20:02:53 +1100 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        Warner Losh <imp@freebsd.org>, src-committers@freebsd.org,  svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: 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...
Message-ID:  <20180223195615.A1841@besplex.bde.org>
In-Reply-To: <20180223170403.I1331@besplex.bde.org>
References:  <201802230404.w1N44PiD053834@repo.freebsd.org> <20180223170403.I1331@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180223195615.A1841>