Use CFLAGS_NO_SIMD in preference to varying lists of -mno-xxxx flags.

Go ahead and defined -D_STANDALONE for all targets (only strictly
needed for some architecture, but harmless on those it isn't required
for). Also add -msoft-float to all architectures uniformly rather
that higgley piggley like it is today.

Differential Revision: https://reviews.freebsd.org/D3496
This commit is contained in:
imp 2015-08-27 23:46:42 +00:00
parent 05c9f26dff
commit d1be0bf24e
10 changed files with 35 additions and 113 deletions

View File

@ -21,34 +21,8 @@ MAN= libstand.3
WARNS?= 0
CFLAGS+= -ffreestanding -Wformat
CFLAGS+= -I${LIBSTAND_SRC}
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
.endif
.if ${MACHINE_CPUARCH} == "i386"
CFLAGS.gcc+= -mpreferred-stack-boundary=2
.endif
.if ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -fPIC -mno-red-zone
.endif
.if ${MACHINE} == "pc98"
CFLAGS+= -Os
.endif
.if ${MACHINE_CPUARCH} == "powerpc"
CFLAGS+= -msoft-float -D_STANDALONE -DNETIF_DEBUG
.endif
.if ${MACHINE_CPUARCH} == "arm"
CFLAGS+= -msoft-float -D_STANDALONE
.endif
.if ${MACHINE_CPUARCH} == "aarch64"
CFLAGS+= -D_STANDALONE -mgeneral-regs-only
.endif
.if ${MACHINE_CPUARCH} == "mips"
CFLAGS+= -G0 -fno-pic -mno-abicalls
.endif
# standalone components and stuff we have modified locally
SRCS+= gzguts.h zutil.h __main.c assert.c bcd.c bswap.c environment.c getopt.c gets.c \
globals.c pager.c printf.c strdup.c strerror.c strtol.c strtoul.c random.c \
@ -168,4 +142,5 @@ SRCS+= pkgfs.c
SRCS+= nandfs.c
.endif
.include <bsd.stand.mk>
.include <bsd.lib.mk>

24
share/mk/bsd.stand.mk Normal file
View File

@ -0,0 +1,24 @@
# $FreeBSD$
#
# Common definitons for programs building in the stand-alone environment
# and/or using libstand.
#
CFLAGS+= -ffreestanding -Wformat
CFLAGS+= ${CFLAGS_NO_SIMD} -msoft-float -D_STANDALONE
.if ${MACHINE_CPUARCH} == "i386"
CFLAGS.gcc+= -mpreferred-stack-boundary=2
.endif
.if ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -fPIC -mno-red-zone
.endif
.if ${MACHINE} == "pc98"
CFLAGS+= -Os
.endif
.if ${MACHINE_CPUARCH} == "aarch64"
CFLAGS+= -mgeneral-regs-only
.endif
.if ${MACHINE_CPUARCH} == "mips"
CFLAGS+= -G0 -fno-pic -mno-abicalls
.endif

View File

@ -4,19 +4,18 @@ BINDIR?= /boot
.if ${MACHINE_CPUARCH} == "i386"
CFLAGS+= -march=i386
CFLAGS+= -mno-aes
.endif
# Options used when building app-specific efi components
# See conf/kern.mk for the correct set of these
CFLAGS+= -ffreestanding -Wformat -msoft-float
CFLAGS+= -ffreestanding -Wformat -msoft-float ${CFLAGS_NO_SIMD}
LDFLAGS+= -nostdlib
.if ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -fshort-wchar
CFLAGS+= -mno-red-zone
CFLAGS+= -mno-mmx -mno-sse
CFLAGS.clang+= -mno-aes -mno-avx
CFLAGS+= -mno-aes
.endif
.include "../Makefile.inc"

View File

@ -15,30 +15,14 @@ BASE_SRCS= dict.c ficl.c fileaccess.c float.c loader.c math64.c \
SRCS= ${BASE_SRCS} sysdep.c softcore.c
CLEANFILES= softcore.c testmain testmain.o
CFLAGS+= -ffreestanding
.if ${MACHINE_CPUARCH} == "i386" || \
(${MACHINE_CPUARCH} == "amd64" && defined(FICL32))
CFLAGS+= -march=i386
CFLAGS.gcc+= -mpreferred-stack-boundary=2
.endif
.if ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -mno-red-zone
.endif
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
.endif
.if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "mips"
CFLAGS+= -msoft-float
.endif
.if ${MACHINE} == "pc98"
CFLAGS+= -Os -DPC98
.endif
.if ${MACHINE_CPUARCH} == "mips"
CFLAGS+= -G0 -fno-pic -mno-abicalls
.endif
.if HAVE_PNP
CFLAGS+= -DHAVE_PNP
.endif
.include <bsd.stand.mk>
.ifmake testmain
CFLAGS+= -DTESTMAIN -D_TESTMAIN
SRCS+= testmain.c

View File

@ -7,7 +7,7 @@ BINDIR?= /boot
LOADER_ADDRESS?=0x200000
CFLAGS+= -march=i386 -ffreestanding
CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
CFLAGS+= ${CFLAGS_NO_SIMD} -msoft-float
LDFLAGS+= -nostdlib
.if ${MACHINE_CPUARCH} == "amd64"

View File

@ -22,29 +22,6 @@ NO_PIC=
WARNS?= 0
CFLAGS+= -ffreestanding -Wformat
CFLAGS+= -I${LIBSTAND_SRC}
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
.endif
.if ${MACHINE} == "pc98"
CFLAGS+= -Os
.endif
.if ${MACHINE_CPUARCH} == "powerpc"
CFLAGS+= -msoft-float -D_STANDALONE -DNETIF_DEBUG
.endif
.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64"
CFLAGS+= -m32 -I.
.endif
.if ${MACHINE_CPUARCH} == "arm"
CFLAGS+= -msoft-float -D_STANDALONE
.endif
.if ${MACHINE_CPUARCH} == "mips"
CFLAGS+= -G0 -fno-pic -mno-abicalls
.endif
# standalone components and stuff we have modified locally
SRCS+= gzguts.h zutil.h __main.c assert.c bcd.c bswap.c environment.c getopt.c gets.c \
globals.c pager.c printf.c strdup.c strerror.c strtol.c strtoul.c random.c \
@ -164,6 +141,7 @@ SRCS+= pkgfs.c
SRCS+= nandfs.c
.endif
.include <bsd.stand.mk>
.include <bsd.lib.mk>
.if ${MACHINE_CPUARCH} == "amd64"

View File

@ -7,7 +7,7 @@ BINDIR?= /boot
LOADER_ADDRESS?=0x200000
CFLAGS+= -march=i386 -ffreestanding
CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
CFLAGS+= ${CFLAGS_NO_SIMD} -msoft-float
CFLAGS+= -Os -DPC98
LDFLAGS+= -nostdlib

View File

@ -10,24 +10,10 @@ BASE_SRCS= dict.c ficl.c fileaccess.c float.c loader.c math64.c \
SRCS= ${BASE_SRCS} sysdep.c softcore.c
CLEANFILES= softcore.c testmain testmain.o
CFLAGS+= -ffreestanding -fPIC
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
#CFLAGS+= -march=i386
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2
.endif
.if ${MACHINE_CPUARCH} == "i386"
CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-sse3
.endif
.if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm"
CFLAGS+= -msoft-float
.endif
.if ${MACHINE} == "pc98"
CFLAGS+= -Os -DPC98
.endif
.if HAVE_PNP
CFLAGS+= -DHAVE_PNP
.endif
.include <bsd.stand.mk>
.ifmake testmain
CFLAGS+= -DTESTMAIN -D_TESTMAIN
SRCS+= testmain.c

View File

@ -22,26 +22,6 @@ NO_PIC=
WARNS?= 0
CFLAGS+= -ffreestanding -Wformat -fPIC
CFLAGS+= -I${LIBSTAND_SRC}
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2
.endif
.if ${MACHINE_CPUARCH} == "i386"
CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-sse3
.endif
.if ${MACHINE} == "pc98"
CFLAGS+= -Os
.endif
.if ${MACHINE_CPUARCH} == "powerpc"
CFLAGS+= -msoft-float -D_STANDALONE -DNETIF_DEBUG
.endif
.if ${MACHINE_CPUARCH} == "arm"
CFLAGS+= -msoft-float -D_STANDALONE
.endif
# standalone components and stuff we have modified locally
SRCS+= gzguts.h zutil.h __main.c assert.c bcd.c bswap.c environment.c getopt.c gets.c \
globals.c pager.c printf.c strdup.c strerror.c strtol.c strtoul.c random.c \
@ -152,4 +132,5 @@ SRCS+= ufs.c nfs.c cd9660.c tftp.c gzipfs.c bzipfs.c
SRCS+= dosfs.c ext2fs.c
SRCS+= splitfs.c
.include <bsd.stand.mk>
.include <bsd.lib.mk>

View File

@ -10,14 +10,8 @@ CFLAGS+= -I${.CURDIR}/../common -I${.CURDIR}/../.. -I.
CFLAGS+= -I${.CURDIR}/../../../lib/libstand
CFLAGS+= -I${.CURDIR}/../../cddl/boot/zfs
CFLAGS+= -ffreestanding
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -march=i386
CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
.endif
.if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm"
CFLAGS+= -msoft-float
.endif
.if ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -m32
@ -31,6 +25,7 @@ machine:
ln -sf ${.CURDIR}/../../i386/include machine
.endif
.include <bsd.stand.mk>
.include <bsd.lib.mk>
.if ${MACHINE_CPUARCH} == "amd64"