From 1879c5f8e74d14d23a5b440dd4bf85f6f5b7e908 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 28 Oct 2013 15:15:09 +0000
Subject: [PATCH] build: fix build on Mac OS X 10.9

Add a wrapper around the clang gcc emulation to fix -print-file-name=<lib>

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 38560
---
 include/toplevel.mk       | 11 +++++++++--
 scripts/clang-gcc-wrapper | 12 ++++++++++++
 2 files changed, 21 insertions(+), 2 deletions(-)
 create mode 100755 scripts/clang-gcc-wrapper

diff --git a/include/toplevel.mk b/include/toplevel.mk
index a623be9f2e..23d70ac81a 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -43,6 +43,13 @@ unexport LPATH
 # make sure that a predefined CFLAGS variable does not disturb packages
 export CFLAGS=
 
+ifneq ($(shell $(HOSTCC) 2>&1 | grep clang),)
+  export HOSTCC_REAL?=$(HOSTCC)
+  export HOSTCC_WRAPPER:=$(TOPDIR)/scripts/clang-gcc-wrapper
+else
+  export HOSTCC_WRAPPER:=$(HOSTCC)
+endif
+
 ifeq ($(FORCE),)
   .config scripts/config/conf scripts/config/mconf: tmp/.prereq-build
 endif
@@ -74,12 +81,12 @@ prepare-tmpinfo: FORCE
 	fi
 
 scripts/config/mconf:
-	@$(_SINGLE)$(SUBMAKE) -s -C scripts/config all CC="$(HOSTCC)"
+	@$(_SINGLE)$(SUBMAKE) -s -C scripts/config all CC="$(HOSTCC_WRAPPER)"
 
 $(eval $(call rdep,scripts/config,scripts/config/mconf))
 
 scripts/config/conf:
-	@$(_SINGLE)$(SUBMAKE) -s -C scripts/config conf CC="$(HOSTCC)"
+	@$(_SINGLE)$(SUBMAKE) -s -C scripts/config conf CC="$(HOSTCC_WRAPPER)"
 
 config: scripts/config/conf prepare-tmpinfo FORCE
 	$< Config.in
diff --git a/scripts/clang-gcc-wrapper b/scripts/clang-gcc-wrapper
new file mode 100755
index 0000000000..9e668418a9
--- /dev/null
+++ b/scripts/clang-gcc-wrapper
@@ -0,0 +1,12 @@
+#!/bin/sh
+_cc="${HOSTCC_REAL:-gcc}"
+case "$1" in
+	-print-file-name=*)
+		dirs="$($_cc -print-search-dirs | grep -m1 libraries | sed -e 's,:, ,' -e 's,.* =,,')"
+		dirs="$dirs /usr/lib /usr/local/lib"
+		find $dirs -name "${1#*=}" | head -n1
+	;;
+	*)
+		exec $_cc "$@"
+	;;
+esac
-- 
GitLab