Skip to content

Commit 6c3ff7d

Browse files
committed
Change LDFLAGS_PROGRAM to hard-coded
1 parent a375ab9 commit 6c3ff7d

File tree

3 files changed

+15
-20
lines changed

3 files changed

+15
-20
lines changed

config/env.ini

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
; SPC_LINUX_DEFAULT_CXX: the default c++ compiler for linux. (For alpine linux: `g++`, default: `$GNU_ARCH-linux-musl-g++`)
3535
; SPC_LINUX_DEFAULT_AR: the default archiver for linux. (For alpine linux: `ar`, default: `$GNU_ARCH-linux-musl-ar`)
3636

37-
3837
[global]
3938
; Build concurrency for make -jN, default is CPU_COUNT, this value are used in every libs.
4039
SPC_CONCURRENCY=${CPU_COUNT}
@@ -101,11 +100,11 @@ SPC_CMD_PREFIX_PHP_BUILDCONF="./buildconf --force"
101100
; configure command
102101
SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --disable-shared --enable-static --disable-all --disable-cgi --disable-phpdbg --with-pic"
103102
; make command
104-
SPC_CMD_PREFIX_PHP_MAKE="make -j${CPU_COUNT}"
105-
; embed type for php, static (libphp.a) or shared (libphp.so)
106-
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
103+
SPC_CMD_PREFIX_PHP_MAKE="make -j${SPC_CONCURRENCY}"
107104

108105
; *** default build vars for building php ***
106+
; embed type for php, static (libphp.a) or shared (libphp.so)
107+
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
109108
; CFLAGS for configuring php
110109
SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS="${SPC_DEFAULT_C_FLAGS} -fPIE"
111110
; CPPFLAGS for configuring php
@@ -115,13 +114,9 @@ SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS="-L${BUILD_LIB_PATH}"
115114
; LIBS for configuring php
116115
SPC_CMD_VAR_PHP_CONFIGURE_LIBS="-ldl -lpthread -lm"
117116
; EXTRA_CFLAGS for `make` php
118-
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fno-ident -fPIE ${SPC_DEFAULT_C_FLAGS}"
117+
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="${SPC_DEFAULT_C_FLAGS} -g -fstack-protector-strong -fno-ident -fPIE"
119118
; EXTRA_LIBS for `make` php
120119
SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-ldl -lpthread -lm"
121-
; EXTRA_LDFLAGS for `make` php, can use -release to set a soname for libphp.so
122-
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS="-L${BUILD_LIB_PATH}"
123-
; EXTRA_LDFLAGS_PROGRAM for `make` php
124-
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-all-static -Wl,-O1 -pie"
125120

126121
[macos]
127122
; build target: macho or macho (possibly we could support macho-universal in the future)
@@ -144,23 +139,21 @@ SPC_CMD_PREFIX_PHP_BUILDCONF="./buildconf --force"
144139
; configure command
145140
SPC_CMD_PREFIX_PHP_CONFIGURE="./configure --prefix= --with-valgrind=no --enable-shared=no --enable-static=yes --disable-all --disable-cgi --disable-phpdbg"
146141
; make command
147-
SPC_CMD_PREFIX_PHP_MAKE="make -j${CPU_COUNT}"
142+
SPC_CMD_PREFIX_PHP_MAKE="make -j${SPC_CONCURRENCY}"
148143

149144
; *** default build vars for building php ***
145+
; embed type for php, static (libphp.a) or shared (libphp.dylib)
146+
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
150147
; CFLAGS for configuring php
151148
SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS="${SPC_DEFAULT_C_FLAGS} -Werror=unknown-warning-option"
152149
; CPPFLAGS for configuring php
153150
SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS="-I${BUILD_INCLUDE_PATH}"
154151
; LDFLAGS for configuring php
155152
SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS="-L${BUILD_LIB_PATH}"
156153
; EXTRA_CFLAGS for `make` php
157-
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="-g -fstack-protector-strong -fpic -fpie ${SPC_DEFAULT_C_FLAGS}"
158-
; EXTRA_LDFLAGS_PROGRAM for `make` php
159-
SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM="-L${BUILD_LIB_PATH}"
154+
SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS="${SPC_DEFAULT_C_FLAGS} -g -fstack-protector-strong -fpic -fpie"
160155
; EXTRA_LIBS for `make` php
161156
SPC_CMD_VAR_PHP_MAKE_EXTRA_LIBS="-lresolv"
162-
; embed type for php, static (libphp.a) or shared (libphp.dylib)
163-
SPC_CMD_VAR_PHP_EMBED_TYPE="static"
164157

165158
[freebsd]
166159
; compiler environments

src/SPC/builder/linux/LinuxBuilder.php

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

1617
class LinuxBuilder extends UnixBuilderBase
1718
{
@@ -96,7 +97,7 @@ public function buildPHP(int $build_target = BUILD_TARGET_NONE): void
9697
$envs_build_php = SystemUtil::makeEnvVarString([
9798
'CFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS'),
9899
'CPPFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS'),
99-
'LDFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS'),
100+
'LDFLAGS' => '-L' . BUILD_LIB_PATH,
100101
'LIBS' => $mimallocLibs . getenv('SPC_CMD_VAR_PHP_CONFIGURE_LIBS'),
101102
]);
102103

@@ -299,11 +300,12 @@ protected function buildEmbed(): void
299300
private function getMakeExtraVars(): array
300301
{
301302
$config = (new SPCConfigUtil($this, ['libs_only_deps' => true, 'absolute_libs' => true]))->config($this->ext_list, $this->lib_list, $this->getOption('with-suggested-exts'), $this->getOption('with-suggested-libs'));
303+
$static = SPCTarget::isStatic() ? '-all-static' : '';
304+
$lib = BUILD_LIB_PATH;
302305
return [
303306
'EXTRA_CFLAGS' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS'),
304307
'EXTRA_LIBS' => $config['libs'],
305-
'EXTRA_LDFLAGS' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS'),
306-
'EXTRA_LDFLAGS_PROGRAM' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM'),
308+
'EXTRA_LDFLAGS_PROGRAM' => "-L{$lib} {$static} -pie",
307309
];
308310
}
309311

src/SPC/builder/macos/MacOSBuilder.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public function buildPHP(int $build_target = BUILD_TARGET_NONE): void
116116
$envs_build_php = SystemUtil::makeEnvVarString([
117117
'CFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CFLAGS'),
118118
'CPPFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_CPPFLAGS'),
119-
'LDFLAGS' => getenv('SPC_CMD_VAR_PHP_CONFIGURE_LDFLAGS'),
119+
'LDFLAGS' => '-L' . BUILD_LIB_PATH,
120120
'LIBS' => $mimallocLibs . getenv('SPC_CMD_VAR_PHP_CONFIGURE_LIBS'),
121121
]);
122122

@@ -280,7 +280,7 @@ private function getMakeExtraVars(): array
280280
$config = (new SPCConfigUtil($this, ['libs_only_deps' => true]))->config($this->ext_list, $this->lib_list, $this->getOption('with-suggested-exts'), $this->getOption('with-suggested-libs'));
281281
return [
282282
'EXTRA_CFLAGS' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_CFLAGS'),
283-
'EXTRA_LDFLAGS_PROGRAM' => getenv('SPC_CMD_VAR_PHP_MAKE_EXTRA_LDFLAGS_PROGRAM'),
283+
'EXTRA_LDFLAGS_PROGRAM' => '-L' . BUILD_LIB_PATH,
284284
'EXTRA_LIBS' => $config['libs'],
285285
];
286286
}

0 commit comments

Comments
 (0)