[WinCairo] '__int128_t': undeclared identifier in MediaTime.cpp WinCairo x64 build fails since r213324 (Bug 169098). > [6/1400] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\MediaTime.cpp.obj > FAILED: C:\PROGRA~2\MICROS~3.0\VC\bin\amd64\cl.exe /nologo /TP /DWIN32 /D_WINDOWS /W4 /GR- /EHs- /EHc- /MT /O2 /Ob2 /D NDEBUG -IDerivedSources\ForwardingHeaders -IDerivedSources -I..\..\WebKitLibraries\win\include -I..\..\Source\bmalloc -I..\..\Source\WTF -I..\..\Source\WTF\wtf -I..\..\Source\WTF\wtf\dtoa -I..\..\Source\WTF\wtf\persistence -I..\..\Source\WTF\wtf\text -I..\..\Source\WTF\wtf\text\icu -I..\..\Source\WTF\wtf\threads -I..\..\Source\WTF\wtf\unicode -I..\..\Source\ThirdParty -I. /wd4018 /wd4068 /wd4099 /wd4100 /wd4127 /wd4138 /wd4146 /wd4180 /wd4189 /wd4201 /wd4206 /wd4244 /wd4251 /wd4267 /wd4275 /wd4288 /wd4291 /wd4305 /wd4309 /wd4344 /wd4355 /wd4389 /wd4396 /wd4456 /wd4457 /wd4458 /wd4459 /wd4481 /wd4503 /wd4505 /wd4510 /wd4512 /wd4530 /wd4610 /wd4611 /wd4646 /wd4702 /wd4706 /wd4722 /wd4800 /wd4819 /wd4951 /wd4952 /wd4996 /wd6011 /wd6031 /wd6211 /wd6246 /wd6255 /wd6387 /Zi /GS /EHa- /EHc- /EHs- /fp:except- /analyze- /bigobj /Gy- /openmp- /GF- /Oy- /showIncludes -DBUILDING_WITH_CMAKE=1 -DBUILDING_WTF -DHAVE_CONFIG_H=1 -DNOMINMAX -DUNICODE -DWINVER=0x601 -DWTF_EXPORTS -DWTF_PLATFORM_WIN_CAIRO=1 -D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1 -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_UNICODE -D_WINDOWS /FoSource\WTF\wtf\CMakeFiles\WTF.dir\MediaTime.cpp.obj /FdSource\WTF\wtf\CMakeFiles\WTF.dir\ /FS -c ..\..\Source\WTF\wtf\MediaTime.cpp > ..\..\Source\WTF\wtf\MediaTime.cpp(493): error C2065: '__int128_t': undeclared identifier > ..\..\Source\WTF\wtf\MediaTime.cpp(493): error C2146: syntax error: missing ';' before identifier 'newValue' > ..\..\Source\WTF\wtf\MediaTime.cpp(493): error C2065: 'newValue': undeclared identifier > ..\..\Source\WTF\wtf\MediaTime.cpp(493): error C2061: syntax error: identifier '__int128_t' > ..\..\Source\WTF\wtf\MediaTime.cpp(494): error C2065: 'newValue': undeclared identifier > ..\..\Source\WTF\wtf\MediaTime.cpp(495): error C2065: 'newValue': undeclared identifier > ..\..\Source\WTF\wtf\MediaTime.cpp(497): error C2065: 'newValue': undeclared identifier > ..\..\Source\WTF\wtf\MediaTime.cpp(502): error C2065: 'newValue': undeclared identifier > ..\..\Source\WTF\wtf\MediaTime.cpp(518): error C2065: 'newValue': undeclared identifier > ninja: build stopped: subcommand failed.
Created attachment 303327 [details] Patch
Would someone with access to a 64-bit Windows builder please try out this patch and verify that it fixes the compiler error?
Jer Noble would a more effective patch be to actually test for the presence of int128_t? I was looking at this and was thinking of doing a HAVE version of it.
(In reply to comment #3) > Jer Noble would a more effective patch be to actually test for the presence > of int128_t? I was looking at this and was thinking of doing a HAVE version > of it. I couldn't find a directive I could use for such a test; if you can, more the better!
Created attachment 303329 [details] Patch with CMake checks for HAVE Here's a version that checks for the presence of __int128_t through CMake.
Comment on attachment 303329 [details] Patch with CMake checks for HAVE View in context: https://bugs.webkit.org/attachment.cgi?id=303329&action=review > Source/WTF/wtf/Platform.h:553 > #if CPU(X86_64) > #define HAVE_NETWORK_EXTENSION 1 > #define USE_PLUGIN_HOST_PROCESS 1 > +#define HAVE_INT128_T 1 I don't think this properly reflects the fact that Visual Studio doesn't support the __int128_t type.
All the changes to Platform.h are for the Mac side since its not using CMake.
Sorry, Don. Jer's fix passed EWS and was simpler. If we feel it's worth it to optimize this for Windows, we can do so later, but we need to fix the build.
Landed manually. https://trac.webkit.org/changeset/213419