author | Rafael Ávila de Espíndola <respindola@mozilla.com> |
Sat, 03 Sep 2011 13:36:18 -0400 | |
changeset 76485 | d1d3ad947e9fa41a23b1775be9462fe7f1ff2cb3 |
parent 76484 | b3fa7b442186068a6df6fc232ab90b6cd325de1f |
child 76486 | 6e67cafd75c8cfc78c1eecd2dc4acbffecb29825 |
push id | 1688 |
push user | respindola@mozilla.com |
push date | Sat, 03 Sep 2011 17:38:39 +0000 |
treeherder | mozilla-inbound@d1d3ad947e9f [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | khuey |
bugs | 680277 |
milestone | 9.0a1 |
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
|
--- a/aclocal.m4 +++ b/aclocal.m4 @@ -11,16 +11,17 @@ builtin(include, build/autoconf/pkg.m4)d builtin(include, build/autoconf/freetype2.m4)dnl builtin(include, build/autoconf/codeset.m4)dnl builtin(include, build/autoconf/altoptions.m4)dnl builtin(include, build/autoconf/mozprog.m4)dnl builtin(include, build/autoconf/mozheader.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 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(.)
new file mode 100644 --- /dev/null +++ b/build/autoconf/frameptr.m4 @@ -0,0 +1,25 @@ +dnl Set MOZ_FRAMEPTR_FLAGS to the flags that should be used for enabling or +dnl disabling frame pointers in this architecture based on the configure +dnl options + +AC_DEFUN([MOZ_SET_FRAMEPTR_FLAGS], [ + if test "$GNU_CC"; then + MOZ_ENABLE_FRAME_PTR="-fno-omit-frame-pointer" + MOZ_DISABLE_FRAME_PTR="-fomit-frame-pointer" + else + case "$target" in + *-mingw*) + MOZ_ENABLE_FRAME_PTR="-Oy-" + MOZ_DISABLE_FRAME_PTR="-Oy" + ;; + esac + fi + + # if we are debugging or profiling, we want a frame pointer. + if test -z "$MOZ_OPTIMIZE" -o \ + -n "$MOZ_PROFILING" -o -n "$MOZ_DEBUG"; then + MOZ_FRAMEPTR_FLAGS="$MOZ_ENABLE_FRAME_PTR" + else + MOZ_FRAMEPTR_FLAGS="$MOZ_DISABLE_FRAME_PTR" + fi +])
--- a/config/autoconf.mk.in +++ b/config/autoconf.mk.in @@ -298,16 +298,17 @@ OS_COMPILE_CXXFLAGS = $(OS_CPPFLAGS) @CO OS_INCLUDES = $(NSPR_CFLAGS) $(NSS_CFLAGS) $(JPEG_CFLAGS) $(PNG_CFLAGS) $(ZLIB_CFLAGS) OS_LIBS = @LIBS@ ACDEFINES = @MOZ_DEFINES@ WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS@ MOZ_OPTIMIZE = @MOZ_OPTIMIZE@ +MOZ_FRAMEPTR_FLAGS = @MOZ_FRAMEPTR_FLAGS@ MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@ MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@ MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@ MOZ_OPTIMIZE_SIZE_TWEAK = @MOZ_OPTIMIZE_SIZE_TWEAK@ MOZ_RTTI_FLAGS_ON = @_MOZ_RTTI_FLAGS_ON@ MOZ_EXCEPTIONS_FLAGS_ON = @_MOZ_EXCEPTIONS_FLAGS_ON@
--- a/config/config.mk +++ b/config/config.mk @@ -458,16 +458,19 @@ else HOST_CFLAGS += $(MOZ_OPTIMIZE_FLAGS) endif # MODULE_OPTIMIZE_FLAGS else HOST_CFLAGS += $(MOZ_OPTIMIZE_FLAGS) endif # MOZ_OPTIMIZE == 1 endif # MOZ_OPTIMIZE endif # CROSS_COMPILE +CFLAGS += $(MOZ_FRAMEPTR_FLAGS) +CXXFLAGS += $(MOZ_FRAMEPTR_FLAGS) + # Check for FAIL_ON_WARNINGS & FAIL_ON_WARNINGS_DEBUG (Shorthand for Makefiles # to request that we use the 'warnings as errors' compile flags) # NOTE: First, we clear FAIL_ON_WARNINGS[_DEBUG] if we're doing a Windows PGO # build, since WARNINGS_AS_ERRORS has been suspected of causing isuses in that # situation. (See bug 437002.) ifeq (WINNT_1,$(OS_ARCH)_$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE)) FAIL_ON_WARNINGS_DEBUG=
--- a/configure.in +++ b/configure.in @@ -2066,22 +2066,17 @@ case "$target" in MKSHLIB_UNFORCE_ALL='' ;; esac ;; *-darwin*) MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_OPTIMIZE_FLAGS="-O3 -fomit-frame-pointer" - else - MOZ_OPTIMIZE_FLAGS="-O3 -fno-omit-frame-pointer" - fi + MOZ_OPTIMIZE_FLAGS="-O3" _PEDANTIC= CFLAGS="$CFLAGS -fno-common" CXXFLAGS="$CXXFLAGS -fno-common" DLL_SUFFIX=".dylib" DSO_LDOPTS='' STRIP="$STRIP -x -S" # Check whether we're targeting OS X or iOS AC_CACHE_CHECK(for iOS target, @@ -2183,22 +2178,17 @@ ia64*-hpux*) *-android*|*-linuxandroid*) AC_DEFINE(NO_PW_GECOS) no_x=yes _PLATFORM_DEFAULT_TOOLKIT=cairo-android TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' MOZ_GFX_OPTIMIZE_MOBILE=1 - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions -fomit-frame-pointer" - else - MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions -fno-omit-frame-pointer" - fi + MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions" ;; *-*linux*) # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler. # Similarly for GNU_CXX and INTEL_CXX. if test "$INTEL_CC" -o "$INTEL_CXX"; then # -Os has been broken on Intel's C/C++ compilers for quite a # while; Intel recommends against using it. @@ -2206,24 +2196,18 @@ ia64*-hpux*) MOZ_DEBUG_FLAGS="-g" elif test "$GNU_CC" -o "$GNU_CXX"; then GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'` case $GCC_VERSION in 4.1.*|4.2.*|4.5.*) # -Os is broken on gcc 4.1.x 4.2.x, 4.5.x we need to tweak it to get good results. MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50" esac - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_PGO_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS" - MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK $MOZ_FRAMEPTR_FLAGS" + MOZ_PGO_OPTIMIZE_FLAGS="-O3" + MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK" MOZ_DEBUG_FLAGS="-g" fi TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' MOZ_MEMORY=1 case "${target_cpu}" in @@ -2310,22 +2294,17 @@ ia64*-hpux*) CXXFLAGS="$CXXFLAGS -wd4800" # disable warning "forcing value to bool" # make 'foo == bar;' error out CFLAGS="$CFLAGS -we4553" CXXFLAGS="$CXXFLAGS -we4553" LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib" MOZ_DEBUG_FLAGS='-Zi' MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV' WARNINGS_AS_ERRORS='-WX' - # If we're building with --enable-profiling, we need -Oy-, which forces a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_OPTIMIZE_FLAGS='-O1' - else - MOZ_OPTIMIZE_FLAGS='-O1 -Oy-' - fi + MOZ_OPTIMIZE_FLAGS='-O1' MOZ_FIX_LINK_PATHS= DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib' XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib' LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib' MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)' if test $_MSC_VER -ge 1400; then LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT" dnl For profile-guided optimization @@ -6892,16 +6871,18 @@ MOZ_ARG_ENABLE_STRING(optimize, if test -n "$enableval" -a "$enableval" != "yes"; then MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'` MOZ_OPTIMIZE=2 fi else MOZ_OPTIMIZE= fi ], MOZ_OPTIMIZE=1) +MOZ_SET_FRAMEPTR_FLAGS + if test "$COMPILE_ENVIRONMENT"; then if test -n "$MOZ_OPTIMIZE"; then AC_MSG_CHECKING([for valid optimization flags]) _SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" AC_TRY_COMPILE([#include <stdio.h>], [printf("Hello World\n");], _results=yes, @@ -6910,16 +6891,17 @@ if test -n "$MOZ_OPTIMIZE"; then if test "$_results" = "no"; then AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS]) fi CFLAGS=$_SAVE_CFLAGS fi fi # COMPILE_ENVIRONMENT AC_SUBST(MOZ_OPTIMIZE) +AC_SUBST(MOZ_FRAMEPTR_FLAGS) AC_SUBST(MOZ_OPTIMIZE_FLAGS) AC_SUBST(MOZ_OPTIMIZE_LDFLAGS) AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK) AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS) dnl ======================================================== dnl = Enable generation of debug symbols dnl ========================================================
--- a/js/src/aclocal.m4 +++ b/js/src/aclocal.m4 @@ -6,10 +6,11 @@ dnl builtin(include, build/autoconf/pkg.m4)dnl builtin(include, build/autoconf/nspr.m4)dnl builtin(include, build/autoconf/altoptions.m4)dnl builtin(include, build/autoconf/moznbytetype.m4)dnl builtin(include, build/autoconf/mozprog.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 MOZ_PROG_CHECKMSYS()
new file mode 100644 --- /dev/null +++ b/js/src/build/autoconf/frameptr.m4 @@ -0,0 +1,25 @@ +dnl Set MOZ_FRAMEPTR_FLAGS to the flags that should be used for enabling or +dnl disabling frame pointers in this architecture based on the configure +dnl options + +AC_DEFUN([MOZ_SET_FRAMEPTR_FLAGS], [ + if test "$GNU_CC"; then + MOZ_ENABLE_FRAME_PTR="-fno-omit-frame-pointer" + MOZ_DISABLE_FRAME_PTR="-fomit-frame-pointer" + else + case "$target" in + *-mingw*) + MOZ_ENABLE_FRAME_PTR="-Oy-" + MOZ_DISABLE_FRAME_PTR="-Oy" + ;; + esac + fi + + # if we are debugging or profiling, we want a frame pointer. + if test -z "$MOZ_OPTIMIZE" -o \ + -n "$MOZ_PROFILING" -o -n "$MOZ_DEBUG"; then + MOZ_FRAMEPTR_FLAGS="$MOZ_ENABLE_FRAME_PTR" + else + MOZ_FRAMEPTR_FLAGS="$MOZ_DISABLE_FRAME_PTR" + fi +])
--- a/js/src/config/autoconf.mk.in +++ b/js/src/config/autoconf.mk.in @@ -138,16 +138,17 @@ OS_COMPILE_CXXFLAGS = $(OS_CPPFLAGS) @CO OS_INCLUDES = $(NSPR_CFLAGS) OS_LIBS = @LIBS@ ACDEFINES = @MOZ_DEFINES@ WARNINGS_AS_ERRORS = @WARNINGS_AS_ERRORS@ FAIL_ON_WARNINGS = @FAIL_ON_WARNINGS@ MOZ_OPTIMIZE = @MOZ_OPTIMIZE@ +MOZ_FRAMEPTR_FLAGS = @MOZ_FRAMEPTR_FLAGS@ MOZ_OPTIMIZE_FLAGS = @MOZ_OPTIMIZE_FLAGS@ MOZ_PGO_OPTIMIZE_FLAGS = @MOZ_PGO_OPTIMIZE_FLAGS@ MOZ_OPTIMIZE_LDFLAGS = @MOZ_OPTIMIZE_LDFLAGS@ MOZ_OPTIMIZE_SIZE_TWEAK = @MOZ_OPTIMIZE_SIZE_TWEAK@ MOZ_RTTI_FLAGS_ON = @_MOZ_RTTI_FLAGS_ON@ MOZ_EXCEPTIONS_FLAGS_ON = @_MOZ_EXCEPTIONS_FLAGS_ON@
--- a/js/src/config/config.mk +++ b/js/src/config/config.mk @@ -458,16 +458,19 @@ else HOST_CFLAGS += $(MOZ_OPTIMIZE_FLAGS) endif # MODULE_OPTIMIZE_FLAGS else HOST_CFLAGS += $(MOZ_OPTIMIZE_FLAGS) endif # MOZ_OPTIMIZE == 1 endif # MOZ_OPTIMIZE endif # CROSS_COMPILE +CFLAGS += $(MOZ_FRAMEPTR_FLAGS) +CXXFLAGS += $(MOZ_FRAMEPTR_FLAGS) + # Check for FAIL_ON_WARNINGS & FAIL_ON_WARNINGS_DEBUG (Shorthand for Makefiles # to request that we use the 'warnings as errors' compile flags) # NOTE: First, we clear FAIL_ON_WARNINGS[_DEBUG] if we're doing a Windows PGO # build, since WARNINGS_AS_ERRORS has been suspected of causing isuses in that # situation. (See bug 437002.) ifeq (WINNT_1,$(OS_ARCH)_$(MOZ_PROFILE_GENERATE)$(MOZ_PROFILE_USE)) FAIL_ON_WARNINGS_DEBUG=
--- a/js/src/configure.in +++ b/js/src/configure.in @@ -1967,23 +1967,17 @@ case "$target" in MKSHLIB_UNFORCE_ALL='' ;; esac ;; *-darwin*) MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@' - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS -fno-stack-protector" + MOZ_OPTIMIZE_FLAGS="-O3 -fno-stack-protector" _PEDANTIC= CFLAGS="$CFLAGS -fpascal-strings -fno-common" CXXFLAGS="$CXXFLAGS -fpascal-strings -fno-common" DLL_SUFFIX=".dylib" DSO_LDOPTS='' STRIP="$STRIP -x -S" _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa' TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"' @@ -2078,23 +2072,17 @@ ia64*-hpux*) *-android*|*-linuxandroid*) AC_DEFINE(NO_PW_GECOS) no_x=yes _PLATFORM_DEFAULT_TOOLKIT=cairo-android TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' MOZ_GFX_OPTIMIZE_MOBILE=1 - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks -fno-reorder-functions $MOZ_FRAMEPTR_FLAGS" + MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks -fno-reorder-functions" # The Maemo builders don't know about this flag MOZ_ARM_VFP_FLAGS="-mfpu=vfp" ;; *-*linux*) # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler. # Similarly for GNU_CXX and INTEL_CXX. if test "$INTEL_CC" -o "$INTEL_CXX"; then @@ -2104,24 +2092,18 @@ ia64*-hpux*) MOZ_DEBUG_FLAGS="-g" elif test "$GNU_CC" -o "$GNU_CXX"; then GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'` case $GCC_VERSION in 4.1.*|4.2.*|4.5.*) # -Os is broken on gcc 4.1.x 4.2.x, 4.5.x we need to tweak it to get good results. MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50" esac - # If we're building with --enable-profiling, we need a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS="-fomit-frame-pointer" - else - MOZ_FRAMEPTR_FLAGS="-fno-omit-frame-pointer" - fi - MOZ_PGO_OPTIMIZE_FLAGS="-O3 $MOZ_FRAMEPTR_FLAGS" - MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK $MOZ_FRAMEPTR_FLAGS" + MOZ_PGO_OPTIMIZE_FLAGS="-O3" + MOZ_OPTIMIZE_FLAGS="-O3 -freorder-blocks $MOZ_OPTIMIZE_SIZE_TWEAK" MOZ_DEBUG_FLAGS="-g" fi TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"' case "${target_cpu}" in alpha*) CFLAGS="$CFLAGS -mieee" @@ -2231,23 +2213,17 @@ ia64*-hpux*) CXXFLAGS="$CXXFLAGS -wd4244 -wd4800" # make 'foo == bar;' error out CFLAGS="$CFLAGS -we4553" CXXFLAGS="$CXXFLAGS -we4553" LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib" MOZ_DEBUG_FLAGS='-Zi' MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV' WARNINGS_AS_ERRORS='-WX' - # If we're building with --enable-profiling, we need -Oy-, which forces a frame pointer. - if test -z "$MOZ_PROFILING"; then - MOZ_FRAMEPTR_FLAGS= - else - MOZ_FRAMEPTR_FLAGS='-Oy-' - fi - MOZ_OPTIMIZE_FLAGS="-O2 $MOZ_FRAMEPTR_FLAGS" + MOZ_OPTIMIZE_FLAGS="-O2" MOZ_JS_LIBS='$(libdir)/mozjs.lib' MOZ_FIX_LINK_PATHS= DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib $(LIBXUL_DIST)/lib/mozalloc.lib' XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/mozalloc.lib' LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib $(LIBXUL_DIST)/lib/mozalloc.lib' MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)' if test $_MSC_VER -ge 1400; then LDFLAGS="$LDFLAGS -LARGEADDRESSAWARE -NXCOMPAT" @@ -4388,16 +4364,18 @@ MOZ_ARG_ENABLE_STRING(optimize, if test -n "$enableval" -a "$enableval" != "yes"; then MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'` MOZ_OPTIMIZE=2 fi else MOZ_OPTIMIZE= fi ], MOZ_OPTIMIZE=1) +MOZ_SET_FRAMEPTR_FLAGS + if test "$COMPILE_ENVIRONMENT"; then if test -n "$MOZ_OPTIMIZE"; then AC_MSG_CHECKING([for valid optimization flags]) _SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS" AC_TRY_COMPILE([#include <stdio.h>], [printf("Hello World\n");], _results=yes, @@ -4406,16 +4384,17 @@ if test -n "$MOZ_OPTIMIZE"; then if test "$_results" = "no"; then AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS]) fi CFLAGS=$_SAVE_CFLAGS fi fi # COMPILE_ENVIRONMENT AC_SUBST(MOZ_OPTIMIZE) +AC_SUBST(MOZ_FRAMEPTR_FLAGS) AC_SUBST(MOZ_OPTIMIZE_FLAGS) AC_SUBST(MOZ_OPTIMIZE_LDFLAGS) AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK) AC_SUBST(MOZ_PGO_OPTIMIZE_FLAGS) dnl ======================================================== dnl = Enable generation of debug symbols dnl ========================================================
--- a/toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in +++ b/toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in @@ -47,17 +47,17 @@ ifdef MOZ_THUMB2 #{ # complains if we store to r7, not unreasonably, but complains # inconsistently. The generic syscall template pushes/stores to/pops # r7 with no complaint from gcc, but the sys_clone() function marks r7 # as a clobbered register yet gcc error's. The generated assembly for # sys_clone() looks OK, so we chalk this up to a gcc/gas quirk and # work around it by telling gcc that the THUMB frame pointer is a # vanilla callee-save register. OS_CXXFLAGS += -fomit-frame-pointer -MOZ_OPTIMIZE_FLAGS := $(filter-out -fno-omit-frame-pointer,$(MOZ_OPTIMIZE_FLAGS)) +MOZ_FRAMEPTR_FLAGS := -fomit-frame-pointer endif #} MODULE = handler LIBRARY_NAME = exception_handler_s XPI_NAME = crashreporter LOCAL_INCLUDES = -I$(srcdir)/../../..
--- a/xpcom/reflect/xptcall/src/md/unix/Makefile.in +++ b/xpcom/reflect/xptcall/src/md/unix/Makefile.in @@ -64,20 +64,24 @@ ifneq (86,$(findstring 86,$(OS_TEST))) NO_PROFILE_GUIDED_OPTIMIZE = 1 endif endif ifeq (Darwin,$(OS_ARCH)) ifeq (86,$(findstring 86,$(OS_TEST))) ifneq (x86_64,$(OS_TEST)) # If we compile xptcinvoke_unixish_x86.cpp with -fomit-frame-pointer -# we end up crashing on startup, presumably because of the %esp munging we do -# when KEEP_STACK_16_BYTE_ALIGNED. So let's not use that flag here. -# NOTE: MODULE_OPTIMIZE_FLAGS must be set before including config.mk -MODULE_OPTIMIZE_FLAGS=-O3 +# we end up crashing on startup. This is because +# "movl %5, %%eax\n\t" /* function index */ +# becomes +# mov 0x1c(%esp),%eax +# but we have modified esp. +# NOTE: MOZ_FRAMEPTR_FLAGS must be set before including config.mk +# FIXME: change the file instead of using this hack. +MOZ_FRAMEPTR_FLAGS=-fno-omit-frame-pointer endif endif endif include $(topsrcdir)/config/config.mk ###################################################################### # i386 and beyond