Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Aug 2017 17:50:22 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r322433 - stable/11
Message-ID:  <201708121750.v7CHoMeG096756@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Sat Aug 12 17:50:22 2017
New Revision: 322433
URL: https://svnweb.freebsd.org/changeset/base/322433

Log:
  MFC r321684:
  
  Don't use libc++ when cross-building for gcc arches
  
  Since we imported clang 5.0.0, the version check in Makefile.inc1 which
  checks whether to use libc++ fires even when the compiler for the target
  architecture is gcc 4.2.1.  This is because only X_COMPILER_VERSION is
  checked.  Also check X_COMPILER_TYPE, so it will only use libc++ when an
  external gcc toolchain is used.
  
  Reviewed by:	emaste, rpokala
  Differential Revision: https://reviews.freebsd.org/D11776
  
  MFC r322170:
  
  Follow-up to r321684 (Don't use libc++ when cross-building for gcc
  arches), and handle two more cases where libc++ includes could be
  incorrectly enabled, in case the host compiler is clang 5.0.0, and the
  target (cross) compiler is gcc 4.2.1.
  
  Noted by:	bdrewery

Modified:
  stable/11/Makefile.inc1
  stable/11/Makefile.libcompat
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/Makefile.inc1
==============================================================================
--- stable/11/Makefile.inc1	Sat Aug 12 17:46:50 2017	(r322432)
+++ stable/11/Makefile.inc1	Sat Aug 12 17:50:22 2017	(r322433)
@@ -589,8 +589,7 @@ TARGET_ABI=	gnueabi
 # is added before the port PREFIX library path.
 XCFLAGS+=	-isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib
 # Force using libc++ for external GCC.
-# XXX: This should be checking MK_GNUCXX == no
-.if ${X_COMPILER_VERSION} >= 40800
+.if ${X_COMPILER_TYPE} == gcc && ${X_COMPILER_VERSION} >= 40800
 XCXXFLAGS+=	-isystem ${WORLDTMP}/usr/include/c++/v1 -std=c++11 \
 		-nostdinc++ -L${WORLDTMP}/../lib/libc++
 .endif
@@ -2537,8 +2536,7 @@ CD2CFLAGS+=	-isystem ${XDDESTDIR}/usr/include -L${XDDE
 # combined with --sysroot.
 CD2CFLAGS+=	-B${XDDESTDIR}/usr/lib
 # Force using libc++ for external GCC.
-# XXX: This should be checking MK_GNUCXX == no
-.if ${X_COMPILER_VERSION} >= 40800
+.if ${X_COMPILER_TYPE} == gcc && ${X_COMPILER_VERSION} >= 40800
 CD2CXXFLAGS+=	-isystem ${XDDESTDIR}/usr/include/c++/v1 -std=c++11 \
 		-nostdinc++
 .endif

Modified: stable/11/Makefile.libcompat
==============================================================================
--- stable/11/Makefile.libcompat	Sat Aug 12 17:46:50 2017	(r322432)
+++ stable/11/Makefile.libcompat	Sat Aug 12 17:50:22 2017	(r322433)
@@ -82,8 +82,7 @@ LIBCOMPATCFLAGS+=	-B${LIBCOMPATTMP}/usr/lib${libcompat
 # sysroot path which --sysroot does not actually do for headers.
 LIBCOMPATCFLAGS+=	-isystem ${LIBCOMPATTMP}/usr/include
 # Force using libc++ for external GCC.
-# XXX: This should be checking MK_GNUCXX == no
-.if ${X_COMPILER_VERSION} >= 40800 && \
+.if ${X_COMPILER_TYPE} == gcc && ${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++



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