diff --git a/build/core/setup-toolchain.mk b/build/core/setup-toolchain.mk
index fe4ba7e..77f02dc 100644
--- a/build/core/setup-toolchain.mk
+++ b/build/core/setup-toolchain.mk
@@ -52,7 +52,7 @@
     ifdef NDK_TOOLCHAIN_VERSION
         # Replace "clang" with the most recent verion
         ifeq ($(NDK_TOOLCHAIN_VERSION),clang)
-            NDK_TOOLCHAIN_VERSION=clang$(lastword $(LLVM_VERSION_LIST))
+            override NDK_TOOLCHAIN_VERSION := clang$(lastword $(LLVM_VERSION_LIST))
         endif
         # We assume the toolchain name uses dashes (-) as separators and doesn't
         # contain any space. The following is a bit subtle, but essentially
@@ -67,10 +67,11 @@
         #
         TARGET_TOOLCHAIN_BASE := $(subst $(space),-,$(call chop,$(subst -,$(space),$(TARGET_TOOLCHAIN))))
         # if TARGET_TOOLCHAIN_BASE is llvm, remove clang from NDK_TOOLCHAIN_VERSION
+        VERSION := $(NDK_TOOLCHAIN_VERSION)
         ifeq ($(TARGET_TOOLCHAIN_BASE),llvm)
-            override NDK_TOOLCHAIN_VERSION := $(subst clang,,$(NDK_TOOLCHAIN_VERSION))
+            VERSION := $(subst clang,,$(NDK_TOOLCHAIN_VERSION))
         endif
-        TARGET_TOOLCHAIN := $(TARGET_TOOLCHAIN_BASE)-$(NDK_TOOLCHAIN_VERSION)
+        TARGET_TOOLCHAIN := $(TARGET_TOOLCHAIN_BASE)-$(VERSION)
         $(call ndk_log,Using target toolchain '$(TARGET_TOOLCHAIN)' for '$(TARGET_ARCH_ABI)' ABI (through NDK_TOOLCHAIN_VERSION))
     else
         $(call ndk_log,Using target toolchain '$(TARGET_TOOLCHAIN)' for '$(TARGET_ARCH_ABI)' ABI)
diff --git a/build/tools/build-gabi++.sh b/build/tools/build-gabi++.sh
index 00969c9..983bebf 100755
--- a/build/tools/build-gabi++.sh
+++ b/build/tools/build-gabi++.sh
@@ -98,7 +98,7 @@
 GABIXX_SRCDIR=$ANDROID_NDK_ROOT/$GABIXX_SUBDIR
 
 # Compiler flags we want to use
-GABIXX_CFLAGS="-fPIC -O2 -DANDROID -D__ANDROID__"
+GABIXX_CFLAGS="-fPIC -O2 -DANDROID -D__ANDROID__ -ffunction-sections"
 GABIXX_CFLAGS=$GABIXX_CFLAGS" -I$GABIXX_SRCDIR/include"
 GABIXX_CXXFLAGS="-fuse-cxa-atexit -fexceptions -frtti"
 GABIXX_LDFLAGS="-ldl"
diff --git a/build/tools/build-libportable.sh b/build/tools/build-libportable.sh
index 7c474b3..75c8a5b 100755
--- a/build/tools/build-libportable.sh
+++ b/build/tools/build-libportable.sh
@@ -91,7 +91,7 @@
 LIBPORTABLE_SRCDIR_BASE=$ANDROID_NDK_ROOT/../development/ndk/$LIBPORTABLE_SUBDIR
 
 # Compiler flags we want to use
-LIBPORTABLE_CFLAGS="-fPIC -O2 -DANDROID -D__ANDROID__" # ToDo: -ffunction-sections -fdata-sections
+LIBPORTABLE_CFLAGS="-fPIC -O2 -DANDROID -D__ANDROID__ -ffunction-sections"
 LIBPORTABLE_CFLAGS=$LIBPORTABLE_CFLAGS" -I$LIBPORTABLE_SRCDIR_BASE/common/include -D__HOST__"
 LIBPORTABLE_CXXFLAGS="-fno-exceptions -fno-rtti"
 LIBPORTABLE_LDFLAGS=""
@@ -151,7 +151,8 @@
   #    g++ -Wl,@/path/to/libportable.wrap
   #
     nm -a $DSTDIR/libportable.a | grep -r __wrap_ | awk '{print $3}' | sed '/^$/d' | \
-        sed 's/^__wrap_//g' | sort | awk '{printf "--wrap=%s\n",$1}' > "$DSTDIR/libportable.wrap"
+        sed 's/_wrap_/|/' | awk -F'|' '{print $2}' | sort | uniq | \
+        awk '{printf "--wrap=%s\n",$1}' > "$DSTDIR/libportable.wrap"
 }
 
 for ABI in $ABIS; do
diff --git a/build/tools/build-stlport.sh b/build/tools/build-stlport.sh
index f6dce8f..aab5d50 100755
--- a/build/tools/build-stlport.sh
+++ b/build/tools/build-stlport.sh
@@ -95,14 +95,14 @@
 fail_panic "Could not create build directory: $BUILD_DIR"
 
 GABIXX_SRCDIR=$ANDROID_NDK_ROOT/$GABIXX_SUBDIR
-GABIXX_CFLAGS="-fPIC -O2 -DANDROID -D__ANDROID__ -I$GABIXX_SRCDIR/include"
+GABIXX_CFLAGS="-fPIC -O2 -DANDROID -D__ANDROID__ -I$GABIXX_SRCDIR/include -ffunction-sections"
 GABIXX_CXXFLAGS="-fexceptions -frtti"
 GABIXX_SOURCES=$(cd $ANDROID_NDK_ROOT/$GABIXX_SUBDIR && ls src/*.cc)
 GABIXX_LDFLAGS="-ldl"
 
 # Location of the STLPort source tree
 STLPORT_SRCDIR=$ANDROID_NDK_ROOT/$STLPORT_SUBDIR
-STLPORT_CFLAGS="-DGNU_SOURCE -fPIC -O2 -I$STLPORT_SRCDIR/stlport -DANDROID -D__ANDROID__"
+STLPORT_CFLAGS="-DGNU_SOURCE -fPIC -O2 -I$STLPORT_SRCDIR/stlport -DANDROID -D__ANDROID__ -ffunction-sections"
 STLPORT_CFLAGS=$STLPORT_CFLAGS" -I$ANDROID_NDK_ROOT/$GABIXX_SUBDIR/include"
 STLPORT_CXXFLAGS="-fuse-cxa-atexit -fexceptions -frtti"
 STLPORT_SOURCES=\
diff --git a/build/tools/builder-funcs.sh b/build/tools/builder-funcs.sh
index b70868d..5fedd58 100644
--- a/build/tools/builder-funcs.sh
+++ b/build/tools/builder-funcs.sh
@@ -311,6 +311,7 @@
         _BUILD_AR=${AR:-ar}
     fi
     builder_log "${_BUILD_PREFIX}Archive: $libname"
+    rm -f "$lib"
     builder_command ${_BUILD_AR} crs "$lib" "$_BUILD_OBJECTS"
     fail_panic "Could not archive ${_BUILD_PREFIX}$libname objects!"
 }
@@ -332,6 +333,7 @@
         _BUILD_AR=${AR:-ar}
     fi
     builder_log "${_BUILD_PREFIX}Archive: $libname"
+    rm -f "$lib"
     builder_command ${_BUILD_AR} crs "$lib" "$_BUILD_OBJECTS"
     fail_panic "Could not archive ${_BUILD_PREFIX}$libname objects!"
 }
diff --git a/sources/cxx-stl/gabi++/include/unwind-itanium.h b/sources/cxx-stl/gabi++/include/unwind-itanium.h
index bd7a4b2..717cc56 100644
--- a/sources/cxx-stl/gabi++/include/unwind-itanium.h
+++ b/sources/cxx-stl/gabi++/include/unwind-itanium.h
@@ -68,9 +68,20 @@
 struct _Unwind_Exception {
   uint64_t exception_class;
   _Unwind_Exception_Cleanup_Fn exception_cleanup;
-  uint64_t private_1;
-  uint64_t private_2;
-} __attribute__((__aligned__)); // must be double-word aligned
+  uint32_t private_1;
+  uint32_t private_2;
+}
+#if defined(__clang__) && defined(__mips__)
+// FIXME: It seems that mipsel-linux-android-gcc will use 24 as the object size
+// with or without the aligned attribute.  However, clang (mipsel) will align
+// the object size to 32 when we specify the aligned attribute, which may
+// result in some sort of incompatibility.  As a workaround, let's remove this
+// attribute when we are compiling this file for MIPS architecture with clang.
+// Add the attribute back when clang can have same behavior as gcc.
+#else
+__attribute__((__aligned__)) // must be double-word aligned
+#endif
+;
 
 _Unwind_Reason_Code _Unwind_RaiseException(struct _Unwind_Exception*);
 void _Unwind_Resume(struct _Unwind_Exception*);
diff --git a/tests/device/test-unwind-struct/jni/Android.mk b/tests/device/test-unwind-struct/jni/Android.mk
new file mode 100644
index 0000000..ae4d92b
--- /dev/null
+++ b/tests/device/test-unwind-struct/jni/Android.mk
@@ -0,0 +1,9 @@
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := test_unwind_struct
+LOCAL_SRC_FILES := main.c
+LOCAL_STATIC_LIBRARIES := gabi++_static
+include $(BUILD_EXECUTABLE)
+
+$(call import-module,cxx-stl/gabi++)
diff --git a/tests/device/test-unwind-struct/jni/Application.mk b/tests/device/test-unwind-struct/jni/Application.mk
new file mode 100644
index 0000000..a0e3100
--- /dev/null
+++ b/tests/device/test-unwind-struct/jni/Application.mk
@@ -0,0 +1,2 @@
+APP_ABI := all
+APP_STL := none
diff --git a/tests/device/test-unwind-struct/jni/main.c b/tests/device/test-unwind-struct/jni/main.c
new file mode 100644
index 0000000..5acf48e
--- /dev/null
+++ b/tests/device/test-unwind-struct/jni/main.c
@@ -0,0 +1,40 @@
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "unwind.h"
+
+int main() {
+#define CHECK_EQ(EXPECTED_VALUE, ACTUAL_VALUE) \
+  do { \
+    if ((int)(EXPECTED_VALUE) != (int)(ACTUAL_VALUE)) { \
+      fprintf(stderr, "ASSERTION FAILURE: %s %d\n", __FILE__, __LINE__); \
+      fprintf(stderr, "  expected value: %d (%s)\n", \
+              (int)(EXPECTED_VALUE), #EXPECTED_VALUE); \
+      fprintf(stderr, "  actual value: %d (%s)\n", \
+              (int)(ACTUAL_VALUE), #ACTUAL_VALUE); \
+      exit(EXIT_FAILURE); \
+    } \
+  } while (0)
+
+#if defined(__arm__)
+  CHECK_EQ(88, sizeof(struct _Unwind_Control_Block));
+  CHECK_EQ(0, offsetof(struct _Unwind_Control_Block, exception_class));
+  CHECK_EQ(8, offsetof(struct _Unwind_Control_Block, exception_cleanup));
+#elif defined(__mips__)
+  CHECK_EQ(24, sizeof(struct _Unwind_Exception));
+  CHECK_EQ(0, offsetof(struct _Unwind_Exception, exception_class));
+  CHECK_EQ(8, offsetof(struct _Unwind_Exception, exception_cleanup));
+  CHECK_EQ(12, offsetof(struct _Unwind_Exception, private_1));
+  CHECK_EQ(16, offsetof(struct _Unwind_Exception, private_2));
+#elif defined(__i386__)
+  CHECK_EQ(32, sizeof(struct _Unwind_Exception));
+  CHECK_EQ(0, offsetof(struct _Unwind_Exception, exception_class));
+  CHECK_EQ(8, offsetof(struct _Unwind_Exception, exception_cleanup));
+  CHECK_EQ(12, offsetof(struct _Unwind_Exception, private_1));
+  CHECK_EQ(16, offsetof(struct _Unwind_Exception, private_2));
+#else
+#error "unsupported architecture"
+#endif
+
+  return EXIT_SUCCESS;
+}
