summaryrefslogtreecommitdiffstats
path: root/build/autoconf
diff options
context:
space:
mode:
Diffstat (limited to 'build/autoconf')
-rw-r--r--build/autoconf/compiler-opts.m417
-rw-r--r--build/autoconf/icu.m438
-rw-r--r--build/autoconf/jemalloc.m4114
3 files changed, 9 insertions, 160 deletions
diff --git a/build/autoconf/compiler-opts.m4 b/build/autoconf/compiler-opts.m4
index 57a974435..82d0b43fc 100644
--- a/build/autoconf/compiler-opts.m4
+++ b/build/autoconf/compiler-opts.m4
@@ -176,23 +176,20 @@ if test "$GNU_CC"; then
CFLAGS="$CFLAGS -ffunction-sections -fdata-sections"
CXXFLAGS="$CXXFLAGS -ffunction-sections -fdata-sections"
fi
- CFLAGS="$CFLAGS -fno-math-errno"
- CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-math-errno"
+ CFLAGS="$CFLAGS -fno-math-errno -msse2 -mfpmath=sse"
+ CXXFLAGS="$CXXFLAGS -fno-exceptions -fno-math-errno -msse2 -mfpmath=sse"
if test -z "$CLANG_CC"; then
case "$CC_VERSION" in
- 4.*)
+ 4.* | 5.*)
;;
*)
# Lifetime Dead Store Elimination level 2 (default in GCC6+) breaks Gecko.
- # Ideally, we'd use -flifetime-dse=1, but that means we'd forcefully
- # enable it on optimization levels where it would otherwise not be enabled.
- # So we disable it entirely. But since that would mean inconsistency with
- # GCC5, which has level 1 depending on optimization level, disable it on
- # GCC5 as well, because better safe than sorry.
+ # Instead of completely disabling this optimization on newer GCC's,
+ # we'll force them to use level 1 optimization with -flifetime-dse=1.
# Add it first so that a mozconfig can override by setting CFLAGS/CXXFLAGS.
- CFLAGS="-fno-lifetime-dse $CFLAGS"
- CXXFLAGS="-fno-lifetime-dse $CXXFLAGS"
+ CFLAGS="-flifetime-dse=1 $CFLAGS"
+ CXXFLAGS="-flifetime-dse=1 $CXXFLAGS"
;;
esac
fi
diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4
index 794ddcdf4..89c53c52c 100644
--- a/build/autoconf/icu.m4
+++ b/build/autoconf/icu.m4
@@ -22,42 +22,8 @@ fi
AC_SUBST(MOZ_SYSTEM_ICU)
-MOZ_ARG_WITH_STRING(intl-api,
-[ --with-intl-api, --with-intl-api=build, --without-intl-api
- Determine the status of the ECMAScript Internationalization API. The first
- (or lack of any of these) builds and exposes the API. The second builds it
- but doesn't use ICU or expose the API to script. The third doesn't build
- ICU at all.],
- _INTL_API=$withval)
-
-ENABLE_INTL_API=
-EXPOSE_INTL_API=
-case "$_INTL_API" in
-no)
- ;;
-build)
- ENABLE_INTL_API=1
- ;;
-yes)
- ENABLE_INTL_API=1
- EXPOSE_INTL_API=1
- ;;
-*)
- AC_MSG_ERROR([Invalid value passed to --with-intl-api: $_INTL_API])
- ;;
-esac
-
-if test -n "$ENABLE_INTL_API"; then
- USE_ICU=1
-fi
-
-if test -n "$EXPOSE_INTL_API"; then
- AC_DEFINE(EXPOSE_INTL_API)
-fi
-
-if test -n "$ENABLE_INTL_API"; then
- AC_DEFINE(ENABLE_INTL_API)
-fi
+dnl We always use ICU.
+USE_ICU=1
dnl Settings for the implementation of the ECMAScript Internationalization API
if test -n "$USE_ICU"; then
diff --git a/build/autoconf/jemalloc.m4 b/build/autoconf/jemalloc.m4
deleted file mode 100644
index 3b9c603f7..000000000
--- a/build/autoconf/jemalloc.m4
+++ /dev/null
@@ -1,114 +0,0 @@
-dnl This Source Code Form is subject to the terms of the Mozilla Public
-dnl License, v. 2.0. If a copy of the MPL was not distributed with this
-dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-AC_DEFUN([MOZ_SUBCONFIGURE_JEMALLOC], [
-
-if test "$MOZ_BUILD_APP" != js -o -n "$JS_STANDALONE"; then
-
- # Run jemalloc configure script
-
- if test -z "$MOZ_SYSTEM_JEMALLOC" -a "$MOZ_MEMORY" && test -n "$MOZ_JEMALLOC4" -o -n "$MOZ_REPLACE_MALLOC"; then
- ac_configure_args="--build=$build --host=$target --enable-stats --with-jemalloc-prefix=je_ --disable-valgrind"
- # We're using memalign for _aligned_malloc in memory/build/mozmemory_wrap.c
- # on Windows, so just export memalign on all platforms.
- ac_configure_args="$ac_configure_args ac_cv_func_memalign=yes"
- if test -n "$MOZ_REPLACE_MALLOC"; then
- # When using replace_malloc, we always want valloc exported from jemalloc.
- ac_configure_args="$ac_configure_args ac_cv_func_valloc=yes"
- if test "${OS_ARCH}" = Darwin; then
- # We also need to enable pointer validation on Mac because jemalloc's
- # zone allocator is not used.
- ac_configure_args="$ac_configure_args --enable-ivsalloc"
- fi
- fi
- if test -n "$MOZ_JEMALLOC4"; then
- case "${OS_ARCH}" in
- WINNT|Darwin)
- # We want jemalloc functions to be kept hidden on both Mac and Windows
- # See memory/build/mozmemory_wrap.h for details.
- ac_configure_args="$ac_configure_args --without-export"
- ;;
- esac
- if test "${OS_ARCH}" = WINNT; then
- # Lazy lock initialization doesn't play well with lazy linking of
- # mozglue.dll on Windows XP (leads to startup crash), so disable it.
- ac_configure_args="$ac_configure_args --disable-lazy-lock"
-
- # 64-bit Windows builds require a minimum 16-byte alignment.
- if test -n "$HAVE_64BIT_BUILD"; then
- ac_configure_args="$ac_configure_args --with-lg-tiny-min=4"
- fi
- fi
- elif test "${OS_ARCH}" = Darwin; then
- # When building as a replace-malloc lib, disabling the zone allocator
- # forces to use pthread_atfork.
- ac_configure_args="$ac_configure_args --disable-zone-allocator"
- fi
- _MANGLE="malloc posix_memalign aligned_alloc calloc realloc free memalign valloc malloc_usable_size"
- JEMALLOC_WRAPPER=
- if test -z "$MOZ_REPLACE_MALLOC"; then
- case "$OS_ARCH" in
- Linux|DragonFly|FreeBSD|NetBSD|OpenBSD)
- MANGLE=$_MANGLE
- ;;
- esac
- elif test -z "$MOZ_JEMALLOC4"; then
- MANGLE=$_MANGLE
- JEMALLOC_WRAPPER=replace_
- fi
- if test -n "$MANGLE"; then
- MANGLED=
- for mangle in ${MANGLE}; do
- if test -n "$MANGLED"; then
- MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle,$MANGLED"
- else
- MANGLED="$mangle:$JEMALLOC_WRAPPER$mangle"
- fi
- done
- ac_configure_args="$ac_configure_args --with-mangling=$MANGLED"
- fi
- unset CONFIG_FILES
- if test -z "$MOZ_TLS"; then
- ac_configure_args="$ac_configure_args --disable-tls"
- fi
- EXTRA_CFLAGS="$CFLAGS"
- for var in AS CC CXX CPP LD AR RANLIB STRIP CPPFLAGS EXTRA_CFLAGS LDFLAGS; do
- ac_configure_args="$ac_configure_args $var='`eval echo \\${${var}}`'"
- done
-
- # jemalloc's configure assumes that if you have CFLAGS set at all, you set
- # all the flags necessary to configure jemalloc, which is not likely to be
- # the case on Windows if someone is building Firefox with flags set in
- # their mozconfig.
- if test "$_MSC_VER"; then
- ac_configure_args="$ac_configure_args CFLAGS="
- fi
-
- # Force disable DSS support in jemalloc.
- ac_configure_args="$ac_configure_args ac_cv_func_sbrk=false"
-
- # Make Linux builds munmap freed chunks instead of recycling them.
- ac_configure_args="$ac_configure_args --enable-munmap"
-
- # Disable cache oblivious behavior that appears to have a performance
- # impact on Firefox.
- ac_configure_args="$ac_configure_args --disable-cache-oblivious"
-
- if ! test -e memory/jemalloc; then
- mkdir -p memory/jemalloc
- fi
-
- # jemalloc's configure runs git to determine the version. But when building
- # from a gecko git clone, the git commands it uses is going to pick gecko's
- # information, not jemalloc's, which is useless. So pretend we don't have git
- # at all. That will make jemalloc's configure pick the in-tree VERSION file.
- (PATH="$srcdir/memory/jemalloc/helper:$PATH";
- AC_OUTPUT_SUBDIRS(memory/jemalloc/src)
- ) || exit 1
- ac_configure_args="$_SUBDIR_CONFIG_ARGS"
- fi
-
-fi
-
-])