svn commit: r337868 - head/stand

Warner Losh imp at FreeBSD.org
Wed Aug 15 20:31:12 UTC 2018


Author: imp
Date: Wed Aug 15 20:31:11 2018
New Revision: 337868
URL: https://svnweb.freebsd.org/changeset/base/337868

Log:
  stand: Use -Oz/-Os for all loader/stand builds.
  
  While we're not super size constrained, the x86 BIOS /boot/loader has
  to be less than about 520k-530k to be reliable. The LUA loader is at
  this size today. -Oz saves 15-20% on the size, keeping us safely small
  enough (comparable to where we were with the 4th loader). This will
  also help with sjg's work on bringing in bearssl, though we may again
  be looking for space in the LUA loader.
  
  Size table for clang 6.0.0:
  	default		-O1		-Os		-Oz
  4th	442368		417792		389120		376832
  lua	524288		479232		446464		430080
  
  Tested by: kevans91@ (ubldr on armv7), dhw@ (loader on amdy64)
  Differential Revision: https://reviews.freebsd.org/D16724

Modified:
  head/stand/defs.mk

Modified: head/stand/defs.mk
==============================================================================
--- head/stand/defs.mk	Wed Aug 15 20:23:17 2018	(r337867)
+++ head/stand/defs.mk	Wed Aug 15 20:31:11 2018	(r337868)
@@ -53,7 +53,12 @@ CFLAGS+=	-I${SASRC} -D_STANDALONE
 CFLAGS+=	-I${SYSDIR}
 # Spike the floating point interfaces
 CFLAGS+=	-Ddouble=jagged-little-pill -Dfloat=floaty-mcfloatface
-
+# Slim down the image. This saves about 15% in size with clang 6 on x86
+# Our most constrained /boot/loader env is BIOS booting on x86, where
+# our text + data + BTX have to fit into 640k below the ISA hole.
+# Experience has shown that problems arise between ~520k to ~530k.
+CFLAGS.clang+=	-Oz
+CFLAGS.gcc+=	-Os
 
 # GELI Support, with backward compat hooks (mostly)
 .if defined(LOADER_NO_GELI_SUPPORT)


More information about the svn-src-all mailing list