Skip to content

Commit ce44cd3

Browse files
committed
Fixed bug #79092 (Building with clang+lld-9 results in a broken PHP binary)
1 parent d39edeb commit ce44cd3

File tree

1 file changed

+36
-7
lines changed

1 file changed

+36
-7
lines changed

configure.ac

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,6 +1050,42 @@ esyscmd(./build/config-stubs ext)
10501050
dnl Extensions post-config.
10511051
dnl ----------------------------------------------------------------------------
10521052

1053+
dnl Align segments on huge page boundary
1054+
case $host_alias in
1055+
i[[3456]]86-*-linux-* | x86_64-*-linux-*)
1056+
AC_MSG_CHECKING(linker support for -zcommon-page-size=2097152)
1057+
save_LDFLAGS=$LDFLAGS
1058+
LDFLAGS="$LDFLAGS -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
1059+
AC_RUN_IFELSE(
1060+
[AC_LANG_SOURCE([[int main() {return 0;}]])],
1061+
[ac_cv_common_page_size=yes],
1062+
[ac_cv_common_page_size=no],
1063+
[ac_cv_common_page_size=no])
1064+
LDFLAGS=$save_LDFLAGS
1065+
if test "$ac_cv_common_page_size" = "yes"; then
1066+
AC_MSG_RESULT([yes])
1067+
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
1068+
else
1069+
AC_MSG_RESULT([no])
1070+
AC_MSG_CHECKING(linker support for -zmax-page-size=2097152)
1071+
save_LDFLAGS=$LDFLAGS
1072+
LDFLAGS="$LDFLAGS -Wl,-zmax-page-size=2097152"
1073+
AC_RUN_IFELSE(
1074+
[AC_LANG_SOURCE([[int main() {return 0;}]])],
1075+
[ac_cv_max_page_size=yes],
1076+
[ac_cv_max_page_size=no],
1077+
[ac_cv_max_page_size=no])
1078+
LDFLAGS=$save_LDFLAGS
1079+
if test "$ac_cv_max_page_size" = "yes"; then
1080+
AC_MSG_RESULT([yes])
1081+
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zmax-page-size=2097152"
1082+
else
1083+
AC_MSG_RESULT([no])
1084+
fi
1085+
fi
1086+
;;
1087+
esac
1088+
10531089
enable_shared=yes
10541090
enable_static=yes
10551091

@@ -1168,13 +1204,6 @@ if test "$PHP_THREAD_SAFETY" = "yes"; then
11681204
TSRM_THREADS_CHECKS
11691205
fi
11701206

1171-
dnl Align segments on huge page boundary
1172-
case $host_alias in
1173-
i[[3456]]86-*-linux-* | x86_64-*-linux-*)
1174-
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
1175-
;;
1176-
esac
1177-
11781207
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LDFLAGS"
11791208
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $LDFLAGS"
11801209
EXTRA_LIBS="$EXTRA_LIBS $LIBS"

0 commit comments

Comments
 (0)