summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-01-29 12:15:03 +0300
committerDmitry Stogov <dmitry@zend.com>2020-01-29 12:15:03 +0300
commitce44cd3b3c32a1ef400065468df94efa6a9624dd (patch)
tree19c80f73caf3a15f78aa385e4d4c98ff298df6b5
parentd39edebbce35890aafd77cc47e1830e851287219 (diff)
downloadphp-git-ce44cd3b3c32a1ef400065468df94efa6a9624dd.tar.gz
Fixed bug #79092 (Building with clang+lld-9 results in a broken PHP binary)
-rw-r--r--configure.ac43
1 files changed, 36 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index 56a5127667..501730ba47 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1050,6 +1050,42 @@ esyscmd(./build/config-stubs ext)
dnl Extensions post-config.
dnl ----------------------------------------------------------------------------
+dnl Align segments on huge page boundary
+case $host_alias in
+ i[[3456]]86-*-linux-* | x86_64-*-linux-*)
+ AC_MSG_CHECKING(linker support for -zcommon-page-size=2097152)
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[int main() {return 0;}]])],
+ [ac_cv_common_page_size=yes],
+ [ac_cv_common_page_size=no],
+ [ac_cv_common_page_size=no])
+ LDFLAGS=$save_LDFLAGS
+ if test "$ac_cv_common_page_size" = "yes"; then
+ AC_MSG_RESULT([yes])
+ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
+ else
+ AC_MSG_RESULT([no])
+ AC_MSG_CHECKING(linker support for -zmax-page-size=2097152)
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -Wl,-zmax-page-size=2097152"
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[int main() {return 0;}]])],
+ [ac_cv_max_page_size=yes],
+ [ac_cv_max_page_size=no],
+ [ac_cv_max_page_size=no])
+ LDFLAGS=$save_LDFLAGS
+ if test "$ac_cv_max_page_size" = "yes"; then
+ AC_MSG_RESULT([yes])
+ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zmax-page-size=2097152"
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ ;;
+esac
+
enable_shared=yes
enable_static=yes
@@ -1168,13 +1204,6 @@ if test "$PHP_THREAD_SAFETY" = "yes"; then
TSRM_THREADS_CHECKS
fi
-dnl Align segments on huge page boundary
-case $host_alias in
- i[[3456]]86-*-linux-* | x86_64-*-linux-*)
- EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
- ;;
-esac
-
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS"
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $LDFLAGS"
EXTRA_LIBS="$EXTRA_LIBS $LIBS"