Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Aug 2016 15:20:32 +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: r304681 - head
Message-ID:  <201608231520.u7NFKWIA029332@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Tue Aug 23 15:20:32 2016
New Revision: 304681
URL: https://svnweb.freebsd.org/changeset/base/304681

Log:
  Always pass in -target and --sysroot flags for the build.
  
  The internal bootstrap compiler has a default sysroot set by TOOLS_PREFIX
  and target set by TARGET/TARGET_ARCH.  However, there are several needs to
  always pass an explicit --sysroot and -target.
  - External compiler needs sysroot and target flags.
  - External ld needs sysroot.
  - To be clear about the use of a sysroot when using the internal compiler.
  - Easier debugging.
  - Allowing WITH_SYSTEM_COMPILER+WITH_META_MODE to work together due to
    the flip-flopping build command when sometimes using external and
    sometimes using internal.
  - Allow using no lld which has support for default paths.
  
  The default sysroot in the bootstrap compiler is not changed.  The
  buildenv compiler will still work with its default and will also
  include -target/--sysroot from CC in the environment.
  
  MFC after:	3 days
  Discussed with:	emaste, brooks (BSDCam)
  Reviewed by:	emaste
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  head/Makefile.inc1

Modified: head/Makefile.inc1
==============================================================================
--- head/Makefile.inc1	Tue Aug 23 13:53:38 2016	(r304680)
+++ head/Makefile.inc1	Tue Aug 23 15:20:32 2016	(r304681)
@@ -550,8 +550,18 @@ CROSSENV+=	CC="${XCC} ${XCFLAGS}" CXX="$
 BFLAGS+=	-B${CROSS_BINUTILS_PREFIX}
 .endif
 
-# External compiler needs sysroot and target flags.
-.if ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no"
+
+# The internal bootstrap compiler has a default sysroot set by TOOLS_PREFIX
+# and target set by TARGET/TARGET_ARCH.  However, there are several needs to
+# always pass an explicit --sysroot and -target.
+# - External compiler needs sysroot and target flags.
+# - External ld needs sysroot.
+# - To be clear about the use of a sysroot when using the internal compiler.
+# - Easier debugging.
+# - Allowing WITH_SYSTEM_COMPILER+WITH_META_MODE to work together due to
+#   the flip-flopping build command when sometimes using external and
+#   sometimes using internal.
+# - Allow using lld which has no support for default paths.
 .if !defined(CROSS_BINUTILS_PREFIX) || !exists(${CROSS_BINUTILS_PREFIX})
 BFLAGS+=	-B${WORLDTMP}/usr/bin
 .endif
@@ -579,7 +589,6 @@ TARGET_TRIPLE?=	${TARGET_ARCH:C/amd64/x8
 XCFLAGS+=	-target ${TARGET_TRIPLE}
 .endif
 XCFLAGS+=	--sysroot=${WORLDTMP}
-.endif # ${MK_CLANG_BOOTSTRAP} == "no" && ${MK_GCC_BOOTSTRAP} == "no"
 
 .if !empty(BFLAGS)
 XCFLAGS+=	${BFLAGS}



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