From: Daniil Gentili Date: Wed, 13 Nov 2024 12:24:29 +0000 (+0000) Subject: Add --enable-rtld-deepbind configure flag X-Git-Tag: archive/raspbian/8.4.11-1+rpi1~2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=226efe5b275823d289098dfa5039ed6f4c2dd9f4;p=php8.4.git Add --enable-rtld-deepbind configure flag Gbp-Pq: Name 0046-Add-enable-rtld-deepbind-configure-flag.patch --- diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h index e4195402..44d4daf6 100644 --- a/Zend/zend_portability.h +++ b/Zend/zend_portability.h @@ -161,7 +161,7 @@ # if defined(RTLD_GROUP) && defined(RTLD_WORLD) && defined(RTLD_PARENT) # define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL | RTLD_GROUP | RTLD_WORLD | RTLD_PARENT) -# elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) && !__has_feature(memory_sanitizer) +# elif defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) && !__has_feature(memory_sanitizer) && defined(PHP_USE_RTLD_DEEPBIND) # define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL | RTLD_DEEPBIND) # else # define DL_LOAD(libname) dlopen(libname, PHP_RTLD_MODE | RTLD_GLOBAL) diff --git a/configure.ac b/configure.ac index cfc13054..38d4fcac 100644 --- a/configure.ac +++ b/configure.ac @@ -867,6 +867,23 @@ AS_VAR_IF([PHP_RTLD_NOW], [yes], [Define to 1 if 'dlopen()' uses the 'RTLD_NOW' mode flag instead of 'RTLD_LAZY'.])]) +if test "$PHP_SAPI" = "apache2handler"; then + PHP_RTLD_DEEPBIND_DEFAULT=yes +else + PHP_RTLD_DEEPBIND_DEFAULT=no +fi + +PHP_ARG_ENABLE([rtld-deepbind], + [whether to dlopen extensions with RTLD_DEEPBIND], + [AS_HELP_STRING([--enable-rtld-deepbind], + [Use dlopen with RTLD_DEEPBIND])], + [$PHP_RTLD_DEEPBIND_DEFAULT], + [$PHP_RTLD_DEEPBIND_DEFAULT]) + +if test "$PHP_RTLD_DEEPBIND" = "yes"; then + AC_DEFINE(PHP_USE_RTLD_DEEPBIND, 1, [ Use dlopen with RTLD_DEEPBIND ]) +fi + PHP_ARG_WITH([layout], [layout of installed files], [AS_HELP_STRING([--with-layout=TYPE],