Bug 638149 - Need a way to disable -dead_strip on OS X; r=ted

This commit is contained in:
Rafael Ávila de Espíndola 2011-03-02 21:29:00 -05:00
parent ccd00f6752
commit 3659cf3071
5 changed files with 41 additions and 2 deletions

1
aclocal.m4 vendored
View File

@ -14,6 +14,7 @@ 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
MOZ_PROG_CHECKMSYS()

15
build/autoconf/lto.m4 Normal file
View File

@ -0,0 +1,15 @@
dnl check if the build is using lto. This is really primitive and only detects llvm based
dnl compilers right now.
AC_DEFUN(MOZ_DOING_LTO,
[
cat > conftest.c <<EOF
int foo = 1;
EOF
$1=no
if ${CC-cc} ${CFLAGS} -S conftest.c -o conftest.s >/dev/null 2>&1; then
if grep '^target triple =' conftest.s; then
$1=yes
fi
fi
rm -f conftest.[cs]
])

View File

@ -1982,6 +1982,8 @@ fi
AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
MOZ_DOING_LTO(lto_is_enabled)
dnl ========================================================
dnl System overrides of the defaults for target
dnl ========================================================
@ -2083,9 +2085,11 @@ case "$target" in
# builds.
MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling"
if test "x$lto_is_enabled" = "xyes"; then
echo "Skipping -dead_strip because lto is enabled."
dnl DTrace and -dead_strip don't interact well. See bug 403132.
dnl ===================================================================
if test "x$enable_dtrace" = "xyes"; then
elif test "x$enable_dtrace" = "xyes"; then
echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
else
dnl check for the presence of the -dead_strip linker flag

View File

@ -0,0 +1,15 @@
dnl check if the build is using lto. This is really primitive and only detects llvm based
dnl compilers right now.
AC_DEFUN(MOZ_DOING_LTO,
[
cat > conftest.c <<EOF
int foo = 1;
EOF
$1=no
if ${CC-cc} ${CFLAGS} -S conftest.c -o conftest.s >/dev/null 2>&1; then
if grep '^target triple =' conftest.s; then
$1=yes
fi
fi
rm -f conftest.[cs]
])

View File

@ -1886,6 +1886,8 @@ if test "$_python_res" != 0; then
fi
AC_MSG_RESULT([yes])
MOZ_DOING_LTO(lto_is_enabled)
dnl ========================================================
dnl System overrides of the defaults for target
dnl ========================================================
@ -1990,9 +1992,11 @@ case "$target" in
# builds.
MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling"
if test "x$lto_is_enabled" = "xyes"; then
echo "Skipping -dead_strip because lto is enabled."
dnl DTrace and -dead_strip don't interact well. See bug 403132.
dnl ===================================================================
if test "x$enable_dtrace" = "xyes"; then
elif test "x$enable_dtrace" = "xyes"; then
echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
else
dnl check for the presence of the -dead_strip linker flag