mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 04:44:53 +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
|
||||
// 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)) {
|
||||
// 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
|
||||
FileSystem::replaceFileRegex(
|
||||
SOURCE_PATH . '/php-src/sapi/micro/Makefile.frag',
|
||||
|
||||
@ -131,8 +131,8 @@ class BuildCliCommand extends BuildCommand
|
||||
if (!empty($not_included)) {
|
||||
$indent_texts['Extra Exts (' . count($not_included) . ')'] = implode(', ', $not_included);
|
||||
}
|
||||
$this->printFormatInfo($indent_texts);
|
||||
$this->printFormatInfo($this->getDefinedEnvs(), true);
|
||||
$this->printFormatInfo($indent_texts);
|
||||
logger()->notice('Build will start after 2s ...');
|
||||
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