toolchain: depend on system C/C++ libs

We sometimes fail when building in parallel because we start
emerging before the C/C++ core system libs are available.

Change-Id: I0b52f9b29bfe7418b4dc8cdb34c27e5d7d69e27d
diff --git a/Android.mk b/Android.mk
index 2121d64..b3f463f 100644
--- a/Android.mk
+++ b/Android.mk
@@ -12,6 +12,10 @@
 3RD_PARTY_ROOT := $(TARGET_OUT_GENTOO)/root
 3RD_PARTY_ROOT_SUBDIR := $(patsubst $(PRODUCT_OUT)/%,%,$(3RD_PARTY_ROOT))
 
+# These are system packages that we assume are always available before we can
+# compile anything at all.  Basically we need a functional C/C++ compiler.
+3RD_PARTY_SYSTEM_DEPS := libc libc++ libdl libm libstdc++
+
 # We have to include subdirs first as they set up some vars we use below.
 3RD_PARTY_CONFIGS :=
 3RD_PARTY_WRAPPERS :=
diff --git a/toolchain/Android.mk b/toolchain/Android.mk
index 70d3286..62d5186 100644
--- a/toolchain/Android.mk
+++ b/toolchain/Android.mk
@@ -9,7 +9,7 @@
 include $(BUILD_SYSTEM)/base_rules.mk
 
 compiler = $(intermediates)/$(LOCAL_MODULE)
-$(compiler): $(LOCAL_PATH)/$(LOCAL_MODULE).in
+$(compiler): $(LOCAL_PATH)/$(LOCAL_MODULE).in | $(3RD_PARTY_SYSTEM_DEPS)
 	$(hide)mkdir -p $(dir $@)
 	$(hide)sed \
 		-e 's:@CC@:$(notdir $(TARGET_CC)):' \
@@ -33,7 +33,7 @@
 include $(BUILD_SYSTEM)/base_rules.mk
 
 compiler = $(intermediates)/$(LOCAL_MODULE)
-$(compiler): $(LOCAL_PATH)/$(LOCAL_MODULE).in
+$(compiler): $(LOCAL_PATH)/$(LOCAL_MODULE).in | $(3RD_PARTY_SYSTEM_DEPS)
 	$(hide)mkdir -p $(dir $@)
 	$(hide)sed \
 		-e 's:@CXX@:$(notdir $(TARGET_CXX)):' \