aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2014-03-30 23:43:30 +0000
committerWarner Losh <imp@FreeBSD.org>2014-03-30 23:43:30 +0000
commit63e4d6f712595bd6f89699253563b65816a0a849 (patch)
treec63655eb140a2587b3b9cf415ee0e3fcd3b5bf41
parentbfbada6ed43f6fdde7476217ffb0a34c9e5b1b55 (diff)
downloadsrc-63e4d6f712595bd6f89699253563b65816a0a849.tar.gz
src-63e4d6f712595bd6f89699253563b65816a0a849.zip
There's no need to guess at the COMPILER_TYPE to pass it down. We
guess wrong for buildkernel when CC=gcc49, say. Eliminate all the guessing. COMPILER_TYPE propigates properly on its own, if specified, and we guess it correctly otherwise lower in the build. Also, fix conditionals for armv6hf when using an external compiler chain. They were broken before, but unused. Also, prefer checking the compiler type over CLANG_IS_CC since the latter is only supposed to be used to determine what symlinks to install (more fixes to follow).
Notes
Notes: svn path=/head/; revision=263953
-rw-r--r--Makefile.inc136
-rw-r--r--share/mk/bsd.prog.mk2
2 files changed, 10 insertions, 28 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 76829e14049a..7e39ee85a323 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -240,8 +240,7 @@ BMAKEENV= INSTALL="sh ${.CURDIR}/tools/install.sh" \
PATH=${BPATH}:${PATH} \
WORLDTMP=${WORLDTMP} \
VERSION="${VERSION}" \
- MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
- COMPILER_TYPE=${COMPILER_TYPE}
+ MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}"
BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \
${BMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \
DESTDIR= \
@@ -270,8 +269,7 @@ XMAKE= TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
KTMAKEENV= INSTALL="sh ${.CURDIR}/tools/install.sh" \
PATH=${BPATH}:${PATH} \
WORLDTMP=${WORLDTMP} \
- VERSION="${VERSION}" \
- COMPILER_TYPE=${COMPILER_TYPE}
+ VERSION="${VERSION}"
KTMAKE= TOOLS_PREFIX=${WORLDTMP} MAKEOBJDIRPREFIX=${WORLDTMP} \
${KTMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 \
DESTDIR= \
@@ -324,17 +322,6 @@ WMAKEENV+= CC="${XCC} ${XFLAGS}" CXX="${XCXX} ${XFLAGS}" \
AS="${XAS}" AR="${XAR}" LD="${XLD}" NM=${XNM} \
OBJDUMP=${XOBJDUMP} RANLIB=${XRANLIB} STRINGS=${XSTRINGS}
-.if ${XCC:T:Mgcc} == "gcc"
-WMAKE_COMPILER_TYPE= gcc
-.elif ${XCC:T:Mclang} == "clang"
-WMAKE_COMPILER_TYPE= clang
-.elif ${MK_CLANG_IS_CC} == "no"
-WMAKE_COMPILER_TYPE= gcc
-.else
-WMAKE_COMPILER_TYPE= clang
-.endif
-IMAKE_COMPILER_TYPE= COMPILER_TYPE=${WMAKE_COMPILER_TYPE}
-
.if ${XCC:M/*}
XFLAGS= --sysroot=${WORLDTMP}
.if defined(CROSS_BINUTILS_PREFIX)
@@ -347,21 +334,18 @@ XFLAGS+= -B${CROSS_BINUTILS_PREFIX}
.else
XFLAGS+= -B${WORLDTMP}/usr/bin
.endif
-.if ${TARGET_ARCH} != ${MACHINE_ARCH} && ${WMAKE_COMPILER_TYPE} == "clang"
-.if (${TARGET_ARCH} == "arm" || ${TARGET_ARCH} == "armv6") && \
-${MK_ARM_EABI} != "no"
+.if ${TARGET} == "arm" && ${MK_ARM_EABI} != "no"
+.if ${TARGET_ARCH:M*eb*} == ""
TARGET_ABI= gnueabi
.elif ${TARGET_ARCH} == "armv6hf"
TARGET_ABI= gnueabihf
-.else
-TARGET_ABI= unknown
.endif
+.endif
+TARGET_ABI?= unknown
TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd11.0
XFLAGS+= -target ${TARGET_TRIPLE}
.endif
-.endif
-WMAKEENV+= COMPILER_TYPE=${WMAKE_COMPILER_TYPE}
WMAKE= ${WMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 DESTDIR=${WORLDTMP}
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
@@ -409,10 +393,8 @@ LIB32WMAKEENV+= MAKEOBJDIRPREFIX=${OBJTREE}/lib32 \
PATH=${TMPPATH} \
LIBDIR=/usr/lib32 \
SHLIBDIR=/usr/lib32 \
- LIBPRIVATEDIR=/usr/lib32/private \
- COMPILER_TYPE=${WMAKE_COMPILER_TYPE}
-LIB32WMAKEFLAGS+= \
- CC="${XCC} ${LIB32FLAGS}" \
+ LIBPRIVATEDIR=/usr/lib32/private
+LIB32WMAKEFLAGS+= CC="${XCC} ${LIB32FLAGS}" \
CXX="${XCXX} ${LIB32FLAGS}" \
DESTDIR=${LIB32TMP} \
-DCOMPAT_32BIT \
@@ -430,7 +412,7 @@ LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} -DNO_INCS \
IMAKEENV= ${CROSSENV:N_LDSCRIPTROOT=*}
IMAKE= ${IMAKEENV} ${MAKE} -f Makefile.inc1 \
- ${IMAKE_INSTALL} ${IMAKE_MTREE} ${IMAKE_COMPILER_TYPE}
+ ${IMAKE_INSTALL} ${IMAKE_MTREE}
.if empty(.MAKEFLAGS:M-n)
IMAKEENV+= PATH=${STRICTTMPPATH}:${INSTALLTMP} \
LD_LIBRARY_PATH=${INSTALLTMP} \
diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk
index 2c196d612c1e..ea03f1f7eab5 100644
--- a/share/mk/bsd.prog.mk
+++ b/share/mk/bsd.prog.mk
@@ -173,7 +173,7 @@ _EXTRADEPEND:
.else
echo ${PROG}: ${LIBC} ${DPADD} >> ${DEPENDFILE}
.if defined(PROG_CXX) && !defined(EARLY_BUILD)
-.if ${MK_CLANG_IS_CC} != "no" && empty(CXXFLAGS:M-stdlib=libstdc++)
+.if ${COMPILER_TYPE} == "clang" && empty(CXXFLAGS:M-stdlib=libstdc++)
echo ${PROG}: ${LIBCPLUSPLUS} >> ${DEPENDFILE}
.else
echo ${PROG}: ${LIBSTDCPLUSPLUS} >> ${DEPENDFILE}