* [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5
@ 2013-12-24 6:53 Fatih Aşıcı
2013-12-24 7:47 ` Thomas Petazzoni
2013-12-25 17:16 ` Thomas Petazzoni
0 siblings, 2 replies; 5+ messages in thread
From: Fatih Aşıcı @ 2013-12-24 6:53 UTC (permalink / raw)
To: buildroot
There are places in Qt's source where headers included with the name of
the module subdirectory (e.g. #include <QtCore/QHash>). Therefore, the
build system passes the top header directory to the compiler; but this
results in a error when building host tools since sysroot/usr/include
directory includes architecture specific system headers.
In order to prevent this, install all Qt headers into a subdirectory in
/usr/include.
Fixes: http://autobuild.buildroot.net/results/4f1/4f16c0b38bdd6e40efcc781c12fae81c0bfabb72/
Signed-off-by: Fatih A??c? <fatih.asici@gmail.com>
---
package/qt5/qt5base/qt5base.mk | 1 +
1 file changed, 1 insertion(+)
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 1b753d3..e46bdeb 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -159,6 +159,7 @@ define QT5BASE_CONFIGURE_CMDS
-v \
-prefix /usr \
-hostprefix $(HOST_DIR)/usr \
+ -headerdir /usr/include/qt5 \
-sysroot $(STAGING_DIR) \
-plugindir /usr/lib/qt/plugins \
-no-rpath \
--
1.8.5.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5
2013-12-24 6:53 [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5 Fatih Aşıcı
@ 2013-12-24 7:47 ` Thomas Petazzoni
2013-12-24 8:15 ` Fatih Aşıcı
2013-12-25 17:16 ` Thomas Petazzoni
1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2013-12-24 7:47 UTC (permalink / raw)
To: buildroot
Dear Fatih A??c?,
On Tue, 24 Dec 2013 08:53:57 +0200, Fatih A??c? wrote:
> There are places in Qt's source where headers included with the name of
> the module subdirectory (e.g. #include <QtCore/QHash>). Therefore, the
> build system passes the top header directory to the compiler; but this
> results in a error when building host tools since sysroot/usr/include
> directory includes architecture specific system headers.
>
> In order to prevent this, install all Qt headers into a subdirectory in
> /usr/include.
>
> Fixes: http://autobuild.buildroot.net/results/4f1/4f16c0b38bdd6e40efcc781c12fae81c0bfabb72/
>
> Signed-off-by: Fatih A??c? <fatih.asici@gmail.com>
With this change, what does the compilation command line of host tools
look like?
To me, this change seems more like work-arounding a problem in the Qt
build system rather than a real fix.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5
2013-12-24 7:47 ` Thomas Petazzoni
@ 2013-12-24 8:15 ` Fatih Aşıcı
2013-12-24 8:22 ` Thomas Petazzoni
0 siblings, 1 reply; 5+ messages in thread
From: Fatih Aşıcı @ 2013-12-24 8:15 UTC (permalink / raw)
To: buildroot
On Tuesday 24 December 2013 09:47:20 Thomas Petazzoni wrote:
> Dear Fatih A??c?,
>
> On Tue, 24 Dec 2013 08:53:57 +0200, Fatih A??c? wrote:
> > There are places in Qt's source where headers included with the name of
> > the module subdirectory (e.g. #include <QtCore/QHash>). Therefore, the
> > build system passes the top header directory to the compiler; but this
> > results in a error when building host tools since sysroot/usr/include
> > directory includes architecture specific system headers.
> >
> > In order to prevent this, install all Qt headers into a subdirectory in
> > /usr/include.
> >
> > Fixes:
> > http://autobuild.buildroot.net/results/4f1/4f16c0b38bdd6e40efcc781c12fae
> > 81c0bfabb72/
> >
> > Signed-off-by: Fatih A??c? <fatih.asici@gmail.com>
>
> With this change, what does the compilation command line of host tools
> look like?
g++ -c -pipe -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -D_REENTRANT -DQT_NO_LIBUDEV -DQT_NO_XCB -DQT_NO_XKBCOMMON -
DQT_BUILD_QMLDEVTOOLS_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -
DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_BOOTSTRAP_LIB -DQT_BOOTSTRAPPED -
DQT_LITE_UNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT_NO_THREAD -DQT_NO_UNICODETABLES -
DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT_NO_TRANSLATION -DQT_QMAKE_LOCATION="/home/fatih/git/buildroot/output/build/qt5base-5.2.0/bin/qmake" -
I/home/fatih/git/buildroot/output/host/usr/mkspecs/linux-g++ -I. -I../../include -I../../include/QtQml -I../../include/QtQml/5.2.0 -I../../include/QtQml/5.2.0/QtQml
-I/home/fatih/git/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/qt5 -I/home/fatih/git/buildroot/output/host/usr/arm-buildroot-
linux-uclibcgnueabi/sysroot/usr/include/qt5/QtCore -I/home/fatih/git/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/qt5/QtXml -
I/home/fatih/git/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/qt5/QtCore/5.2.0 -I/home/fatih/git/buildroot/output/host/usr/arm-
buildroot-linux-uclibcgnueabi/sysroot/usr/include/qt5/QtCore/5.2.0/QtCore -I/home/fatih/git/buildroot/output/host/usr/arm-buildroot-linux-
uclibcgnueabi/sysroot/usr/include/qt5/QtXml/5.2.0 -I/home/fatih/git/buildroot/output/host/usr/arm-buildroot-linux-
uclibcgnueabi/sysroot/usr/include/qt5/QtXml/5.2.0/QtXml -o .obj/qqmljsparser.o ../qml/parser/qqmljsparser.cpp
> To me, this change seems more like work-arounding a problem in the Qt
> build system rather than a real fix.
Upstream states[1] that including qt headers from sysroot is not a problem
since they don't contain anything platform-specific.
[1] https://bugreports.qt-project.org/browse/QTBUG-35330?focusedCommentId=224486&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-224486
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20131224/31cb87b4/attachment-0001.html>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5
2013-12-24 8:15 ` Fatih Aşıcı
@ 2013-12-24 8:22 ` Thomas Petazzoni
0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2013-12-24 8:22 UTC (permalink / raw)
To: buildroot
Dear Fatih A??c?,
On Tue, 24 Dec 2013 10:15:24 +0200, Fatih A??c? wrote:
> g++ -c -pipe -O2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -D_REENTRANT -DQT_NO_LIBUDEV -DQT_NO_XCB -DQT_NO_XKBCOMMON -
> DQT_BUILD_QMLDEVTOOLS_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -
> DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_BOOTSTRAP_LIB -DQT_BOOTSTRAPPED -
> DQT_LITE_UNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT_NO_THREAD -DQT_NO_UNICODETABLES -
> DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT_NO_TRANSLATION -DQT_QMAKE_LOCATION="/home/fatih/git/buildroot/output/build/qt5base-5.2.0/bin/qmake" -
> I/home/fatih/git/buildroot/output/host/usr/mkspecs/linux-g++ -I. -I../../include -I../../include/QtQml -I../../include/QtQml/5.2.0 -I../../include/QtQml/5.2.0/QtQml
> -I/home/fatih/git/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/qt5
This is still really ugly, as it is including target headers when doing
a compilation for the host. If they know what they are doing and know
that including Qt headers is fine and needed, then they should include
them from the Qt source tree and not from the Qt installation tree.
> > To me, this change seems more like work-arounding a problem in the Qt
> > build system rather than a real fix.
>
> Upstream states[1] that including qt headers from sysroot is not a problem
> since they don't contain anything platform-specific.
>
> [1] https://bugreports.qt-project.org/browse/QTBUG-35330?focusedCommentId=224486&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-224486
I don't really agree, but if that's what upstream recommends, then ok
for the patch.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5
2013-12-24 6:53 [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5 Fatih Aşıcı
2013-12-24 7:47 ` Thomas Petazzoni
@ 2013-12-25 17:16 ` Thomas Petazzoni
1 sibling, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2013-12-25 17:16 UTC (permalink / raw)
To: buildroot
Dear Fatih A??c?,
On Tue, 24 Dec 2013 08:53:57 +0200, Fatih A??c? wrote:
> There are places in Qt's source where headers included with the name of
> the module subdirectory (e.g. #include <QtCore/QHash>). Therefore, the
> build system passes the top header directory to the compiler; but this
> results in a error when building host tools since sysroot/usr/include
> directory includes architecture specific system headers.
>
> In order to prevent this, install all Qt headers into a subdirectory in
> /usr/include.
>
> Fixes: http://autobuild.buildroot.net/results/4f1/4f16c0b38bdd6e40efcc781c12fae81c0bfabb72/
>
> Signed-off-by: Fatih A??c? <fatih.asici@gmail.com>
> ---
> package/qt5/qt5base/qt5base.mk | 1 +
> 1 file changed, 1 insertion(+)
Applied, thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-12-25 17:16 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-24 6:53 [Buildroot] [PATCH] qt5: install headers into /usr/include/qt5 Fatih Aşıcı
2013-12-24 7:47 ` Thomas Petazzoni
2013-12-24 8:15 ` Fatih Aşıcı
2013-12-24 8:22 ` Thomas Petazzoni
2013-12-25 17:16 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox