summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2013-12-30 20:15:46 +0000
committerdim <dim@FreeBSD.org>2013-12-30 20:15:46 +0000
commit5fce04bd49f3f5cc0cdad8752ecca4dd5682a21b (patch)
tree0dad04d1ac565d14d7c55b2a8173f9128cc6509e
parent8a773bc13424e791cea0f4c0136a48f9667e87c5 (diff)
downloadFreeBSD-src-5fce04bd49f3f5cc0cdad8752ecca4dd5682a21b.zip
FreeBSD-src-5fce04bd49f3f5cc0cdad8752ecca4dd5682a21b.tar.gz
MFC r257532 (by adrian):
Fix this build for clang. MFC r259730: To avoid having to explicitly test COMPILER_TYPE for setting clang-specific or gcc-specific flags, introduce the following new variables for use in Makefiles: CFLAGS.clang CFLAGS.gcc CXXFLAGS.clang CXXFLAGS.gcc In bsd.sys.mk, these get appended to the regular CFLAGS or CXXFLAGS for the right compiler. MFC r259913: For libstand and sys/boot, split off gcc-only flags into CFLAGS.gcc. MFC r259927: Fix pc98 build, by also forcing COMPILER_TYPE in sys/boot/pc98/boot2's Makefile. Pointy hat to: dim
-rw-r--r--gnu/lib/csu/Makefile4
-rw-r--r--gnu/lib/libgcc/Makefile4
-rw-r--r--gnu/lib/libstdc++/Makefile4
-rw-r--r--gnu/lib/libsupc++/Makefile4
-rw-r--r--lib/atf/libatf-c/tests/Makefile4
-rw-r--r--lib/libstand/Makefile2
-rw-r--r--share/mk/bsd.sys.mk9
-rw-r--r--sys/boot/ficl/Makefile2
-rw-r--r--sys/boot/i386/Makefile.inc5
-rw-r--r--sys/boot/i386/boot2/Makefile7
-rw-r--r--sys/boot/pc98/Makefile.inc5
-rw-r--r--sys/boot/pc98/boot2/Makefile1
-rw-r--r--sys/boot/usb/Makefile2
-rw-r--r--sys/boot/usb/Makefile.test2
-rw-r--r--sys/boot/userboot/ficl/Makefile2
-rw-r--r--sys/boot/userboot/libstand/Makefile2
-rw-r--r--sys/boot/zfs/Makefile2
-rw-r--r--sys/conf/Makefile.arm12
-rw-r--r--tools/tools/ath/athstats/Makefile8
-rw-r--r--tools/tools/net80211/wlanstats/Makefile4
-rw-r--r--usr.bin/mkcsmapper/Makefile.inc4
21 files changed, 44 insertions, 45 deletions
diff --git a/gnu/lib/csu/Makefile b/gnu/lib/csu/Makefile
index 05327f7..02f540b 100644
--- a/gnu/lib/csu/Makefile
+++ b/gnu/lib/csu/Makefile
@@ -15,9 +15,7 @@ OBJS= crtbegin.o crtend.o crtbeginT.o
SOBJS= crtbeginS.o crtendS.o
CSTD?= gnu89
CFLAGS+= -DIN_GCC -DHAVE_LD_EH_FRAME_HDR -DDT_CONFIG -D__GLIBC__=3
-.if ${COMPILER_TYPE} == "gcc"
-CFLAGS+= -finhibit-size-directive -fno-toplevel-reorder
-.endif
+CFLAGS.gcc+= -finhibit-size-directive -fno-toplevel-reorder
CFLAGS+= -fno-inline-functions -fno-exceptions \
-fno-zero-initialized-in-bss -fno-asynchronous-unwind-tables \
-fno-omit-frame-pointer
diff --git a/gnu/lib/libgcc/Makefile b/gnu/lib/libgcc/Makefile
index 092e321..d9521d4 100644
--- a/gnu/lib/libgcc/Makefile
+++ b/gnu/lib/libgcc/Makefile
@@ -112,9 +112,7 @@ LIB2_DIVMOD_FUNCS = _divdi3 _moddi3 _udivdi3 _umoddi3 _udiv_w_sdiv _udivmoddi4
.if ${TARGET_CPUARCH} == "arm"
# from config/arm/t-strongarm-elf
CFLAGS+= -Dinhibit_libc -fno-inline
-.if ${COMPILER_TYPE} == "clang"
-CFLAGS+= -fheinous-gnu-extensions
-.endif
+CFLAGS.clang+= -fheinous-gnu-extensions
LIB1ASMSRC = lib1funcs.asm
LIB1ASMFUNCS = _dvmd_tls _bb_init_func
diff --git a/gnu/lib/libstdc++/Makefile b/gnu/lib/libstdc++/Makefile
index 935a899..b0d45d6 100644
--- a/gnu/lib/libstdc++/Makefile
+++ b/gnu/lib/libstdc++/Makefile
@@ -637,6 +637,4 @@ CLEANFILES+= ${VERSION_MAP}
# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
CXXFLAGS:= ${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
-.if ${COMPILER_TYPE} == "clang"
-CXXFLAGS+= -stdlib=libstdc++
-.endif
+CXXFLAGS.clang+= -stdlib=libstdc++
diff --git a/gnu/lib/libsupc++/Makefile b/gnu/lib/libsupc++/Makefile
index 630387a..acf1b58 100644
--- a/gnu/lib/libsupc++/Makefile
+++ b/gnu/lib/libsupc++/Makefile
@@ -57,6 +57,4 @@ VERSION_MAP= ${.CURDIR}/Version.map
# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
CXXFLAGS:= ${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
-.if ${COMPILER_TYPE} == "clang"
-CXXFLAGS+= -stdlib=libstdc++
-.endif
+CXXFLAGS.clang+= -stdlib=libstdc++
diff --git a/lib/atf/libatf-c/tests/Makefile b/lib/atf/libatf-c/tests/Makefile
index 0d13d9c..a5c2836 100644
--- a/lib/atf/libatf-c/tests/Makefile
+++ b/lib/atf/libatf-c/tests/Makefile
@@ -10,12 +10,10 @@ ATF= ${.CURDIR:H:H:H:H}/contrib/atf
CFLAGS+= -I${ATF}
-.if ${COMPILER_TYPE} == "clang"
# macros_test.c contains a double 'const const' which will be gone with
# the import of atf-0.18.
# TODO(jmmv): Remove this workaround once we do that update.
-CFLAGS+= -Wno-duplicate-decl-specifier
-.endif
+CFLAGS.clang+= -Wno-duplicate-decl-specifier
FILESDIR= ${TESTSDIR}
FILES= macros_h_test.c
diff --git a/lib/libstand/Makefile b/lib/libstand/Makefile
index 506b564..997616e 100644
--- a/lib/libstand/Makefile
+++ b/lib/libstand/Makefile
@@ -21,7 +21,7 @@ CFLAGS+= -ffreestanding -Wformat
CFLAGS+= -I${.CURDIR}
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
-CFLAGS+= -mpreferred-stack-boundary=2
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
.endif
.if ${MACHINE} == "pc98"
diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk
index e297115..64815b3 100644
--- a/share/mk/bsd.sys.mk
+++ b/share/mk/bsd.sys.mk
@@ -114,12 +114,19 @@ CWARNFLAGS+= -Wno-format
CWARNFLAGS+= -Wno-unknown-pragmas
.endif # IGNORE_PRAGMA
-.if ${COMPILER_TYPE} == "clang" && !defined(EARLY_BUILD)
+.if !defined(EARLY_BUILD)
+.if ${COMPILER_TYPE} == "clang"
CLANG_NO_IAS= -no-integrated-as
CLANG_OPT_SMALL= -mstack-alignment=8 -mllvm -inline-threshold=3\
-mllvm -enable-load-pre=false -mllvm -simplifycfg-dup-ret
CFLAGS+= -Qunused-arguments
+CFLAGS+= ${CFLAGS.clang}
+CXXFLAGS+= ${CXXFLAGS.clang}
+.else # !CLANG
+CFLAGS+= ${CFLAGS.gcc}
+CXXFLAGS+= ${CXXFLAGS.gcc}
.endif # CLANG
+.endif # !EARLY_BUILD
.if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \
${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips"
diff --git a/sys/boot/ficl/Makefile b/sys/boot/ficl/Makefile
index 77f4a8f..9a3e399 100644
--- a/sys/boot/ficl/Makefile
+++ b/sys/boot/ficl/Makefile
@@ -17,7 +17,7 @@ CFLAGS+= -ffreestanding
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
.if !defined(FICL64)
CFLAGS+= -march=i386
-CFLAGS+= -mpreferred-stack-boundary=2
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
.endif
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
.endif
diff --git a/sys/boot/i386/Makefile.inc b/sys/boot/i386/Makefile.inc
index f5faec7..83b4d18 100644
--- a/sys/boot/i386/Makefile.inc
+++ b/sys/boot/i386/Makefile.inc
@@ -5,8 +5,9 @@
BINDIR?= /boot
LOADER_ADDRESS?=0x200000
-CFLAGS+= -march=i386 -ffreestanding -mpreferred-stack-boundary=2 \
- -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
+CFLAGS+= -march=i386 -ffreestanding
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
+CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
LDFLAGS+= -nostdlib
.if ${MACHINE_CPUARCH} == "amd64"
diff --git a/sys/boot/i386/boot2/Makefile b/sys/boot/i386/boot2/Makefile
index 68e49ed..8f1c150 100644
--- a/sys/boot/i386/boot2/Makefile
+++ b/sys/boot/i386/boot2/Makefile
@@ -23,10 +23,7 @@ BOOT2_UFS?= UFS1_AND_UFS2
#BOOT2_UFS?= UFS1_ONLY
CFLAGS= -Os \
- -fno-guess-branch-probability \
-fomit-frame-pointer \
- -fno-unit-at-a-time \
- -mno-align-long-strings \
-mrtd \
-mregparm=3 \
-DUSE_XREAD \
@@ -43,6 +40,10 @@ CFLAGS= -Os \
-Winline --param max-inline-insns-single=100 \
${CLANG_OPT_SMALL}
+CFLAGS.gcc+= -fno-guess-branch-probability \
+ -fno-unit-at-a-time \
+ -mno-align-long-strings \
+
LDFLAGS=-static -N --gc-sections
# Pick up ../Makefile.inc early.
diff --git a/sys/boot/pc98/Makefile.inc b/sys/boot/pc98/Makefile.inc
index 857c8bc..b613302 100644
--- a/sys/boot/pc98/Makefile.inc
+++ b/sys/boot/pc98/Makefile.inc
@@ -5,8 +5,9 @@
BINDIR?= /boot
LOADER_ADDRESS?=0x200000
-CFLAGS+= -march=i386 -ffreestanding -mpreferred-stack-boundary=2 \
- -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
+CFLAGS+= -march=i386 -ffreestanding
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
+CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
CFLAGS+= -Os -DPC98
LDFLAGS+= -nostdlib
diff --git a/sys/boot/pc98/boot2/Makefile b/sys/boot/pc98/boot2/Makefile
index 00a28de..2b3e2c9 100644
--- a/sys/boot/pc98/boot2/Makefile
+++ b/sys/boot/pc98/boot2/Makefile
@@ -4,6 +4,7 @@
# XXX: clang can compile the boot code just fine, but boot2 gets too big
CC:= gcc
+COMPILER_TYPE:= gcc
FILES= boot boot1 boot2
diff --git a/sys/boot/usb/Makefile b/sys/boot/usb/Makefile
index 3ed12c8..3e8c83e 100644
--- a/sys/boot/usb/Makefile
+++ b/sys/boot/usb/Makefile
@@ -53,7 +53,7 @@ CFLAGS+= -g
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -march=i386
-CFLAGS+= -mpreferred-stack-boundary=2
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
.endif
.if ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -m32
diff --git a/sys/boot/usb/Makefile.test b/sys/boot/usb/Makefile.test
index b7139e7..7c6a66d1 100644
--- a/sys/boot/usb/Makefile.test
+++ b/sys/boot/usb/Makefile.test
@@ -40,7 +40,7 @@ CFLAGS+= -g
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -march=i386
-CFLAGS+= -mpreferred-stack-boundary=2
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
.endif
.if ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -m32
diff --git a/sys/boot/userboot/ficl/Makefile b/sys/boot/userboot/ficl/Makefile
index 42b9309..7bd8dd5 100644
--- a/sys/boot/userboot/ficl/Makefile
+++ b/sys/boot/userboot/ficl/Makefile
@@ -16,7 +16,7 @@ CFLAGS+= -ffreestanding -fPIC
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2
.endif
.if ${MACHINE_CPUARCH} == "i386"
-CFLAGS+= -mpreferred-stack-boundary=2
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-sse3
.endif
.if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm"
diff --git a/sys/boot/userboot/libstand/Makefile b/sys/boot/userboot/libstand/Makefile
index 76af4b9..d312ee4 100644
--- a/sys/boot/userboot/libstand/Makefile
+++ b/sys/boot/userboot/libstand/Makefile
@@ -28,7 +28,7 @@ CFLAGS+= -I${.CURDIR}/../../../../lib/libstand
CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2
.endif
.if ${MACHINE_CPUARCH} == "i386"
-CFLAGS+= -mpreferred-stack-boundary=2
+CFLAGS.gcc+= -mpreferred-stack-boundary=2
CFLAGS+= -mno-sse3
.endif
.if ${MACHINE} == "pc98"
diff --git a/sys/boot/zfs/Makefile b/sys/boot/zfs/Makefile
index 9b900e4..2407643 100644
--- a/sys/boot/zfs/Makefile
+++ b/sys/boot/zfs/Makefile
@@ -13,7 +13,7 @@ CFLAGS+= -I${.CURDIR}/../../cddl/boot/zfs
CFLAGS+= -ffreestanding
.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
CFLAGS+= -march=i386
-CFLAGS+= -mpreferred-stack-boundary=2
+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"
diff --git a/sys/conf/Makefile.arm b/sys/conf/Makefile.arm
index c13272b..5bacbe3 100644
--- a/sys/conf/Makefile.arm
+++ b/sys/conf/Makefile.arm
@@ -39,20 +39,16 @@ SYSTEM_DEP:= ${SYSTEM_DEP:$S/conf/ldscript.$M=ldscript.$M}
STRIP_FLAGS = -S
.endif
-.if ${COMPILER_TYPE} != "clang"
-CFLAGS += -mno-thumb-interwork
-.endif
+CFLAGS.gcc += -mno-thumb-interwork
.if empty(DDB_ENABLED)
-.if defined(WITHOUT_ARM_EABI) && ${COMPILER_TYPE} != "clang"
-CFLAGS += -mno-apcs-frame
+.if defined(WITHOUT_ARM_EABI)
+CFLAGS.gcc += -mno-apcs-frame
.endif
.elif !defined(WITHOUT_ARM_EABI)
CFLAGS += -funwind-tables
-.if ${COMPILER_TYPE} == "clang"
# clang requires us to tell it to emit assembly with unwind information
-CFLAGS += -mllvm -arm-enable-ehabi
-.endif
+CFLAGS.clang += -mllvm -arm-enable-ehabi
.endif
SYSTEM_LD_ = ${LD} -Bdynamic -T ldscript.$M.noheader ${LDFLAGS} \
diff --git a/tools/tools/ath/athstats/Makefile b/tools/tools/ath/athstats/Makefile
index 1db2dc1..d4cce3a 100644
--- a/tools/tools/ath/athstats/Makefile
+++ b/tools/tools/ath/athstats/Makefile
@@ -1,12 +1,16 @@
# $FreeBSD$
+NO_MAN=1
+
+.include <bsd.own.mk>
+
.PATH: ${.CURDIR}/../../../../sys/dev/ath/ath_hal
PROG= athstats
# Because of a clang preprocessor parser limitation causing this
# to not compile, use gcc for now.
-CC= gcc
+#CC= gcc
SRCS= main.c statfoo.c athstats.c opt_ah.h ah_osdep.h
@@ -17,6 +21,8 @@ CLEANFILES+= opt_ah.h
CFLAGS+=-DATH_SUPPORT_ANI
CFLAGS+=-DATH_SUPPORT_TDMA
+CFLAGS.clang+= -fbracket-depth=512
+
opt_ah.h:
echo "#define AH_DEBUG 1" > opt_ah.h
echo "#define AH_DEBUG_COUNTRY 1" >> opt_ah.h
diff --git a/tools/tools/net80211/wlanstats/Makefile b/tools/tools/net80211/wlanstats/Makefile
index 48df17f..30067ef 100644
--- a/tools/tools/net80211/wlanstats/Makefile
+++ b/tools/tools/net80211/wlanstats/Makefile
@@ -7,8 +7,6 @@ BINDIR= /usr/local/bin
NO_MAN=
SRCS= statfoo.c wlanstats.c main.c
-.if ${COMPILER_TYPE} == "clang"
-CFLAGS+= -fbracket-depth=512
-.endif
+CFLAGS.clang+= -fbracket-depth=512
.include <bsd.prog.mk>
diff --git a/usr.bin/mkcsmapper/Makefile.inc b/usr.bin/mkcsmapper/Makefile.inc
index e0acc9b..5a4cc6f 100644
--- a/usr.bin/mkcsmapper/Makefile.inc
+++ b/usr.bin/mkcsmapper/Makefile.inc
@@ -6,6 +6,4 @@ SRCS+= lex.l yacc.y
CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../mkcsmapper \
-I${.CURDIR}/../../lib/libc/iconv \
-I${.CURDIR}/../../lib/libiconv_modules/mapper_std
-.if ${COMPILER_TYPE} == "gcc"
-CFLAGS+= --param max-inline-insns-single=64
-.endif
+CFLAGS.gcc+= --param max-inline-insns-single=64
OpenPOWER on IntegriCloud