aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-10-30 21:47:01 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-10-30 21:47:01 +0000
commit417abac0857caf5f174c8935111f5f26c8f20dd1 (patch)
tree3955da6849266908fb38059ed1f5e280c371ac13
parent7a844e049f70e2b45680c4187ee47657bed7e706 (diff)
downloadupstream-417abac0857caf5f174c8935111f5f26c8f20dd1.tar.gz
upstream-417abac0857caf5f174c8935111f5f26c8f20dd1.tar.bz2
upstream-417abac0857caf5f174c8935111f5f26c8f20dd1.zip
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> Backport of r38560 git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@38613 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/toplevel.mk11
-rwxr-xr-xscripts/clang-gcc-wrapper12
2 files changed, 21 insertions, 2 deletions
diff --git a/include/toplevel.mk b/include/toplevel.mk
index 4bbc58e11d..bbda0bba70 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -42,6 +42,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
@@ -71,12 +78,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