svn commit: r322433 - stable/11
Dimitry Andric
dim at FreeBSD.org
Sat Aug 12 17:50:23 UTC 2017
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++
More information about the svn-src-stable-11
mailing list