So here is a diff that starts using -ffreestanding on amd64 and brings
arm64 and armv7 (which are already using -ffreestanding) in line with
amd64.
I'd like to get this in to give it some exposure before I start
converting the other architectures.
Index: arch/amd64/conf/Makefile.amd64
===================================================================
RCS file: /cvs/src/sys/arch/amd64/conf/Makefile.amd64,v
retrieving revision 1.74
diff -u -p -r1.74 Makefile.amd64
--- arch/amd64/conf/Makefile.amd64 29 Nov 2016 09:08:34 -0000 1.74
+++ arch/amd64/conf/Makefile.amd64 24 Jan 2017 08:29:50 -0000
@@ -24,14 +24,12 @@ _archdir?= $S/arch/${_arch}
INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I$S/arch
CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -MD -MP
CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \
- -Wno-main -Wno-uninitialized -Wno-pointer-sign \
+ -Wno-uninitialized -Wno-pointer-sign \
-Wframe-larger-than=2047
CMACHFLAGS= -mcmodel=kernel -mno-red-zone -mno-sse2 -mno-sse -mno-3dnow \
-mno-mmx -msoft-float -fno-omit-frame-pointer
-CMACHFLAGS+= -fno-builtin-printf -fno-builtin-snprintf \
- -fno-builtin-vsnprintf -fno-builtin-log \
- -fno-builtin-log2 -fno-builtin-malloc ${NOPIE_FLAGS}
+CMACHFLAGS+= -ffreestanding ${NOPIE_FLAGS}
.if ${IDENT:M-DNO_PROPOLICE}
CMACHFLAGS+= -fno-stack-protector
.endif
Index: arch/arm64/conf/Makefile.arm64
===================================================================
RCS file: /cvs/src/sys/arch/arm64/conf/Makefile.arm64,v
retrieving revision 1.2
diff -u -p -r1.2 Makefile.arm64
--- arch/arm64/conf/Makefile.arm64 19 Dec 2016 09:53:21 -0000 1.2
+++ arch/arm64/conf/Makefile.arm64 24 Jan 2017 08:29:50 -0000
@@ -24,15 +24,13 @@ _archdir?= $S/arch/${_arch}
INCLUDES= -nostdinc -I$S -I${.OBJDIR} -I$S/arch
CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP
CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \
- -Wno-main -Wno-uninitialized -Wno-pointer-sign \
+ -Wno-uninitialized -Wno-pointer-sign \
-Wframe-larger-than=2047
-CMACHFLAGS= -ffreestanding -mcpu=cortex-a57+nofp+nosimd \
+CMACHFLAGS= -mcpu=cortex-a57+nofp+nosimd \
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer \
-ffixed-x18
-CMACHFLAGS+= -fno-builtin-printf -fno-builtin-snprintf \
- -fno-builtin-vsnprintf -fno-builtin-log \
- -fno-builtin-log2 -fno-builtin-malloc ${NOPIE_FLAGS}
+CMACHFLAGS+= -ffreestanding ${NOPIE_FLAGS}
.if ${IDENT:M-DNO_PROPOLICE}
CMACHFLAGS+= -fno-stack-protector
.endif
Index: arch/armv7/conf/Makefile.armv7
===================================================================
RCS file: /cvs/src/sys/arch/armv7/conf/Makefile.armv7,v
retrieving revision 1.20
diff -u -p -r1.20 Makefile.armv7
--- arch/armv7/conf/Makefile.armv7 29 Nov 2016 09:08:34 -0000 1.20
+++ arch/armv7/conf/Makefile.armv7 24 Jan 2017 08:29:50 -0000
@@ -24,13 +24,11 @@ _archdir?= $S/arch/${_arch}
INCLUDES= -nostdinc -I$S -I. -I$S/arch
CPPFLAGS= ${INCLUDES} ${IDENT} ${PARAM} -D_KERNEL -D__${_mach}__ -MD -MP
CWARNFLAGS= -Werror -Wall -Wimplicit-function-declaration \
- -Wno-main -Wno-uninitialized -Wno-pointer-sign \
+ -Wno-uninitialized -Wno-pointer-sign \
-Wframe-larger-than=2047
-CMACHFLAGS= -ffreestanding -msoft-float -march=armv6 -Wa,-march=armv7a
-CMACHFLAGS+= -fno-builtin-printf -fno-builtin-snprintf \
- -fno-builtin-vsnprintf -fno-builtin-log \
- -fno-builtin-log2 -fno-builtin-malloc ${NOPIE_FLAGS}
+CMACHFLAGS= -msoft-float -march=armv6 -Wa,-march=armv7a
+CMACHFLAGS+= -ffreestanding ${NOPIE_FLAGS}
.if ${IDENT:M-DNO_PROPOLICE}
CMACHFLAGS+= -fno-stack-protector
.endif