mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 21:04:52 +08:00
Fix micro upx compress bug (#440)
* triple compression for micro with upx * place debug info first
This commit is contained in:
parent
954f8f4ddc
commit
bde18054e5
@ -145,7 +145,19 @@ class LinuxBuilder extends UnixBuilderBase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// upx pack and strip for micro
|
// upx pack and strip for micro
|
||||||
|
// but always restore Makefile.frag.bak first
|
||||||
|
if (file_exists(SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag.bak')) {
|
||||||
|
copy(SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag.bak', SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag');
|
||||||
|
}
|
||||||
if ($this->getOption('with-upx-pack', false)) {
|
if ($this->getOption('with-upx-pack', false)) {
|
||||||
|
// judge $(MAKE) micro_2s_objs SFX_FILESIZE=`$(STAT_SIZE) $(SAPI_MICRO_PATH)` count
|
||||||
|
// if 2, replace src/globals/extra/micro-triple-Makefile.frag file content
|
||||||
|
if (substr_count(FileSystem::readFile(SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag'), '$(MAKE) micro_2s_objs SFX_FILESIZE=`$(STAT_SIZE) $(SAPI_MICRO_PATH)`') === 2) {
|
||||||
|
// bak first
|
||||||
|
copy(SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag', SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag.bak');
|
||||||
|
// replace Makefile.frag content
|
||||||
|
FileSystem::writeFile(SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag', FileSystem::readFile(ROOT_DIR . '/src/globals/extra/micro-triple-Makefile.frag'));
|
||||||
|
}
|
||||||
// with upx pack always need strip
|
// with upx pack always need strip
|
||||||
FileSystem::replaceFileRegex(
|
FileSystem::replaceFileRegex(
|
||||||
SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag',
|
SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag',
|
||||||
|
|||||||
@ -131,8 +131,8 @@ class BuildCliCommand extends BuildCommand
|
|||||||
if (!empty($not_included)) {
|
if (!empty($not_included)) {
|
||||||
$indent_texts['Extra Exts (' . count($not_included) . ')'] = implode(', ', $not_included);
|
$indent_texts['Extra Exts (' . count($not_included) . ')'] = implode(', ', $not_included);
|
||||||
}
|
}
|
||||||
$this->printFormatInfo($indent_texts);
|
|
||||||
$this->printFormatInfo($this->getDefinedEnvs(), true);
|
$this->printFormatInfo($this->getDefinedEnvs(), true);
|
||||||
|
$this->printFormatInfo($indent_texts);
|
||||||
logger()->notice('Build will start after 2s ...');
|
logger()->notice('Build will start after 2s ...');
|
||||||
sleep(2);
|
sleep(2);
|
||||||
|
|
||||||
|
|||||||
51
src/globals/extra/micro-triple-Makefile.frag
Normal file
51
src/globals/extra/micro-triple-Makefile.frag
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
|
||||||
|
micro: $(SAPI_MICRO_PATH)
|
||||||
|
|
||||||
|
micro_2s_objs:
|
||||||
|
rm $(MICRO_2STAGE_OBJS) || :
|
||||||
|
$(MAKE) $(MICRO_2STAGE_OBJS)
|
||||||
|
|
||||||
|
EXTRA_MICRO_BUILD_COMMANDS=
|
||||||
|
POST_MICRO_BUILD_COMMANDS=$(STRIP) $(MICRO_STRIP_FLAGS) $(SAPI_MICRO_PATH)
|
||||||
|
|
||||||
|
$(SAPI_MICRO_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_MICRO_OBJS)
|
||||||
|
$(MAKE) micro_2s_objs SFX_FILESIZE=0xcafebabe
|
||||||
|
$(BUILD_MICRO)
|
||||||
|
$(EXTRA_MICRO_BUILD_COMMANDS)
|
||||||
|
$(POST_MICRO_BUILD_COMMANDS)
|
||||||
|
$(MAKE) micro_2s_objs SFX_FILESIZE=`$(STAT_SIZE) $(SAPI_MICRO_PATH)`
|
||||||
|
$(BUILD_MICRO)
|
||||||
|
$(EXTRA_MICRO_BUILD_COMMANDS)
|
||||||
|
$(POST_MICRO_BUILD_COMMANDS)
|
||||||
|
$(MAKE) micro_2s_objs SFX_FILESIZE=`$(STAT_SIZE) $(SAPI_MICRO_PATH)`
|
||||||
|
$(BUILD_MICRO)
|
||||||
|
$(EXTRA_MICRO_BUILD_COMMANDS)
|
||||||
|
$(POST_MICRO_BUILD_COMMANDS)
|
||||||
|
$(MAKE) micro_2s_objs SFX_FILESIZE=`$(STAT_SIZE) $(SAPI_MICRO_PATH)`
|
||||||
|
$(BUILD_MICRO)
|
||||||
|
$(EXTRA_MICRO_BUILD_COMMANDS)
|
||||||
|
$(POST_MICRO_BUILD_COMMANDS)
|
||||||
|
|
||||||
|
MICRO_EXES = sapi/micro/tests/simpleecho.exe sapi/micro/tests/fakecmd.exe
|
||||||
|
|
||||||
|
$(MICRO_EXES): $(SAPI_MICRO_PATH)
|
||||||
|
@binname=$@;\
|
||||||
|
cat $(SAPI_MICRO_PATH) $${binname%.exe}.php > $@ || {\
|
||||||
|
rm $@; \
|
||||||
|
exit 1; \
|
||||||
|
}
|
||||||
|
@chmod 0755 $@
|
||||||
|
|
||||||
|
MICRO_FAKECMD=sapi/micro/tests/fakecmd.exe
|
||||||
|
|
||||||
|
micro_test: $(SAPI_MICRO_PATH) $(MICRO_EXES)
|
||||||
|
@[ x"hello world" = "x`sapi/micro/tests/simpleecho.exe nonce world`" ] || {\
|
||||||
|
echo sanity check for micro.sfx failed, the sfx generated may be corrupt. >&2 ;\
|
||||||
|
exit 1;\
|
||||||
|
}
|
||||||
|
@SKIP_IO_CAPTURE_TESTS=yes \
|
||||||
|
TEST_PHP_EXECUTABLE=$(MICRO_FAKECMD) \
|
||||||
|
TEST_PHP_SRCDIR=$(top_srcdir) \
|
||||||
|
CC="$(CC)" \
|
||||||
|
$(MICRO_FAKECMD) -n $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n $(TESTS); \
|
||||||
|
exit $$?;
|
||||||
Loading…
x
Reference in New Issue
Block a user