Fix NDK API on old devices.

Change-Id: Ie2b1b57735a79febc0937fcc4b65cddd0eb80c16
diff --git a/cpp/Android.mk b/cpp/Android.mk
index d266d14..9ed02fb 100644
--- a/cpp/Android.mk
+++ b/cpp/Android.mk
@@ -49,11 +49,15 @@
 
 LOCAL_CFLAGS += $(local_cflags_for_rs_cpp)
 
+LOCAL_SDK_VERSION := 8
+LOCAL_CFLAGS += -DRS_COMPATIBILITY_LIB
+
 LOCAL_SRC_FILES := $(rs_cpp_SRC_FILES)
 
+LOCAL_SRC_FILES += ../rsCompatibilityLib.cpp
+
 LOCAL_STATIC_LIBRARIES := \
 	libz \
-	libcutils \
 	libutils \
 	liblog \
 	libstlport_static
@@ -65,7 +69,8 @@
 LOCAL_MODULE_TAGS := optional
 
 LOCAL_C_INCLUDES += frameworks/rs
-LOCAL_C_INCLUDES += external/stlport/stlport bionic/ bionic/libstdc++/include
 LOCAL_C_INCLUDES += $(intermediates)
 
+LOCAL_NDK_STL_VARIANT := stlport_static
+
 include $(BUILD_STATIC_LIBRARY)
diff --git a/cpp/RenderScript.cpp b/cpp/RenderScript.cpp
index 3a75ffe..04f1e88 100644
--- a/cpp/RenderScript.cpp
+++ b/cpp/RenderScript.cpp
@@ -23,11 +23,15 @@
 #include "rsCppInternal.h"
 
 #include <dlfcn.h>
+#include <unistd.h>
 
-#if !defined(RS_SERVER) && defined(HAVE_ANDROID_OS)
+#if !defined(RS_SERVER) && !defined(RS_COMPATIBILITY_LIB) && defined(HAVE_ANDROID_OS)
 #include <cutils/properties.h>
+#else
+#include "rsCompatibilityLib.h"
 #endif
 
+
 using namespace android;
 using namespace RSC;
 
@@ -473,7 +477,6 @@
     }
 
     mCacheDir = name;
-    mCacheDir += "/com.android.renderscript.cache/";
 
     mDev = RS::dispatch->DeviceCreate();
     if (mDev == 0) {
diff --git a/cpp/rsCppInternal.h b/cpp/rsCppInternal.h
index 904c5ab..ae43d47 100644
--- a/cpp/rsCppInternal.h
+++ b/cpp/rsCppInternal.h
@@ -17,6 +17,7 @@
 #ifndef ANDROID_RS_CPP_INTERNAL_H
 #define ANDROID_RS_CPP_INTERNAL_H
 
+#define LOG_TAG "rsC++"
 #include "rsCppUtils.h"
 
 #define tryDispatch(rs, dispatch)               \