Update fw/rs for Clang 3.5.

Change-Id: I0a9a1b1e61cb435f0102936ad9ffd51599c49e88
diff --git a/Android.mk b/Android.mk
index d2caac6..9b04a55 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,7 +1,7 @@
 
 LOCAL_PATH:=$(call my-dir)
 
-rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable
+rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fno-exceptions
 ifeq ($(TARGET_BUILD_PDK), true)
   rs_base_CFLAGS += -D__RS_PDK__
 endif
@@ -36,19 +36,18 @@
 	driver/rsdVertexArray.cpp
 
 
-LOCAL_SHARED_LIBRARIES += libRS libRSCpuRef
+LOCAL_SHARED_LIBRARIES += libRS libRSCpuRef libc++
 LOCAL_SHARED_LIBRARIES += liblog libcutils libutils libEGL libGLESv1_CM libGLESv2
 LOCAL_SHARED_LIBRARIES += libui libgui libsync
 
-# FIXME for 64-bit
-LOCAL_SHARED_LIBRARIES_32 += libbcc libbcinfo libLLVM
+LOCAL_SHARED_LIBRARIES += libbcc libbcinfo libLLVM
 
 LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
 LOCAL_C_INCLUDES += frameworks/rs/cpu_ref/linkloader/include
+LOCAL_C_INCLUDES += external/libcxx/include
 
 LOCAL_CFLAGS += $(rs_base_CFLAGS)
-
-LOCAL_CFLAGS_64 += -DFAKE_ARM64_BUILD=1
+LOCAL_CPPFLAGS += -fno-exceptions
 
 LOCAL_LDLIBS := -lpthread -ldl
 LOCAL_MODULE_TAGS := optional
@@ -157,21 +156,19 @@
 	rsThreadIO.cpp \
 	rsType.cpp
 
-LOCAL_SHARED_LIBRARIES += liblog libcutils libutils libEGL libGLESv1_CM libGLESv2
+LOCAL_SHARED_LIBRARIES += liblog libcutils libutils libEGL libGLESv1_CM libGLESv2 libc++
 LOCAL_SHARED_LIBRARIES += libgui libsync libdl libui
 LOCAL_SHARED_LIBRARIES += libft2 libpng libz
 
-# FIXME for 64-bit
-LOCAL_SHARED_LIBRARIES_32 += libbcc libbcinfo libLLVM
-
+LOCAL_SHARED_LIBRARIES += libbcc libbcinfo libLLVM
 
 LOCAL_C_INCLUDES += external/freetype/include
 LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
+LOCAL_C_INCLUDES += external/libcxx/include
 
 LOCAL_CFLAGS += $(rs_base_CFLAGS)
 
-# FIXME for 64-bit
-LOCAL_CFLAGS_64 += -DFAKE_ARM64_BUILD=1
+LOCAL_CPPFLAGS += -fno-exceptions
 
 LOCAL_LDLIBS := -lpthread -ldl
 LOCAL_MODULE_TAGS := optional
@@ -218,6 +215,7 @@
 LOCAL_CFLAGS += $(rs_base_CFLAGS)
 LOCAL_CFLAGS += -DANDROID_RS_SERIALIZE
 LOCAL_CFLAGS += -fPIC
+LOCAL_CPPFLAGS += -fno-exceptions
 
 LOCAL_SRC_FILES:= \
 	rsAdapter.cpp \
@@ -292,10 +290,12 @@
 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
 
 LOCAL_CFLAGS += $(rs_base_CFLAGS)
+LOCAL_CPPFLAGS += -fno-exceptions
 
 LOCAL_C_INCLUDES := \
   $(LOCAL_PATH)/cpu_ref/linkloader \
   $(LOCAL_PATH)/cpu_ref/linkloader/include \
+  external/libcxx/include \
   $(LOCAL_C_INCLUDES)
 
 include $(LLVM_ROOT_PATH)/llvm-device-build.mk
@@ -321,10 +321,12 @@
 
 LOCAL_CFLAGS += $(rs_base_CFLAGS)
 LOCAL_CFLAGS += -D__HOST__
+LOCAL_CPPFLAGS += -fno-exceptions
 
 LOCAL_C_INCLUDES := \
   $(LOCAL_PATH)/cpu_ref/linkloader \
   $(LOCAL_PATH)/cpu_ref/linkloader/include \
+  external/libcxx/include \
   $(LOCAL_C_INCLUDES)
 
 include $(LLVM_ROOT_PATH)/llvm-host-build.mk
diff --git a/cpp/rsCppStructs.h b/cpp/rsCppStructs.h
index 8b07bf0..1ab1a6d 100644
--- a/cpp/rsCppStructs.h
+++ b/cpp/rsCppStructs.h
@@ -23,6 +23,7 @@
 
 #include <vector>
 #include <string>
+#include <pthread.h>
 
 /**
  * Every row in an RS allocation is guaranteed to be aligned by this amount, and
diff --git a/cpu_ref/Android.mk b/cpu_ref/Android.mk
index 96d8b07..c7565da 100644
--- a/cpu_ref/Android.mk
+++ b/cpu_ref/Android.mk
@@ -1,7 +1,7 @@
 
 LOCAL_PATH:=$(call my-dir)
 
-rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable
+rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fno-exceptions
 ifeq ($(TARGET_BUILD_PDK), true)
   rs_base_CFLAGS += -D__RS_PDK__
 endif
@@ -15,6 +15,11 @@
 LOCAL_MODULE := libRSCpuRef
 LOCAL_MODULE_TARGET_ARCH := arm mips x86 x86_64 arm64
 
+ifeq ($(HOST_OS), darwin)
+LOCAL_CFLAGS += -no-integrated-as
+LOCAL_ASFLAGS += -no-integrated-as
+endif
+
 LOCAL_SRC_FILES:= \
 	rsCpuCore.cpp \
 	rsCpuScript.cpp \
@@ -34,8 +39,7 @@
 	rsCpuIntrinsicResize.cpp \
 	rsCpuIntrinsicLUT.cpp
 
-LOCAL_CFLAGS_arm64 += -DARCH_ARM_HAVE_NEON
-LOCAL_CFLAGS_64 += -DFAKE_ARM64_BUILD
+#LOCAL_CFLAGS_arm64 += -DARCH_ARM_HAVE_NEON
 LOCAL_ASFLAGS_arm64 += -no-integrated-as
 
 #LOCAL_SRC_FILES_arm64 += \
@@ -71,10 +75,10 @@
     rsCpuIntrinsics_x86.c
 endif
 
-LOCAL_SHARED_LIBRARIES += libRS libcutils libutils liblog libsync
+LOCAL_SHARED_LIBRARIES += libRS libcutils libutils liblog libsync libc++
 
 # these are not supported in 64-bit yet
-LOCAL_SHARED_LIBRARIES_32 += libbcc libbcinfo
+LOCAL_SHARED_LIBRARIES += libbcc libbcinfo
 
 
 LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
diff --git a/driver/runtime/Android.mk b/driver/runtime/Android.mk
index 41a99c1..8492c18 100755
--- a/driver/runtime/Android.mk
+++ b/driver/runtime/Android.mk
@@ -60,9 +60,6 @@
 # Build the base version of the library
 include $(CLEAR_VARS)
 
-# FIXME for 64-bit
-LOCAL_32_BIT_ONLY := true
-
 LOCAL_MODULE := libclcore.bc
 LOCAL_SRC_FILES := $(clcore_files)
 
@@ -71,9 +68,6 @@
 # Build a debug version of the library
 include $(CLEAR_VARS)
 
-# FIXME for 64-bit
-LOCAL_32_BIT_ONLY := true
-
 LOCAL_MODULE := libclcore_debug.bc
 rs_debug_runtime := 1
 LOCAL_SRC_FILES := $(clcore_files)
@@ -84,9 +78,6 @@
 ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
 include $(CLEAR_VARS)
 
-# FIXME for 64-bit
-LOCAL_32_BIT_ONLY := true
-
 LOCAL_MODULE := libclcore_x86.bc
 LOCAL_SRC_FILES := $(clcore_x86_files)
 
@@ -97,9 +88,6 @@
 ifeq ($(ARCH_ARM_HAVE_NEON),true)
   include $(CLEAR_VARS)
 
-  # FIXME for 64-bit
-  LOCAL_32_BIT_ONLY := true
-
   LOCAL_MODULE := libclcore_neon.bc
   LOCAL_SRC_FILES := $(clcore_neon_files)
   LOCAL_CFLAGS += -DARCH_ARM_HAVE_NEON
@@ -146,3 +134,13 @@
 LOCAL_SRC_FILES := $(clcore_x86_files)
 include $(LOCAL_PATH)/build_bc_lib.mk
 
+
+
+
+include $(CLEAR_VARS)
+
+BCC_RS_TRIPLE := aarch64-none-linux-gnueabi
+LOCAL_MODULE := librsrt_arm64.bc
+LOCAL_IS_HOST_MODULE := true
+LOCAL_SRC_FILES := $(clcore_files)
+include $(LOCAL_PATH)/build_bc_lib.mk