aboutsummaryrefslogtreecommitdiff
path: root/Makefile.libcompat
diff options
context:
space:
mode:
authorBryan Drewery <bdrewery@FreeBSD.org>2016-08-23 19:29:37 +0000
committerBryan Drewery <bdrewery@FreeBSD.org>2016-08-23 19:29:37 +0000
commit4d611b2b2d8ef0a80823853e26868f7c6d816d74 (patch)
treed02cd4dd968a04817554b98a24fed17579d4fc4b /Makefile.libcompat
parentde7b37e61892b3134a7bcf86f402af987671a575 (diff)
downloadsrc-4d611b2b2d8ef0a80823853e26868f7c6d816d74.tar.gz
src-4d611b2b2d8ef0a80823853e26868f7c6d816d74.zip
Fix in-tree GCC builds after r304681.
There were a few issues. - In-tree GCC won't have X_COMPILER_TYPE defined but will have WANT_COMPILER_TYPE==gcc set from the SYSTEM_COMPILER logic that can be used. Make the clang check specific to clang as well to ensure -target doesn't leak into a GCC build. - When using a cross-compiler GCC (with a default sysroot or arch) and also passing --sysroot, it basically forgets all internal paths for libraries. We've already worked around this quite a bit for the external toolchains. Now for the in-tree bootstrap cross-compiler GCC, also pass in the needed -B${WORLDTMP}/usr/lib to find the crt object files, but also -isystem and -L to fix the paths. This creates quite a spammy build log, but it is clear and still achieves the goals and stays consistent between internal and external build flags. Reducing the spam by using the '=' prefix feature will help and be done later. MFC after: 3 days X-MFC-With: r304681 Reported by: bz Pointyhat to: bdrewery Sponsored by: EMC / Isilon Storage Division
Notes
Notes: svn path=/head/; revision=304695
Diffstat (limited to 'Makefile.libcompat')
-rw-r--r--Makefile.libcompat3
1 files changed, 2 insertions, 1 deletions
diff --git a/Makefile.libcompat b/Makefile.libcompat
index 9fbfa075d338..987874b15489 100644
--- a/Makefile.libcompat
+++ b/Makefile.libcompat
@@ -73,7 +73,8 @@ LIBCOMPATCFLAGS+= ${LIBCOMPATCPUFLAGS} \
# Clang/GCC.
LIBCOMPATCFLAGS+= -B${LIBCOMPATTMP}/usr/lib${libcompat}
-.if defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc
+.if ${WANT_COMPILER_TYPE} == gcc || \
+ (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc)
# GCC requires -isystem when using a cross-compiler and --sysroot. Note that
# Makefile.inc1 only applies this with an external compiler but libcompat
# always does since even in-tree GCC 4.2 needs this to override the built-in