So in trying to address this issue, I took the 4.6.3 source and set it up to cross compile outside of bitbake.  I have a config that works.  The base Qt components are under 25mb so it is in line with GTK.

 

Now, when I update the bitbake recipe to use the same config params it dies with the following:

 

| kernel/qapplication.cpp:3096: warning: unused parameter 'widget'

| kernel/qapplication.cpp: In member function 'void QApplication::setInputContext(QInputContext*)':

| kernel/qapplication.cpp:5321: warning: possible problem detected in invocation of delete operator:

| kernel/qapplication.cpp:156: warning: 'QApplicationPrivate::inputContext' has incomplete type

| ../../include/QtGui/../../src/gui/kernel/qapplication.h:77: warning: forward declaration of 'struct QInputContext'

| kernel/qapplication.cpp:5321: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined.

| kernel/qapplication.cpp:5323: error: invalid use of incomplete type 'struct QInputContext'

| ../../include/QtGui/../../src/gui/kernel/qapplication.h:77: error: forward declaration of 'struct QInputContext'

| kernel/qapplication.cpp: At global scope:

| kernel/qapplication.cpp:5999: warning: unused parameter 'cshape'

| make[1]: *** [.obj/release-shared-emb-auto/qapplication.o] Error 1

| make[1]: *** Waiting for unfinished jobs....

| make[1]: Leaving directory `/home/nik/development/gumstix/tmp/work/armv7a-angstrom-linux-gnueabi/qt4-embedded-4.7.0-r25.1/qt-everywhere-opensource-src-4.7.0/src/gui'

| make: *** [sub-gui-make_default-ordered] Error 2

| FATAL: oe_runmake failed

NOTE: package qt4-embedded-4.7.0-r25.1: task do_compile: Failed

 

Understanding that bitbake can get a bit nested at times, I have changed by qt4-embedded.inc file to set the QT_CONFIG_FLAGS var not append to it.  The remaining required params are added in qt4.inc.

 

This is what I have in qt4-embedded.inc:

QT_CONFIG_FLAGS = " -nomake examples -nomake demos -nomake docs \

                    -fast -no-largefile -no-exceptions -no-accessibility -no-stl -no-qt3support \

                    -no-xmlpatterns -no-phonon -no-phonon-backend -no-svg -no-webkit -no-declarative  -no-glib -no-cups -no-scripttools \

                    -no-script -no-audio-backend -no-multimedia -no-nis \

                    -system-zlib -system-libpng -system-libjpeg \

                    -qt-mouse-tslib -qt-gfx-directfb \

                    -plugin-gfx-directfb -plugin-mouse-tslib \

                    -qtlibinfix ${QT_LIBINFIX} \

    "

 

Seems I am developing a love/hate relationship with bitbake/openembedded.  I have been able to setup qt 4.6/DirectFB/TSLib externally and completely cross compile everything, so there must be some simple concept with these recipes that I am completely over looking.

 

Welcome any input.

 

 

From: Markus Svilans [mailto:msvilans@aeonyx.ca]
Sent: Saturday, November 27, 2010 7:07 PM
To: gumstix-users@lists.sourceforge.net
Subject: Re: [Gumstix-users] QT4 Embedded build question

 

Hi N Twerdochlib,

I did a few things to check into the Qt4 size issue. (I have not yet used Qt4 on the Gumstix, but I plan to start learning it in the near future, so I thought this was a good way to learn one or two things.)

First, I ran "bitbake qt4-embedded" to build all the Qt4 stuff for Gumstix. On my quad core machine, this took around 1 hour.

Next, I went to my "${OVEROTOP}/tmp/deploy/glibc/ipk/armv7a" directory to have a look at the new IPK files created. The Qt4 stuff,  together with MySQL, PostgreSQL, and other assorted stuff, came to 557MB. Clearly too much for the Overo 256MB NAND.

Then I had a closer look at the IPK files actually produced. I removed all files that had the following criteria:


Now the Qt4 files were still a hefty 56MB, but at least that is more likely to fit onto your Overo. (I say "more likely" because the IPK files are compressed, and will expand to fill up a bit more space.) But note that that includes all kinds of libraries that Qt4 uses only if you enable specific features. For your actual installation, you could probably slim it down to under 10MB, after you sit down and look at what you actually need (as Pat S. indicated earlier in the thread).

This is just my first stab at it. Probably someone with more Qt4 knowledge can suggest further ways to reduce the space requirements.

The directory "tmp/work/armv7a-angstrom-linux-gnueabi/qt4-embedded-4.6.2-r19.1/image" is not a good place to look to get a reasonable idea of the space requirements. That directory will contain *everything* that Qt4 can possibly install. However, you saw that multiple IPK files were generated from building the qt4-embedded recipe. This is because the various IPK files pick and choose what they install, to allow you to customize your Qt4 installation to your requirements. I would recommend that it is more useful to look in the "/tmp/deploy/glibc/ipk/armv7a" to see the actual IPK file sizes.

Regards,
Markus.



On 10-11-26 11:46 PM, N Twerdochlib wrote:

my build before I started trying to thin down was something in the range of
667mb (based on du -h output in the
tmp/work/armv7a-angstrom-linux-gnueabi/qt4-embedded-4.6.2-r19.1/image
directory).  I am wondering if I am really looking at the correct directory
now.  The package directory is more a long the lines of the sizes I was
expecting.
 
I have 4.7.0 on an X86 down to 24mb but still don't have a clean bitbake
build.
 
For the 4.7.0 recipe I am completely over writing the QT_CONFIG_FLAGS
variable, but am getting a compile error:
 
make[1]: Entering directory
`/home/nik/development/gumstix/tmp/work/armv7a-angstrom-linux-gnueabi/qt4-em
bedded-4.7.0-r25.1/qt-everywhere-opensource-src-4.7.0/src/gui'
arm-angstrom-linux-gnueabi-g++ -march=armv7-a -mtune=cortex-a8 -mfpu=neon
-mfloat-abi=softfp -mthumb-interwork -mno-thumb -c -include
.pch/release-shared-emb-auto/QtGui
-isystem/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnu
eabi/usr/include -fexpensive-optimizations -frename-registers
-fomit-frame-pointer -O2 -ggdb2 -fpermissive -fvisibility-inlines-hidden
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include/freetype2
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include/mysql
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include/postgresql -pthread
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include/glib-2.0
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/lib/glib-2.0/include -mfpu=neon -Wall -W -D_REENTRANT -fPIC -DQT_SHARED
-DQT_BUILD_GUI_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII
-DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_FAST_OPERATOR_PLUS
-DQT_USE_FAST_CONCATENATION -DQT_HAVE_NEON -DQT_NO_FONTCONFIG
-DQT_NO_OPENTYPE -DQT_NO_STYLE_MAC -DQT_NO_STYLE_WINDOWSVISTA
-DQT_NO_STYLE_WINDOWSXP -DQT_NO_STYLE_GTK -DQT_NO_STYLE_WINDOWSCE
-DQT_NO_STYLE_WINDOWSMOBILE -DQT_NO_STYLE_S60 -DQ_INTERNAL_QAPP_SRC
-DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -D_LARGEFILE64_SOURCE
-D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++ -I. -I../../include/QtCore
-I../../include/QtNetwork -I../../include -I../../include/QtGui
-I.rcc/release-shared-emb-auto -Iimage -I../3rdparty/harfbuzz/src -Idialogs
-I.moc/release-shared-emb-auto -I.uic/release-shared-emb-auto -o
.obj/release-shared-emb-auto/qapplication.o kernel/qapplication.cpp
kernel/qapplication.cpp: In member function 'void
QApplication::setInputContext(QInputContext*)':
kernel/qapplication.cpp:5321: warning: possible problem detected in
invocation of delete operator:
kernel/qapplication.cpp:156: warning: 'QApplicationPrivate::inputContext'
has incomplete type
../../include/QtGui/../../src/gui/kernel/qapplication.h:77: warning: forward
declaration of 'struct QInputContext'
kernel/qapplication.cpp:5321: note: neither the destructor nor the
class-specific operator delete will be called, even if they are declared
when the class is defined.
kernel/qapplication.cpp:5323: error: invalid use of incomplete type 'struct
QInputContext'
../../include/QtGui/../../src/gui/kernel/qapplication.h:77: error: forward
declaration of 'struct QInputContext'
kernel/qapplication.cpp: At global scope:
kernel/qapplication.cpp:5999: warning: unused parameter 'cshape'
make[1]: *** [.obj/release-shared-emb-auto/qapplication.o] Error 1
make[1]: Leaving directory
`/home/nik/development/gumstix/tmp/work/armv7a-angstrom-linux-gnueabi/qt4-em
bedded-4.7.0-r25.1/qt-everywhere-opensource-src-4.7.0/src/gui'
make: *** [sub-gui-make_default] Error 2
 
-----Original Message-----
From: Pat Suwalski [mailto:pat@suwalski.net] 
Sent: Friday, November 26, 2010 5:52 PM
To: gumstix-users@lists.sourceforge.net
Subject: Re: [Gumstix-users] QT4 Embedded build question
 
Just how small do you need it? With the default recipe, my libqtcoree4 
package is 2.8M extracted.
 
I know people here have been changing the recipe, but it's mostly things 
like changing the input plugins to built-ins, and so on.
 
--Pat
 
On 10-11-26 05:16 PM, N Twerdochlib wrote:
I have messages posted to the QtCentre forum.  Moving to 4.7.0 does not
fix
much.  Does/is anyone compiling qt4 embedded under open embedded /gumstix
and not using the canned recipe?
 
It does not seem to make much diff if I use 4.6 or 4.7 either way I can
not
get a small usable library.
 
-----Original Message-----
From: Pat Suwalski [mailto:pat@suwalski.net]
Sent: Friday, November 26, 2010 3:23 PM
To: General mailing list for gumstix users.
Subject: Re: [Gumstix-users] QT4 Embedded build question
 
Sounds like something to ask on the Qt mailing list. You might like to
try 4.7.0 first.
 
--Pat
 
On 10-11-26 03:17 PM, N Twerdochlib wrote:
I have modified the QT_CONFIG_FLAGS to basically include -qconfig
minimal and get the following compile error. This occurs if I try to
build the Qt 4.6.3 source under Ubuntu X86 as well. Thought maybe
someone here ran into this.
 
| arm-angstrom-linux-gnueabi-g++ -march=armv7-a -mtune=cortex-a8
-mfpu=neon -mfloat-abi=softfp -mthumb-interwork -mno-thumb -c
 
 
-isystem/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnu
eabi/usr/include
-fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2
-ggdb2 -fpermissive -fvisibility-inlines-hidden
 
 
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include
 
 
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include/freetype2
 
 
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include/mysql
 
 
-I/home/nik/development/gumstix/tmp/sysroots/armv7a-angstrom-linux-gnueabi/u
sr/include/postgresql
-fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT
-fPIC -DQT_SHARED -DQT_BUILD_NETWORK_LIB -DQT_NO_USING_NAMESPACE
-DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT
-DQT_NO_DEBUG -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE
-I../../mkspecs/linux-g++ -I. -I../../include/QtCore -I../../include
-I../../include/QtNetwork -I.rcc/release-shared-emb-arm -Ikernel
-I.moc/release-shared-emb-arm -o
.obj/release-shared-emb-arm/qtcpserver.o socket/qtcpserver.cpp
 
| access/qnetworkreplyimpl.cpp: In member function 'void
QNetworkReplyImplPrivate::setup(QNetworkAccessManager::Operation, const
QNetworkRequest&, QIODevice*)':
 
| access/qnetworkreplyimpl.cpp:254: error: 'QNetworkAccessHttpBackend'
was not declared in this scope
 
| access/qnetworkreplyimpl.cpp:254: error: parse error in template
argument list
 
| access/qnetworkreplyimpl.cpp:254: error: no matching function for call
to 'qobject_cast(QNetworkAccessBackend*&)'
 
| access/qnetworkreplyimpl.cpp: At global scope:
 
| access/qnetworkreplyimpl.cpp:512: warning: unused parameter 'data'
 
| make[1]: *** [.obj/release-shared-emb-arm/qnetworkreplyimpl.o] Error 1
 
| make[1]: *** Waiting for unfinished jobs....
 
| make[1]: Leaving directory
 
 
`/home/nik/development/gumstix/tmp/work/armv7a-angstrom-linux-gnueabi/qt4-em
bedded-4.6.3-r25.1/qt-everywhere-opensource-src-4.6.3/src/network'
 
| make: *** [sub-network-make_default-ordered] Error 2
 
| FATAL: oe_runmake failed
 
NOTE: package qt4-embedded-4.6.3-r25.1: task do_compile: Failed
 
ERROR: Function 'do_compile' failed (see
 
 
/home/nik/development/gumstix/tmp/work/armv7a-angstrom-linux-gnueabi/qt4-emb
edded-4.6.3-r25.1/temp/log.do_compile.31190
for further information)
 
It seems that the define QT_NO_HTTP is not correctly applied to all
source during the configure.
 
*Nicholas Twerdochlib*
 
*gcci-logo-small*
 
*407-275-3549*
 
*www.gcci.ca*
 
 
 
 
 
----------------------------------------------------------------------------
--
Increase Visibility of Your 3D Game App&   Earn a Chance To Win $500!
Tap into the largest installed PC base&   get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for
grabs.
http://p.sf.net/sfu/intelisp-dev2dev
 
 
 
_______________________________________________
gumstix-users mailing list
gumstix-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gumstix-users
 
 
 
----------------------------------------------------------------------------
--
Increase Visibility of Your 3D Game App&  Earn a Chance To Win $500!
Tap into the largest installed PC base&  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gumstix-users mailing list
gumstix-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gumstix-users
 
 
 
 
----------------------------------------------------------------------------
--
Increase Visibility of Your 3D Game App&  Earn a Chance To Win $500!
Tap into the largest installed PC base&  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gumstix-users mailing list
gumstix-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gumstix-users
 
 
----------------------------------------------------------------------------
--
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gumstix-users mailing list
gumstix-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gumstix-users
 
 
 
------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
gumstix-users mailing list
gumstix-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gumstix-users