Bug 618789 - Allow ARMv7 builds for ARM code (rather than Thumb-2 code). r=mitchell.field a=approval2.0

This commit is contained in:
Oleg Romashin 2011-01-14 07:35:38 +02:00
Родитель e4f91b3664
Коммит 8c0f97be0d
3 изменённых файлов: 121 добавлений и 6 удалений

Просмотреть файл

@ -7132,18 +7132,39 @@ if test $MOZ_PLATFORM_MAEMO; then
AC_SUBST(MOZ_PLATFORM_MAEMO_CFLAGS)
fi
dnl Setup default CPU arch for arm target
case "$target_cpu" in
arm*)
MOZ_ARM_ARCH=armv7
;;
esac
dnl ========================================================
dnl = Enable building the Thumb2 instruction set
dnl ========================================================
MOZ_ARG_ENABLE_BOOL(thumb2,
[ --enable-thumb2 Enable Thumb2 instruction set],
[ --enable-thumb2 Enable Thumb2 instruction set (implies ARMv7)],
MOZ_THUMB2=1,
MOZ_THUMB2=)
if test -n "$MOZ_THUMB2"; then
MOZ_ARM_ARCH=armv7
fi
dnl ========================================================
dnl = Enable building for ARM specific CPU features
dnl ========================================================
MOZ_ARG_WITH_STRING(cpu-arch,
[ --with-cpu-arch=arch Use specific arm architecture CPU features, default armv7],
MOZ_ARM_ARCH=$withval)
if test -n "$MOZ_THUMB2"; then
case "$target_cpu" in
arm*)
if test "$MOZ_ARM_ARCH" != "armv7"; then
AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
fi
if test "$GNU_CC"; then
AC_DEFINE(MOZ_THUMB2)
AC_DEFINE(MOZ_ARM_ARCH)
CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
@ -7155,11 +7176,27 @@ if test -n "$MOZ_THUMB2"; then
AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
;;
esac
elif test "$MOZ_ARM_ARCH" = "armv7"; then
case "$target_cpu" in
arm*)
if test "$GNU_CC"; then
AC_DEFINE(MOZ_ARM_ARCH)
CFLAGS="$CFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
ASFLAGS="$ASFLAGS -march=armv7-a -marm"
else
AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
fi
;;
*)
AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
;;
esac
else
case "$target_cpu" in
arm*)
if test "$GNU_CC"; then
CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
fi
@ -7168,6 +7205,7 @@ else
fi
AC_SUBST(MOZ_THUMB2)
AC_SUBST(MOZ_ARM_ARCH)
dnl ========================================================
dnl = faststripe theme
@ -9478,6 +9516,9 @@ if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then
if test -n "$MOZ_THUMB2"; then
_SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --enable-thumb2"
fi
if test -n "$MOZ_ARM_ARCH"; then
_SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --with-cpu-arch=$MOZ_ARM_ARCH"
fi
if test -n "$_WRAP_MALLOC"; then
_SUBDIR_CONFIG_ARGS="$_SUBDIR_CONFIG_ARGS --enable-wrap-malloc"
fi

Просмотреть файл

@ -4647,19 +4647,39 @@ dnl =
dnl ========================================================
MOZ_ARG_HEADER(Individual module options)
dnl Setup default CPU arch for arm target
case "$target_cpu" in
arm*)
MOZ_ARM_ARCH=armv7
;;
esac
dnl ========================================================
dnl = Enable building the Thumb2 instruction set
dnl ========================================================
MOZ_ARG_ENABLE_BOOL(thumb2,
[ --enable-thumb2 Enable Thumb2 instruction set],
[ --enable-thumb2 Enable Thumb2 instruction set (implies ARMv7)],
MOZ_THUMB2=1,
MOZ_THUMB2=)
if test -n "$MOZ_THUMB2"; then
MOZ_ARM_ARCH=armv7
fi
dnl ========================================================
dnl = Enable building for ARM specific CPU features
dnl ========================================================
MOZ_ARG_WITH_STRING(cpu-arch,
[ --with-cpu-arch=arch Use specific arm architecture CPU features, default armv7],
MOZ_ARM_ARCH=$withval)
if test -n "$MOZ_THUMB2"; then
case "$target_cpu" in
arm*)
if test "$MOZ_ARM_ARCH" != "armv7"; then
AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
fi
if test "$GNU_CC"; then
AC_DEFINE(MOZ_THUMB2)
AC_DEFINE(MOZ_ARM_ARCH)
CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
ASFLAGS="$ASFLAGS -march=armv7-a -mthumb"
@ -4671,11 +4691,27 @@ if test -n "$MOZ_THUMB2"; then
AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
;;
esac
elif test "$MOZ_ARM_ARCH" = "armv7"; then
case "$target_cpu" in
arm*)
if test "$GNU_CC"; then
AC_DEFINE(MOZ_ARM_ARCH)
CFLAGS="$CFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
ASFLAGS="$ASFLAGS -march=armv7-a -marm"
else
AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
fi
;;
*)
AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
;;
esac
else
case "$target_cpu" in
arm*)
if test "$GNU_CC"; then
CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
fi
@ -4684,6 +4720,7 @@ else
fi
AC_SUBST(MOZ_THUMB2)
AC_SUBST(MOZ_ARM_ARCH)
dnl ========================================================
dnl =
@ -6078,6 +6115,9 @@ if test "$JS_HAS_CTYPES"; then
if test -n "$MOZ_THUMB2"; then
ac_configure_args="$ac_configure_args --enable-thumb2"
fi
if test -n "$MOZ_ARM_ARCH"; then
ac_configure_args="$ac_configure_args --with-cpu-arch=$MOZ_ARM_ARCH"
fi
# Use a separate cache file for libffi, since it does things differently
# from our configure.

Просмотреть файл

@ -912,18 +912,37 @@ AC_ARG_ENABLE(os2-high-mem,
MOZ_OS2_HIGH_MEMORY=1
fi ])
dnl Setup default CPU arch for arm target
case "$target_cpu" in
arm*)
MOZ_ARM_ARCH=armv7
;;
esac
dnl ========================================================
dnl = Enable building the Thumb2 instruction set
dnl ========================================================
AC_ARG_ENABLE(thumb2,
[ --enable-thumb2 Enable Thumb2 instruction set],
[ --enable-thumb2 Enable Thumb2 instruction set (implies ARMv7)],
[ if test "$enableval" = "yes"; then
MOZ_THUMB2=1,
fi ])
if test -n "$MOZ_THUMB2"; then
MOZ_ARM_ARCH=armv7
fi
dnl ========================================================
dnl = Enable building for ARM specific CPU features
dnl ========================================================
MOZ_ARG_WITH_STRING(cpu-arch,
[ --with-cpu-arch=arch Use specific arm architecture CPU features, default armv7],
MOZ_ARM_ARCH=$withval)
if test -n "$MOZ_THUMB2"; then
case "$target_cpu" in
arm*)
if test "$MOZ_ARM_ARCH" != "armv7"; then
AC_MSG_ERROR([--enable-thumb2 is not compatible with cpu-arch=$MOZ_ARM_ARCH])
fi
if test "$GNU_CC"; then
CFLAGS="$CFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
CXXFLAGS="$CXXFLAGS -march=armv7-a -mthumb -Wa, -march=armv7-a -Wa, -mthumb"
@ -936,11 +955,26 @@ if test -n "$MOZ_THUMB2"; then
AC_MSG_ERROR([--enable-thumb2 is not supported for non-ARM CPU architectures])
;;
esac
elif test "$MOZ_ARM_ARCH" = "armv7"; then
case "$target_cpu" in
arm*)
if test "$GNU_CC"; then
CFLAGS="$CFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
CXXFLAGS="$CXXFLAGS -march=armv7-a -marm -Wa, -march=armv7-a -Wa, -marm"
ASFLAGS="$ASFLAGS -march=armv7-a -marm"
else
AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-GNU toolchains])
fi
;;
*)
AC_MSG_ERROR([--with-cpu-arch=armv7 is not supported for non-ARM CPU architectures])
;;
esac
else
case "$target_cpu" in
arm*)
if test "$GNU_CC"; then
CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
CFLAGS="$CFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
CXXFLAGS="$CXXFLAGS -march=armv5te -mthumb-interwork -Wa, -march=armv5te -Wa, -mthumb-interwork"
ASFLAGS="$ASFLAGS -march=armv5te -mthumb-interwork"
fi