From 4f6b28749442c4138dcc039771e1581c6d02cbb3 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Sat, 2 Dec 2017 00:06:58 +0000 Subject: [PATCH] Minor flags cleanup Move kernel includes and libsa includes together at the top of defs.mk Move all machine specific defines from Makefile.inc to their friends in defs.mk. Add comments and remove now useless junk after the move. Sponsored by: Netflix --- stand/Makefile.inc | 50 ---------------------------------- stand/defs.mk | 47 +++++++++++++++++++++++++++++++- stand/libsa/Makefile | 2 -- stand/mips/beri/boot2/Makefile | 1 - 4 files changed, 46 insertions(+), 54 deletions(-) diff --git a/stand/Makefile.inc b/stand/Makefile.inc index 610acfaa2bc2..d7b9d228287e 100644 --- a/stand/Makefile.inc +++ b/stand/Makefile.inc @@ -1,53 +1,3 @@ # $FreeBSD$ .include "defs.mk" - -.if !defined(__BOOT_MAKEFILE_INC__) -__BOOT_MAKEFILE_INC__=${MFILE} - -CFLAGS+=-I${SASRC} - -SSP_CFLAGS= - -# Add in the no float / no SIMD stuff and announce we're freestanding -# aarch64 and riscv don't have -msoft-float, but all others do. riscv -# currently has no /boot/loader, but may soon. -CFLAGS+= -ffreestanding ${CFLAGS_NO_SIMD} -.if ${MACHINE_CPUARCH} == "aarch64" -CFLAGS+= -mgeneral-regs-only -.elif ${MACHINE_CPUARCH} != "riscv" -CFLAGS+= -msoft-float -.endif - -.if ${MACHINE_CPUARCH} == "i386" || (${MACHINE_CPUARCH} == "amd64" && ${DO32:U0} == 1) -CFLAGS+= -march=i386 -CFLAGS.gcc+= -mpreferred-stack-boundary=2 -.endif - - -.if ${MACHINE_CPUARCH} == "arm" -# Do not generate movt/movw, because the relocation fixup for them does not -# translate to the -Bsymbolic -pie format required by self_reloc() in loader(8). -# Also, the fpu is not available in a standalone environment. -.if ${COMPILER_VERSION} < 30800 -CFLAGS.clang+= -mllvm -arm-use-movt=0 -.else -CFLAGS.clang+= -mno-movt -.endif -CFLAGS.clang+= -mfpu=none -.endif - -# The boot loader build uses dd status=none, where possible, for reproducible -# build output (since performance varies from run to run). Trouble is that -# option was recently (10.3) added to FreeBSD and is non-standard. Only use it -# when this test succeeds rather than require dd to be a bootstrap tool. -DD_NOSTATUS!=(dd status=none count=0 2> /dev/null && echo status=none) || true -DD=dd ${DD_NOSTATUS} - -.if ${MK_LOADER_FORCE_LE} != "no" -.if ${MACHINE_ARCH} == "powerpc64" -CFLAGS+= -mlittle-endian -.endif -.endif - -.endif diff --git a/stand/defs.mk b/stand/defs.mk index 20e9a7786413..16f1b3bc662a 100644 --- a/stand/defs.mk +++ b/stand/defs.mk @@ -39,6 +39,8 @@ LIBSA32= ${BOOTOBJ}/libsa32/libsa32.a .endif # Standard options: +CFLAGS+= -I${SASRC} +CFLAGS+= -I${SYSDIR} # Filesystem support .if ${LOADER_CD9660_SUPPORT:Uno} == "yes" @@ -104,7 +106,7 @@ LIBGELIBOOT= ${BOOTOBJ}/geli/libgeliboot.a .endif .endif -CFLAGS+= -I${SYSDIR} +# Machine specific flags for all builds here # All PowerPC builds are 32 bit. We have no 64-bit loaders on powerpc # or powerpc64. @@ -122,6 +124,49 @@ LD_FLAGS+= -m elf_i386_fbsd AFLAGS+= --32 .endif +SSP_CFLAGS= + +# Add in the no float / no SIMD stuff and announce we're freestanding +# aarch64 and riscv don't have -msoft-float, but all others do. riscv +# currently has no /boot/loader, but may soon. +CFLAGS+= -ffreestanding ${CFLAGS_NO_SIMD} +.if ${MACHINE_CPUARCH} == "aarch64" +CFLAGS+= -mgeneral-regs-only +.elif ${MACHINE_CPUARCH} != "riscv" +CFLAGS+= -msoft-float +.endif + +.if ${MACHINE_CPUARCH} == "i386" || (${MACHINE_CPUARCH} == "amd64" && ${DO32:U0} == 1) +CFLAGS+= -march=i386 +CFLAGS.gcc+= -mpreferred-stack-boundary=2 +.endif + + +.if ${MACHINE_CPUARCH} == "arm" +# Do not generate movt/movw, because the relocation fixup for them does not +# translate to the -Bsymbolic -pie format required by self_reloc() in loader(8). +# Also, the fpu is not available in a standalone environment. +.if ${COMPILER_VERSION} < 30800 +CFLAGS.clang+= -mllvm -arm-use-movt=0 +.else +CFLAGS.clang+= -mno-movt +.endif +CFLAGS.clang+= -mfpu=none +.endif + +# The boot loader build uses dd status=none, where possible, for reproducible +# build output (since performance varies from run to run). Trouble is that +# option was recently (10.3) added to FreeBSD and is non-standard. Only use it +# when this test succeeds rather than require dd to be a bootstrap tool. +DD_NOSTATUS!=(dd status=none count=0 2> /dev/null && echo status=none) || true +DD=dd ${DD_NOSTATUS} + +.if ${MK_LOADER_FORCE_LE} != "no" +.if ${MACHINE_ARCH} == "powerpc64" +CFLAGS+= -mlittle-endian +.endif +.endif + # Make sure we use the machine link we're about to create CFLAGS+=-I. diff --git a/stand/libsa/Makefile b/stand/libsa/Makefile index 9aa228847c83..fc57e7eb6e20 100644 --- a/stand/libsa/Makefile +++ b/stand/libsa/Makefile @@ -19,8 +19,6 @@ LIB?= sa NO_PIC= WARNS?= 0 -CFLAGS+= -I${SASRC} - # standalone components and stuff we have modified locally SRCS+= gzguts.h zutil.h __main.c assert.c bcd.c environment.c getopt.c gets.c \ globals.c pager.c panic.c printf.c strdup.c strerror.c strtol.c strtoul.c \ diff --git a/stand/mips/beri/boot2/Makefile b/stand/mips/beri/boot2/Makefile index c46a15747caa..c247aa8f6be6 100644 --- a/stand/mips/beri/boot2/Makefile +++ b/stand/mips/beri/boot2/Makefile @@ -48,7 +48,6 @@ MAN= AFLAGS= -G0 CFLAGS+= -I${.CURDIR} \ - -I${SASRC} \ -I${LDRSRC} \ -D_KERNEL \ -Wall \