Repository navigation
fatal error C1041: cannot open program database; if multiple CL.EXE write to the same .PDB file, please use /FS #17547
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
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
Reactions are currently unavailable
Activity
cmb69 commentedon Jan 22, 2025
Simplest solution should be to apply the following patch:
I don't quite understand, though, why you are asking here, when you use a tool developed elsewhere.
LuisAlejandro commentedon Jan 22, 2025
@cmb69 Thanks! I'll try that.
cmb69 commentedon Jan 23, 2025
I had a look at static-php-cli, but I'm not sure how these builds are done. Possibly, they enable
/MPeven for debug builds (or maybe do some other form of parallel builds), and that likely causes issues. I've faced the same problem when working on the expermental Ninja builds, and the patch above solved the issue for me.Anyhow, not a php-src issue, so I'm closing.
LuisAlejandro commentedon Jan 23, 2025
@cmb69 Thanks, I solved it by not compiling php and just download a prebuilt binary.