Backout changeset 03394bda1d0f (
bug 733773) because of Windows red.
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -14,17 +14,16 @@ builtin(include, build/autoconf/mozprog.
builtin(include, build/autoconf/mozheader.m4)dnl
builtin(include, build/autoconf/mozcommonheader.m4)dnl
builtin(include, build/autoconf/acwinpaths.m4)dnl
builtin(include, build/autoconf/lto.m4)dnl
builtin(include, build/autoconf/gcc-pr49911.m4)dnl
builtin(include, build/autoconf/frameptr.m4)dnl
builtin(include, build/autoconf/compiler-opts.m4)dnl
builtin(include, build/autoconf/expandlibs.m4)dnl
-builtin(include, build/autoconf/arch.m4)dnl
MOZ_PROG_CHECKMSYS()
# Read the user's .mozconfig script. We can't do this in
# configure.in: autoconf puts the argument parsing code above anything
# expanded from configure.in, and we need to get the configure options
# from .mozconfig in place before that argument parsing code.
MOZ_READ_MOZCONFIG(.)
deleted file mode 100644
--- a/build/autoconf/arch.m4
+++ /dev/null
@@ -1,220 +0,0 @@
-AC_DEFUN([MOZ_ARCH_OPTS],
-[
-
-dnl ========================================================
-dnl = ARM toolchain tweaks
-dnl ========================================================
-
-MOZ_THUMB=toolchain-default
-MOZ_THUMB_INTERWORK=toolchain-default
-MOZ_FPU=toolchain-default
-MOZ_FLOAT_ABI=toolchain-default
-MOZ_SOFT_FLOAT=toolchain-default
-
-MOZ_ARG_WITH_STRING(arch,
-[ --with-arch=[[type|toolchain-default]]
- Use specific CPU features (-march=type). Resets
- thumb, fpu, float-abi, etc. defaults when set],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-arch is not supported on non-GNU toolchains])
- fi
- MOZ_ARCH=$withval)
-
-if test -z "$MOZ_ARCH"; then
- dnl Defaults
- case "${CPU_ARCH}-${OS_TARGET}" in
- arm-Android)
- MOZ_THUMB=yes
- MOZ_ARCH=armv7-a
- MOZ_FPU=vfp
- MOZ_FLOAT_ABI=softfp
- ;;
- arm-Darwin)
- MOZ_THUMB=yes
- ;;
- arm-*)
- if test -n "$MOZ_PLATFORM_MAEMO"; then
- MOZ_THUMB=no
- MOZ_ARCH=armv7-a
- MOZ_FLOAT_ABI=softfp
- fi
- if test "$MOZ_PLATFORM_MAEMO" = 6; then
- MOZ_THUMB=yes
- fi
- ;;
- esac
-fi
-
-MOZ_ARG_WITH_STRING(thumb,
-[ --with-thumb[[=yes|no|toolchain-default]]]
-[ Use Thumb instruction set (-mthumb)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-thumb is not supported on non-GNU toolchains])
- fi
- MOZ_THUMB=$withval)
-
-MOZ_ARG_WITH_STRING(thumb-interwork,
-[ --with-thumb-interwork[[=yes|no|toolchain-default]]
- Use Thumb/ARM instuctions interwork (-mthumb-interwork)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-thumb-interwork is not supported on non-GNU toolchains])
- fi
- MOZ_THUMB_INTERWORK=$withval)
-
-MOZ_ARG_WITH_STRING(fpu,
-[ --with-fpu=[[type|toolchain-default]]
- Use specific FPU type (-mfpu=type)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-fpu is not supported on non-GNU toolchains])
- fi
- MOZ_FPU=$withval)
-
-MOZ_ARG_WITH_STRING(float-abi,
-[ --with-float-abi=[[type|toolchain-default]]
- Use specific arm float ABI (-mfloat-abi=type)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-float-abi is not supported on non-GNU toolchains])
- fi
- MOZ_FLOAT_ABI=$withval)
-
-MOZ_ARG_WITH_STRING(soft-float,
-[ --with-soft-float[[=yes|no|toolchain-default]]
- Use soft float library (-msoft-float)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-soft-float is not supported on non-GNU toolchains])
- fi
- MOZ_SOFT_FLOAT=$withval)
-
-case "$MOZ_ARCH" in
-toolchain-default|"")
- arch_flag=""
- MOZ_ARCH=toolchain-default
- ;;
-*)
- arch_flag="-march=$MOZ_ARCH"
- ;;
-esac
-
-case "$MOZ_THUMB" in
-yes)
- MOZ_THUMB2=1
- thumb_flag="-mthumb"
- ;;
-no)
- MOZ_THUMB2=
- thumb_flag="-marm"
- ;;
-*)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$arch_flag"
- AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
- MOZ_THUMB2=1,
- MOZ_THUMB2=)
- CFLAGS="$_SAVE_CFLAGS"
- thumb_flag=""
- ;;
-esac
-
-if test "$MOZ_THUMB2" = 1; then
- AC_DEFINE(MOZ_THUMB2)
-fi
-
-case "$MOZ_THUMB_INTERWORK" in
-yes)
- thumb_interwork_flag="-mthumb-interwork"
- ;;
-no)
- thumb_interwork_flag="-mno-thumb-interwork"
- ;;
-*) # toolchain-default
- thumb_interwork_flag=""
- ;;
-esac
-
-case "$MOZ_FPU" in
-toolchain-default|"")
- fpu_flag=""
- ;;
-*)
- fpu_flag="-mfpu=$MOZ_FPU"
- ;;
-esac
-
-case "$MOZ_FLOAT_ABI" in
-toolchain-default|"")
- float_abi_flag=""
- ;;
-*)
- float_abi_flag="-mfloat-abi=$MOZ_FLOAT_ABI"
- ;;
-esac
-
-case "$MOZ_SOFT_FLOAT" in
-yes)
- soft_float_flag="-msoft-float"
- ;;
-no)
- soft_float_flag="-mno-soft-float"
- ;;
-*) # toolchain-default
- soft_float_flag=""
- ;;
-esac
-
-dnl Use echo to avoid accumulating space characters
-all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag`
-if test -n "$all_flags"; then
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$all_flags"
- AC_MSG_CHECKING(whether the chosen combination of compiler flags ($all_flags) works)
- AC_TRY_COMPILE([],[return 0;],
- AC_MSG_RESULT([yes]),
- AC_MSG_ERROR([no]))
-
- CFLAGS="$_SAVE_CFLAGS $all_flags"
- CXXFLAGS="$CXXFLAGS $all_flags"
- ASFLAGS="$ASFLAGS $all_flags"
- if test -n "$thumb_flag"; then
- LDFLAGS="$LDFLAGS $thumb_flag"
- fi
-fi
-
-AC_SUBST(MOZ_THUMB2)
-
-if test "$CPU_ARCH" = "arm"; then
- AC_MSG_CHECKING(for ARM SIMD support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm("uqadd8 r1, r1, r2");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_SIMD)
- HAVE_ARM_SIMD=1
- fi
-
- AC_MSG_CHECKING(for ARM NEON support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_NEON)
- HAVE_ARM_NEON=1
- fi
-fi # CPU_ARCH = arm
-
-AC_SUBST(HAVE_ARM_SIMD)
-AC_SUBST(HAVE_ARM_NEON)
-
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-arch=$MOZ_ARCH"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-thumb=$MOZ_THUMB"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-thumb-interwork=$MOZ_THUMB_INTERWORK"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-fpu=$MOZ_FPU"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-float-abi=$MOZ_FLOAT_ABI"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-soft-float=$MOZ_SOFT_FLOAT"
-
-])
--- a/configure.in
+++ b/configure.in
@@ -1538,19 +1538,214 @@ OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
dnl Set INTEL_ARCHITECTURE if we're compiling for x86-32 or x86-64.
dnl ===============================================================
INTEL_ARCHITECTURE=
case "$OS_TEST" in
x86_64|i?86)
INTEL_ARCHITECTURE=1
esac
-dnl Configure platform-specific CPU architecture compiler options.
-dnl ==============================================================
-MOZ_ARCH_OPTS
+dnl ========================================================
+dnl = ARM toolchain tweaks
+dnl ========================================================
+
+dnl Defaults
+case "${CPU_ARCH}-${OS_TARGET}" in
+arm-Android)
+ MOZ_THUMB=yes
+ MOZ_ARCH=armv7-a
+ MOZ_FPU=vfp
+ MOZ_FLOAT_ABI=softfp
+ ;;
+arm-*)
+ if test -n "$MOZ_PLATFORM_MAEMO"; then
+ MOZ_THUMB=no
+ MOZ_ARCH=armv7-a
+ MOZ_FLOAT_ABI=softfp
+ fi
+ if test "$MOZ_PLATFORM_MAEMO" = 6; then
+ MOZ_THUMB=yes
+ fi
+ ;;
+esac
+
+dnl Kept for compatibility with some buildbot mozconfig
+MOZ_ARG_DISABLE_BOOL(thumb2, [], MOZ_THUMB=no, MOZ_THUMB=yes)
+
+MOZ_ARG_WITH_STRING(thumb,
+[ --with-thumb[[=yes|no|toolchain-default]]]
+[ Use Thumb instruction set (-mthumb)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-thumb is not supported on non-GNU toolchains])
+ fi
+ MOZ_THUMB=$withval)
+
+MOZ_ARG_WITH_STRING(thumb-interwork,
+[ --with-thumb-interwork[[=yes|no|toolchain-default]]
+ Use Thumb/ARM instuctions interwork (-mthumb-interwork)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-thumb-interwork is not supported on non-GNU toolchains])
+ fi
+ MOZ_THUMB_INTERWORK=$withval)
+
+MOZ_ARG_WITH_STRING(arch,
+[ --with-arch=[[type|toolchain-default]]
+ Use specific CPU features (-march=type)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-arch is not supported on non-GNU toolchains])
+ fi
+ MOZ_ARCH=$withval)
+
+MOZ_ARG_WITH_STRING(fpu,
+[ --with-fpu=[[type|toolchain-default]]
+ Use specific FPU type (-mfpu=type)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-fpu is not supported on non-GNU toolchains])
+ fi
+ MOZ_FPU=$withval)
+
+MOZ_ARG_WITH_STRING(float-abi,
+[ --with-float-abi=[[type|toolchain-default]]
+ Use specific arm float ABI (-mfloat-abi=type)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-float-abi is not supported on non-GNU toolchains])
+ fi
+ MOZ_FLOAT_ABI=$withval)
+
+MOZ_ARG_WITH_STRING(soft-float,
+[ --with-soft-float[[=yes|no|toolchain-default]]
+ Use soft float library (-msoft-float)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-soft-float is not supported on non-GNU toolchains])
+ fi
+ MOZ_SOFT_FLOAT=$withval)
+
+case "$MOZ_ARCH" in
+toolchain-default|"")
+ arch_flag=""
+ ;;
+*)
+ arch_flag="-march=$MOZ_ARCH"
+ ;;
+esac
+
+case "$MOZ_THUMB" in
+yes)
+ MOZ_THUMB2=1
+ thumb_flag="-mthumb"
+ ;;
+no)
+ MOZ_THUMB2=
+ thumb_flag="-marm"
+ ;;
+*)
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$arch_flag"
+ AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
+ MOZ_THUMB2=1,
+ MOZ_THUMB2=)
+ CFLAGS="$_SAVE_CFLAGS"
+ thumb_flag=""
+ ;;
+esac
+
+if test "$MOZ_THUMB2" = 1; then
+ AC_DEFINE(MOZ_THUMB2)
+fi
+
+case "$MOZ_THUMB_INTERWORK" in
+yes)
+ thumb_interwork_flag="-mthumb-interwork"
+ ;;
+no)
+ thumb_interwork_flag="-mno-thumb-interwork"
+ ;;
+*) # toolchain-default
+ thumb_interwork_flag=""
+ ;;
+esac
+
+case "$MOZ_FPU" in
+toolchain-default|"")
+ fpu_flag=""
+ ;;
+*)
+ fpu_flag="-mfpu=$MOZ_FPU"
+ ;;
+esac
+
+case "$MOZ_FLOAT_ABI" in
+toolchain-default|"")
+ float_abi_flag=""
+ ;;
+*)
+ float_abi_flag="-mfloat-abi=$MOZ_FLOAT_ABI"
+ ;;
+esac
+
+case "$MOZ_SOFT_FLOAT" in
+yes)
+ soft_float_flag="-msoft-float"
+ ;;
+no)
+ soft_float_flag="-mno-soft-float"
+ ;;
+*) # toolchain-default
+ soft_float_flag=""
+ ;;
+esac
+
+dnl Use echo to avoid accumulating space characters
+all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag`
+if test -n "$all_flags"; then
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$all_flags"
+ AC_MSG_CHECKING(whether the chosen combination of compiler flags ($all_flags) works)
+ AC_TRY_COMPILE([],[return 0;],
+ AC_MSG_RESULT([yes]),
+ AC_MSG_ERROR([no]))
+
+ CFLAGS="$_SAVE_CFLAGS $all_flags"
+ CXXFLAGS="$CXXFLAGS $all_flags"
+ ASFLAGS="$ASFLAGS $all_flags"
+ if test -n "$thumb_flag"; then
+ LDFLAGS="$LDFLAGS $thumb_flag"
+ fi
+fi
+
+AC_SUBST(MOZ_THUMB2)
+
+if test "$CPU_ARCH" = "arm"; then
+ AC_MSG_CHECKING(for ARM SIMD support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm("uqadd8 r1, r1, r2");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_SIMD)
+ HAVE_ARM_SIMD=1
+ fi
+
+ AC_MSG_CHECKING(for ARM NEON support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_NEON)
+ HAVE_ARM_NEON=1
+ fi
+fi # CPU_ARCH = arm
+
+AC_SUBST(HAVE_ARM_SIMD)
+AC_SUBST(HAVE_ARM_NEON)
dnl =================================================================
dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
dnl which is bad when cross compiling.
dnl =================================================================
if test "$COMPILE_ENVIRONMENT"; then
configure_static_assert_macros='
#define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
@@ -8988,17 +9183,16 @@ if test -z "$MOZ_NATIVE_NSPR"; then
ac_configure_args="$ac_configure_args --disable-optimize"
fi
if test -n "$HAVE_64BIT_OS"; then
ac_configure_args="$ac_configure_args --enable-64bit"
fi
if test -n "$USE_ARM_KUSER"; then
ac_configure_args="$ac_configure_args --with-arm-kuser"
fi
- ac_configure_args="$ac_configure_args $NSPR_CONFIGURE_ARGS"
if test -n "$MOZ_LINKER" -a -z "$MOZ_OLD_LINKER" -a "$ac_cv_func_dladdr" = no ; then
# dladdr is supported by the new linker, even when the system linker doesn't
# support it. Trick nspr into using dladdr when it's not supported.
_SAVE_CPPFLAGS="$CPPFLAGS"
export CPPFLAGS="-include $_topsrcdir/mozglue/linker/dladdr.h $CPPFLAGS"
fi
_SAVE_LDFLAGS="$LDFLAGS"
export LDFLAGS="$LDFLAGS $NSPR_LDFLAGS"
--- a/js/src/aclocal.m4
+++ b/js/src/aclocal.m4
@@ -11,11 +11,10 @@ builtin(include, build/autoconf/mozprog.
builtin(include, build/autoconf/mozheader.m4)dnl
builtin(include, build/autoconf/mozcommonheader.m4)dnl
builtin(include, build/autoconf/acwinpaths.m4)dnl
builtin(include, build/autoconf/lto.m4)dnl
builtin(include, build/autoconf/gcc-pr49911.m4)dnl
builtin(include, build/autoconf/frameptr.m4)dnl
builtin(include, build/autoconf/compiler-opts.m4)dnl
builtin(include, build/autoconf/expandlibs.m4)dnl
-builtin(include, build/autoconf/arch.m4)dnl
MOZ_PROG_CHECKMSYS()
deleted file mode 100644
--- a/js/src/build/autoconf/arch.m4
+++ /dev/null
@@ -1,220 +0,0 @@
-AC_DEFUN([MOZ_ARCH_OPTS],
-[
-
-dnl ========================================================
-dnl = ARM toolchain tweaks
-dnl ========================================================
-
-MOZ_THUMB=toolchain-default
-MOZ_THUMB_INTERWORK=toolchain-default
-MOZ_FPU=toolchain-default
-MOZ_FLOAT_ABI=toolchain-default
-MOZ_SOFT_FLOAT=toolchain-default
-
-MOZ_ARG_WITH_STRING(arch,
-[ --with-arch=[[type|toolchain-default]]
- Use specific CPU features (-march=type). Resets
- thumb, fpu, float-abi, etc. defaults when set],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-arch is not supported on non-GNU toolchains])
- fi
- MOZ_ARCH=$withval)
-
-if test -z "$MOZ_ARCH"; then
- dnl Defaults
- case "${CPU_ARCH}-${OS_TARGET}" in
- arm-Android)
- MOZ_THUMB=yes
- MOZ_ARCH=armv7-a
- MOZ_FPU=vfp
- MOZ_FLOAT_ABI=softfp
- ;;
- arm-Darwin)
- MOZ_THUMB=yes
- ;;
- arm-*)
- if test -n "$MOZ_PLATFORM_MAEMO"; then
- MOZ_THUMB=no
- MOZ_ARCH=armv7-a
- MOZ_FLOAT_ABI=softfp
- fi
- if test "$MOZ_PLATFORM_MAEMO" = 6; then
- MOZ_THUMB=yes
- fi
- ;;
- esac
-fi
-
-MOZ_ARG_WITH_STRING(thumb,
-[ --with-thumb[[=yes|no|toolchain-default]]]
-[ Use Thumb instruction set (-mthumb)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-thumb is not supported on non-GNU toolchains])
- fi
- MOZ_THUMB=$withval)
-
-MOZ_ARG_WITH_STRING(thumb-interwork,
-[ --with-thumb-interwork[[=yes|no|toolchain-default]]
- Use Thumb/ARM instuctions interwork (-mthumb-interwork)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-thumb-interwork is not supported on non-GNU toolchains])
- fi
- MOZ_THUMB_INTERWORK=$withval)
-
-MOZ_ARG_WITH_STRING(fpu,
-[ --with-fpu=[[type|toolchain-default]]
- Use specific FPU type (-mfpu=type)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-fpu is not supported on non-GNU toolchains])
- fi
- MOZ_FPU=$withval)
-
-MOZ_ARG_WITH_STRING(float-abi,
-[ --with-float-abi=[[type|toolchain-default]]
- Use specific arm float ABI (-mfloat-abi=type)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-float-abi is not supported on non-GNU toolchains])
- fi
- MOZ_FLOAT_ABI=$withval)
-
-MOZ_ARG_WITH_STRING(soft-float,
-[ --with-soft-float[[=yes|no|toolchain-default]]
- Use soft float library (-msoft-float)],
- if test -z "$GNU_CC"; then
- AC_MSG_ERROR([--with-soft-float is not supported on non-GNU toolchains])
- fi
- MOZ_SOFT_FLOAT=$withval)
-
-case "$MOZ_ARCH" in
-toolchain-default|"")
- arch_flag=""
- MOZ_ARCH=toolchain-default
- ;;
-*)
- arch_flag="-march=$MOZ_ARCH"
- ;;
-esac
-
-case "$MOZ_THUMB" in
-yes)
- MOZ_THUMB2=1
- thumb_flag="-mthumb"
- ;;
-no)
- MOZ_THUMB2=
- thumb_flag="-marm"
- ;;
-*)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$arch_flag"
- AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
- MOZ_THUMB2=1,
- MOZ_THUMB2=)
- CFLAGS="$_SAVE_CFLAGS"
- thumb_flag=""
- ;;
-esac
-
-if test "$MOZ_THUMB2" = 1; then
- AC_DEFINE(MOZ_THUMB2)
-fi
-
-case "$MOZ_THUMB_INTERWORK" in
-yes)
- thumb_interwork_flag="-mthumb-interwork"
- ;;
-no)
- thumb_interwork_flag="-mno-thumb-interwork"
- ;;
-*) # toolchain-default
- thumb_interwork_flag=""
- ;;
-esac
-
-case "$MOZ_FPU" in
-toolchain-default|"")
- fpu_flag=""
- ;;
-*)
- fpu_flag="-mfpu=$MOZ_FPU"
- ;;
-esac
-
-case "$MOZ_FLOAT_ABI" in
-toolchain-default|"")
- float_abi_flag=""
- ;;
-*)
- float_abi_flag="-mfloat-abi=$MOZ_FLOAT_ABI"
- ;;
-esac
-
-case "$MOZ_SOFT_FLOAT" in
-yes)
- soft_float_flag="-msoft-float"
- ;;
-no)
- soft_float_flag="-mno-soft-float"
- ;;
-*) # toolchain-default
- soft_float_flag=""
- ;;
-esac
-
-dnl Use echo to avoid accumulating space characters
-all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag`
-if test -n "$all_flags"; then
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$all_flags"
- AC_MSG_CHECKING(whether the chosen combination of compiler flags ($all_flags) works)
- AC_TRY_COMPILE([],[return 0;],
- AC_MSG_RESULT([yes]),
- AC_MSG_ERROR([no]))
-
- CFLAGS="$_SAVE_CFLAGS $all_flags"
- CXXFLAGS="$CXXFLAGS $all_flags"
- ASFLAGS="$ASFLAGS $all_flags"
- if test -n "$thumb_flag"; then
- LDFLAGS="$LDFLAGS $thumb_flag"
- fi
-fi
-
-AC_SUBST(MOZ_THUMB2)
-
-if test "$CPU_ARCH" = "arm"; then
- AC_MSG_CHECKING(for ARM SIMD support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm("uqadd8 r1, r1, r2");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_SIMD)
- HAVE_ARM_SIMD=1
- fi
-
- AC_MSG_CHECKING(for ARM NEON support in compiler)
- # We try to link so that this also fails when
- # building with LTO.
- AC_TRY_LINK([],
- [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
- result="yes", result="no")
- AC_MSG_RESULT("$result")
- if test "$result" = "yes"; then
- AC_DEFINE(HAVE_ARM_NEON)
- HAVE_ARM_NEON=1
- fi
-fi # CPU_ARCH = arm
-
-AC_SUBST(HAVE_ARM_SIMD)
-AC_SUBST(HAVE_ARM_NEON)
-
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-arch=$MOZ_ARCH"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-thumb=$MOZ_THUMB"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-thumb-interwork=$MOZ_THUMB_INTERWORK"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-fpu=$MOZ_FPU"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-float-abi=$MOZ_FLOAT_ABI"
-NSPR_CONFIGURE_ARGS="$NSPR_CONFIGURE_ARGS --with-soft-float=$MOZ_SOFT_FLOAT"
-
-])
--- a/js/src/configure.in
+++ b/js/src/configure.in
@@ -1459,19 +1459,217 @@ OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
dnl Set INTEL_ARCHITECTURE if we're compiling for x86-32 or x86-64.
dnl ===============================================================
INTEL_ARCHITECTURE=
case "$OS_TEST" in
x86_64|i?86)
INTEL_ARCHITECTURE=1
esac
-dnl Configure platform-specific CPU architecture compiler options.
-dnl ==============================================================
-MOZ_ARCH_OPTS
+dnl ========================================================
+dnl = ARM toolchain tweaks
+dnl ========================================================
+
+dnl Defaults
+case "${CPU_ARCH}-${OS_TARGET}" in
+arm-Android)
+ MOZ_THUMB=yes
+ MOZ_ARCH=armv7-a
+ MOZ_FPU=vfp
+ MOZ_FLOAT_ABI=softfp
+ ;;
+arm-Darwin)
+ MOZ_THUMB=yes
+ ;;
+arm-*)
+ if test -n "$MOZ_PLATFORM_MAEMO"; then
+ MOZ_THUMB=no
+ MOZ_ARCH=armv7-a
+ MOZ_FLOAT_ABI=softfp
+ fi
+ if test "$MOZ_PLATFORM_MAEMO" = 6; then
+ MOZ_THUMB=yes
+ fi
+ ;;
+esac
+
+dnl Kept for compatibility with some buildbot mozconfig
+MOZ_ARG_DISABLE_BOOL(thumb2, [], MOZ_THUMB=no, MOZ_THUMB=yes)
+
+MOZ_ARG_WITH_STRING(thumb,
+[ --with-thumb[[=yes|no|toolchain-default]]]
+[ Use Thumb instruction set (-mthumb)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-thumb is not supported on non-GNU toolchain-defaults])
+ fi
+ MOZ_THUMB=$withval)
+
+MOZ_ARG_WITH_STRING(thumb-interwork,
+[ --with-thumb-interwork[[=yes|no|toolchain-default]]
+ Use Thumb/ARM instuctions interwork (-mthumb-interwork)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-thumb-interwork is not supported on non-GNU toolchain-defaults])
+ fi
+ MOZ_THUMB_INTERWORK=$withval)
+
+MOZ_ARG_WITH_STRING(arch,
+[ --with-arch=[[type|toolchain-default]]
+ Use specific CPU features (-march=type)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-arch is not supported on non-GNU toolchain-defaults])
+ fi
+ MOZ_ARCH=$withval)
+
+MOZ_ARG_WITH_STRING(fpu,
+[ --with-fpu=[[type|toolchain-default]]
+ Use specific FPU type (-mfpu=type)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-fpu is not supported on non-GNU toolchain-defaults])
+ fi
+ MOZ_FPU=$withval)
+
+MOZ_ARG_WITH_STRING(float-abi,
+[ --with-float-abi=[[type|toolchain-default]]
+ Use specific arm float ABI (-mfloat-abi=type)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-float-abi is not supported on non-GNU toolchain-defaults])
+ fi
+ MOZ_FLOAT_ABI=$withval)
+
+MOZ_ARG_WITH_STRING(soft-float,
+[ --with-soft-float[[=yes|no|toolchain-default]]
+ Use soft float library (-msoft-float)],
+ if test -z "$GNU_CC"; then
+ AC_MSG_ERROR([--with-soft-float is not supported on non-GNU toolchain-defaults])
+ fi
+ MOZ_SOFT_FLOAT=$withval)
+
+case "$MOZ_ARCH" in
+toolchain-default|"")
+ arch_flag=""
+ ;;
+*)
+ arch_flag="-march=$MOZ_ARCH"
+ ;;
+esac
+
+case "$MOZ_THUMB" in
+yes)
+ MOZ_THUMB2=1
+ thumb_flag="-mthumb"
+ ;;
+no)
+ MOZ_THUMB2=
+ thumb_flag="-marm"
+ ;;
+*)
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$arch_flag"
+ AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
+ MOZ_THUMB2=1,
+ MOZ_THUMB2=)
+ CFLAGS="$_SAVE_CFLAGS"
+ thumb_flag=""
+ ;;
+esac
+
+if test "$MOZ_THUMB2" = 1; then
+ AC_DEFINE(MOZ_THUMB2)
+fi
+
+case "$MOZ_THUMB_INTERWORK" in
+yes)
+ thumb_interwork_flag="-mthumb-interwork"
+ ;;
+no)
+ thumb_interwork_flag="-mno-thumb-interwork"
+ ;;
+*) # toolchain-default
+ thumb_interwork_flag=""
+ ;;
+esac
+
+case "$MOZ_FPU" in
+toolchain-default|"")
+ fpu_flag=""
+ ;;
+*)
+ fpu_flag="-mfpu=$MOZ_FPU"
+ ;;
+esac
+
+case "$MOZ_FLOAT_ABI" in
+toolchain-default|"")
+ float_abi_flag=""
+ ;;
+*)
+ float_abi_flag="-mfloat-abi=$MOZ_FLOAT_ABI"
+ ;;
+esac
+
+case "$MOZ_SOFT_FLOAT" in
+yes)
+ soft_float_flag="-msoft-float"
+ ;;
+no)
+ soft_float_flag="-mno-soft-float"
+ ;;
+*) # toolchain-default
+ soft_float_flag=""
+ ;;
+esac
+
+dnl Use echo to avoid accumulating space characters
+all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag`
+if test -n "$all_flags"; then
+ _SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$all_flags"
+ AC_MSG_CHECKING(whether the chosen combination of compiler flags ($all_flags) works)
+ AC_TRY_COMPILE([],[return 0;],
+ AC_MSG_RESULT([yes]),
+ AC_MSG_ERROR([no]))
+
+ CFLAGS="$_SAVE_CFLAGS $all_flags"
+ CXXFLAGS="$CXXFLAGS $all_flags"
+ ASFLAGS="$ASFLAGS $all_flags"
+ if test -n "$thumb_flag"; then
+ LDFLAGS="$LDFLAGS $thumb_flag"
+ fi
+fi
+
+AC_SUBST(MOZ_THUMB2)
+
+if test "$CPU_ARCH" = "arm"; then
+ AC_MSG_CHECKING(for ARM SIMD support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm("uqadd8 r1, r1, r2");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_SIMD)
+ HAVE_ARM_SIMD=1
+ fi
+
+ AC_MSG_CHECKING(for ARM NEON support in compiler)
+ # We try to link so that this also fails when
+ # building with LTO.
+ AC_TRY_LINK([],
+ [asm(".fpu neon\n vadd.i8 d0, d0, d0");],
+ result="yes", result="no")
+ AC_MSG_RESULT("$result")
+ if test "$result" = "yes"; then
+ AC_DEFINE(HAVE_ARM_NEON)
+ HAVE_ARM_NEON=1
+ fi
+fi # CPU_ARCH = arm
+
+AC_SUBST(HAVE_ARM_SIMD)
+AC_SUBST(HAVE_ARM_NEON)
dnl =================================================================
dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
dnl which is bad when cross compiling.
dnl =================================================================
if test "$COMPILE_ENVIRONMENT"; then
configure_static_assert_macros='
#define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)