WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WORKSFORME
102930
[Qt] Mingw: Symbol conflict between system ANGLE, webkit angle
https://bugs.webkit.org/show_bug.cgi?id=102930
Summary
[Qt] Mingw: Symbol conflict between system ANGLE, webkit angle
Kai Koehne
Reported
2012-11-21 05:45:12 PST
Compiling QtWebKit with MINGW-builds, and system ANGLE fails because of symbol clashes between the system angle, and the webkit one: g++ -shared -Wl,--out-implib,..\lib\libQt5WebKitWidgetsd.a -o ..\lib\Qt5WebKitWidgetsd.dll -LD:\dev\icu-49\dist\mingw-32\lib -LD:\dev\openssl-1.0.1c\dist\mingw-32\lib -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Widgetsd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Networkd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Guid -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Cored -llibEGL -llibGLESv2 -lgdi32 -luser32 obj\debug\Qt5WebKitWidgetsd_resource_res.o -Wl,-whole-archive -lWebKit1d -Wl,-no-whole-archive -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/WebKit/debug -Wl,-whole-archive -lWebKit2d -Wl,-no-whole-archive -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/WebKit2/debug -Wl,-whole-archive -lWebCored -Wl,-no-whole-archive -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/WebCore/debug -ladvapi32 -lgdi32 -lshell32 -lshlwapi -luser32 -lversion -llibEGL -llibGLESv2 -lgdi32 -luser32 -lgdi32 -lole32 -luser32 -Wl,-whole-archive -lANGLEd -Wl,-no-whole-archive -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug -Wl,-whole-archive -lJavaScriptCored -Wl,-no-whole-archive -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/JavaScriptCore/debug -lwinmm -Wl,-whole-archive -lWTFd -Wl,-no-whole-archive -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/WTF/debug -licuin -licuuc -licudt -lwinmm -lgdi32 -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Quickd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5MultimediaWidgetsd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5OpenGLd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5PrintSupportd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Qmld -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Multimediad -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Widgetsd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Sqld -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Networkd -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Guid -LD:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib -lQt5Cored D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x0): multiple definition of `ShInitialize' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000265.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x20): multiple definition of `ShInitBuiltInResources' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000264.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x80): multiple definition of `ShDestruct' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000257.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0xc0): multiple definition of `ShConstructCompiler' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000256.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x130): multiple definition of `ShCompile' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000255.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x190): multiple definition of `ShGetInfo' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000261.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x4b0): multiple definition of `ShGetInfoLog' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000262.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x4f0): multiple definition of `ShGetObjectCode' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000263.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x530): multiple definition of `ShGetActiveAttrib' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000259.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x5c0): multiple definition of `ShGetActiveUniform' D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000260.o):(.text+0x0): first defined here Warning: resolving _cti_vm_throw by linking to @cti_vm_throw@4 Use --enable-stdcall-fixup to disable these warnings Use --disable-stdcall-fixup to disable these fixups c:/mingw-builds-32-4.7.2-posix-sjlj-rev1/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o): bad reloc address 0x44 in section `.rdata' collect2.exe: error: ld returned 1 exit status Makefile.api.Debug:75: recipe for target '..\lib\Qt5WebKitWidgetsd.dll' failed mingw32-make[1]: *** [..\lib\Qt5WebKitWidgetsd.dll] Error 1 mingw32-make[1]: Leaving directory 'D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source' Makefile.api:37: recipe for target 'debug-all' failed mingw32-make: *** [debug-all] Error 2 (You've to apply patch in
https://bugs.webkit.org/show_bug.cgi?id=102924
to get that far)
Attachments
Possible workaround patch
(1.27 KB, patch)
2012-11-21 05:48 PST
,
Kai Koehne
hausmann
: review-
hausmann
: commit-queue-
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Kai Koehne
Comment 1
2012-11-21 05:48:05 PST
Created
attachment 175418
[details]
Possible workaround patch Don't know whether that's a conceptual problem or not. But since the symbols mentioned aren't exported in the DLL I could imagine that it's safe to ignore the linker error.
Simon Hausmann
Comment 2
2012-11-21 13:14:34 PST
I think that there's some secret static linking going in: "" D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtbase/lib/liblibGLESv2.a(d000265.o):(.text+0x0): first defined here D:/dev/qt-5-sdk-mingw-builds-gcc-4.7.2-32/qtwebkit/Source/ThirdParty/ANGLE/debug/libANGLEd.a(ShaderLang.o):ShaderLang.cpp:(.text+0x20): multiple definition of `ShInitBuiltInResources' "" See liblibGLESv2._a_ and libANGLEd.a? Only the latter should be an archive, the former should be a DLL.
Simon Hausmann
Comment 3
2012-11-26 22:55:28 PST
Comment on
attachment 175418
[details]
Possible workaround patch View in context:
https://bugs.webkit.org/attachment.cgi?id=175418&action=review
> Source/api.pri:27 > + # ignore duplicate symbols in qtbase angle (libGLESv2.dll), local angle
I'm saying r-, because the linker output doesn't look like it resembles what's described her, i.e. that there is is linkage against libGLESv2._DLL_ Maybe a .dll file co-exists with a .a file in the lib directory and somehow the compiler choose the latter instead of the former? I think this needs more investigation :)
Kai Koehne
Comment 4
2012-11-28 01:08:44 PST
Simon, the .a files are import libraries - static libs that you link against that load the real dll at runtime. Anyhow, there's a bigger issue here, and adding --Wl,--allow-duplicate-symbols doesn't help : See
bug 103491
.
Jonathan Liu
Comment 5
2013-04-14 01:13:18 PDT
I believe this issue is already resolved.
Kai Koehne
Comment 6
2013-04-15 00:29:33 PDT
Yeah, probably was fixed by another commit already ...
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug