diff --git a/3rdp/build/GNUmakefile b/3rdp/build/GNUmakefile
index fc9ab63984c12f20bbe75d90f60dde9b267bc371..3be8cb4ad49907285653f5c1a5579a32ad38d27d 100644
--- a/3rdp/build/GNUmakefile
+++ b/3rdp/build/GNUmakefile
@@ -42,13 +42,14 @@ $(JS_SRC): | $(3RDPSRCDIR)
 $(JS_IDIR): | $(3RDPODIR)
 	$(QUIET)$(IFNOTEXIST) mkdir $(JS_IDIR)
 
-$(JSLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/libmozjs.tgz $(3RDP_ROOT)$(DIRSEP)build/js_src_jsnativestack_cpp.patch $(3RDP_ROOT)$(DIRSEP)build/js-configure.patch | $(JS_SRC) $(JS_IDIR)
+$(JSLIB_BUILD): $(3RDP_ROOT)$(DIRSEP)dist/libmozjs.tgz $(3RDP_ROOT)$(DIRSEP)build/js_src_jsnativestack_cpp.patch $(3RDP_ROOT)$(DIRSEP)build/js-configure.patch $(3RDP_ROOT)$(DIRSEP)build/js-configure.in.patch | $(JS_SRC) $(JS_IDIR)
 	@echo Creating $@ ...
 	$(QUIET)-rm -rf $(JS_SRC)/*
 	$(QUIET)tar -xzC $(JS_SRC) -f $(3RDPDISTDIR)$(DIRSEP)libmozjs.tgz
 	$(QUIET)echo "pthread_np.h" >> $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src$(DIRSEP)config$(DIRSEP)system-headers
 	$(QUIET)patch -p0 -d $(JS_SRC)$(DIRSEP)js-1.8.5 < js_src_jsnativestack_cpp.patch
 	$(QUIET)patch -p0 -d $(JS_SRC) < js-configure.patch
+	$(QUIET)patch -p0 -d $(JS_SRC) < js-configure.in.patch
 	-$(QUIET)cd $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src && autoconf-2.13
 	$(QUIET)cd $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src && env $(JS_CONFIGURE_ENV) ./configure $(JS_CONFIGURE_ARGS)
 	$(QUIET)$(MAKE) -C $(JS_SRC)$(DIRSEP)js-1.8.5$(DIRSEP)js$(DIRSEP)src
diff --git a/3rdp/build/js-configure.in.patch b/3rdp/build/js-configure.in.patch
new file mode 100644
index 0000000000000000000000000000000000000000..14e4f1846e6e17743eb9c2eb26f002b2fcaab508
--- /dev/null
+++ b/3rdp/build/js-configure.in.patch
@@ -0,0 +1,37 @@
+--- js-1.8.5/js/src/configure.in.orig	2014-01-03 01:02:37.000000000 -0800
++++ js-1.8.5/js/src/configure.in	2014-01-03 01:04:35.000000000 -0800
+@@ -3379,7 +3379,7 @@
+                        ])
+         if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
+                 "$ac_cv_have_visibility_class_bug" = "no"; then
+-          VISIBILITY_FLAGS='-I$(DIST)/system_wrappers_js -include $(topsrcdir)/config/gcc_hidden.h'
++          VISIBILITY_FLAGS='-fvisibility=hidden'
+           WRAP_SYSTEM_INCLUDES=1
+           STL_FLAGS='-I$(DIST)/stl_wrappers'
+           WRAP_STL_INCLUDES=1
+@@ -4703,9 +4703,9 @@
+     arm*)
+       if test "$GNU_CC"; then
+         AC_DEFINE(MOZ_ARM_ARCH)
+-        CFLAGS="$CFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+-        CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
+-        ASFLAGS="$ASFLAGS -march=armv7-a -marm -mfloat-abi=softfp $MOZ_ARM_VFP_FLAGS"
++        CFLAGS="$CFLAGS -march=armv7-a -marm $MOZ_ARM_VFP_FLAGS"
++        CXXFLAGS="$CXXFLAGS -march=armv7-a -marm $MOZ_ARM_VFP_FLAGS"
++        ASFLAGS="$ASFLAGS -march=armv7-a -marm $MOZ_ARM_VFP_FLAGS"
+       else
+         AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
+       fi
+@@ -4718,9 +4718,9 @@
+   case "$target_cpu" in
+     arm*)
+       if test "$GNU_CC"; then
+-        CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+-        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -msoft-float"
+-        ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork -msoft-float"
++        CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork"
++        CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork"
++        ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
+       fi
+       ;;
+   esac
diff --git a/3rdp/build/js-configure.patch b/3rdp/build/js-configure.patch
index 04fd1368aeccd38d99311a3f397d1fdff34ebb78..2aa27ddc68d5db02d448f3d7dc0d16ea67cc144e 100644
--- a/3rdp/build/js-configure.patch
+++ b/3rdp/build/js-configure.patch
@@ -1,5 +1,14 @@
 --- js-1.8.5/js/src/configure.orig	2011-03-31 12:08:36.000000000 -0700
-+++ js-1.8.5/js/src/configure	2013-09-24 20:02:54.000000000 -0700
++++ js-1.8.5/js/src/configure	2014-01-03 01:02:00.000000000 -0800
+@@ -9446,7 +9446,7 @@
+ echo "$ac_t""$ac_cv_have_visibility_builtin_bug" 1>&6
+         if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
+                 "$ac_cv_have_visibility_class_bug" = "no"; then
+-          VISIBILITY_FLAGS='-I$(DIST)/system_wrappers_js -include $(topsrcdir)/config/gcc_hidden.h'
++          VISIBILITY_FLAGS='-fvisibility=hidden'
+           WRAP_SYSTEM_INCLUDES=1
+           STL_FLAGS='-I$(DIST)/stl_wrappers'
+           WRAP_STL_INCLUDES=1
 @@ -13326,9 +13326,9 @@
  #define MOZ_ARM_ARCH 1
  EOF