Skip to content

fatal error C1041: cannot open program database; if multiple CL.EXE write to the same .PDB file, please use /FS #17547

Closed as not planned
@LuisAlejandro

Description

@LuisAlejandro

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions