Author: bdrewery
Date: Sun May 29 06:20:15 2016
New Revision: 300943
URL: https://svnweb.freebsd.org/changeset/base/300943
Log:
GCC External: Revert r300886, r300904, r300917, r300918
The fix in r300873 is mostly enough. A fix for lib32 will be
committed.separately.
Modified:
head/Makefile.inc1
head/Makefile.libcompat
head/lib/libc++/Makefile
head/lib/libcxxrt/Makefile
head/share/mk/bsd.compiler.mk
head/share/mk/bsd.sys.mk
Modified: head/Makefile.inc1
==
--- head/Makefile.inc1 Sun May 29 06:01:18 2016(r300942)
+++ head/Makefile.inc1 Sun May 29 06:20:15 2016(r300943)
@@ -527,7 +527,13 @@ TARGET_ABI=gnueabihf
TARGET_ABI=gnueabi
.endif
.endif
-.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == "clang"
+.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc
+# GCC requires -isystem and -L when using a cross-compiler.
+XCFLAGS+= -isystem ${WORLDTMP}/usr/include -L${WORLDTMP}/usr/lib
+# Force using libc++ for external GCC.
+XCXXFLAGS+=-isystem ${WORLDTMP}/usr/include/c++/v1 -std=c++11 \
+ -nostdinc++ -L${WORLDTMP}/../lib/libc++
+.else
TARGET_ABI?= unknown
TARGET_TRIPLE?=${TARGET_ARCH:C/amd64/x86_64/}-${TARGET_ABI}-freebsd11.0
XCFLAGS+= -target ${TARGET_TRIPLE}
Modified: head/Makefile.libcompat
==
--- head/Makefile.libcompat Sun May 29 06:01:18 2016(r300942)
+++ head/Makefile.libcompat Sun May 29 06:20:15 2016(r300943)
@@ -17,7 +17,7 @@ LIB32CPUFLAGS=-march=${TARGET_CPUTYPE}
.endif
LIB32WMAKEENV= MACHINE=i386 MACHINE_ARCH=i386 \
MACHINE_CPU="i686 mmx sse sse2"
-LIB32WMAKEENV+=\
+LIB32WMAKEFLAGS= \
AS="${XAS} --32" \
LD="${XLD} -m elf_i386_fbsd -Y P,${LIBCOMPATTMP}/usr/lib32" \
OBJCOPY="${XOBJCOPY}"
@@ -29,7 +29,7 @@ LIB32CPUFLAGS=-mcpu=powerpc
LIB32CPUFLAGS= -mcpu=${TARGET_CPUTYPE}
.endif
LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc
-LIB32WMAKEENV+=\
+LIB32WMAKEFLAGS= \
LD="${XLD} -m elf32ppc_fbsd" \
OBJCOPY="${XOBJCOPY}"
.endif
@@ -72,6 +72,13 @@ LIBCOMPATCFLAGS+=${LIBCOMPATCPUFLAGS} \
# -B is needed to find /usr/lib32/crti.o for GCC and /usr/libsoft/crti.o for
# Clang/GCC.
LIBCOMPATCFLAGS+= -B${LIBCOMPATTMP}/usr/lib${libcompat}
+.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc
+# GCC requires -isystem when using a cross-compiler.
+LIBCOMPATCFLAGS+= -isystem ${LIBCOMPATTMP}/usr/include
+# Force using libc++ for external GCC.
+LIBCOMPATCXXFLAGS+=-isystem ${LIBCOMPATTMP}/usr/include/c++/v1 -std=c++11 \
+ -nostdinc++ -L${LIBCOMPAT_OBJTREE}${.CURDIR}/lib/libc++
+.endif
# Yes, the flags are redundant.
LIBCOMPATWMAKEENV+= MAKEOBJDIRPREFIX=${LIBCOMPAT_OBJTREE} \
@@ -84,11 +91,9 @@ LIBCOMPATWMAKEENV+= MAKEOBJDIRPREFIX=${L
# Don't rebuild build-tools targets during normal build.
LIBCOMPATWMAKEENV+=BUILD_TOOLS_META=.NOMETA_CMP
.endif
-LIBCOMPATWMAKEENV+= \
- CC="${XCC} ${LIBCOMPATCFLAGS}" \
+LIBCOMPATWMAKEFLAGS+= CC="${XCC} ${LIBCOMPATCFLAGS}" \
CXX="${XCXX} ${LIBCOMPATCFLAGS} ${LIBCOMPATCXXFLAGS}" \
- CPP="${XCPP} ${LIBCOMPATCFLAGS}"
-LIBCOMPATWMAKEFLAGS+= \
+ CPP="${XCPP} ${LIBCOMPATCFLAGS}" \
DESTDIR=${LIBCOMPATTMP} \
-DNO_CPU_CFLAGS \
MK_CTF=no \
Modified: head/lib/libc++/Makefile
==
--- head/lib/libc++/MakefileSun May 29 06:01:18 2016(r300942)
+++ head/lib/libc++/MakefileSun May 29 06:20:15 2016(r300943)
@@ -63,7 +63,7 @@ cxxrt_${_S}: ${_LIBCXXRTDIR}/${_S} .NOME
.endfor
WARNS= 0
-CFLAGS+= -I${HDRDIR} -I${_LIBCXXRTDIR} -nostdinc++ -nostdlib -DLIBCXXRT
+CFLAGS+= -isystem ${HDRDIR} -isystem ${_LIBCXXRTDIR} -nostdinc++
-nostdlib -DLIBCXXRT
.if empty(CXXFLAGS:M-std=*)
CXXFLAGS+= -std=c++11
.endif
Modified: head/lib/libcxxrt/Makefile
==
--- head/lib/libcxxrt/Makefile Sun May 29 06:01:18 2016(r300942)
+++ head/lib/libcxxrt/Makefile Sun May 29 06:20:15 2016(r300943)
@@ -21,7 +21,7 @@ SRCS+=libelftc_dem_gnu3.c\
guard.cc
WARNS= 0
-CFLAGS+= -I${SRCDIR} -nostdinc++
+CFLAGS+= -isystem ${SRCDIR} -nostdinc++
.if empty(CXXFLAGS:M-std=*)
CXXFLAGS+= -std=c++11
.endif
Modified: head/share/mk/bsd.compiler.mk
==
--- head/share/mk/bsd.compiler.mk Sun May 29 06:01:18 2016
(r300942)
+++ head/share/mk/bsd.compiler.mk Sun May 29 06:20:15 2016
(r300943)
@@