Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8273854 | jfx17.0.1 | Kevin Rushforth | P2 | Resolved | Fixed | |
JDK-8271138 | 8u311 | Kevin Rushforth | P2 | Closed | Fixed | b04 |
JDK-8272641 | jfx11.0.13 | Kevin Rushforth | P2 | Resolved | Fixed |
Here is the compilation error:
$ gradle -PCOMPILE_WEBKIT=true sdk
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1222): error C2398: Element '1': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1229): error C2398: Element '2': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1230): error C2398: Element '2': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1232): error C2398: Element '1': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1232): error C2398: Element '2': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1233): error C2398: Element '2': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1240): error C2398: Element '2': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1249): error C2398: Element '1': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1250): error C2398: Element '1': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1250): error C2398: Element '2': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1252): error C2398: Element '1': conversion from 'const int' to 'float' requires a narrowing conversion
../jfx/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp(1253): error C2398: Element '1': conversion from 'const int' to 'float' requires a narrowing conversion
The fix is simply the following:
--- a/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp
+++ b/modules/javafx.web/src/main/native/Source/WebCore/inspector/InspectorOverlay.cpp
@@ -1195,8 +1195,8 @@ void InspectorOverlay::drawLayoutLabel(GraphicsContext& context, String label, F
FontCascade font(WTFMove(fontDescription), 0, 0);
font.update(nullptr);
- constexpr auto padding = 4;
- constexpr auto arrowSize = 4;
+ constexpr auto padding = 4.0f;
+ constexpr auto arrowSize = 4.0f;
float textHeight = font.fontMetrics().floatHeight();
float textDescent = font.fontMetrics().floatDescent();
After applying that fix, here is the link error that we get:
[1967/1981] Linking CXX shared library bin/jfxwebkit.dll
FAILED: bin/jfxwebkit.dll lib/jfxwebkit.lib
cmd.exe /C "cd . && jfx/buildSrc/build/build-tools/cmake-3.13.3-win32-x86/cmake-3.13.3-win32-x86/bin/cmake.exe -E vs_link_dll --intdir=Source/WebKitLegacy/CMakeFiles/WebKitLegacy.dir --manifests -- jfx/buildSrc/build/build-tools/devkit-windows_x64-VS2017-15.9.24+1.0.tar/VC/bin/x64/link.exe /nologo @CMakeFiles/WebKitLegacy.rsp /out:bin/jfxwebkit.dll /implib:lib/jfxwebkit.lib /pdb:bin/jfxwebkit.pdb /dll /version:0.0 /machine:x64 /DEBUG /OPT:ICF /OPT:REF /INCREMENTAL:NO /INCREMENTAL:NO jfx/modules/javafx.web/build/win/Release/WebCore/obj/version.res && cd ."
LINK: command "jfx/buildSrc/build/build-tools/devkit-windows_x64-VS2017-15.9.24+1.0.tar/VC/bin/x64/link.exe /nologo @CMakeFiles/WebKitLegacy.rsp /out:bin/jfxwebkit.dll /implib:lib/jfxwebkit.lib /pdb:bin/jfxwebkit.pdb /dll /version:0.0 /machine:x64 /DEBUG /OPT:ICF /OPT:REF /INCREMENTAL:NO /INCREMENTAL:NO jfx/modules/javafx.web/build/win/Release/WebCore/obj/version.res /MANIFEST /MANIFESTFILE:bin/jfxwebkit.dll.manifest" failed (exit code 1169) with the following output:
WebStorageNamespaceProvider.cpp.obj : error LNK2005: "public: static class WebCore::PartialOrdering const WebCore::PartialOrdering::less" (?less@PartialOrdering@WebCore@@2V12@B) already defined in StorageAreaImpl.cpp.obj
WebStorageNamespaceProvider.cpp.obj : error LNK2005: "public: static class WebCore::PartialOrdering const WebCore::PartialOrdering::equivalent" (?equivalent@PartialOrdering@WebCore@@2V12@B) already defined in StorageAreaImpl.cpp.obj
...
WebCoreTestSupport.lib(MockPageOverlay.cpp.obj) : error LNK2005: "public: static class WebCore::PartialOrdering const WebCore::PartialOrdering::greater" (?greater@PartialOrdering@WebCore@@2V12@B) already defined in StorageAreaImpl.cpp.obj
WebCoreTestSupport.lib(MockPageOverlay.cpp.obj) : error LNK2005: "public: static class WebCore::PartialOrdering const WebCore::PartialOrdering::unordered" (?unordered@PartialOrdering@WebCore@@2V12@B) already defined in StorageAreaImpl.cpp.obj
Creating library lib/jfxwebkit.lib and object lib/jfxwebkit.exp
bin/jfxwebkit.dll : fatal error LNK1169: one or more multiply defined symbols found
ninja: build stopped: subcommand failed.
See the attached log for the complete list of link errors.
It's possibly related to the following comment:
https://github.com/openjdk/jfx/blob/master/modules/javafx.web/src/main/native/Source/WebCore/dom/Node.h#L746
There are two possible solutions for jfx11u:
1. Find a solution to the VS 2017 link issue. We would then fix it in mainline (and 8u) and backport it to 11 along with the backport of WebKit 612.1.
2. Update jfx11u to use VS 2019. This will require solving a long-standing problem where we don't ship the microsoft DLLs in our jmod bundles to avoid the jlink error described in
Solution 1 will likely be the easiest, so is probably what we should do for October. We eventually need solution 2 anyway, since it will become increasingly difficult, to build newer WebKit libraries with VS 2017.
- backported by
-
JDK-8272641 WebKit 612.1 build fails with Visual Studio 2017
- Resolved
-
JDK-8273854 WebKit 612.1 build fails with Visual Studio 2017
- Resolved
-
JDK-8271138 WebKit 612.1 build fails with Visual Studio 2017
- Closed
- relates to
-
JDK-8278983 WebKit 613.1 build fails with Visual Studio 2017
- Closed
-
JDK-8268849 Update to 612.1 version of WebKit
- Resolved
- links to
-
Commit openjdk/jfx11u/7bc9584c
-
Commit openjdk/jfx17u/5397290f
-
Commit openjdk/jfx/8aaacb5b
-
Review openjdk/jfx11u/35
-
Review openjdk/jfx17u/7
-
Review openjdk/jfx/576