parallel icon indicating copy to clipboard operation
parallel copied to clipboard

added automation of an single Windows build cli command to produce `.dll` and GHA for releases page

Open TheTechsTech opened this issue 1 year ago • 1 comments

Running: .\cmd\compile_x64.bat --php version --snap --shared --option enable_extras

Will download and compile, the PHP version stated, original pthreads4w dependency from source, with the help of dowloaded php-sdk where an symbolic directory junction link to repo directory to get everything to function without any more user interaction.

Defaults current 8.2.5 PHP version if --php omitted.

For a working demonstration only:

git clone https://github.com/TheTechsTech/parallel.git
cd parallel
.\cmd\compile_x64.bat --snap --shared 
dir php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Release_TS\*.zip

The Github Actions CI produces binary for Releases page not a artifact as in https://github.com/krakjoe/parallel/issues/271, the zip binary archives will be produced by creating/publishing a release tag on the page.

TheTechsTech avatar Apr 24 '23 01:04 TheTechsTech

Any update on this? I am migrating off php 7 and with my current workflow parallel is leveraged heavily.

ElCapitanSponge avatar Jun 05 '23 02:06 ElCapitanSponge

The assembly does not work, does not find the files pthreads4w, pthreads4w-code-v3.0.0.zip and php_iconv.lib

Type 'nmake' to build PHP

Microsoft Program Maintenance Utility (R), version 14.29.30154.0 (C) Microsoft Corporation. All rights reserved.

Recreating build dirs Recreating build dirs Recreating build dirs

Microsoft Program Maintenance Utility (R), version 14.29.30154.0 (C) Microsoft Corporation. All rights reserved.

Recreating build dirs Recreating build dirs Recreating build dirs LINK : fatal error LNK1181: Unable to open input file 'php_iconv.lib' NMAKE : fatal error U1077: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\link.exe" : return code "0x49d" Stop. NMAKE : fatal error U1077: "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\nmake.exe" : return code "0x2" Stop.

testAccountDeltas avatar Jul 05 '24 14:07 testAccountDeltas

Thanks for the edits.

The static is assembled successfully. But when starting it crashes. I'm building the debug version and testing it and I see this log

Starting program: c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php.exe 1.php [New Thread 18168.0x39bc] [New Thread 18168.0x4924] [New Thread 18168.0x4ab8] [New Thread 18168.0x1344]

Thread 1 received signal SIGSEGV, Segmentation fault. 0x00007ffdcf367cc1 in ucrtbased!strlen () from C:\Windows\SYSTEM32\ucrtbased.dll (gdb) backtrace #0 0x00007ffdcf367cc1 in ucrtbased!strlen () from C:\Windows\SYSTEM32\ucrtbased.dll #1 0x00007ffdc444e021 in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #2 0x00007ffdc444cd6a in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #3 0x00007ffdc408698a in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #4 0x00007ffdc4122c68 in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #5 0x00007ffdc4b733f4 in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #6 0x00007ffdc4b71766 in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #7 0x00007ffdc41468a3 in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #8 0x00007ffdc412cbfa in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #9 0x00007ffdc412cb5b in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #10 0x00007ffdc4089c7f in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #11 0x00007ffdc4424928 in php_load_extension() from c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll #12 0x00007ff7d2214569 in php_cli_get_shell_callbacks() #13 0x00007ff7d22159e6 in php_cli_get_shell_callbacks() #14 0x00007ff7d2229fd9 in php_cli_get_shell_callbacks() #15 0x00007ff7d2229e7e in php_cli_get_shell_callbacks() #16 0x00007ff7d2229d3e in php_cli_get_shell_callbacks() #17 0x00007ff7d222a06e in php_cli_get_shell_callbacks () --Type <RET> for more, q to quit, c to continue without paging--

Here is the assembly

Microsoft Windows [Version 10.0.19045.4291] (c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

git clone https://github.com/TheTechsTech/parallel.git

c:\php>cd parallel

c:\php\parallel>.\cmd\compile_x64.bat --php 8.2.5 --ts --option "--enable-debug"


** Visual Studio 2019 Developer Command Prompt v16.11.37 ** Copyright (c) 2021 Microsoft Corporation


[vcvarsall.bat] Environment initialized for: 'x64' соединение создано для php-sdk\phpdev\vs16\x64\pecl\parallel <<===>> . % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 17.4M 0 17.4M 0 0 1863k 0 --:--:-- 0:00:09 --:--:-- 2107k Скопировано файлов: 1. Could not determine 'vs16' directory

PHP SDK 2.2.0

OS architecture: 64-bit Build architecture: 64-bit Visual C++: 14.29.30154.0 PHP-SDK path: c:\php\parallel\php-sdk

Configuration: 8.2-vs16-x64-stable

No updates are available % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 162 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 355 100 355 0 0 201 0 0:00:01 0:00:01 --:--:-- 537 100 842k 100 842k 0 0 250k 0 0:00:03 0:00:03 --:--:-- 636k ........\cmd\deps_build\cmake\config_h_in.cmake ........\cmd\deps_build\cmake\get_version.cmake ........\cmd\deps_build\cmake\target_arch.cmake ........\cmd\deps_build\cmake\version.rc.in Скопировано файлов: 4. Скопировано файлов: 1. Скопировано файлов: 1. -- Selecting Windows SDK version 10.0.22621.0 to target Windows 10.0.19045. -- The C compiler identification is MSVC 19.29.30154.0 -- The CXX compiler identification is MSVC 19.29.30154.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done

-- -- Generator ......... Visual Studio 16 2019 -- Build Type ........ Generator-defined, one of Debug;Release;MinSizeRel;RelWithDebInfo -- Version ........... 3.0.0.0 -- Target ............ x86_64 -- MSVC Version ...... 1929 -- Installing to H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT

-- -- Looking for errno.h -- Looking for errno.h - found -- Looking for inttypes.h -- Looking for inttypes.h - found -- Looking for memory.h -- Looking for memory.h - found -- Looking for signal.h -- Looking for signal.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Looking for stdlib.h -- Looking for stdlib.h - found -- Looking for strings.h -- Looking for strings.h - not found -- Looking for string.h -- Looking for string.h - found -- Looking for sys/stat.h -- Looking for sys/stat.h - found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for time.h -- Looking for time.h - found -- Looking for unistd.h -- Looking for unistd.h - not found -- Looking for calloc -- Looking for calloc - found -- Looking for stddef.h -- Looking for stddef.h - found -- Check size of sigset_t -- Check size of sigset_t - failed -- Check size of struct timespec -- Check size of struct timespec - failed -- Looking for _beginthreadex -- Looking for _beginthreadex - found -- Looking for DuplicateHandle -- Looking for DuplicateHandle - found -- Shared library pthreadVCE3 -- Shared library pthreadVSE3 -- Shared library pthreadVC3 -- Static library libpthreadVCE3 -- Static library libpthreadVSE3 -- Static library libpthreadVC3 -- Configuring done -- Generating done -- Build files have been written to: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/build Microsoft (R) Build Engine версии 16.11.2+f32259642 для .NET Framework (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

Checking Build System Building Custom Rule H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/CMakeLists.txt pthread.c libpthreadVC3.vcxproj -> c:\php\parallel\php-sdk\phpdev\vs16\x64\pthreads4w\build\Release\libpthreadVC3.lib Building Custom Rule H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/CMakeLists.txt pthread.cxx libpthreadVCE3.vcxproj -> c:\php\parallel\php-sdk\phpdev\vs16\x64\pthreads4w\build\Release\libpthreadVCE3.lib Building Custom Rule H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/CMakeLists.txt pthread.c libpthreadVSE3.vcxproj -> c:\php\parallel\php-sdk\phpdev\vs16\x64\pthreads4w\build\Release\libpthreadVSE3.lib Building Custom Rule H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/CMakeLists.txt pthread.c Создается библиотека H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/build/Release/pthreadVC3.lib и объект H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/build/Release/pthreadVC3.exp pthreadVC3.vcxproj -> c:\php\parallel\php-sdk\phpdev\vs16\x64\pthreads4w\build\Release\pthreadVC3.dll Building Custom Rule H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/CMakeLists.txt pthread.cxx Создается библиотека H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/build/Release/pthreadVCE3.lib и объект H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/build/Release/pthreadVCE3.exp pthreadVCE3.vcxproj -> c:\php\parallel\php-sdk\phpdev\vs16\x64\pthreads4w\build\Release\pthreadVCE3.dll Building Custom Rule H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/CMakeLists.txt pthread.c Создается библиотека H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/build/Release/pthreadVSE3.lib и объект H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/build/Release/pthreadVSE3.exp pthreadVSE3.vcxproj -> c:\php\parallel\php-sdk\phpdev\vs16\x64\pthreads4w\build\Release\pthreadVSE3.dll Building Custom Rule H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/CMakeLists.txt -- Install configuration: "Release" -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/lib/pthreadVCE3.lib -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/bin/pthreadVCE3.dll -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/lib/pthreadVSE3.lib -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/bin/pthreadVSE3.dll -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/lib/pthreadVC3.lib -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/bin/pthreadVC3.dll -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/lib/libpthreadVCE3.lib -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/lib/libpthreadVSE3.lib -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/lib/libpthreadVC3.lib -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/include/_ptw32.h -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/include/pthread.h -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/include/sched.h -- Installing: H:/parserSite2/p/parallel/php-sdk/phpdev/vs16/x64/pthreads4w/PTHREADS-BUILT/include/semaphore.h ..\PTHREADS-BUILT\lib\libpthreadVC3.lib ..\PTHREADS-BUILT\lib\libpthreadVCE3.lib ..\PTHREADS-BUILT\lib\libpthreadVSE3.lib ..\PTHREADS-BUILT\lib\pthreadVC3.lib ..\PTHREADS-BUILT\lib\pthreadVCE3.lib ..\PTHREADS-BUILT\lib\pthreadVSE3.lib Скопировано файлов: 6. ..\PTHREADS-BUILT\include\pthread.h ..\PTHREADS-BUILT\include\sched.h ..\PTHREADS-BUILT\include\semaphore.h ..\PTHREADS-BUILT\include_ptw32.h Скопировано файлов: 4. ..\PTHREADS-BUILT\bin\pthreadVC3.dll ..\PTHREADS-BUILT\bin\pthreadVCE3.dll ..\PTHREADS-BUILT\bin\pthreadVSE3.dll Скопировано файлов: 3. ..\PTHREADS-BUILT\bin\pthreadVC3.dll Системе не удается найти указанный путь. Скопировано файлов: 0. Rebuilding configure.js Adding ..\pecl\ to the module search path Now run 'configure --help' PHP Version: 8.2.5

Saving configure options to config.nice.bat Checking for cl.exe ... Detected compiler Visual C++ 2019 Detected x64 compiler Checking for link.exe ... Checking for nmake.exe ... Checking for lib.exe ... Checking for bison.exe ... Detected bison version 3.3.2 Checking for sed.exe ... Checking for re2c.exe ... Detected re2c version 1.1.1 Checking for zip.exe ... Checking for lemon.exe ... Checking for 7za.exe ... Checking for mc.exe ... C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64 Checking for mt.exe ... C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64 WARNING: Debug builds cannot be built using multi processing

Build dir: c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS PHP Core: php8ts_debug.dll and php8ts_debug.lib Checking for ML64.exe ...

Checking for wspiapi.h ... Enabling IPv6 support Enabling SAPI sapi\cgi Enabling SAPI sapi\cli Checking for library edit_a.lib;edit.lib ... Enabling SAPI sapi\embed Enabling extension ext\bcmath Enabling extension ext\calendar Checking for library oleaut32.lib ... <in LIB path> OleAut32.Lib Enabling extension ext\com_dotnet Checking for mscoree.h ... Enabling extension ext\ctype Enabling extension ext\date Checking for ffi.h ... Checking for ffi.h ... WARNING: ffi not enabled, headers or libraries not found

Enabling extension ext\fileinfo [shared] Enabling extension ext\filter Checking for library libjpeg_a.lib;libjpeg.lib ... WARNING: gd not enabled; libraries and headers not found

Enabling extension ext\hash Checking for KeccakHash.h ... ext/hash/sha3/generic64lc Checking for PMurHash.h ... ext/hash/murmur Checking for xxhash.h ... ext/hash/xxhash Checking for library libiconv_a.lib ... Checking for library libiconv.lib ... Checking for library iconv_a.lib ... Checking for library iconv.lib ... WARNING: iconv support can't be enabled, libraries or headers are missing

Enabling extension ext\json Checking for mbstring.h ... Enabling extension ext\mbstring Using bundled libmbfl... Checking for library ws2_32.lib ... <in LIB path> WS2_32.Lib Enabling extension ext\mysqlnd Checking for zlib.h ... Checking for zlib.h ... Enabling extension ext\opcache [shared] Checking for dynasm/dasm_x86.h ... ext\opcache\jit Checking for library libcrypto.lib ... Checking for library ssleay32.lib ... Enabling extension ext\pcre Enabling extension ext\random Checking for library edit_a.lib;edit.lib ... WARNING: readline not enabled; libraries and headers not found

Enabling extension ext\reflection Enabling extension ext\session Checking for library ws2_32.lib ... <in LIB path> WS2_32.Lib Checking for library Iphlpapi.lib ... <in LIB path> iphlpapi.lib Checking for winsock.h ... Enabling extension ext\sockets Enabling extension ext\spl Checking for timelib_config.h ... ext/date/lib Enabling extension ext\standard Enabling extension ext\tokenizer Checking for zip.h ... Checking for zip.h ... WARNING: zip not enabled; libraries and headers not found

Checking for library zlib_a.lib;zlib.lib ... WARNING: zlib support can't be enabled, zlib is missing

Checking for pthread.h ... \include Checking for sched.h ... \include Checking for library libpthreadVC3.lib ... \lib\libpthreadVC3.lib Enabling extension ..\pecl\parallel Checking for library libxml2_a_dll.lib;libxml2_a.lib ... WARNING: libxml support can't be enabled, iconv or libxml are missing

WARNING: dom support can't be enabled, libxml is not enabled

Enabling extension ext\phar Native OpenSSL support in Phar disabled WARNING: simplexml not enabled; libraries and headers not found

WARNING: xml support can't be enabled, libraries or headers are missing

Creating build dirs... Generating files... Regenerating c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\tmp-php.ini ... Generating Makefile Generating main/internal_functions.c Generating main/config.w32.h Generating phpize Done.

Enabled extensions:

| Extension | Mode |

| bcmath | static | | calendar | static | | com_dotnet | static | | ctype | static | | date | static | | fileinfo | shared | | filter | static | | hash | static | | json | static | | mbstring | static | | mysqlnd | static | | parallel | static | | pcre | static | | phar | static | | random | static | | reflection | static | | session | static | | sockets | static | | spl | static | | standard | static | | tokenizer | static |

Enabled Zend extensions:

| Extension | Mode |

| opcache | shared |

Enabled SAPI:

| Sapi Name |

| cgi | | cli | | embed |


| | |

| Build type | Debug | | Thread Safety | Yes | | Compiler | Visual C++ 2019 | | Target Architecture | x64 | | Host Architecture | x64 | | Optimization | disabled | | Native intrinsics | SSE2 | | Static analyzer | disabled |

Type 'nmake' to build PHP

Служебная программа обслуживания программ Microsoft (R), версия 14.29.30154.0 (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

Recreating build dirs Recreating build dirs Recreating build dirs bison.exe --output=Zend/zend_ini_parser.c -v -d Zend/zend_ini_parser.y bison.exe --output=Zend/zend_language_parser.c -v -d Zend/zend_language_parser.y "re2c.exe" --no-generation-date --case-inverted -cbdFt Zend/zend_ini_scanner_defs.h -oZend/zend_ini_scanner.c Zend/zend_ini_scanner.l "re2c.exe" --no-generation-date --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/zend_language_scanner.l bison.exe --output=sapi/phpdbg/phpdbg_parser.c -v -d sapi/phpdbg/phpdbg_parser.y "re2c.exe" --no-generation-date -cbdFo sapi/phpdbg/phpdbg_lexer.c sapi/phpdbg/phpdbg_lexer.l type ext\pcre\php_pcre.def > c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll.def "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\mc.exe" -h win32\ -r c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ -x c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ win32\build\wsyslog.mc MC: Compiling win32\build\wsyslog.mc "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_FILEINFO /D FILEINFO_EXPORTS=1 /Iext\fileinfo/libmagic /Iext\fileinfo /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\ /c ext\fileinfo\fileinfo.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\fileinfo.obj fileinfo.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_FILEINFO /D FILEINFO_EXPORTS=1 /Iext\fileinfo/libmagic /Iext\fileinfo /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\ /c ext\fileinfo\libmagic\apprentice.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\apprentice.obj apprentice.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_FILEINFO /D FILEINFO_EXPORTS=1 /Iext\fileinfo/libmagic /Iext\fileinfo /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\ /c ext\fileinfo\libmagic\apptype.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\fileinfo\libmagic\apptype.obj apptype.c // ........... remove "cl.exe" /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x0601 /D COMPILE_DL_FILEINFO /D COMPILE_DL_OPCACHE /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /c ext\phar\phar_object.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\phar_object.obj phar_object.c "cl.exe" /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x0601 /D COMPILE_DL_FILEINFO /D COMPILE_DL_OPCACHE /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /c ext\phar\phar_path_check.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\phar_path_check.obj phar_path_check.c "cl.exe" /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x0601 /D COMPILE_DL_FILEINFO /D COMPILE_DL_OPCACHE /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /c ext\phar\stream.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\stream.obj stream.c "cl.exe" /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x0601 /D COMPILE_DL_FILEINFO /D COMPILE_DL_OPCACHE /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /c ext\phar\tar.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\tar.obj tar.c "cl.exe" /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x0601 /D COMPILE_DL_FILEINFO /D COMPILE_DL_OPCACHE /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /c ext\phar\util.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\util.obj util.c "cl.exe" /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x0601 /D COMPILE_DL_FILEINFO /D COMPILE_DL_OPCACHE /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\ /c ext\phar\zip.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\phar\zip.obj zip.c rc /nologo /fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.dll.res /d FILE_DESCRIPTION=""PHP Script Interpreter"" /d FILE_NAME=""php8ts_debug.dll"" /d PRODUCT_NAME=""PHP Script Interpreter"" /Ic:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS /d MC_INCLUDE=""c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\wsyslog.rc"" win32\build\template.rc ML64.exe /DBOOST_CONTEXT_EXPORT=EXPORT /nologo /c /Fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\Zend\jump_x86_64_ms_pe_masm.obj Zend\asm\jump_x86_64_ms_pe_masm.asm Assembling: Zend\asm\jump_x86_64_ms_pe_masm.asm ML64.exe /DBOOST_CONTEXT_EXPORT=EXPORT /nologo /c /Fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\Zend\make_x86_64_ms_pe_masm.obj Zend\asm\make_x86_64_ms_pe_masm.asm Assembling: Zend\asm\make_x86_64_ms_pe_masm.asm Создается библиотека c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.lib и объект c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.exp rc /nologo /I . /I main /I Zend /I TSRM /I ext /n /fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_fileinfo.dll.res /d _DEBUG /d FILE_DESCRIPTION=""fileinfo"" /d FILE_NAME=""php_fileinfo.dll"" /d URL=""https://www.php.net"" /d INTERNAL_NAME=""FILEINFO extension"" /d THANKS_GUYS=""Thanks to Ilia Alshanetsky, Pierre Alain Joye, Scott MacVicar, Derick Rethans, Anatol Belski"" win32\build\template.rc "link.exe" @"c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\resp\FILEINFO_GLOBAL_OBJS.txt" c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.lib kernel32.lib ole32.lib user32.lib advapi32.lib shell32.lib ws2_32.lib Dnsapi.lib psapi.lib bcrypt.lib libpthreadVC3.lib c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_fileinfo.dll.res /out:c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_fileinfo.dll /dll /nologo /GUARD:CF /d2:-AllowCompatibleILVersions /debug /libpath:"c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\lib" /NXCOMPAT /DYNAMICBASE /libpath:"..\deps\lib" Создается библиотека c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_fileinfo.lib и объект c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_fileinfo.exp EXT fileinfo build complete "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\ZendAccelerator.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ZendAccelerator.obj ZendAccelerator.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\shared_alloc_win32.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\shared_alloc_win32.obj shared_alloc_win32.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_accelerator_blacklist.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_accelerator_blacklist.obj zend_accelerator_blacklist.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_accelerator_debug.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_accelerator_debug.obj zend_accelerator_debug.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_accelerator_hash.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_accelerator_hash.obj zend_accelerator_hash.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_accelerator_module.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_accelerator_module.obj zend_accelerator_module.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_accelerator_util_funcs.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_accelerator_util_funcs.obj zend_accelerator_util_funcs.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_file_cache.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_file_cache.obj zend_file_cache.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_persist.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_persist.obj zend_persist.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_persist_calc.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_persist_calc.obj zend_persist_calc.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\ /c ext\opcache\zend_shared_alloc.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\zend_shared_alloc.obj zend_shared_alloc.c cl.exe /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS /Fec:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\minilua.exe ext\opcache\jit\dynasm\minilua.c Оптимизирующий компилятор Microsoft (R) C/C++ версии 19.29.30154 для x64 (C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

minilua.c Microsoft (R) Incremental Linker Version 14.29.30154.0 Copyright (C) Microsoft Corporation. All rights reserved.

/out:c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\minilua.exe c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\minilua.obj c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\minilua.exe ext/opcache/jit/dynasm/dynasm.lua -D X64=1 -D X64WIN=1 -D WIN=1 -D ZTS=1 -o ext\opcache\jit\zend_jit_x86.c ext/opcache/jit/zend_jit_x86.dasc "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\ /c ext\opcache\jit\zend_jit.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\zend_jit.obj zend_jit.c "cl.exe" /D ZEND_COMPILE_DL_EXT=1 /D COMPILE_DL_OPCACHE /D OPCACHE_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\opcache\jit" /DHAVE_DYNASM_DASM_X86_H=1 /I ext\opcache /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\ /c ext\opcache\jit\zend_jit_vm_helpers.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\ext\opcache\jit\zend_jit_vm_helpers.obj zend_jit_vm_helpers.c rc /nologo /I . /I main /I Zend /I TSRM /I ext /n /fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_opcache.dll.res /d _DEBUG /d FILE_DESCRIPTION=""Opcache"" /d FILE_NAME=""php_opcache.dll"" /d URL=""https://www.php.net"" /d INTERNAL_NAME=""OPCACHE extension"" /d THANKS_GUYS=""Thanks to Andi Gutmans, Zeev Suraski, Stanislav Malyshev, Dmitry Stogov, Xinchen Hui"" win32\build\template.rc "link.exe" @"c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\resp\OPCACHE_GLOBAL_OBJS.txt" c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.lib kernel32.lib ole32.lib user32.lib advapi32.lib shell32.lib ws2_32.lib Dnsapi.lib psapi.lib bcrypt.lib libpthreadVC3.lib c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_opcache.dll.res /out:c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_opcache.dll /dll /nologo /GUARD:CF /d2:-AllowCompatibleILVersions /debug /libpath:"c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\lib" /NXCOMPAT /DYNAMICBASE /libpath:"..\deps\lib" Создается библиотека c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_opcache.lib и объект c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php_opcache.exp EXT opcache build complete "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cgi\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cgi\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cgi\ /c sapi\cgi\cgi_main.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cgi\cgi_main.obj cgi_main.c "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\main\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\main\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\main\ /c main\fastcgi.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\main\fastcgi.obj fastcgi.c rc /nologo /I . /I main /I Zend /I TSRM /I ext /n /fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php-cgi.exe.res /d WANT_LOGO /d _DEBUG /d FILE_DESCRIPTION=""CGI / FastCGI"" /d FILE_NAME=""php-cgi.exe"" /d URL=""https://www.php.net"" /d INTERNAL_NAME=""CGI SAPI"" /d THANKS_GUYS=""Thanks to Rasmus Lerdorf, Stig Bakken, Shane Caraveo, Dmitry Stogov"" win32\build\template.rc "link.exe" /nologo @"c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\resp\CGI_GLOBAL_OBJS.txt" c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.lib ws2_32.lib kernel32.lib advapi32.lib c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php-cgi.exe.res /out:c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php-cgi.exe /nologo /GUARD:CF /d2:-AllowCompatibleILVersions /debug /libpath:"c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\lib" /NXCOMPAT /DYNAMICBASE /libpath:"..\deps\lib" /stack:67108864 SAPI sapi\cgi build complete "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /c sapi\cli\php_cli.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\php_cli.obj php_cli.c "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /c sapi\cli\php_cli_process_title.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\php_cli_process_title.obj php_cli_process_title.c "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /c sapi\cli\php_cli_server.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\php_cli_server.obj php_cli_server.c "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /c sapi\cli\php_http_parser.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\php_http_parser.obj php_http_parser.c "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ /c sapi\cli\ps_title.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\cli\ps_title.obj ps_title.c rc /nologo /I . /I main /I Zend /I TSRM /I ext /n /fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php.exe.res /d WANT_LOGO /d _DEBUG /d FILE_DESCRIPTION=""CLI"" /d FILE_NAME=""php.exe"" /d URL=""https://www.php.net"" /d INTERNAL_NAME=""CLI SAPI"" /d THANKS_GUYS=""Thanks to Edin Kadribasic, Marcus Boerger, Johannes Schlueter, Moriyoshi Koizumi, Xinchen Hui"" win32\build\template.rc "link.exe" /nologo @"c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\resp\CLI_GLOBAL_OBJS.txt" c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.lib ws2_32.lib shell32.lib c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php.exe.res /out:c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php.exe /nologo /GUARD:CF /d2:-AllowCompatibleILVersions /debug /libpath:"c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\lib" /NXCOMPAT /DYNAMICBASE /libpath:"..\deps\lib" /stack:67108864 Создается библиотека c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php.lib и объект c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php.exp SAPI sapi\cli build complete "cl.exe" /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /nologo /I . /I main /I Zend /I TSRM /I ext /D _WINDOWS /D WINDOWS=1 /D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS /D _USE_MATH_DEFINES /FD /wd4996 /RTC1 /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /LDd /MDd /Od /D _DEBUG /D ZEND_DEBUG=1 /Zi /D ZTS=1 /I "c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\include" /D FD_SETSIZE=256 /Fpc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\embed\ /FRc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\embed\ /Fdc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\embed\ /c sapi\embed\php_embed.c /Foc:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\sapi\embed\php_embed.obj php_embed.c rc /nologo /I . /I main /I Zend /I TSRM /I ext /n /fo c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8embed.lib.res /d _DEBUG /d FILE_DESCRIPTION=""Embed"" /d FILE_NAME=""php8embed.lib"" /d URL=""https://www.php.net"" /d INTERNAL_NAME=""EMBED SAPI"" /d THANKS_GUYS=""Thanks to Edin Kadribasic"" win32\build\template.rc lib.exe /nologo /out:c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8embed.lib /nologo /libpath:"c:\php\parallel\php-sdk\phpdev\vs16\x64\deps\lib" /libpath:"..\deps\lib" @"c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\resp\EMBED_GLOBAL_OBJS.txt" c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8ts_debug.lib c:\php\parallel\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Debug_TS\php8embed.lib.res SAPI sapi\embed build complete php-sdk\phpdev\vs16\x64\deps\bin\pthreadVC3.dll Системе не удается найти указанный путь. Скопировано файлов: 0.

c:\php\parallel>

testAccountDeltas avatar Jul 06 '24 00:07 testAccountDeltas

OK. I'll try to figure it out myself. Apparently the problem is that you are preparing the version for assembly incorrectly

testAccountDeltas avatar Jul 06 '24 00:07 testAccountDeltas

I did what I could at the moment, but to no avail.

https://github.com/testAccountDeltas/parallel-windows-cmd/tree/main/cmd

compile_x64.bat

@echo off
setlocal
cd /d "%~dp0.."
set "VSWHERE_PATH="
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
    set "VSWHERE_PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
    set "VSWHERE_PATH=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"
) else (
    echo vswhere.exe not found. Please install Visual Studio or download vswhere from https://github.com/microsoft/vswhere/releases
    exit /b 1
)
for /f "tokens=*" %%i in ('"%VSWHERE_PATH%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath') do (
    set "VS_INSTALL_PATH=%%i"
)
set "VCVARS_PATH=\VC\Auxiliary\Build\vcvars64.bat"
if defined VS_INSTALL_PATH (
    if exist "%VS_INSTALL_PATH%%VCVARS_PATH%" (
        call "%VS_INSTALL_PATH%%VCVARS_PATH%"
        if not errorlevel 0 (
            echo Failed to call vcvars64.bat
            exit /b 1
        )
        set ARCH=x64
        call .\cmd\getopt.bat %*
    ) else (
        echo "vcvars64.bat not found in %VS_INSTALL_PATH%%VCVARS_PATH%."
        exit /b 1
    )
) else (
    echo Visual Studio not found.
    exit /b 1
)

endlocal
compile_x86.bat

@echo off
setlocal
cd /d "%~dp0.."
set "VSWHERE_PATH="
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
    set "VSWHERE_PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
    set "VSWHERE_PATH=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"
) else (
    echo vswhere.exe not found. Please install Visual Studio or download vswhere from https://github.com/microsoft/vswhere/releases
    exit /b 1
)
for /f "tokens=*" %%i in ('"%VSWHERE_PATH%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath') do (
    set "VS_INSTALL_PATH=%%i"
)
set "VCVARS_PATH=\VC\Auxiliary\Build\vcvars32.bat"
if defined VS_INSTALL_PATH (
    if exist "%VS_INSTALL_PATH%%VCVARS_PATH%" (
        call "%VS_INSTALL_PATH%%VCVARS_PATH%"
        if not errorlevel 0 (
            echo Failed to call vcvars32.bat
            exit /b 1
        )
        set ARCH=x86
        call .\cmd\getopt.bat %*
    ) else (
        echo "vcvars32.bat not found in %VS_INSTALL_PATH%%VCVARS_PATH%."
        exit /b 1
    )
) else (
    echo Visual Studio not found.
    exit /b 1
)

endlocal

getopt.bat

@echo off
set SNAP=
set OPTIONS=
set EXT=--with-parallel=shared
set PHP_TS=_TS
set DEPS=pthread
set EXTNAME=parallel

echo Collect extensions as SHARE? (Y/N)
set /p ANSWER=

if "%ANSWER%" == "Y" (
    set SHARE==shared
) else (
    set SHARE=
)

if NOT EXIST php-sdk (
  curl -L https://codeload.github.com/php/php-sdk-binary-tools/tar.gz/refs/heads/master | tar xzf - && ren php-sdk-binary-tools-master php-sdk
)

setlocal enabledelayedexpansion

echo Select PHP version or enter manually:
set i=1
for %%v in (8.0.30 8.1.28 8.2.5 8.2.20 8.3.8) do (
    echo !i!. %%v
    set "version[!i!]=%%v"
    set /a i+=1
)
echo !i!. Enter manually

set /p choice=Enter the version number (1-!i!) or the version itself:

if %choice% geq 1 if %choice% leq !i! (
    if %choice%==!i! (
        set /p PHP_VER=Enter PHP version:
    ) else (
        set PHP_VER=!version[%choice%]!
    )
) else (
    set PHP_VER=%choice%
)

echo You have selected the PHP version: %PHP_VER%
if not defined PHP_VER (
    echo Error: PHP version not set.
    exit /b 1
)
for /f "tokens=1-2 delims=." %%a in ("%PHP_VER%") do (
    set PHP_MAJOR=%%a
    set PHP_MINOR=%%b
)
if %PHP_MAJOR%==7 (
    if %PHP_MINOR% lss 2 (
        set CRT=vs14
    ) else if %PHP_MINOR%==2 (
        set CRT=vs15
    ) else (
        set CRT=vs15
    )
) else if %PHP_MAJOR%==8 (
    if %PHP_MINOR% lss 1 (
        set CRT=vs16
    ) else if %PHP_MINOR%==1 (
        set CRT=vs16
    ) else if %PHP_MINOR%==2 (
        set CRT=vs16
    ) else if %PHP_MINOR% geq 3 (
        set CRT=vs17
    )
) else (
    echo Unknown PHP version: %PHP_VER%
    exit /b 1
)

set "titleSetBuild=Selected version php %PHP_VER% (%ARCH%, %CRT%)"
echo %titleSetBuild%
title %titleSetBuild%

set "PHP_SDK_RUN_FROM_ROOT=%~dp0..\php-sdk"
for %%i in (%PHP_SDK_RUN_FROM_ROOT%) do set PHP_SDK_RUN_FROM_ROOT=%%~fi
set "PHP_phpdev=%PHP_SDK_RUN_FROM_ROOT%\phpdev"
set "pathPHP=%PHP_phpdev%\%CRT%\%ARCH%"

if NOT EXIST "%pathPHP%" ( mkdir "%pathPHP%" )
if NOT EXIST "%pathPHP%\pecl" ( mkdir "%pathPHP%\pecl" )
if NOT EXIST "%pathPHP%\pecl\%EXTNAME%" ( mklink /j "%pathPHP%\pecl\%EXTNAME%" . )

set "downloadDir=%pathPHP%\php-%PHP_VER%"
if NOT EXIST "%downloadDir%" (
    mkdir "%downloadDir%"
    curl -L https://github.com/php/php-src/archive/refs/tags/php-%PHP_VER%.tar.gz -o "%downloadDir%\php-%PHP_VER%.tar.gz"
    tar xzf "%downloadDir%\php-%PHP_VER%.tar.gz" -C "%downloadDir%" --strip-components 1
	del "%downloadDir%\php-%PHP_VER%.tar.gz"
)


cd %PHP_SDK_RUN_FROM_ROOT%


call bin\phpsdk_setshell.bat %CRT% %ARCH%
call bin\phpsdk_setvars.bat
call bin\phpsdk_dumpenv.bat
call bin\phpsdk_buildtree.bat phpdev

cd php-%PHP_VER%

call ..\..\..\..\bin\phpsdk_deps -u --no-backup

if EXIST config.nice.bat (
    call config.nice.bat
    nmake %SNAP%
    cd ..\..\..\..\..
) else (
    if NOT EXIST "..\deps\include\%DEPS%.h" (
		cd ..
		call ..\..\..\..\cmd\%DEPS%_build.bat
		cd php-%PHP_VER%
	)

    REM Конфигурируем и собираем PHP
    call buildconf --force --add-modules-dir=..\pecl\
    call configure --enable-cli --with-ffi%SHARE% --with-iconv%SHARE% --enable-phar%SHARE% --enable-filter%SHARE% --with-openssl%SHARE% --enable-sockets%SHARE% --enable-mbstring%SHARE% --with-libxml%SHARE% --enable-fileinfo%SHARE% --enable-xmlwriter%SHARE% --enable-tokenizer%SHARE% --enable-embed %EXT% --enable-zts %OPTIONS%
    nmake %SNAP%
	
    cd ..\..\..\..\..
)

if EXIST %downloadDir%\%ARCH%\Release%PHP_TS% (
	copy /Y %pathPHP%\deps\bin\%DEPS%*.dll %downloadDir%\%ARCH%\Release%PHP_TS%
)
if EXIST %downloadDir%\%ARCH%\Debug%PHP_TS% (
	copy /Y %pathPHP%\deps\bin\%DEPS%*.dll %downloadDir%\%ARCH%\Debug%PHP_TS%
)

:end
echo Assembly is complete.

Now it doesn't matter where the launch comes from, there is visual studio auto detection on any disk. Libraries are guaranteed to be copied. There is a choice of PHP version

The assembly is assembled as shared, finally. But the extension does not work... Apparently there is a bug in the extension for Windows

testAccountDeltas avatar Jul 06 '24 05:07 testAccountDeltas

Hmm, not sure, but couldn't https://github.com/php/setup-php-sdk be used instead of an own build routine?

cmb69 avatar Jul 06 '24 09:07 cmb69

The Github Actions CI produces binary for Releases page not a artifact as in #271, the zip binary archives will be produced by creating/publishing a release tag on the page.

Okay, now I see what this is about. :) However, I don't think that makes a lot of sense, since DLLs of PECL extensions are usually downloadable from pecl.php.net (and hosted on windows.php.net). IIRC, the sole exception is the parallel extension, because there is a policy that all extensions should be supported by NTS and TS builds. I changed that quite a while ago, but was told to revert it. Maybe that patch should be applied again, so you could download the DLLs from the PECL site (although I'm not sure about the current build status).

Anyhow, building parallel (or other PECL extensions on Windows) shouldn't be that hard, let alone require to adapt the build scripts. See https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2#building_pecl_extensions_with_phpize for general instructions; in addition to the general PHP dependencies (search for phpsdk_deps on that page), ext/parallel needs the pthreads library, which you can download from https://windows.php.net/downloads/pecl/deps/.

cmb69 avatar Jul 06 '24 18:07 cmb69

The Github Actions CI produces binary for Releases page not a artifact as in #271, the zip binary archives will be produced by creating/publishing a release tag on the page.

Okay, now I see what this is about. :) However, I don't think that makes a lot of sense, since DLLs of PECL extensions are usually downloadable from pecl.php.net (and hosted on windows.php.net). IIRC, the sole exception is the parallel extension, because there is a policy that all extensions should be supported by NTS and TS builds. I changed that quite a while ago, but was told to revert it. Maybe that patch should be applied again, so you could download the DLLs from the PECL site (although I'm not sure about the current build status).

Anyhow, building parallel (or other PECL extensions on Windows) shouldn't be that hard, let alone require to adapt the build scripts. See https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2#building_pecl_extensions_with_phpize for general instructions; in addition to the general PHP dependencies (search for phpsdk_deps on that page), ext/parallel needs the pthreads library, which you can download from https://windows.php.net/downloads/pecl/deps/.

Thank you, you helped me understand what the mistake was!!! It worked!!! I downloaded the 64-bit libraries, put them in the folder H:...\php-sdk\phpdev\vs16\x64\deps\lib, assembled PHP and everything started!!! So the jamb was in the assembly from source codes

Finally, I got what I wanted. I received a working build for windows 10 and PHP8+

The assembly now takes place in one file, there is no need to download anything. This bat will download everything itself, including parallel

https://github.com/testAccountDeltas/build-PHP8-parallel

build-PHP8-parallel.bat --arch x64 --php 8.3.8 --debug 0 --shared 1 --force 0
build-PHP8-parallel.bat --arch x86 --php 8.2.5 --debug 1 --shared 1 --force 1
build-PHP8-parallel.bat
@echo off

title build php

set DEPS=
set SNAP=
set OPTIONS=
set PHP_VER=
set PHP_DEBUG_SET=
set PHP_SHARE_SET=
set PHP_ARCH_SET=
set PHP_FORCE_SET=

:parse
if "%~1" == "" goto endparse
if "%~1" == "--php" set PHP_VER=%2
if "%~1" == "--debug" set PHP_DEBUG_SET=%2
if "%~1" == "--option" set OPTIONS=%2 %OPTIONS%
if "%~1" == "--snap" set SNAP=snap
if "%~1" == "--shared" set PHP_SHARE_SET=%2
if "%~1" == "--arch" set PHP_ARCH_SET=%2
if "%~1" == "--force" set PHP_FORCE_SET=%2

shift
goto parse
:endparse

setlocal enabledelayedexpansion

if not "%PHP_VER%"=="" (
	goto :phpCheck
)
echo Select PHP version or enter manually:
set i=1
for %%v in (8.0.30 8.1.28 8.2.5 8.2.20 8.3.8) do (
	echo !i!. %%v
	set "version[!i!]=%%v"
	set /a i+=1
)
echo !i!. Enter your option

set /p "getPHPVersion=Enter the version number (1-!i!) or the version itself:"

if "%getPHPVersion%"=="" (
	echo Unknown PHP version
	goto :end
)

if %getPHPVersion% geq 1 if %getPHPVersion% leq !i! (
	for /L %%j in (1,1,%i%) do (
		if !getPHPVersion! == %%j (
			set "PHP_VER=!version[%%j]!"
		)
	)
)

if not defined PHP_VER (
	set "PHP_VER=%getPHPVersion%"
)

:phpCheck
for /f "tokens=1-2 delims=." %%a in ("%PHP_VER%") do (
    set PHP_MAJOR=%%a
    set PHP_MINOR=%%b
)
if %PHP_MAJOR%==7 (
    if %PHP_MINOR% lss 2 (
        set CRT=vs14
    ) else if %PHP_MINOR%==2 (
        set CRT=vs15
    ) else (
        set CRT=vs15
    )
) else if %PHP_MAJOR%==8 (
    if %PHP_MINOR% lss 1 (
        set CRT=vs16
    ) else if %PHP_MINOR%==1 (
        set CRT=vs16
    ) else if %PHP_MINOR%==2 (
        set CRT=vs16
    ) else if %PHP_MINOR% geq 3 (
        set CRT=vs17
    )
) else (
    echo Unknown PHP version: %PHP_VER%
    goto :end
)

REM ARCH SET INFO
if /I "%PHP_ARCH_SET%"=="x86" (
	set "ARCH=x86"
	set "vcvars=vcvars32.bat"
	goto :goARCH
) else if /I "%PHP_ARCH_SET%"=="x64" (
	set "ARCH=x64"
	set "vcvars=vcvars64.bat"
	goto :goARCH
)
echo "BUILD PHP x86 assembly? (Y/N)"
set /p is32Bit=

if /I "%is32Bit%"=="Y" (
	set "ARCH=x86"
	set "vcvars=vcvars32.bat"
) else (
	set "ARCH=x64"
	set "vcvars=vcvars64.bat"
)
:goARCH
REM END ARCH SET INFO

REM DEBUG SET INFO
if "%PHP_DEBUG_SET%"=="0" (
	set isDebugInfo=Release
	goto :goIsDebugInfo
) else if "%PHP_DEBUG_SET%"=="1" (
	set isDebugInfo=Debug
	set OPTIONS=%OPTIONS% --enable-debug
	goto :goIsDebugInfo
)

set isDebugInfo=Release
echo "Build a debug version?? (Y/N)"
set /p ANSWER=
if /I "%ANSWER%"=="Y" (
	set OPTIONS=%OPTIONS% --enable-debug
	set isDebugInfo=Debug
)
:goIsDebugInfo
REM END DEBUG SET INFO

REM SHARE SET INFO
if "%PHP_SHARE_SET%"=="0" (
	set isSharedInfo=no-shared
	set SHARE=
	goto :goShared
) else if "%PHP_SHARE_SET%"=="1" (
	set SHARE==shared
	set isSharedInfo=Shared
	goto :goShared
)
set isSharedInfo=no-shared
set SHARE=
echo "Collect extensions as SHARE? (Y/N)"
set /p ANSWER=
if /I "%ANSWER%"=="Y" (
	set SHARE==shared
	set isSharedInfo=Shared
)
:goShared
REM END SHARE SET INFO

set "titleSetBuild=Selected version php %PHP_VER% (%ARCH%, %CRT%, %isDebugInfo%, %isSharedInfo%)"
echo %titleSetBuild%
title %titleSetBuild%



set "VSWHERE_PATH="
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (
    set "VSWHERE_PATH=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (
    set "VSWHERE_PATH=%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"
) else (
    echo vswhere.exe not found. Please install Visual Studio or download vswhere from https://github.com/microsoft/vswhere/releases
    goto :end
)
for /f "tokens=*" %%i in ('"%VSWHERE_PATH%" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath') do (
    set "VS_INSTALL_PATH=%%i"
)

set "VCVARS_PATH=\VC\Auxiliary\Build\%vcvars%"
if defined VS_INSTALL_PATH (
    if exist "%VS_INSTALL_PATH%%VCVARS_PATH%" (
        call "%VS_INSTALL_PATH%%VCVARS_PATH%"
        if not errorlevel 0 (
            echo Failed to call %vcvars%
            goto :end
        )
        GOTO StartBuild
    ) else (
        echo "%vcvars% not found in %VS_INSTALL_PATH%%VCVARS_PATH%."
        goto :end
    )
) else (
    echo Visual Studio not found.
    goto :end
)

:StartBuild

if NOT EXIST php-sdk (
  curl -L https://codeload.github.com/php/php-sdk-binary-tools/tar.gz/refs/heads/master | tar xzf - && ren php-sdk-binary-tools-master php-sdk
)
if NOT EXIST parallel (
  curl -L https://codeload.github.com/krakjoe/parallel/tar.gz/refs/heads/develop | tar xzf - && ren parallel-develop parallel
)
set "parallelPath=%~dp0\parallel"
set "PHP_SDK_RUN_FROM_ROOT=%~dp0\php-sdk"
for %%i in (%PHP_SDK_RUN_FROM_ROOT%) do set PHP_SDK_RUN_FROM_ROOT=%%~fi
set "PHP_phpdev=%PHP_SDK_RUN_FROM_ROOT%\phpdev"
set "pathPHP=%PHP_phpdev%\%CRT%\%ARCH%"

if NOT EXIST "%pathPHP%" ( mkdir "%pathPHP%" )
if NOT EXIST "%pathPHP%\pecl" ( mkdir "%pathPHP%\pecl" )
if NOT EXIST "%pathPHP%\pecl\parallel" ( mklink /j "%pathPHP%\pecl\parallel" "%parallelPath%" )

set "downloadDir=%pathPHP%\php-%PHP_VER%"
if NOT EXIST "%downloadDir%" ( mkdir "%downloadDir%" )

set "phpArhive=%downloadDir%\php-%PHP_VER%.tar.gz"
if not exist "%phpArhive%" (
  curl -L https://github.com/php/php-src/archive/refs/tags/php-%PHP_VER%.tar.gz -o "%phpArhive%"
)
if NOT EXIST "%downloadDir%\buildconf.bat" ( tar xzf "%phpArhive%" -C "%downloadDir%" --strip-components 1 )

cd %PHP_SDK_RUN_FROM_ROOT%

call bin\phpsdk_setshell.bat %CRT% %ARCH%
call bin\phpsdk_setvars.bat
call bin\phpsdk_dumpenv.bat
call bin\phpsdk_buildtree.bat phpdev

cd php-%PHP_VER%

call ..\..\..\..\bin\phpsdk_deps -u --no-backup

set "zipFile=%pathPHP%\pthreads%ARCH%.zip"
if NOT EXIST "%pathPHP%\deps\bin\pthreadVC3.dll" (
	if NOT EXIST "%zipFile%" (
		curl -L https://windows.php.net/downloads/pecl/deps/pthreads-3.0.0-vs16-%ARCH%.zip -o "%zipFile%"
	)
	powershell -command "try { Add-Type -AssemblyName System.IO.Compression.FileSystem; [System.IO.Compression.ZipFile]::ExtractToDirectory('%zipFile%', '%pathPHP%\deps') } catch { }" >nul 2>&1
)

set buildNew=1
if "%PHP_FORCE_SET%"=="0" (
	set buildNew=0
	call config.nice.bat
	nmake %SNAP%
	cd ..\..\..\..\..
	goto :goFORCE
) else if "%PHP_FORCE_SET%"=="1" (
	goto :goFORCE
)

if EXIST config.nice.bat (
	echo "Do you want to build force??? (Y/N)"
	set /p Isforce=
	if /I "%Isforce%"=="N" (
		set buildNew=0
		call config.nice.bat
		nmake %SNAP%
		cd ..\..\..\..\..
	)
)
:goFORCE

if %buildNew%==1 (
	call buildconf --force --add-modules-dir=..\pecl\ 
    call configure --enable-zts --enable-cli --with-curl%SHARE% --with-ffi%SHARE% --with-iconv --enable-phar%SHARE% --enable-filter%SHARE% --with-openssl%SHARE% --enable-sockets%SHARE% --enable-mbstring%SHARE% --with-libxml%SHARE% --enable-fileinfo%SHARE% --enable-xmlwriter%SHARE% --enable-tokenizer%SHARE% --enable-embed --with-parallel%SHARE% %OPTIONS%
    nmake %SNAP%
	
    cd ..\..\..\..\..
)


set dirPathExe=%downloadDir%\%ARCH%\%isDebugInfo%_TS
if EXIST "%dirPathExe%\tmp-php.ini" (
	ren "%dirPathExe%\tmp-php.ini" php.ini
)

set dirPathExe=%downloadDir%\%ARCH%\%isDebugInfo%_TS
if EXIST %dirPathExe% (
	copy /Y %pathPHP%\deps\bin\%DEPS%*.dll %dirPathExe%

	(
		echo @echo off
		echo cd %dirPathExe%
		echo IF EXIST php.exe ^(
		echo    php -m
		echo    php -v
		echo    php %downloadDir%\run-tests.php --offline --show-diff --set-timeout 240 "%parallelPath%\tests"
		echo    pause
		echo ^)
	) > windows_run_test_%PHP_VER%_%isDebugInfo%.bat
)

echo Assembly is complete.
:end
pause

By the way, after assembly it automatically creates a file for running tests "windows_run_test.bat"

result build-PHP8-parallel.bat

[PHP Modules]
bcmath
calendar
com_dotnet
Core
ctype
date
dom
FFI
filter
hash
iconv
json
libxml
mbstring
mysqlnd
parallel
pcre
Phar
random
readline
Reflection
session
SimpleXML
sockets
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

PHP 8.2.5 (cli) (built: Jul  7 2024 08:02:34) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies

=====================================================================
PHP         : H:\test\cmd\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Release_TS\php.exe
PHP_SAPI    : cli
PHP_VERSION : 8.2.5
ZEND_VERSION: 4.2.5
PHP_OS      : WINNT - Windows NT DESKTOP-9A6Q3FN 10.0 build 19045 (Windows 10) AMD64
INI actual  : H:\test\cmd\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Release_TS
More .INIs  :
---------------------------------------------------------------------
PHP         : H:\test\cmd\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Release_TS\php-cgi.exe
PHP_SAPI    : cgi-fcgi
PHP_VERSION : 8.2.5
ZEND_VERSION: 4.2.5
PHP_OS      : WINNT - Windows NT DESKTOP-9A6Q3FN 10.0 build 19045 (Windows 10) AMD64
INI actual  : H:\test\cmd\php-sdk\phpdev\vs16\x64\php-8.2.5
More .INIs  :
---------------------------------------------------------------------
CWD         : H:\test\cmd\php-sdk\phpdev\vs16\x64\php-8.2.5\x64\Release_TS
Extra dirs  :
VALGRIND    : Not used
=====================================================================
Running selected tests.
PASS Check basic parallel operation [H:\test\cmd\parallel\tests\base\001.phpt]
PASS Check parallel global scope [H:\test\cmd\parallel\tests\base\002.phpt]
PASS Check parallel return values [H:\test\cmd\parallel\tests\base\003.phpt]
PASS Check parallel closed [H:\test\cmd\parallel\tests\base\004.phpt]
PASS Check parallel ini [H:\test\cmd\parallel\tests\base\005.phpt]
PASS ZEND_DECLARE_CLASS [H:\test\cmd\parallel\tests\base\008.phpt]
PASS ZEND_DECLARE_ANON_CLASS [H:\test\cmd\parallel\tests\base\009.phpt]
PASS ZEND_DECLARE_INHERITED_CLASS [H:\test\cmd\parallel\tests\base\010.phpt]
PASS ZEND_BIND_STATIC (OK) [H:\test\cmd\parallel\tests\base\011.phpt]
PASS ZEND_BIND_STATIC (FAIL) [H:\test\cmd\parallel\tests\base\012.phpt]
PASS ZEND_DECLARE_LAMBDA_FUNCTION [H:\test\cmd\parallel\tests\base\013.phpt]
PASS ZEND_DECLARE_FUNCTION [H:\test\cmd\parallel\tests\base\014.phpt]
PASS ZEND_YIELD [H:\test\cmd\parallel\tests\base\015.phpt]
PASS ZEND_YIELD_FROM [H:\test\cmd\parallel\tests\base\016.phpt]
PASS Copy arguments (OK) [H:\test\cmd\parallel\tests\base\017.phpt]
PASS Copy arginfo (FAIL) [H:\test\cmd\parallel\tests\base\018.phpt]
PASS Copy argv (FAIL) [H:\test\cmd\parallel\tests\base\019.phpt]
PASS Copy arginfo (OK) [H:\test\cmd\parallel\tests\base\020.phpt]
PASS Copy try [H:\test\cmd\parallel\tests\base\021.phpt]
PASS return destroyed [H:\test\cmd\parallel\tests\base\022.phpt]
PASS bailed [H:\test\cmd\parallel\tests\base\023.phpt]
PASS parallel can create parallel [H:\test\cmd\parallel\tests\base\024.phpt]
PASS parallel may return arrays [H:\test\cmd\parallel\tests\base\025.phpt]
PASS parallel may accept arrays [H:\test\cmd\parallel\tests\base\026.phpt]
PASS Future may not be constructed [H:\test\cmd\parallel\tests\base\027.phpt]
PASS parallel bootstrap [H:\test\cmd\parallel\tests\base\028.phpt]
PASS parallel bootstrap fail [H:\test\cmd\parallel\tests\base\029.phpt]
PASS parallel future exception [H:\test\cmd\parallel\tests\base\030.phpt]
PASS parallel future saved [H:\test\cmd\parallel\tests\base\031.phpt]
PASS parallel future saved null [H:\test\cmd\parallel\tests\base\032.phpt]
PASS parallel bootstrap exception [H:\test\cmd\parallel\tests\base\033.phpt]
PASS parallel bootstrap compile error [H:\test\cmd\parallel\tests\base\034.phpt]
PASS parallel killed [H:\test\cmd\parallel\tests\base\035.phpt]
PASS parallel return values [H:\test\cmd\parallel\tests\base\036.phpt]
PASS parallel Future exception with trace [H:\test\cmd\parallel\tests\base\037.phpt]
PASS parallel Future value refcounted unfetched [H:\test\cmd\parallel\tests\base\038.phpt]
PASS parallel Future done [H:\test\cmd\parallel\tests\base\039.phpt]
SKIP parallel streams [H:\test\cmd\parallel\tests\base\041.phpt] reason: non windows test
SKIP parallel auto globals [H:\test\cmd\parallel\tests\base\042.phpt] reason: non windows test
PASS parallel Closure::fromCallable internal [H:\test\cmd\parallel\tests\base\043.phpt]
PASS parallel copy persistent repeat [H:\test\cmd\parallel\tests\base\044.phpt]
WARN parallel cancellation (not running) [H:\test\cmd\parallel\tests\base\045.phpt]  (warn: XLEAK section but test passes)
WARN parallel cancellation (running) [H:\test\cmd\parallel\tests\base\046.phpt]  (warn: XLEAK section but test passes)
PASS parallel cancellation (ready) [H:\test\cmd\parallel\tests\base\047.phpt]
WARN parallel cancellation (already cancelled) [H:\test\cmd\parallel\tests\base\048.phpt]  (warn: XLEAK section but test passes)
WARN parallel cancellation (runtime killed) [H:\test\cmd\parallel\tests\base\049.phpt]  (warn: XLEAK section but test passes)
WARN parallel cancellation (value on cancelled) [H:\test\cmd\parallel\tests\base\050.phpt]  (warn: XLEAK section but test passes)
PASS parallel l2 cache copies [H:\test\cmd\parallel\tests\base\051.phpt]
PASS parallel check arginfo cached [H:\test\cmd\parallel\tests\base\052.phpt]
PASS parallel check scope changed in task [H:\test\cmd\parallel\tests\base\053.phpt]
PASS parallel check cache hit literal string [H:\test\cmd\parallel\tests\base\054.phpt]
PASS parallel task check cached, Future used second time [H:\test\cmd\parallel\tests\base\055.phpt]
PASS parallel object check finds illegal property in table [H:\test\cmd\parallel\tests\base\056.phpt]
PASS parallel object check finds illegal property inline [H:\test\cmd\parallel\tests\base\057.phpt]
PASS parallel object check finds non-existent class [H:\test\cmd\parallel\tests\base\058.phpt]
PASS parallel class check cached [H:\test\cmd\parallel\tests\base\059.phpt]
PASS parallel class check invalid member [H:\test\cmd\parallel\tests\base\060.phpt]
PASS parallel runtime copy [H:\test\cmd\parallel\tests\base\061.phpt]
PASS parallel immutable class load [H:\test\cmd\parallel\tests\base\062.phpt]
PASS parallel cache unset flags on literals [H:\test\cmd\parallel\tests\base\063.phpt]
PASS parallel check type list simple [H:\test\cmd\parallel\tests\base\064.phpt]
PASS parallel check type list missing definition [H:\test\cmd\parallel\tests\base\065.phpt]
PASS parallel check type list property [H:\test\cmd\parallel\tests\base\066.phpt]
PASS parallel check type list property not found [H:\test\cmd\parallel\tests\base\067.phpt]
WARN parallel recursion in arrays [H:\test\cmd\parallel\tests\base\068.phpt]  (warn: XFAIL section but test passes)
WARN parallel recursion in objects [H:\test\cmd\parallel\tests\base\069.phpt]  (warn: XFAIL section but test passes)
PASS Check basic channel operation (argument) [H:\test\cmd\parallel\tests\channel\001.phpt]
PASS Check make/open/cast [H:\test\cmd\parallel\tests\channel\002.phpt]
PASS Check channel operation (unbuffered) [H:\test\cmd\parallel\tests\channel\003.phpt]
PASS Check channel operation (buffered) [H:\test\cmd\parallel\tests\channel\004.phpt]
PASS Check basic channel operation duplicate name [H:\test\cmd\parallel\tests\channel\005.phpt]
PASS Check basic channel operation non-existent name [H:\test\cmd\parallel\tests\channel\006.phpt]
PASS Check channel operation send on closed [H:\test\cmd\parallel\tests\channel\007.phpt]
PASS Check channel operation recv on closed [H:\test\cmd\parallel\tests\channel\008.phpt]
PASS Check channel operation close on closed [H:\test\cmd\parallel\tests\channel\009.phpt]
PASS Check channel make arguments [H:\test\cmd\parallel\tests\channel\010.phpt]
PASS Check channel send arguments [H:\test\cmd\parallel\tests\channel\011.phpt]
PASS Check Channel comparison [H:\test\cmd\parallel\tests\channel\014.phpt]
PASS Check Channel debug [H:\test\cmd\parallel\tests\channel\015.phpt]
PASS Check Channel share [H:\test\cmd\parallel\tests\channel\016.phpt]
PASS Check Channel closures inside arrays [H:\test\cmd\parallel\tests\channel\017.phpt]
PASS Check Channel closures inside object properties [H:\test\cmd\parallel\tests\channel\018.phpt]
PASS Check Channel closures inside object properties (declared) [H:\test\cmd\parallel\tests\channel\019.phpt]
PASS Check buffered Channel drains [H:\test\cmd\parallel\tests\channel\020.phpt]
PASS Check anonymous Channel [H:\test\cmd\parallel\tests\channel\021.phpt]
PASS Check clone Channel [H:\test\cmd\parallel\tests\channel\022.phpt]
PASS Check serialize Channel [H:\test\cmd\parallel\tests\channel\023.phpt]
PASS Check closures in arginfo/argv (OK) [H:\test\cmd\parallel\tests\closures\001.phpt]
PASS Check closures in return [H:\test\cmd\parallel\tests\closures\002.phpt]
PASS Check closures over channel buffered [H:\test\cmd\parallel\tests\closures\003.phpt]
PASS Check closures over channel unbuffered [H:\test\cmd\parallel\tests\closures\004.phpt]
PASS Check closures over channel unbuffered destroy last [H:\test\cmd\parallel\tests\closures\005.phpt]
PASS Check closures no nested declarations [H:\test\cmd\parallel\tests\closures\006.phpt]
PASS Check closures statics [H:\test\cmd\parallel\tests\closures\007.phpt]
PASS Check closures statics scopes [H:\test\cmd\parallel\tests\closures\008.phpt]
PASS Check closures static changes [H:\test\cmd\parallel\tests\closures\009.phpt]
PASS Check closures binding [H:\test\cmd\parallel\tests\closures\010.phpt]
PASS Check closures binding static [H:\test\cmd\parallel\tests\closures\011.phpt]
PASS Check closures cached function check [H:\test\cmd\parallel\tests\closures\012.phpt]
PASS Check Events setInput overwrite [H:\test\cmd\parallel\tests\events\001.phpt]
PASS Check events add duplicate [H:\test\cmd\parallel\tests\events\003.phpt]
PASS Check events remove non-existent [H:\test\cmd\parallel\tests\events\004.phpt]
PASS Check events remove [H:\test\cmd\parallel\tests\events\005.phpt]
PASS Check events input [H:\test\cmd\parallel\tests\events\007.phpt]
PASS Check Event constructor disallowed [H:\test\cmd\parallel\tests\events\009.phpt]
PASS Check Events poll no arguments [H:\test\cmd\parallel\tests\events\011.phpt]
PASS Check Events Future error [H:\test\cmd\parallel\tests\events\012.phpt]
PASS Check Events Future killed [H:\test\cmd\parallel\tests\events\013.phpt]
PASS Check Events Input invalid value [H:\test\cmd\parallel\tests\events\014.phpt]
PASS Check Events timeout/non-blocking mode [H:\test\cmd\parallel\tests\events\015.phpt]
PASS Check Events Future cancelled [H:\test\cmd\parallel\tests\events\016.phpt]
PASS Check Events Channel closed [H:\test\cmd\parallel\tests\events\017.phpt]
PASS Check events loop channel [H:\test\cmd\parallel\tests\events\wait\001.phpt]
PASS Check events loop future [H:\test\cmd\parallel\tests\events\wait\002.phpt]
PASS Check events timeout [H:\test\cmd\parallel\tests\events\wait\003.phpt]
PASS Check events wait nothing [H:\test\cmd\parallel\tests\events\wait\004.phpt]
PASS Check Events non-blocking [H:\test\cmd\parallel\tests\events\wait\005.phpt]
PASS Check Events non-blocking iterator exception [H:\test\cmd\parallel\tests\events\wait\006.phpt]
PASS Check Events blocker [H:\test\cmd\parallel\tests\events\wait\007.phpt]
PASS Check functional parallel operation [H:\test\cmd\parallel\tests\functional\001.phpt]
PASS Check functional bootstrap [H:\test\cmd\parallel\tests\functional\002.phpt]
PASS Check functional future [H:\test\cmd\parallel\tests\functional\003.phpt]
PASS Check functional reuse [H:\test\cmd\parallel\tests\functional\004.phpt]
PASS Check functional bootstrap error (previously set) [H:\test\cmd\parallel\tests\functional\005.phpt]
PASS Check functional bootstrap error (set after run) [H:\test\cmd\parallel\tests\functional\006.phpt]
PASS Check functional bootstrap error (set in task) [H:\test\cmd\parallel\tests\functional\007.phpt]
PASS Check handlers write property [H:\test\cmd\parallel\tests\handlers\001.phpt]
PASS Check handlers read property [H:\test\cmd\parallel\tests\handlers\002.phpt]
PASS Check handlers write dimension [H:\test\cmd\parallel\tests\handlers\003.phpt]
PASS Check handlers read dimension [H:\test\cmd\parallel\tests\handlers\004.phpt]
PASS Check handlers ptr ptr [H:\test\cmd\parallel\tests\handlers\005.phpt]
PASS Check sync __construct [H:\test\cmd\parallel\tests\sync\001.phpt]
PASS Check sync get/set [H:\test\cmd\parallel\tests\sync\002.phpt]
PASS Check sync notify one [H:\test\cmd\parallel\tests\sync\003.phpt]
PASS Check sync destructor of refcounted value [H:\test\cmd\parallel\tests\sync\004.phpt]
PASS Check sync illegal value [H:\test\cmd\parallel\tests\sync\005.phpt]
PASS GH-205 (segmentation fault when creating a sync class) [H:\test\cmd\parallel\tests\sync\006.phpt]
=====================================================================
Number of tests :  137               135
Tests skipped   :    2 (  1.5%) --------
Tests warned    :    7 (  5.1%) (  5.2%)
Tests failed    :    0 (  0.0%) (  0.0%)
Tests passed    :  128 ( 93.4%) ( 94.8%)
---------------------------------------------------------------------
Time taken      :    8 seconds
=====================================================================

=====================================================================
WARNED TEST SUMMARY
---------------------------------------------------------------------
parallel cancellation (not running) [H:\test\cmd\parallel\tests\base\045.phpt] (warn: XLEAK section but test passes)
parallel cancellation (running) [H:\test\cmd\parallel\tests\base\046.phpt] (warn: XLEAK section but test passes)
parallel cancellation (already cancelled) [H:\test\cmd\parallel\tests\base\048.phpt] (warn: XLEAK section but test passes)
parallel cancellation (runtime killed) [H:\test\cmd\parallel\tests\base\049.phpt] (warn: XLEAK section but test passes)
parallel cancellation (value on cancelled) [H:\test\cmd\parallel\tests\base\050.phpt] (warn: XLEAK section but test passes)
parallel recursion in arrays [H:\test\cmd\parallel\tests\base\068.phpt] (warn: XFAIL section but test passes)
parallel recursion in objects [H:\test\cmd\parallel\tests\base\069.phpt] (warn: XFAIL section but test passes)
=====================================================================
Для продолжения нажмите любую клавишу . . .

testAccountDeltas avatar Jul 07 '24 00:07 testAccountDeltas

I managed to put everything into one file, miniature at 300 lines of code. Was it worth it? I don’t know... But so be it.

testAccountDeltas avatar Jul 07 '24 15:07 testAccountDeltas

In my opinion, adding elaborate build scripts for Windows to this package still doesn't make sense, because they're getting out of date pretty soon. Windows users who just want to fetch binaries can now download them from https://pecl.php.net/package/parallel. For CI builds there is now https://github.com/php/php-windows-builder (and https://github.com/php/setup-php-sdk can still be used; see https://github.com/krakjoe/parallel/blob/develop/.github/workflows/windows.yml). For local builds, the general PECL instructions apply (additionally, the respective phtreads build from https://downloads.php.net/~windows/pecl/deps/ needs to be "installed"). And for those who want to build ptreads, they can use https://github.com/winlibs/pthreads and build with https://github.com/winlibs/winlib-builder/blob/master/.github/workflows/pthreads.yml.

Note that this is my opinon. Current parallel maintainers might have a different opinion, and that is, of course, fine.

cmb69 avatar Jul 14 '24 12:07 cmb69

Hey @TheTechsTech, thanks for opening a PR, but as. @cmb69 already pointed out, you can download Windows DLLs for this package at PECL (where you'd also find the .so binaries for Linux).

realFlowControl avatar Jul 22 '24 08:07 realFlowControl