author | Mike Hommey <mh+mozilla@glandium.org> |
Tue, 13 Mar 2012 10:05:38 +0100 | |
changeset 88939 | d932f160f91c374e97ef1773e32d8be1f6b82fb7 |
parent 88938 | 35fb1400f0f7ab7fffaaf7836f6f38639aaa872d |
child 88940 | f7ec55cf0e95324ff03e696b6bde477db685b097 |
push id | 22233 |
push user | mak77@bonardo.net |
push date | Tue, 13 Mar 2012 13:50:06 +0000 |
treeherder | mozilla-central@d87ad51531b5 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
bugs | 733773 |
milestone | 13.0a1 |
backs out | 03394bda1d0f23ceaf65b6162a1fac9ea0442609 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
aclocal.m4 | file | annotate | diff | comparison | revisions | |
build/autoconf/arch.m4 | file | annotate | diff | comparison | revisions | |
configure.in | file | annotate | diff | comparison | revisions | |
js/src/aclocal.m4 | file | annotate | diff | comparison | revisions | |
js/src/build/autoconf/arch.m4 | file | annotate | diff | comparison | revisions | |
js/src/configure.in | file | annotate | diff | comparison | revisions |
--- 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__)