svn commit: r332135 - in stable/11: 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/s...

Kyle Evans kevans at FreeBSD.org
Fri Apr 6 19:18:01 UTC 2018


Author: kevans
Date: Fri Apr  6 19:17:59 2018
New Revision: 332135
URL: https://svnweb.freebsd.org/changeset/base/332135

Log:
  MFC r329859,r329860: Float protection in stand
  
  r329859: 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.
  
  r329860: Floaty McFloatface is funnier...

Modified:
  stable/11/contrib/compiler-rt/lib/builtins/int_types.h
  stable/11/include/time.h
  stable/11/stand/defs.mk
  stable/11/sys/arm/include/_types.h
  stable/11/sys/arm64/include/_types.h
  stable/11/sys/mips/include/_types.h
  stable/11/sys/powerpc/include/_types.h
  stable/11/sys/powerpc/include/pcb.h
  stable/11/sys/riscv/include/_types.h
  stable/11/sys/sparc64/include/_types.h
  stable/11/sys/sys/_types.h
  stable/11/sys/x86/include/_types.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/compiler-rt/lib/builtins/int_types.h
==============================================================================
--- stable/11/contrib/compiler-rt/lib/builtins/int_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/contrib/compiler-rt/lib/builtins/int_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -114,6 +114,7 @@ static __inline tu_int make_tu(du_int h, du_int l) {
 
 #endif /* CRT_HAS_128BIT */
 
+#ifndef _STANDALONE
 typedef union
 {
     su_int u;
@@ -125,6 +126,7 @@ typedef union
     udwords u;
     double  f;
 } double_bits;
+#endif
 
 typedef struct
 {
@@ -137,6 +139,7 @@ typedef struct
 #endif /* _YUGA_LITTLE_ENDIAN */
 } uqwords;
 
+#ifndef _STANDALONE
 typedef union
 {
     uqwords     u;
@@ -159,6 +162,7 @@ typedef struct { long double real, imaginary; } Lcompl
 
 #define COMPLEX_REAL(x) (x).real
 #define COMPLEX_IMAGINARY(x) (x).imaginary
+#endif
 #endif
 #endif /* INT_TYPES_H */
 

Modified: stable/11/include/time.h
==============================================================================
--- stable/11/include/time.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/include/time.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -144,7 +144,9 @@ __BEGIN_DECLS
 char *asctime(const struct tm *);
 clock_t clock(void);
 char *ctime(const time_t *);
+#ifndef _STANDALONE
 double difftime(time_t, time_t);
+#endif
 /* XXX missing: getdate() */
 struct tm *gmtime(const time_t *);
 struct tm *localtime(const time_t *);

Modified: stable/11/stand/defs.mk
==============================================================================
--- stable/11/stand/defs.mk	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/stand/defs.mk	Fri Apr  6 19:17:59 2018	(r332135)
@@ -49,6 +49,9 @@ CFLAGS+=	-I${BOOTOBJ}/libsa
 .endif
 CFLAGS+=	-I${SASRC} -D_STANDALONE
 CFLAGS+=	-I${SYSDIR}
+# Spike the floating point interfaces
+CFLAGS+=	-Ddouble=jagged-little-pill -Dfloat=floaty-mcfloatface
+
 
 # GELI Support, with backward compat hooks (mostly)
 .if defined(HAVE_GELI)

Modified: stable/11/sys/arm/include/_types.h
==============================================================================
--- stable/11/sys/arm/include/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/arm/include/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -68,8 +68,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;

Modified: stable/11/sys/arm64/include/_types.h
==============================================================================
--- stable/11/sys/arm64/include/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/arm64/include/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -56,8 +56,10 @@ typedef	unsigned long		__uint64_t;
  */
 typedef	__int32_t	__clock_t;		/* clock()... */
 typedef	__int64_t	__critical_t;
+#ifndef _STANDALONE
 typedef	double		__double_t;
 typedef	float		__float_t;
+#endif
 typedef	__int64_t	__intfptr_t;
 typedef	__int64_t	__intmax_t;
 typedef	__int64_t	__intptr_t;

Modified: stable/11/sys/mips/include/_types.h
==============================================================================
--- stable/11/sys/mips/include/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/mips/include/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -73,8 +73,10 @@ typedef	unsigned long long	__uint64_t;
  * Standard type definitions.
  */
 typedef	__int32_t	__clock_t;		/* clock()... */
+#ifndef _STANDALONE
 typedef	double		__double_t;
 typedef	float		__float_t;
+#endif
 #ifdef __mips_n64
 typedef	__int64_t	__critical_t;
 typedef	__int64_t	__intfptr_t;

Modified: stable/11/sys/powerpc/include/_types.h
==============================================================================
--- stable/11/sys/powerpc/include/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/powerpc/include/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -72,8 +72,10 @@ typedef	unsigned long long	__uint64_t;
  * Standard type definitions.
  */
 typedef	__uint32_t	__clock_t;		/* clock()... */
+#ifndef _STANDALONE
 typedef	double		__double_t;
 typedef	float		__float_t;
+#endif
 #ifdef __LP64__
 typedef	__int64_t	__critical_t;
 typedef	__int64_t	__intfptr_t;

Modified: stable/11/sys/powerpc/include/pcb.h
==============================================================================
--- stable/11/sys/powerpc/include/pcb.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/powerpc/include/pcb.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -37,6 +37,7 @@
 
 #include <machine/setjmp.h>
 
+#ifndef _STANDALONE
 struct pcb {
 	register_t	pcb_context[20];	/* non-volatile r14-r31 */
 	register_t	pcb_cr;			/* Condition register */
@@ -79,6 +80,7 @@ struct pcb {
 		} booke;
 	} pcb_cpu;
 };
+#endif
 
 #ifdef	_KERNEL
 

Modified: stable/11/sys/riscv/include/_types.h
==============================================================================
--- stable/11/sys/riscv/include/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/riscv/include/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -56,8 +56,10 @@ typedef	unsigned long		__uint64_t;
  */
 typedef	__int32_t	__clock_t;		/* clock()... */
 typedef	__int64_t	__critical_t;
+#ifndef _STANDALONE
 typedef	double		__double_t;
 typedef	float		__float_t;
+#endif
 typedef	__int64_t	__intfptr_t;
 typedef	__int64_t	__intmax_t;
 typedef	__int64_t	__intptr_t;

Modified: stable/11/sys/sparc64/include/_types.h
==============================================================================
--- stable/11/sys/sparc64/include/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/sparc64/include/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -56,8 +56,10 @@ typedef	unsigned long		__uint64_t;
  */
 typedef	__int32_t	__clock_t;		/* clock()... */
 typedef	__int64_t	__critical_t;
+#ifndef _STANDALONE
 typedef	double		__double_t;
 typedef	float		__float_t;
+#endif
 typedef	__int64_t	__intfptr_t;
 typedef	__int64_t	__intmax_t;
 typedef	__int64_t	__intptr_t;

Modified: stable/11/sys/sys/_types.h
==============================================================================
--- stable/11/sys/sys/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/sys/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -102,7 +102,9 @@ typedef	__uint_least32_t __char32_t;
 
 typedef struct {
 	long long __max_align1 __aligned(_Alignof(long long));
+#ifndef _STANDALONE
 	long double __max_align2 __aligned(_Alignof(long double));
+#endif
 } __max_align_t;
 
 typedef	__uint32_t	__dev_t;	/* device number */

Modified: stable/11/sys/x86/include/_types.h
==============================================================================
--- stable/11/sys/x86/include/_types.h	Fri Apr  6 19:11:58 2018	(r332134)
+++ stable/11/sys/x86/include/_types.h	Fri Apr  6 19:17:59 2018	(r332135)
@@ -78,15 +78,19 @@ typedef	unsigned long long	__uint64_t;
 #ifdef	__LP64__
 typedef	__int32_t	__clock_t;		/* clock()... */
 typedef	__int64_t	__critical_t;
+#ifndef _STANDALONE
 typedef	double		__double_t;
 typedef	float		__float_t;
+#endif
 typedef	__int64_t	__intfptr_t;
 typedef	__int64_t	__intptr_t;
 #else
 typedef	unsigned long	__clock_t;
 typedef	__int32_t	__critical_t;
+#ifndef _STANDALONE
 typedef	long double	__double_t;
 typedef	long double	__float_t;
+#endif
 typedef	__int32_t	__intfptr_t;
 typedef	__int32_t	__intptr_t;
 #endif


More information about the svn-src-all mailing list