Closed as not planned
Description
Description
For a personal project, I've been trying to compile PHP using the static php cli tool, which downloads and compiles php-src. I'm using the following command (Windows 10, x64):
spc.exe build -vvv --debug --build-cli "bcmath,calendar,ctype,curl,dba,dom,exif,filter,fileinfo,iconv,mbstring,mbregex,openssl,pdo,pdo_mysql,pdo_sqlite,phar,simplexml,sockets,sqlite3,tokenizer,xml,xmlreader,xmlwriter,zip,zlib,session,gd"
It fails with the error:
NMAKE : fatal error U1077: '"cl.exe" ...
Which comes from:
win32\getrusage.c: fatal error C1041: cannot open program database 'C:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\win32\vc140.idb'; if multiple CL.EXE write to the same .PDB file, please use /FS
I tried modifying this line on php-src/win32/build/confutils.js
to add the /FS flag to the command. I replaced:
DEFINE("CFLAGS_PHP", "/D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS \
/D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=" + WINVER);
To:
DEFINE("CFLAGS_PHP", "/FS /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS \
/D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=" + WINVER);
I checked and the command effectively had the /FS
flag, but it didn't work, it kept failing. Any ideas?
Here's the relevant part of the log:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\x64\mc.exe" -h win32\ -r C:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\ -x C:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\ win32\build\wsyslog.mc
MC: Compiling win32\build\wsyslog.mc
zend.c
zend_API.c
zend_alloc.c
zend_ast.c
zend_atomic.c
zend_attributes.c
zend_builtin_functions.c
zend_call_stack.c
zend_closures.c
zend_compile.c
zend_constants.c
zend_cpuinfo.c
zend_default_classes.c
zend_enum.c
zend_exceptions.c
zend_execute.c
zend_execute_API.c
zend_extensions.c
zend_fibers.c
zend_float.c
zend_gc.c
zend_generators.c
zend_hash.c
zend_highlight.c
zend_hrtime.c
zend_inheritance.c
zend_ini.c
zend_ini_parser.c
zend_ini_scanner.c
zend_interfaces.c
zend_iterators.c
zend_language_parser.c
zend_language_scanner.c
zend_list.c
zend_llist.c
zend_multibyte.c
zend_object_handlers.c
zend_objects.c
zend_objects_API.c
zend_observer.c
zend_opcode.c
zend_operators.c
zend_ptr_stack.c
zend_smart_str.c
zend_sort.c
zend_stack.c
zend_stream.c
zend_string.c
zend_strtod.c
zend_system_id.c
zend_variables.c
zend_virtual_cwd.c
zend_vm_opcodes.c
zend_weakrefs.c
block_pass.c
compact_literals.c
compact_vars.c
dce.c
dfa_pass.c
escape_analysis.c
nop_removal.c
optimize_func_calls.c
optimize_temp_vars_5.c
pass1.c
pass3.c
sccp.c
scdf.c
zend_call_graph.c
zend_cfg.c
zend_dfg.c
zend_dump.c
zend_func_info.c
zend_inference.c
zend_optimizer.c
zend_ssa.c
SAPI.c
fopen_wrappers.c
getopt.c
internal_functions.c
main.c
network.c
output.c
C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\zipconf.h(16): warning C4005: 'ZIP_STATIC': macro redefinition (compiling source file main\internal_functions.c)
C:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\ext\bcmath\libbcmath\src\../../../../main/config.w32.h(286): note: see previous definition of 'ZIP_STATIC' (compiling source file main\internal_functions.c)
C:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\main\config.w32.h(286): warning C4005: 'ZIP_STATIC': macro redefinition (compiling source file main\internal_functions.c)
C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\zipconf.h(16): note: see previous definition of 'ZIP_STATIC' (compiling source file main\internal_functions.c)
php_content_types.c
php_ini.c
php_ini_builder.c
php_odbc_utils.c
php_open_temporary_file.c
php_scandir.c
php_syslog.c
php_ticks.c
php_variables.c
reentrancy.c
rfc1867.c
safe_bcmp.c
snprintf.c
spprintf.c
strlcat.c
strlcpy.c
cast.c
filter.c
glob_wrapper.c
memory.c
mmap.c
plain_wrapper.c
streams.c
transports.c
userspace.c
xp_socket.c
codepage.c
console.c
fnmatch.c
ftok.c
getrusage.c
glob.c
win32\getrusage.c: fatal error C1041: cannot open program database 'C:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\win32\vc140.idb'; if multiple CL.EXE write to the same .PDB file, please use /FS
globals.c
inet.c
ioutil.c
nice.c
readdir.c
registry.c
select.c
sendmail.c
signal.c
sockets.c
time.c
winutil.c
wsyslog.c
NMAKE : fatal error U1077: '"cl.exe" /D _USRDLL /D PHP7DLLTS_EXPORTS /D PHP_EXPORTS /D LIBZEND_EXPORTS /D TSRM_EXPORTS /D SAPI_EXPORTS /D WINVER=0x0601 -Iext/bcmath/libbcmath/src /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_BZLIB_H=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_CURL_EASY_H=1 /DHAVE_OPENSSL_SSL_H=1 /D CURL_STATICLIB /D PHP_CURL_EXPORTS=1 /Iext/date/lib /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /DHAVE_TIMELIB_CONFIG_H=1 /wd4244 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /D DBA_FLATFILE=1 /D DBA_CDB=1 /D DBA_CDB_MAKE=1 /D DBA_CDB_BUILTIN=1 /D DBA_INIFILE=1 /Iext\fileinfo/libmagic /Iext\fileinfo /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext\gd\libgd" /DHAVE_GD_H=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\libpng16" /DHAVE_PNG_H=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_ICONV_H=1 -Iext/gd/libgd /D PHP_GD_EXPORTS=1 /D HAVE_GD_GET_INTERPOLATION /I "ext/hash/sha3/generic64lc" /DHAVE_KECCAKHASH_H=1 /DKeccakP200_excluded /DKeccakP400_excluded /DKeccakP800_excluded /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext/hash/murmur" /DHAVE_PMURHASH_H=1 /I "ext/hash/xxhash" /DHAVE_XXHASH_H=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_ICONV_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /D PHP_ICONV_EXPORTS /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /DHAVE_MBSTRING_H=1 -Iext/mbstring -Iext/mbstring/libmbfl -Iext/mbstring/libmbfl/mbfl /D HAVE_STRICMP /D MBFL_DLL_EXPORT=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_ONIGURUMA_H=1 /DONIG_EXTERN=extern /DPHP_ONIG_BAD_KOI8_ENTRY=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_OPENSSL_SSL_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Iext/pcre/pcre2lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /D HAVE_CONFIG_H /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /DHAVE_WINSOCK_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /D PHP_SOCKETS_EXPORTS=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_SQLITE3_H=1 /DHAVE_SQLITE3EXT_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "ext/date/lib" /DHAVE_TIMELIB_CONFIG_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_ZIP_H=1 /DHAVE_ZIPCONF_H=1 /D _WIN32 /D HAVE_SET_MTIME /D HAVE_ENCRYPTION /D HAVE_LIBZIP_VERSION /D HAVE_PROGRESS_CALLBACK /D HAVE_CANCEL_CALLBACK /D HAVE_METHOD_SUPPORTED /D LZMA_API_STATIC /D ZLIB_EXPORTS /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\libxml2" /DHAVE_LIBXML_PARSER_H=1 /DHAVE_LIBXML_TREE_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /D LIBXML_STATIC /D LIBXML_STATIC_FOR_DLL /D HAVE_WIN32_THREADS /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\libxml2" /DHAVE_LIBXML_PARSER_H=1 /D LIBXML_STATIC /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /DHAVE_SQLITE3_H=1 /DHAVE_SQLITE3EXT_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\libxml2" /DHAVE_LIBXML_TREE_H=1 /D LIBXML_STATIC /D PHP_SIMPLEXML_EXPORTS /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\libxml2" /DHAVE_LIBXML_PARSER_H=1 /DHAVE_LIBXML_TREE_H=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /D LIBXML_STATIC /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\libxml2" /DHAVE_LIBXML_PARSER_H=1 /DHAVE_LIBXML_TREE_H=1 /D LIBXML_STATIC /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include\libxml2" /DHAVE_LIBXML_XMLWRITER_H=1 /D LIBXML_STATIC /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 /Zc:inline /Zc:__cplusplus /d2FuncCache1 /Zc:wchar_t /MP /LD /MT /Ox /D NDebug /D NDEBUG /GF /D ZEND_DEBUG=0 /I "C:\Users\Luis\Development\gymcontrol\src\backend\buildroot\include" /D FD_SETSIZE=256 /FoC:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\win32\ /FpC:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\win32\ /FRC:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\win32\ /FdC:\Users\Luis\Development\gymcontrol\src\backend\source\php-src\x64\Release\win32\ /D ZEND_ENABLE_STATIC_TSRMLS_CACHE=1 /d2FuncCache1 /c win32\codepage.c win32\console.c win32\fnmatch.c win32\ftok.c win32\getrusage.c win32\glob.c win32\globals.c win32\inet.c win32\ioutil.c win32\nice.c win32\readdir.c win32\registry.c win32\select.c win32\sendmail.c win32\signal.c win32\sockets.c win32\time.c win32\winutil.c win32\wsyslog.c' : return code '0x2'
Stop.
[17:01:17] [ERRO] Uncaught SPC\exception\RuntimeException: Command run failed with code[2]: cd /d "C:\Users\Luis\Development\gymcontrol\src\backend\source\php-src" && C:\Users\Luis\Development\gymcontrol\src\backend\php-sdk-binary-tools\phpsdk-vs17-x64.bat -t nmake_cli_wrapper.bat --task-args php.exe at phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/src/globals/functions.php(158)
[17:01:17] [ERRO] #0 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/src/SPC/util/WindowsCmd.php(52): f_passthru('cd /d "C:\\Users...')
#1 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/src/SPC/builder/windows/WindowsBuilder.php(163): SPC\util\WindowsCmd->exec('cd /d "C:\\Users...')
#2 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/src/SPC/builder/windows/WindowsBuilder.php(132): SPC\builder\windows\WindowsBuilder->buildCli()
#3 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/src/SPC/command/BuildCliCommand.php(180): SPC\builder\windows\WindowsBuilder->buildPHP(1)
#4 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/src/SPC/command/BaseCommand.php(107): SPC\command\BuildCliCommand->handle()
#5 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/vendor/symfony/console/Command/Command.php(326): SPC\command\BaseCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/vendor/symfony/console/Application.php(1078): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/vendor/symfony/console/Application.php(324): Symfony\Component\Console\Application->doRunCommand(Object(SPC\command\BuildCliCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/vendor/symfony/console/Application.php(175): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 phar://C:/Users/Luis/Development/gymcontrol/src/backend/spc.exe/bin/spc(20): Symfony\Component\Console\Application->run()
#10 C:\Users\Luis\Development\gymcontrol\src\backend\spc.exe(8): require('phar://C:/Users...')
#11 {main}
Could you help me debug?
Thanks
PHP Version
PHP 8.3.12
Operating System
Windows 10