Skip to content

Commit 21e4baa

Browse files
committed
configure ./build-static.sh to allow extension loading with glibc
1 parent 60e0b94 commit 21e4baa

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

build-static.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ if [ -z "${PHP_VERSION}" ]; then
4848
export PHP_VERSION="8.4"
4949
fi
5050
# default extension set
51-
defaultExtensions="apcu,bcmath,bz2,calendar,ctype,curl,dba,dom,exif,fileinfo,filter,ftp,gd,gmp,gettext,iconv,igbinary,imagick,intl,ldap,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,parallel,pcntl,pdo,pdo_mysql,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,protobuf,readline,redis,session,shmop,simplexml,soap,sockets,sodium,sqlite3,ssh2,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xlswriter,xml,xmlreader,xmlwriter,zip,zlib,yaml,zstd"
51+
defaultExtensions="apcu,bcmath,bz2,calendar,ctype,curl,dba,dom,exif,ffi,fileinfo,filter,ftp,gd,gmp,gettext,iconv,igbinary,imagick,intl,ldap,mbregex,mbstring,mysqli,mysqlnd,opcache,openssl,parallel,pcntl,pdo,pdo_mysql,pdo_pgsql,pdo_sqlite,pgsql,phar,posix,protobuf,readline,redis,session,shmop,simplexml,soap,sockets,sodium,sqlite3,ssh2,sysvmsg,sysvsem,sysvshm,tidy,tokenizer,xlswriter,xml,xmlreader,xmlwriter,zip,zlib,yaml,zstd"
5252
defaultExtensionLibs="bzip2,freetype,libavif,libjpeg,liblz4,libwebp,libzip,nghttp2"
5353

5454
md5binary="md5sum"
@@ -226,12 +226,19 @@ if [ "${os}" = "mac" ]; then
226226
elif [ "${os}" = "linux" ] && [ -z "${DEBUG_SYMBOLS}" ]; then
227227
CGO_LDFLAGS="-Wl,-O1 -pie"
228228
fi
229+
if [ "${os}" = "linux" ] && [ "${SPC_LIBC}" = "glibc" ]; then
230+
CGO_LDFLAGS="${CGO_LDFLAGS} -Wl,--allow-multiple-definition -Wl,--export-dynamic"
231+
fi
229232

230233
CGO_LDFLAGS="${CGO_LDFLAGS} ${PWD}/buildroot/lib/libbrotlicommon.a ${PWD}/buildroot/lib/libbrotlienc.a ${PWD}/buildroot/lib/libbrotlidec.a ${PWD}/buildroot/lib/libwatcher-c.a $(${spcCommand} spc-config "${PHP_EXTENSIONS}" --with-libs="${PHP_EXTENSION_LIBS}" --libs)"
231234
if [ "${os}" = "linux" ]; then
232235
if echo "${PHP_EXTENSIONS}" | grep -qE "\b(intl|imagick|grpc|v8js|protobuf|mongodb|tbb)\b"; then
233236
CGO_LDFLAGS="${CGO_LDFLAGS} -lstdc++"
234237
fi
238+
if [ "${SPC_LIBC}" = "glibc" ]; then
239+
CGO_LDFLAGS=$(echo "$CGO_LDFLAGS" | sed 's|-lphp|-Wl,--whole-archive -lphp -Wl,--no-whole-archive|g')
240+
ar d ${PWD}/buildroot/lib/libphp.a $(ar t ${PWD}/buildroot/lib/libphp.a | grep '\.a$')
241+
fi
235242
fi
236243

237244
export CGO_LDFLAGS

0 commit comments

Comments
 (0)