diff --git a/.github/workflows/linux-aarch64.yml b/.github/workflows/linux-aarch64.yml index c100cde0ea..c041625c1c 100644 --- a/.github/workflows/linux-aarch64.yml +++ b/.github/workflows/linux-aarch64.yml @@ -131,7 +131,7 @@ jobs: ./bin/swoole-cli -m ./bin/swoole-cli --ri gd ./bin/swoole-cli --ri swoole - ldd ./bin/swoole-cli + { ldd ./bin/swoole-cli ; } || { echo $? ; } file ./bin/swoole-cli readelf -h ./bin/swoole-cli APP_VERSION=$(./bin/swoole-cli -v | awk '{print $2}') diff --git a/.github/workflows/linux-x86_64.yml b/.github/workflows/linux-x86_64.yml index 275c5361d3..076366039e 100644 --- a/.github/workflows/linux-x86_64.yml +++ b/.github/workflows/linux-x86_64.yml @@ -138,7 +138,7 @@ jobs: ./bin/swoole-cli -m ./bin/swoole-cli --ri gd ./bin/swoole-cli --ri swoole - ldd ./bin/swoole-cli + { ldd ./bin/swoole-cli ; } || { echo $? ; } file ./bin/swoole-cli readelf -h ./bin/swoole-cli APP_VERSION=$(./bin/swoole-cli -v | awk '{print $2}') diff --git a/docs/options.md b/docs/options.md index 78ee45e6dc..bfa46675fa 100644 --- a/docs/options.md +++ b/docs/options.md @@ -166,3 +166,7 @@ GD库支持 AVIF图片格式 with-iouring ---- swoole 启用支持 iouring 特性 + +with-static-pie +----- +linux 环境下启用 static-pie diff --git a/sapi/src/template/make.php b/sapi/src/template/make.php index bbb905e5ae..4bd693690c 100755 --- a/sapi/src/template/make.php +++ b/sapi/src/template/make.php @@ -248,8 +248,12 @@ export_variables isLinux()) : ?> export CFLAGS="$CFLAGS -fPIE" - export LDFLAGS="$LDFLAGS -static -all-static -static-pie" - + export LDFLAGS="$LDFLAGS -static -all-static" + getInputOption('with-static-pie')) : ?> + export CFLAGS="$CFLAGS -fPIE" + export LDFLAGS="$LDFLAGS -static-pie" + + export LDFLAGS="$LDFLAGS extraLdflags ?>" export EXTRA_CFLAGS='extraCflags ?>' make -j maxJob ?> ; @@ -258,9 +262,11 @@ xattr -cr getWorkDir() ?>/bin/swoole-cli otool -L getWorkDir() ?>/bin/swoole-cli - ldd getWorkDir() ?>/bin/swoole-cli + { ldd getWorkDir() ?>/bin/swoole-cli ; } || { echo $? ; } file getWorkDir() ?>/bin/swoole-cli readelf -h getWorkDir() ?>/bin/swoole-cli + { readelf -l getWorkDir() ?>/bin/swoole-cli ; } || { echo $? ; } + { objdump -p getWorkDir() ?>/bin/swoole-cli ; } || { echo $? ; } }