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++
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to