[Webkit-unassigned] [Bug 35647] New: [Qt] Include file clash when compiling Qt 4.6 with MySQL and WebKit
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Mar 3 03:31:53 PST 2010
https://bugs.webkit.org/show_bug.cgi?id=35647
Summary: [Qt] Include file clash when compiling Qt 4.6 with
MySQL and WebKit
Product: WebKit
Version: 528+ (Nightly build)
Platform: Other
OS/Version: Mac OS X 10.5
Status: NEW
Keywords: Qt
Severity: Normal
Priority: P2
Component: New Bugs
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: vestbo at webkit.org
This bug report originated from issue QTBUG-6351
http://bugreports.qt.nokia.com/browse/QTBUG-6351
--- Description ---
When compiling Qt 4.6 (seems to be the same issue for Git 4.6-stable, 4.6 and
master, and also the release candidate 1), there seems to be a include search
path clash when Qt is compiled with <tt>-qt-sql-mysql</tt> and
<tt>-with-webkit</tt>.
<p>Since MySQL support is not included by default, I have to compile Qt
manually, and I used the following configuration: </p>
<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
<pre>/Devel/qt/configure \
-fast \
-opensource \
-no-qt3support \
-no-xmlpatterns \
-no-stl \
-no-accessibility \
-no-multimedia \
-no-phonon \
-no-phonon-backend \
-confirm-license \
-qt-sql-sqlite \
-qt-sql-mysql \
-nomake "demos examples" \
-silent \
-qt-sql-mysql \
-release \
-I /usr/local/libmysql/include \
-L /usr/local/libmysql/lib \
</pre>
</div></div>
<p>As you can see, I defined an additional include path for the libmysql
code/libraries. Now when I run <em>make</em>, it compiles fine for a while, but
as soon as it reaches a certain part of WebKit code, the following happens:</p>
<div class="preformatted panel" style="border-width: 1px;"><div
class="preformattedContent panelContent">
<pre>[...]
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSCustomPositionErrorCallback.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSCustomVoidCallback.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSCustomXPathNSResolver.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridColumnListCustom.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDataGridDataSource.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDocumentCustom.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDocumentFragmentCustom.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMGlobalObject.cpp
compiling /Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowBase.cpp
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp: In
member function 'JSC::JSValue WebCore::JSDOMWindow::atob(JSC::ExecState*, const
JSC::ArgList&)':
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp:1015:
error: 'base64Decode' was not declared in this scope
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp: In
member function 'JSC::JSValue WebCore::JSDOMWindow::btoa(JSC::ExecState*, const
JSC::ArgList&)':
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowCustom.cpp:1041:
error: 'base64Encode' was not declared in this scope
compiling
/Devel/qt/src/3rdparty/webkit/WebCore/bindings/js/JSDOMWindowShell.cpp
make[2]: *** [obj/release/JSDOMWindowCustom.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [release] Error 2
make: *** [sub-webkit-make_default-ordered] Error 2
bbense-mbp:qt bbense$
</pre>
</div></div>
<p>It seems that it's possible to work around this by moving the libmysql from
a "contained" place like <em>/usr/local/libmysql/</em>, which in turn contains
<em>include</em>, <em>lib</em> and <em>bin</em>; to their "public" places like
<em>/usr/local/include</em>, etc.</p>
<p>I consider this to be a blocker, since it costs a LOT of time if you run
into this issue and it likely leads to more reports and problems on the user
side.<br/>
I assume this is due to the wrong order of include paths, and WebKit includes a
file that appears to have the same name in the MySQL drivers, and that one is
included instead.</p>
<p>Also, take a look at a discussion on the mailing lists for more
information:<br/>
<span class="nobr"><a
href="http://lists.trolltech.com/pipermail/qt4-preview-feedback/2009-November/001114.html">http://lists.trolltech.com/pipermail/qt4-preview-feedback/2009-November/001114.html<sup><img
class="rendericon"
src="http://bugreports.qt.nokia.com/images/icons/linkext7.gif" height="7"
width="7" align="absmiddle" alt="" border="0"/></sup></a></span></p>
--- Comments ---
Don't use P0.
I still think it was a poor design choice on MySQL's part to have a header
called "config.h"
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list