Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Jul 2016 18:50:11 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r303274 - head
Message-ID:  <201607241850.u6OIoBgg007866@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Sun Jul 24 18:50:11 2016
New Revision: 303274
URL: https://svnweb.freebsd.org/changeset/base/303274

Log:
  Don't disable binutils/elftoolchain bootstrapping with external compiler.
  
  This was a regression from r300349.
  
  Setting MK_CROSS_COMPILER=no forces the compiler bootstraping *and* the
  binutils/elftoolchain bootstrapping to be disabled in share/mk/src.opts.mk.
  The only intent with using an external compiler is to disable bootstrapping of
  the compiler.  The binutils/elftoolchain bootstrapping must still occur unless
  XAS is set.  This did not affect WITH_SYSTEM_COMPILER.
  
  Now that setting an external compiler sets both MK_CLANG_BOOTSTRAP and
  MK_GCC_BOOTSTRAP to no, and MK_CROSS_COMPILER does the same via
  share/mk/src/opts.mk, remove redundant logic that checks for
  MK_CROSS_COMPILER.  It will not always be true now that MK_CROSS_COMPILER==no
  when an external compiler is used and --sysroot/-target is needed.
  
  Reported by:	sbruno
  Pointyhat to:	bdrewery
  MFC after:	3 days
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/Makefile.inc1
  head/Makefile.libcompat

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Sun Jul 24 18:28:14 2016	(r303273)
+++ head/Makefile.inc1	Sun Jul 24 18:50:11 2016	(r303274)
@@ -74,7 +74,8 @@ X${COMPILER}?=	${${COMPILER}}
 # If a full path to an external cross compiler is given, don't build
 # a cross compiler.
 .if ${XCC:N${CCACHE_BIN}:M/*}
-MK_CROSS_COMPILER=	no
+MK_CLANG_BOOTSTRAP=	no
+MK_GCC_BOOTSTRAP=	no
 .endif
 
 # Pull in COMPILER_TYPE and COMPILER_FREEBSD_VERSION early.
@@ -116,7 +117,7 @@ WANT_COMPILER_VERSION!= \
 # If the expected vs CC is different then we can't skip.
 # GCC cannot be used for cross-arch yet.  For clang we pass -target later if
 # TARGET_ARCH!=MACHINE_ARCH.
-.if ${MK_SYSTEM_COMPILER} == "yes" && ${MK_CROSS_COMPILER} == "yes" && \
+.if ${MK_SYSTEM_COMPILER} == "yes" && \
     (${MK_CLANG_BOOTSTRAP} == "yes" || ${MK_GCC_BOOTSTRAP} == "yes") && \
     !make(showconfig) && !make(native-xtools) && !make(xdev*) && \
     ${WANT_COMPILER_TYPE} == ${COMPILER_TYPE} && \
@@ -550,8 +551,7 @@ BFLAGS+=	-B${CROSS_BINUTILS_PREFIX}
 .endif
 
 # External compiler needs sysroot and target flags.
-.if ${MK_CROSS_COMPILER} == "no" || \
-    (${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no")
+.if ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no"
 .if !defined(CROSS_BINUTILS_PREFIX) || !exists(${CROSS_BINUTILS_PREFIX})
 BFLAGS+=	-B${WORLDTMP}/usr/bin
 .endif
@@ -579,7 +579,7 @@ TARGET_TRIPLE?=	${TARGET_ARCH:C/amd64/x8
 XCFLAGS+=	-target ${TARGET_TRIPLE}
 .endif
 XCFLAGS+=	--sysroot=${WORLDTMP}
-.endif # ${MK_CROSS_COMPILER} == "no"
+.endif # ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no"
 
 .if !empty(BFLAGS)
 XCFLAGS+=	${BFLAGS}
@@ -1820,7 +1820,6 @@ _elftctools=	lib/libelftc \
 		usr.bin/elfcopy
 .endif
 
-.if ${MK_CROSS_COMPILER} != "no"
 .if ${MK_CLANG_BOOTSTRAP} != "no"
 _clang=		usr.bin/clang
 _clang_libs=	lib/clang
@@ -1828,7 +1827,6 @@ _clang_libs=	lib/clang
 .if ${MK_GCC_BOOTSTRAP} != "no"
 _cc=		gnu/usr.bin/cc
 .endif
-.endif
 .if ${MK_USB} != "no"
 _usb_tools=	sys/boot/usb/tools
 .endif

Modified: head/Makefile.libcompat
==============================================================================
--- head/Makefile.libcompat	Sun Jul 24 18:28:14 2016	(r303273)
+++ head/Makefile.libcompat	Sun Jul 24 18:50:11 2016	(r303274)
@@ -81,8 +81,8 @@ LIBCOMPATCFLAGS+=	-B${LIBCOMPATTMP}/usr/
 LIBCOMPATCFLAGS+=	-isystem ${LIBCOMPATTMP}/usr/include
 # Force using libc++ for external GCC.
 # XXX: This should be checking MK_GNUCXX == no
-.if ${X_COMPILER_VERSION} >= 40800 && (${MK_CROSS_COMPILER} == "no" || \
-    (${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no"))
+.if ${X_COMPILER_VERSION} >= 40800 && \
+    (${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no")
 LIBCOMPATCXXFLAGS+=	-isystem ${LIBCOMPATTMP}/usr/include/c++/v1 -std=c++11 \
 			-nostdinc++ -L${LIBCOMPAT_OBJTREE}${.CURDIR}/lib/libc++
 .endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201607241850.u6OIoBgg007866>