Skip to content

Commit d65d82f

Browse files
committed
remove extra libraries for php configure/make, since they're the same and only depend on the target libc
1 parent 3070376 commit d65d82f

File tree

7 files changed

+18
-15
lines changed

7 files changed

+18
-15
lines changed

bin/build-static-frankenphp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ echo 'LD=/opt/rh/devtoolset-10/root/usr/bin/ld' >> /tmp/spc-gnu-docker.env
148148
echo 'SPC_DEFAULT_C_FLAGS=-fPIE -fPIC' >> /tmp/spc-gnu-docker.env
149149
echo 'SPC_LIBC=glibc' >> /tmp/spc-gnu-docker.env
150150
echo 'SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-Wl,-O1 -pie"' >> /tmp/spc-gnu-docker.env
151-
echo 'SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-ldl -lpthread -lm -lresolv -lutil -lrt"' >> /tmp/spc-gnu-docker.env
152151

153152
# Run docker
154153
# shellcheck disable=SC2068

bin/spc-gnu-docker

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ fi
156156
echo 'SPC_DEFAULT_C_FLAGS=-fPIC' > /tmp/spc-gnu-docker.env
157157
echo 'SPC_LIBC=glibc' >> /tmp/spc-gnu-docker.env
158158
echo 'SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-Wl,-O1 -pie"' >> /tmp/spc-gnu-docker.env
159-
echo 'SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-ldl -lpthread -lm -lresolv -lutil -lrt"' >> /tmp/spc-gnu-docker.env
160159

161160
# Environment variable passthrough
162161
ENV_LIST=""

config/env.ini

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,8 @@ SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS="${SPC_DEFAULT_C_FLAGS} -fPIE"
115115
SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS="-I${BUILD_INCLUDE_PATH}"
116116
; LDFLAGS for configuring php
117117
SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS="-L${BUILD_LIB_PATH}"
118-
; LIBS for configuring php
119-
SPC_CMD_VAR_PHP_CONFIGURE_LIBS="-ldl -lrt -lpthread -lm -lresolv -lutil"
120118
; EXTRA_CFLAGS for `make` php
121119
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fno-ident -fPIE ${SPC_DEFAULT_C_FLAGS}"
122-
; EXTRA_LIBS for `make` php
123-
SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-ldl -lrt -lpthread -lm -lresolv -lutil"
124120
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.so
125121
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS=""
126122
; EXTRA_LDFLAGS_PROGRAM for `make` php
@@ -158,8 +154,6 @@ SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS="-I${BUILD_INCLUDE_PATH}"
158154
SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS="-L${BUILD_LIB_PATH}"
159155
; EXTRA_CFLAGS for `make` php
160156
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fpic -fpie ${SPC_DEFAULT_C_FLAGS}"
161-
; EXTRA_LIBS for `make` php
162-
SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-lresolv"
163157
; embed type for php, static (libphp.a) or shared (libphp.dylib)
164158
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
165159

src/SPC/builder/linux/LinuxBuilder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public function buildPHP(int $build_target = BUILD_TARGET_NONE): void
113113
'CFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS'),
114114
'CPPFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS'),
115115
'LDFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS'),
116-
'LIBS' => $mimallocLibs . getenv('SPC_CMD_VAR_PHP_CONFIGURE_LIBS'),
116+
'LIBS' => $mimallocLibs . SPCTarget::getRuntimeLibs(),
117117
]);
118118

119119
// process micro upx patch if micro sapi enabled
@@ -336,7 +336,7 @@ private function getMakeExtraVars(): array
336336
{
337337
return [
338338
'EXTRA_CFLAGS' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS'),
339-
'EXTRA_LIBS' => getenv('SPC_EXTRA_LIBS') . ' ' . getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS'),
339+
'EXTRA_LIBS' => getenv('SPC_EXTRA_LIBS') . ' ' . SPCTarget::getRuntimeLibs(),
340340
'EXTRA_LDFLAGS' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS'),
341341
'EXTRA_LDFLAGS_PROGRAM' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM'),
342342
];

src/SPC/builder/macos/MacOSBuilder.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
use SPC\store\FileSystem;
1313
use SPC\store\SourcePatcher;
1414
use SPC\util\GlobalEnvManager;
15+
use SPC\util\SPCTarget;
1516

1617
class MacOSBuilder extends UnixBuilderBase
1718
{
@@ -131,7 +132,7 @@ public function buildPHP(int $build_target = BUILD_TARGET_NONE): void
131132
'CFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS'),
132133
'CPPFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS'),
133134
'LDFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS'),
134-
'LIBS' => $mimallocLibs . getenv('SPC_CMD_VAR_PHP_CONFIGURE_LIBS'),
135+
'LIBS' => $mimallocLibs . SPCTarget::getRuntimeLibs(),
135136
]);
136137

137138
if ($this->getLib('postgresql')) {
@@ -293,7 +294,7 @@ private function getMakeExtraVars(): array
293294
{
294295
return [
295296
'EXTRA_CFLAGS' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS'),
296-
'EXTRA_LIBS' => getenv('SPC_EXTRA_LIBS') . ' ' . getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS'),
297+
'EXTRA_LIBS' => getenv('SPC_EXTRA_LIBS') . ' ' . SPCTarget::getRuntimeLibs(),
297298
];
298299
}
299300
}

src/SPC/util/SPCConfigUtil.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,8 @@ public function config(array $extensions = [], array $libraries = [], bool $incl
6464

6565
// embed
6666
$libs = trim("-lphp -lc {$libs}");
67-
$extra_env = getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS');
68-
if (is_string($extra_env)) {
69-
$libs .= ' ' . trim($extra_env, '"');
67+
if ($extra_libs = SPCTarget::getRuntimeLibs()) {
68+
$libs .= " {$extra_libs}";
7069
}
7170
// c++
7271
if ($this->builder->hasCpp()) {

src/SPC/util/SPCTarget.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,17 @@ public static function getLibc(): ?string
7474
return null;
7575
}
7676

77+
public static function getRuntimeLibs(): string
78+
{
79+
if (PHP_OS_FAMILY === 'Linux') {
80+
return self::getLibc() === 'musl' ? 'ldl -lpthread -lm' : '-ldl -lrt -lpthread -lm -lresolv -lutil';
81+
}
82+
if (PHP_OS_FAMILY === 'Darwin') {
83+
return '-lresolv';
84+
}
85+
return '';
86+
}
87+
7788
/**
7889
* Returns the libc version if set, for other OS, it will always return null.
7990
*/

0 commit comments

Comments
 (0)