diff options
author | Dmitry Stogov <dmitry@zend.com> | 2020-01-29 12:15:03 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2020-01-29 12:15:03 +0300 |
commit | ce44cd3b3c32a1ef400065468df94efa6a9624dd (patch) | |
tree | 19c80f73caf3a15f78aa385e4d4c98ff298df6b5 | |
parent | d39edebbce35890aafd77cc47e1830e851287219 (diff) | |
download | php-git-ce44cd3b3c32a1ef400065468df94efa6a9624dd.tar.gz |
Fixed bug #79092 (Building with clang+lld-9 results in a broken PHP binary)
-rw-r--r-- | configure.ac | 43 |
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" |