Re: [Development] Using gcc to build arm version

2012-10-08 Thread song.7.liu
Another thing: it seems that the libstdc++.so is based on Linux OS, so it can't 
be used for target build...

So for the gcc/g++, is there a standalone library for c++ support ?

Thanks,
Song 

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Monday, October 08, 2012 1:38 PM
To: thiago.macie...@intel.com; development@qt-project.org
Subject: Re: [Development] Using gcc to build arm version

readelf -s -W libsupc++.a | grep UND, still shows:

_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTVN10__cxxabiv121__vmi_class_type_infoE
_ZTVN10__cxxabiv117__class_type_infoE

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Monday, October 08, 2012 1:24 PM
To: development@qt-project.org
Subject: Re: [Development] Using gcc to build arm version

On segunda-feira, 8 de outubro de 2012 15.18.10, Lincoln Ramsay wrote:
 On 08/10/12 15:09, song.7@nokia.com wrote:
  collect2 (4.4.1) is used to link.
 
 If you're linking something that includes C++ you should really use
 g++ as the linker.
 
 If you're going to invoke ld directly, you need to ensure the 
 appropriate flags are set so it includes the C++ runtime.
 
 Apparently the library you want is libsupc++.a and it'll be somewhere 
 in your toolchain/sysroot directory.

libsupc++.a is included in libstdc++.so, which comes with most GCC
installations.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center 
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Using gcc to build arm version

2012-10-08 Thread song.7.liu
Thanks Lincoln, libsupc++.a library is the answer !

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Monday, October 08, 2012 2:16 PM
To: thiago.macie...@intel.com; development@qt-project.org
Subject: Re: [Development] Using gcc to build arm version

Another thing: it seems that the libstdc++.so is based on Linux OS, so it can't 
be used for target build...

So for the gcc/g++, is there a standalone library for c++ support ?

Thanks,
Song 

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Monday, October 08, 2012 1:38 PM
To: thiago.macie...@intel.com; development@qt-project.org
Subject: Re: [Development] Using gcc to build arm version

readelf -s -W libsupc++.a | grep UND, still shows:

_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTVN10__cxxabiv121__vmi_class_type_infoE
_ZTVN10__cxxabiv117__class_type_infoE

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Monday, October 08, 2012 1:24 PM
To: development@qt-project.org
Subject: Re: [Development] Using gcc to build arm version

On segunda-feira, 8 de outubro de 2012 15.18.10, Lincoln Ramsay wrote:
 On 08/10/12 15:09, song.7@nokia.com wrote:
  collect2 (4.4.1) is used to link.
 
 If you're linking something that includes C++ you should really use
 g++ as the linker.
 
 If you're going to invoke ld directly, you need to ensure the 
 appropriate flags are set so it includes the C++ runtime.
 
 Apparently the library you want is libsupc++.a and it'll be somewhere 
 in your toolchain/sysroot directory.

libsupc++.a is included in libstdc++.so, which comes with most GCC
installations.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center 
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Using gcc to build arm version

2012-10-07 Thread song.7.liu
Hi,

We are building the mesa for Qt, and the gcc is used to build out ARM version.
But the bellow symbols is reported as undefined:

_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTVN10__cxxabiv121__vmi_class_type_infoE
_ZTVN10__cxxabiv117__class_type_infoE

These symbols should be provided by compiler itself, right ?
So is there some compile / link flag required ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Using gcc to build arm version

2012-10-07 Thread song.7.liu
collect2 (4.4.1) is used to link.

Thanks,
Song

From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Lincoln Ramsay
Sent: Monday, October 08, 2012 1:00 PM
To: development@qt-project.org
Subject: Re: [Development] Using gcc to build arm version

On 08/10/12 14:57, song.7@nokia.commailto:song.7@nokia.com wrote:
We are building the mesa for Qt, and the gcc is used to build out ARM version.
But the bellow symbols is reported as undefined:

_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTVN10__cxxabiv121__vmi_class_type_infoE
_ZTVN10__cxxabiv117__class_type_infoE

These symbols should be provided by compiler itself, right ?
So is there some compile / link flag required ?

Did you use 'gcc' to link instead of 'g++' ?



--

Link
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Using gcc to build arm version

2012-10-07 Thread song.7.liu
readelf -s -W libsupc++.a | grep UND, still shows:

_ZTVN10__cxxabiv120__si_class_type_infoE
_ZTVN10__cxxabiv121__vmi_class_type_infoE
_ZTVN10__cxxabiv117__class_type_infoE

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Monday, October 08, 2012 1:24 PM
To: development@qt-project.org
Subject: Re: [Development] Using gcc to build arm version

On segunda-feira, 8 de outubro de 2012 15.18.10, Lincoln Ramsay wrote:
 On 08/10/12 15:09, song.7@nokia.com wrote:
  collect2 (4.4.1) is used to link.
 
 If you're linking something that includes C++ you should really use 
 g++ as the linker.
 
 If you're going to invoke ld directly, you need to ensure the 
 appropriate flags are set so it includes the C++ runtime.
 
 Apparently the library you want is libsupc++.a and it'll be somewhere 
 in your toolchain/sysroot directory.

libsupc++.a is included in libstdc++.so, which comes with most GCC
installations.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Perf about loading one 240x320 png image

2012-09-28 Thread song.7.liu
Hi,

I am testing the image loading performance in Qt5, that the image with 
different location (qt resource or file system) and using QImage or QPixmap.

Testing is based on a low end devices, and the result is shared as bellow:

Loading perf (240x320 png image)

from resource

from file system

QImage

1.135s

1.132s

QPixmap

1.146s

1.182s


It seems the performance is really bad,,, does anyone have some insight about 
which place can be the bottleneck ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Text rendering in Qt5

2012-09-24 Thread song.7.liu
Hi,

Is there some wikis or blogs about how does the text rendering work in Qt5 ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] About QML depends on opengl

2012-09-04 Thread song.7.liu
Hi,

We are trying to port the mesa. But there is one question related with OpenGL.

In Linux, we can create OpengGL context using glXCreateContextAttribsARB, then 
glXMakeCurrent will binding this context to a window.
But we don't understand how does the GL operation such as glClearColor etc. 
know what's the current context for drawing ?

For example:
ctx = glXCreateContextAttribsARB( display, bestFbc, 0, True, 
context_attribs );
glXMakeCurrent( display, win, ctx );

glClearColor ( 1, 0.5, 0, 1 );
glClear ( GL_COLOR_BUFFER_BIT );

Thanks,
Song


-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thomas McGuire
Sent: Friday, August 10, 2012 5:19 PM
To: development@qt-project.org; Han Maokun (Nokia-MP/Beijing)
Subject: Re: [Development] About QML depends on opengl

Hi,

On Friday 10 August 2012 10:56:27 song.7@nokia.com wrote:
 From the code, it seems that QML will depend on the opengl, but is 
 there a way to remove such dependency ?
 
 Because our platform doesn't support opengl yet.

It is not possible to remove the OpenGL dependency, the scenegraph code is 
quite deeply integrated into the QtQuick UI elements.
What you can do is use llvmpipe + mesa to get somewhat faster software 
rendering.

Regards,
Thomas
--
Thomas McGuire | thomas.mcgu...@kdab.com | Software Engineer KDAB (Deutschland) 
GmbHCo KG, a KDAB Group company Tel. Germany +49-30-521325470, Sweden (HQ) 
+46-563-540090 KDAB - Qt Experts - Platform-independent software solutions
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] About copying the image buffer with alpha blending

2012-08-29 Thread song.7.liu
Hi,

We found that QPainer::drawImage takes 30~50ms for one 150*114 image, it seems 
a little slow.

One quick optimization to try is: we want to do the memory copy to the backing 
store buffer directly instead of using the PaintRasterEngine.
So from Qt, is there a helper function can copy the memory of image with alpha 
blending ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] FW: how to improve GraphicsView performance

2012-08-21 Thread song.7.liu
Hi,

FYI. Can someone help us here ? thanks very much ;)

Thanks,
Song

From: Jiang Wenjun (Nokia-MP/Beijing)
Sent: Tuesday, August 21, 2012 4:21 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Subject: FW: how to improve GraphicsView performance
Importance: High


Hi, all

I'm using QGraphicsView to implement google weather in a low-end(CPU: 300MHz) 
hardware. All are nice except the performance.
When I set the position of the GraphicsItems, the refresh rate is quite slow. 
Code about item moving is here.

void GraphicsView::mouseMoveEvent(QMouseEvent *event)
{
QPoint current_pos = event-pos();
int deltaY = current_pos.y() - m_lastPos.y();
int current_weatherY = m_currentweatherwidget-pos().y();
if ((current_weatherY + deltaY  -320)  (current_weatherY + deltaY = 0))
{
m_currentweatherwidget-setY(current_weatherY + deltaY);
int forecast_weatherY = m_forecastweatherwidget-pos().y();
m_forecastweatherwidget-setY(forecast_weatherY+deltaY);
}
m_lastPos = event-pos();
event-accept();
}

I tried many methods to optimize the performance, all seem no effect, including:

1.   setCacheMode(QGraphicsView::CacheBackground)

2.   scene-setItemIndexMethod(QGraphicsScene::NoIndex)

3.   setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);

4.   setOptimizationFlags(QGraphicsView::DontAdjustForAntialiasing | 
QGraphicsView::DontSavePainterState | QGraphicsView::DontClipPainter);

5.   QGraphicsItem::setCacheMode(QGraphicsItem::DeviceCoordinateCache) ...

Is there any other idea? Thanks!
Best regards!
-Jiang wenjun

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] About QML depends on opengl

2012-08-14 Thread song.7.liu
Thanks for pointing out the dependency, but it seems that replacing the 
QtQuick2 has bigger effort than adding the opengl support.

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Alpert Alan (Nokia-MP/Brisbane)
Sent: Tuesday, August 14, 2012 2:50 PM
To: development@qt-project.org
Cc: Han Maokun (Nokia-MP/Beijing)
Subject: Re: [Development] About QML depends on opengl

On Fri, 10 Aug 2012 11:18:59 ext Thomas McGuire wrote:
 Hi,
 
 On Friday 10 August 2012 10:56:27 song.7@nokia.com wrote:
  From the code, it seems that QML will depend on the opengl, but is 
  there a way to remove such dependency ?
  
  Because our platform doesn't support opengl yet.
 
 It is not possible to remove the OpenGL dependency, the scenegraph 
 code is quite deeply integrated into the QtQuick UI elements.
 What you can do is use llvmpipe + mesa to get somewhat faster software 
 rendering.

It's also worth pointing out that it isn't QML that depends on openGL, it's the 
QtQuick 2.0 module. You can create your own GUI primitives or controls which 
use software painting, and then use them in QML instead of QtQuick.

--
Alan Alpert
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] 回复: Re: qthread exiting

2012-08-14 Thread song.7.liu
Ok, these two pthrea_cleanup_push/pop are not implemented in our pthread, but i 
think it should be easy to add them. Thanks !

-原信息-
发件人: ext Thiago Macieira
发送:  2012/08/14, 16:28
收件人: development@qt-project.org
主题: Re: [Development] qthread exiting


On terça-feira, 14 de agosto de 2012 07.36.31, song.7@nokia.com wrote:
 Hi,

 When the thread is exiting the destroy_current_thread_data will be called,
 and only if the thread data is adopted, the QThreadPrivate::finish is
 called. But normally the thread data always have the isAdopted with false,
 then this thread 's status is still running even if it's exited.

 So could somebody share when will the QThreadPrivate::finish be called
 during thread exiting ? And what's the QAdoptedThread for? As only creating
 the AdoptedThread then the thread data' isAdopted will be set as true.

Adopted threads are a weird concept you're likely not going to find. The
adopted threads were invented, as far as I remember, to support Qt Jambi, when
threads were created by the JVM instead of by QThread. But it allows one to
use QObjects and even event-loop items in threads not started with QThread.

QThreadPrivate::finish is run by pthreads cleanup solution. See
QThreadPrivate::start:

pthread_cleanup_push(QThreadPrivate::finish, arg);
[...]
thr-run();

pthread_cleanup_pop(1);

Here we have a perfect example of The Boolean Trap, with a C twist.

   void pthread_cleanup_pop(int execute);

   The  pthread_cleanup_pop()  function  removes the routine at the
   top of the stack of clean-up handlers, and  optionally  executes
   it if _execute_ is nonzero.

So pthread_cleanup_pop calls finish(), and it's also called in case the thread
is cancelled.

As for destroy_current_thread_data, it's also run by pthreads, maybe at a
different moment. It's a callback by the pthread_specific, added by
pthread_key_create in create_current_thread_data_key.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] perl version required in latest Qt5

2012-08-12 Thread song.7.liu
Hi,

I remember that Perl 5.8 could work with Qt5 alpha, but it seems that a higher 
version of perl is required in latest Qt5.
So which version of perl should be used now ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] About QML depends on opengl

2012-08-10 Thread song.7.liu
Hi,

From the code, it seems that QML will depend on the opengl, but is there a way 
to remove such dependency ?
Because our platform doesn't support opengl yet.

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] QtGui depends on libPlatformSupport.a

2012-08-02 Thread song.7.liu
Hi,

From the Qt build system, does any file decide the QtGui depending on the 
PlatformSupport lib ?

Any information is appreciated ;)

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] how to reduce the relocation -- Use static qt libraries

2012-07-29 Thread song.7.liu
Hi,

I want to share some result about the relocation during the loading (with 
RTLD_LAZY).

Relocation count for single so (libqt5) + without optimization:
R_ARM_GLOB_DAT: 1585
R_ARM_RELATIVE: 9823
R_ARM_ABS32: 19489
R_ARM_JUMP_SLOT: 16998

Relocation count for single so (libqt5) + with optimization:
R_ARM_GLOB_DAT: 1578
R_ARM_RELATIVE: 28227
R_ARM_ABS32: 435
R_ARM_JUMP_SLOT: 290

And the optimization done here is only about changing the visibility of 
exported symbols from default to protected, thanks Thiago's blog ;).
So:

- the R_ARM_JUMP_SLOT relocation is reduced significantly,
   but which is only happened at run time (as RTLD_LAZY), so it's irrelevant 
with the loading performance.

- the R_ARM_RELATIVE relocation is increase but this type relocation is very 
fast.

- actually for loading time, the bottleneck is the R_ARM_ABS32 relocation, 
which is reduced around 97% now !

Finally the overall loading time is reduced from ~10-20s to ~1s...

But I still have some question about the R_ARM_ABS32 relocation.

It seems if the function is virtual (with default visibility), then it will 
be added into .rel.dyn as the R_ARM_ABS32 type, for example:
007b0124  0011a802 R_ARM_ABS3200311e4b   
_ZN20QEventDispatcherUNIX13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE

Could someone help with below:
1. why the virtual function with default visibility needs relocation even if 
it's implemented inside ?
2. when changed to protected visibility, I guess it's optimized to add a 
GOT.PLT entry as a R_ARM_RELATIVE relocation, is that true ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Tuesday, July 24, 2012 10:29 PM
To: development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

On terça-feira, 24 de julho de 2012 13.22.25, song.7@nokia.com wrote:
 Yes, the bottleneck of the loading now is the local relocations 
 instead of inter-library's.
 
 So what we want to do will be reducing the number of local relocation.
 
 Based on my understanding, this local relocation should be caused by 
 the symbol inter-positioning.

That's not exactly the case. Some types of relocations do permit symbol 
interpositioning. But some types of code require relocations even if they're 
not interposable.

In my listing, all the local relocations are non-interposable.

More information:
http://www.macieira.org/blog/2012/01/sorry-state-of-dynamic-libraries-on-
linux/
http://www.macieira.org/blog/2012/01/update-and-benchmark-on-the-dynamic-
library-proposals/

 And from gcc option -Bsymbolic:
 
 When creating a shared library, bind references to global symbols to 
 the definition within the shared library, if any. Normally, it is 
 possible for a program linked against a shared library to override the 
 definition within the shared library. This option is only meaningful 
 on ELF platforms which support shared libraries. 
 
 But for my case, it's not needed to override the definition within the 
 libqt5.so.

Yes, it is.

But you didn't realise that your code requires relocations even if the symbols 
can't be overridden.

In order to do that, you need a fully position *dependent* code that can't be 
moved. Executables on Linux are like that, but all libraries are movable in 
memory, even those compiled without -fPIC.

Since you're not running Linux, check if your OS supports that. Note that 
you'll need to know the exact load address at build time and that it must match 
the loaded address for the ROM if you want to do XIP.

 So, besides the prelink solution, I think the compiler (I mean
 armlink) should provide the ability to disable this symbol 
 inter-positioning, just like the -Bsymbolic in gcc.
 
 Does anyone have idea from the compiler point of view ?

Sorry, you're barking up the wrong tree.

Your only option to reduce the number of relocations is to prelink to the exact 
load address. There are two ways of doing that:

1) the ELF prelinker, which prelinks all relocations to a given address, but 
does still allow relocating if the shared object is loaded at a different 
address. The code is PIC, so XIP should work just fine.

2) compile without PIC and prelink at a specific address at link time, which 
means that the code must be loaded there or it will fail to run. This is the 
Windows DLL model.

 
 Also I see that Qt also uses the -Bsymbolic-functions to do some 
 optimization, is that similar case to reduce the relocation ?

Yes. Read my blogs for more detail.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list

Re: [Development] how to reduce the relocation -- Use static qt libraries

2012-07-29 Thread song.7.liu
Probably, I know that the R_ARM_ABS32 is about *reference* the address of a 
function.
For C++ virtual class, then the virtual table will not know the actual address 
of the virtual functions, which is with _default_ visibility. So a R_ARM_ABS32 
relocation is needed.

After changed with _protected_ visibility, that kind of relocation is reduced, 
but I still don't know why more R_ARM_RELATIVE relocation introduced.

Anything wrong please correct me ;-)

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Sunday, July 29, 2012 4:13 PM
To: thiago.macie...@intel.com; development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

Hi,

I want to share some result about the relocation during the loading (with 
RTLD_LAZY).

Relocation count for single so (libqt5) + without optimization:
R_ARM_GLOB_DAT: 1585
R_ARM_RELATIVE: 9823
R_ARM_ABS32: 19489
R_ARM_JUMP_SLOT: 16998

Relocation count for single so (libqt5) + with optimization:
R_ARM_GLOB_DAT: 1578
R_ARM_RELATIVE: 28227
R_ARM_ABS32: 435
R_ARM_JUMP_SLOT: 290

And the optimization done here is only about changing the visibility of 
exported symbols from default to protected, thanks Thiago's blog ;).
So:

- the R_ARM_JUMP_SLOT relocation is reduced significantly,
   but which is only happened at run time (as RTLD_LAZY), so it's irrelevant 
with the loading performance.

- the R_ARM_RELATIVE relocation is increase but this type relocation is very 
fast.

- actually for loading time, the bottleneck is the R_ARM_ABS32 relocation, 
which is reduced around 97% now !

Finally the overall loading time is reduced from ~10-20s to ~1s...

But I still have some question about the R_ARM_ABS32 relocation.

It seems if the function is virtual (with default visibility), then it will 
be added into .rel.dyn as the R_ARM_ABS32 type, for example:
007b0124  0011a802 R_ARM_ABS3200311e4b   
_ZN20QEventDispatcherUNIX13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE

Could someone help with below:
1. why the virtual function with default visibility needs relocation even if 
it's implemented inside ?
2. when changed to protected visibility, I guess it's optimized to add a 
GOT.PLT entry as a R_ARM_RELATIVE relocation, is that true ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Tuesday, July 24, 2012 10:29 PM
To: development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

On terça-feira, 24 de julho de 2012 13.22.25, song.7@nokia.com wrote:
 Yes, the bottleneck of the loading now is the local relocations 
 instead of inter-library's.
 
 So what we want to do will be reducing the number of local relocation.
 
 Based on my understanding, this local relocation should be caused by 
 the symbol inter-positioning.

That's not exactly the case. Some types of relocations do permit symbol 
interpositioning. But some types of code require relocations even if they're 
not interposable.

In my listing, all the local relocations are non-interposable.

More information:
http://www.macieira.org/blog/2012/01/sorry-state-of-dynamic-libraries-on-
linux/
http://www.macieira.org/blog/2012/01/update-and-benchmark-on-the-dynamic-
library-proposals/

 And from gcc option -Bsymbolic:
 
 When creating a shared library, bind references to global symbols to 
 the definition within the shared library, if any. Normally, it is 
 possible for a program linked against a shared library to override the 
 definition within the shared library. This option is only meaningful 
 on ELF platforms which support shared libraries. 
 
 But for my case, it's not needed to override the definition within the 
 libqt5.so.

Yes, it is.

But you didn't realise that your code requires relocations even if the symbols 
can't be overridden.

In order to do that, you need a fully position *dependent* code that can't be 
moved. Executables on Linux are like that, but all libraries are movable in 
memory, even those compiled without -fPIC.

Since you're not running Linux, check if your OS supports that. Note that 
you'll need to know the exact load address at build time and that it must match 
the loaded address for the ROM if you want to do XIP.

 So, besides the prelink solution, I think the compiler (I mean
 armlink) should provide the ability to disable this symbol 
 inter-positioning, just like the -Bsymbolic in gcc.
 
 Does anyone have idea from the compiler point of view ?

Sorry, you're barking up the wrong tree.

Your only option to reduce the number of relocations is to prelink to the exact 
load address. There are two ways of doing that:

1) the ELF

Re: [Development] how to reduce the relocation -- Use static qt libraries

2012-07-29 Thread song.7.liu
 After changed with _protected_ visibility, that kind of relocation is 
 reduced, but I still don't know why more R_ARM_RELATIVE relocation introduced.

Answer my own question, that is because the loading address of the module needs 
to be added to know actual address of each virtual functions.

So for the qt(5), should we change all the exported symbol 's visibility to 
_protected_ ? Or is there still some exited use case to use _default_ 
visibility ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Sunday, July 29, 2012 6:02 PM
To: thiago.macie...@intel.com; development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

Probably, I know that the R_ARM_ABS32 is about *reference* the address of a 
function.
For C++ virtual class, then the virtual table will not know the actual address 
of the virtual functions, which is with _default_ visibility. So a R_ARM_ABS32 
relocation is needed.

After changed with _protected_ visibility, that kind of relocation is reduced, 
but I still don't know why more R_ARM_RELATIVE relocation introduced.

Anything wrong please correct me ;-)

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Sunday, July 29, 2012 4:13 PM
To: thiago.macie...@intel.com; development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

Hi,

I want to share some result about the relocation during the loading (with 
RTLD_LAZY).

Relocation count for single so (libqt5) + without optimization:
R_ARM_GLOB_DAT: 1585
R_ARM_RELATIVE: 9823
R_ARM_ABS32: 19489
R_ARM_JUMP_SLOT: 16998

Relocation count for single so (libqt5) + with optimization:
R_ARM_GLOB_DAT: 1578
R_ARM_RELATIVE: 28227
R_ARM_ABS32: 435
R_ARM_JUMP_SLOT: 290

And the optimization done here is only about changing the visibility of 
exported symbols from default to protected, thanks Thiago's blog ;).
So:

- the R_ARM_JUMP_SLOT relocation is reduced significantly,
   but which is only happened at run time (as RTLD_LAZY), so it's irrelevant 
with the loading performance.

- the R_ARM_RELATIVE relocation is increase but this type relocation is very 
fast.

- actually for loading time, the bottleneck is the R_ARM_ABS32 relocation, 
which is reduced around 97% now !

Finally the overall loading time is reduced from ~10-20s to ~1s...

But I still have some question about the R_ARM_ABS32 relocation.

It seems if the function is virtual (with default visibility), then it will 
be added into .rel.dyn as the R_ARM_ABS32 type, for example:
007b0124  0011a802 R_ARM_ABS3200311e4b   
_ZN20QEventDispatcherUNIX13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE

Could someone help with below:
1. why the virtual function with default visibility needs relocation even if 
it's implemented inside ?
2. when changed to protected visibility, I guess it's optimized to add a 
GOT.PLT entry as a R_ARM_RELATIVE relocation, is that true ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Tuesday, July 24, 2012 10:29 PM
To: development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

On terça-feira, 24 de julho de 2012 13.22.25, song.7@nokia.com wrote:
 Yes, the bottleneck of the loading now is the local relocations 
 instead of inter-library's.
 
 So what we want to do will be reducing the number of local relocation.
 
 Based on my understanding, this local relocation should be caused by 
 the symbol inter-positioning.

That's not exactly the case. Some types of relocations do permit symbol 
interpositioning. But some types of code require relocations even if they're 
not interposable.

In my listing, all the local relocations are non-interposable.

More information:
http://www.macieira.org/blog/2012/01/sorry-state-of-dynamic-libraries-on-
linux/
http://www.macieira.org/blog/2012/01/update-and-benchmark-on-the-dynamic-
library-proposals/

 And from gcc option -Bsymbolic:
 
 When creating a shared library, bind references to global symbols to 
 the definition within the shared library, if any. Normally, it is 
 possible for a program linked against a shared library to override the 
 definition within the shared library. This option is only meaningful 
 on ELF platforms which support shared libraries. 
 
 But for my case, it's not needed to override the definition within the 
 libqt5.so.

Yes, it is.

But you didn't realise that your code requires relocations even if the symbols

Re: [Development] how to reduce the relocation -- Use static qt libraries

2012-07-29 Thread song.7.liu
 Wow! Any chance you can blog about this somewhere? If you don't, I will based 
 on your data.

No, I don't have a public blog. So please go ahead, thanks !

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Sunday, July 29, 2012 9:10 PM
To: development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

On domingo, 29 de julho de 2012 08.13.20, song.7@nokia.com wrote:
 - actually for loading time, the bottleneck is the R_ARM_ABS32 
 relocation, which is reduced around 97% now !
 
 Finally the overall loading time is reduced from ~10-20s to ~1s...

Wow! Any chance you can blog about this somewhere? If you don't, I will based 
on your data.

 But I still have some question about the R_ARM_ABS32 relocation.
 
 It seems if the function is virtual (with default visibility), then 
 it will be added into .rel.dyn as the R_ARM_ABS32 type, for example: 007b0124
 0011a802 R_ARM_ABS3200311e4b  
 _ZN20QEventDispatcherUNIX13processEventsE6QFlagsIN10QEventLoop17Proces
 sEven
 tsFlagEE
 
 Could someone help with below:
 1. why the virtual function with default visibility needs relocation 
 even if it's implemented inside ?

That's what default means: the symbol can be interposed by another, from a 
different library. It is possible that another library implements a different 
version of this function.

If it weren't like that, if it resolved to the local library, it would be 
behaviour of protected visibility. That is:

 2. when changed to protected visibility, I guess it's optimized to 
 add a GOT.PLT entry as a R_ARM_RELATIVE relocation, is that true ?

The virtual table gets a relative relocation, true. Virtual calls don't need 
PLT entries since they're always indirect. The PLT for a virtual function only 
shows up if that function is called non-virtually: that is, from the 
constructor, when the full class name was specified or when the compiler could 
prove what class the object is.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] how to reduce the relocation -- Use static qt libraries

2012-07-24 Thread song.7.liu
Hi,

Finally we can build out and load the libqt5.so successfully, but the loading 
is still very slow because too many symbols are to be relocated.
Even many of these relocated symbols are inside the libqt5.so, we suppose they 
should be resolved during the link time instead of loading time.

And let's take the analogclock (from qtbase/examples/widgets) for example:

void AnalogClock::paintEvent(QPaintEvent *)
{
... ...
}

This paintEvent is implemented inside the analogclock.cpp, but readelf -r 
analogclock shows that:

Relocation section '.rel.dyn' at offset 0x1b08 contains 72 entries: 
 
 Offset InfoTypeSym.Value  Sym. Name
... ...
b090  6f02 R_ARM_ABS32   2933   _ZN11AnalogClock10pain
... ...

We think this is not expected, so is there a way to avoid such unnecessary 
relocation ?

Btw, I already test to build the qt with -reduce-relocation but still got 
same result.

Thanks,
Song

-Original Message-
From: Mcgovern Rohan (Nokia-MP/Brisbane) 
Sent: Tuesday, July 24, 2012 12:23 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: Lan Peng-Peter (Nokia-MP/Beijing); Storm-Olsen Marius (Nokia-MP/Austin); 
development; thiago.macieira
Subject: RE: [Development] Use static qt libraries
Importance: High

Liu Song.7 (Nokia-MP/Beijing) said:
 Thanks, are such undefined symbols normal ? And is there a way to fix it ?

Right now, the only thing which comes to mind is if you have somehow mixed some 
-frtti and -fno-rtti objects.

 
 -Original Message-
 From: Mcgovern Rohan (Nokia-MP/Brisbane)
 Sent: Tuesday, July 24, 2012 11:58 AM
 To: Liu Song.7 (Nokia-MP/Beijing)
 Cc: Lan Peng-Peter (Nokia-MP/Beijing); Storm-Olsen Marius 
 (Nokia-MP/Austin); development; thiago.macieira
 Subject: Re: [Development] Use static qt libraries
 Importance: High
 
 song.7@nokia.com said:
  Hi,
  
  Now we can build out the single libqt5.so (using ARM toolchain) by:
  
  OPTS += -static  to create the static qt libs
  ar -x libQtXX.a to extract the .o files
  armlink --fpic --shared *.o -o libqt5.so to generate final 
  single so
  
  But the readelf -s libqt5.so | grep UND:
  
   4:  0 OBJECT  WEAK   DEFAULT  UND _ZTI12QFocusHelper
   5:  0 OBJECT  WEAK   DEFAULT  UND _ZTI17QAbstractUndoItem
   6:  0 OBJECT  WEAK   DEFAULT  UND _ZTI19QStaticTextUserData
   7:  0 OBJECT  WEAK   DEFAULT  UND _ZTI22QItemEditorCreatorB
   8:  0 OBJECT  WEAK   DEFAULT  UND _ZTI26QAbstractDynamicMet
   9:  0 OBJECT  WEAK   DEFAULT  UND _ZTI28QNetworkConfigurati
  
  Does anyone know what is this mangled symbol _ZTIXX in C++ ?
  
 
 The 'c++filt' program can answer this.
 
   $ echo _ZTI12QFocusHelper | c++filt
   typeinfo for QFocusHelper
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] how to reduce the relocation -- Use static qt libraries

2012-07-24 Thread song.7.liu
More information that from gcc the -Wl,-Bsymbolic can be used to bind 
references to global symbols to the definition within the so, if any.
So what's the symbolic consideration for ARM toolchain in qt ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Tuesday, July 24, 2012 2:40 PM
To: Storm-Olsen Marius (Nokia-MP/Austin); thiago.macie...@intel.com; 
development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

Hi,

Finally we can build out and load the libqt5.so successfully, but the loading 
is still very slow because too many symbols are to be relocated.
Even many of these relocated symbols are inside the libqt5.so, we suppose they 
should be resolved during the link time instead of loading time.

And let's take the analogclock (from qtbase/examples/widgets) for example:

void AnalogClock::paintEvent(QPaintEvent *) {
... ...
}

This paintEvent is implemented inside the analogclock.cpp, but readelf -r 
analogclock shows that:

Relocation section '.rel.dyn' at offset 0x1b08 contains 72 entries: 
 
 Offset InfoTypeSym.Value  Sym. Name
... ...
b090  6f02 R_ARM_ABS32   2933   _ZN11AnalogClock10pain
... ...

We think this is not expected, so is there a way to avoid such unnecessary 
relocation ?

Btw, I already test to build the qt with -reduce-relocation but still got 
same result.

Thanks,
Song

-Original Message-
From: Mcgovern Rohan (Nokia-MP/Brisbane)
Sent: Tuesday, July 24, 2012 12:23 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: Lan Peng-Peter (Nokia-MP/Beijing); Storm-Olsen Marius (Nokia-MP/Austin); 
development; thiago.macieira
Subject: RE: [Development] Use static qt libraries
Importance: High

Liu Song.7 (Nokia-MP/Beijing) said:
 Thanks, are such undefined symbols normal ? And is there a way to fix it ?

Right now, the only thing which comes to mind is if you have somehow mixed some 
-frtti and -fno-rtti objects.

 
 -Original Message-
 From: Mcgovern Rohan (Nokia-MP/Brisbane)
 Sent: Tuesday, July 24, 2012 11:58 AM
 To: Liu Song.7 (Nokia-MP/Beijing)
 Cc: Lan Peng-Peter (Nokia-MP/Beijing); Storm-Olsen Marius 
 (Nokia-MP/Austin); development; thiago.macieira
 Subject: Re: [Development] Use static qt libraries
 Importance: High
 
 song.7@nokia.com said:
  Hi,
  
  Now we can build out the single libqt5.so (using ARM toolchain) by:
  
  OPTS += -static  to create the static qt libs
  ar -x libQtXX.a to extract the .o files
  armlink --fpic --shared *.o -o libqt5.so to generate final 
  single so
  
  But the readelf -s libqt5.so | grep UND:
  
   4:  0 OBJECT  WEAK   DEFAULT  UND _ZTI12QFocusHelper
   5:  0 OBJECT  WEAK   DEFAULT  UND _ZTI17QAbstractUndoItem
   6:  0 OBJECT  WEAK   DEFAULT  UND _ZTI19QStaticTextUserData
   7:  0 OBJECT  WEAK   DEFAULT  UND _ZTI22QItemEditorCreatorB
   8:  0 OBJECT  WEAK   DEFAULT  UND _ZTI26QAbstractDynamicMet
   9:  0 OBJECT  WEAK   DEFAULT  UND _ZTI28QNetworkConfigurati
  
  Does anyone know what is this mangled symbol _ZTIXX in C++ ?
  
 
 The 'c++filt' program can answer this.
 
   $ echo _ZTI12QFocusHelper | c++filt
   typeinfo for QFocusHelper
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-24 Thread song.7.liu
Thanks ! Last one is: 9:  0 OBJECT  WEAK   DEFAULT  UND 
_ZTI28QNetworkConfigurationPrivate.

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Tuesday, July 24, 2012 7:07 PM
To: development@qt-project.org
Subject: Re: [Development] Use static qt libraries

On terça-feira, 24 de julho de 2012 12.13.27, Thiago Macieira wrote:
 QFocusHelper

This is a class defined in a .cpp, deriving from QWidget. So it has virtual 
methods by way of inheritance.

But since it's in a .cpp, we have to conclude it's a compiler bug.

 QAbstractUndoItem

This is a real, abstract class with pure virtuals, with a Q_GUI_EXPORT (!) and 
an inline (!!) destructor found in the .h (!!!).

The destructor needs to be moved to a .cpp and de-inlined.

 QStaticTextUserData

This is a private class, with a virtual inline destructor. The class is derived 
from in QtOpenGL.

The destructor should be de-inlined and moved to the .cpp.

 QItemEditorCreatorBase

Same as QAbstractUndoItem and same recommendations.

 QNetworkConfiguration

QNetworkConfiguration has no virtual methods, so there should be no TI emitted 
for it. In fact, this is the odd-man out class in this list, so much so that I 
doubt that it's QNetworkConfiguration.

The OP posted a list output from readelf, which cuts symbols. I'm going to 
guess here that it was either QNetworkConfigurationManager or 
QNetworkConfigurationManagerPrivate. Both classes have virtuals, both are 
exported from QtNetwork and both have their non-inline destructors in a .cpp 
file.

Any of these three classes indicate a compiler bug.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] how to reduce the relocation -- Use static qt libraries

2012-07-24 Thread song.7.liu
Yes, the bottleneck of the loading now is the local relocations instead of 
inter-library's.

So what we want to do will be reducing the number of local relocation.

Based on my understanding, this local relocation should be caused by the 
symbol inter-positioning.
And from gcc option -Bsymbolic:

When creating a shared library, bind references to global symbols to the 
definition within the shared library, if any. Normally, it is possible for a 
program linked against a shared library to override the definition within the 
shared library. This option is only meaningful on ELF platforms which support 
shared libraries.


But for my case, it's not needed to override the definition within the 
libqt5.so.
So, besides the prelink solution, I think the compiler (I mean armlink) should 
provide the ability to disable this symbol inter-positioning, just like the 
-Bsymbolic in gcc.

Does anyone have idea from the compiler point of view ?

Also I see that Qt also uses the -Bsymbolic-functions to do some 
optimization, is that similar case to reduce the relocation ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Tuesday, July 24, 2012 6:20 PM
To: development@qt-project.org
Subject: Re: [Development] how to reduce the relocation -- Use static qt 
libraries

On terça-feira, 24 de julho de 2012 08.42.29, song.7@nokia.com wrote:
 Thanks, but can you detail more about the ELF pre-linking ?

/sbin/prelink

Indeed, I think prelinking is the only solution for your case. Given the 
statistics I posted on another email, the merging of libraries will not help a 
lot since the number of relocations that disappear is small.

But note that ELF prelinking requires that the operating system supports it. 
We know that Linux does, but you mentioned that you're using something 
proprietary.

For me:
$ prelink -p | grep '^/.*Qt'
/home/thiago/obj/qt/qt-4.8-release/lib/libQt3Support.so.4.8.0 [0xdb627b48]
0x00383480-0x003834ce5bf8:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtTest.so.4.8.0 [0x9d13ac84]
0x00381a60-0x00381a828af8:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtGui.so.4.8.0 [0x978b2ec7]
0x00381940-0x00381a189710:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtSql.so.4.8.0 [0x4bc61e3d]
0x003825e0-0x003826042ac0:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtWebKit.so.4.9.0 [0xfb691ee5]
0x00382de0-0x00382fac4bf8:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtMultimedia.so.4.8.0 [0x71012a29]
0x00381fc0-0x00381fe2cd30:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtNetwork.so.4.8.0 [0x2d86dad0]
0x003817a0-0x003817d6fd98:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtCore.so.4.8.0 [0xaad2da54]
0x00381600-0x003816502e30:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtXmlPatterns.so.4.8.0 [0xe849dcfd]
0x00383180-0x003831e75900:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtSvg.so.4.8.0 [0x8f513e75]
0x00381ae0-0x00381b058d68:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtDBus.so.4.8.0 [0x73fc0f52]
0x00381720-0x003817489eb0:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtOpenGL.so.4.8.0 [0x170b3bfa]
0x00383000-0x0038303098a0:
/home/thiago/obj/qt/qt-4.8-release/lib/libQtXml.so.4.8.0 [0xc9f92297]
0x00381760-0x003817844f28:

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Latest stable Qt5 code

2012-07-23 Thread song.7.liu
Hi,

Can somebody point out how to get the latest stale Qt5 code ?
Is there some any tag for that ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Latest stable Qt5 code

2012-07-23 Thread song.7.liu
Thanks, but about when will we have a beta release ?

-Original Message-
From: Storm-Olsen Marius (Nokia-MP/Austin) 
Sent: Monday, July 23, 2012 9:40 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: Re: [Development] Latest stable Qt5 code
Importance: High

On 23/07/2012 08:34, ext song.7@nokia.com wrote:
 Hi,

 Can somebody point out how to get the latest stale Qt5 code ?

The latest stale ;) Qt5 code should be what you get when you check out the 
master branch of qt5.git, as it and its submodules are only updated when the 
all the autotests pass (which in _theory_ should mean stable).

 Is there some any tag for that ?

No, not until we have a Beta release. There's an alpha tag, but that's per 
definition not a stable release, and it's really old by now.

--
.marius
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Use static qt libraries

2012-07-23 Thread song.7.liu
Hi,

To use the static qt libraries, now I can build out all the libQtCore.a , 
libQtGui.a , libQtWidgets.a etc with option -static.
Also I can create a new shared object libQtMaster.so which is composed of all 
of above static objects (libQtXXX.a),
then I want my Qt application be dynamic linked with this libQtMain.so by:

QT += master

so how to create this new QT module master that can be used from the .pro 
files ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread song.7.liu
Thanks for help. Is there any tool to link all of the separate shared libraries 
into one single shared library (libqt5.so) ?

Thanks,
Song

-Original Message-
From: Storm-Olsen Marius (Nokia-MP/Austin) 
Sent: Monday, July 23, 2012 10:12 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: Re: [Development] Use static qt libraries
Importance: High

On 23/07/2012 08:56, ext song.7@nokia.com wrote:
 Hi,

 To use the static qt libraries, now I can build out all the 
 libQtCore.a , libQtGui.a , libQtWidgets.a etc with option -static.

 Also I can create a new shared object libQtMaster.so which is composed 
 of all of above static objects (libQtXXX.a),

This would be all wrong.

The only reason for compiling several modules into one would be (of the top of 
my head) to
 1) Get cross-module optimizations (which indicate also cross-compile-unit 
optimizations, so you'll need a bin tools chain which can do that) to a) reduce 
code size, and b) improve performance.
 2) Reduce number of exported symbols.
 3) Faster shared library load time.

To do this you would have to compile each of the modules as normal (shared 
library), and then have a step which links all of the object files into one 
shared library, maybe called just qt5.so

Configuring as static only to gather them into a shared lib is wrong.


 then I want my Qt application be dynamic linked with this libQtMain.so by:

 QT += master

 so how to create this new QT module master that can be used from the 
 .pro files ?

This is also wrong, since this would require everyone to change the way they 
create Qt projects. In this case you would want
 QT += core gui network
to do the same thing, simply to add linking to this new qt5.so library.

That way you can keep projects working both with and without this magical 
single library without further adjustments.


-- 
.marius
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread song.7.liu
OK, based on my current understanding, do you mean that:
I still need to build all of the current qt modules as static objects, which 
can be done by OPTS += -static or by other way ?

Thanks,
Song

-Original Message-
From: Storm-Olsen Marius (Nokia-MP/Austin) 
Sent: Monday, July 23, 2012 10:35 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: RE: [Development] Use static qt libraries
Importance: High

No, you will need to link it all at once, since an .so is considered a final 
product.

You might be able to mess around with a qt5-massive-library.pro, which 
include()s all the module .pro files you want in the final library.
It's unknown how much tweaking you will need to achieve this final all-in-one 
module though. This is uncharted territory.

(Btw, with GCC you _can_ do
gcc -shared qt5.so -Wl,--whole-archive lib1.a lib2.a lib3.a 
-Wl,--no-whole-archive but I have no idea if the end result would be usable in 
Qt's case. I doubt it.)

--
.marius


 -Original Message-
 From: Liu Song.7 (Nokia-MP/Beijing)
 Sent: Monday, July 23, 2012 9:16 AM
 To: Storm-Olsen Marius (Nokia-MP/Austin)
 Cc: development@qt-project.org
 Subject: RE: [Development] Use static qt libraries
 
 Thanks for help. Is there any tool to link all of the separate shared 
 libraries
 into one single shared library (libqt5.so) ?
 
 Thanks,
 Song
 
 -Original Message-
 From: Storm-Olsen Marius (Nokia-MP/Austin)
 Sent: Monday, July 23, 2012 10:12 PM
 To: Liu Song.7 (Nokia-MP/Beijing)
 Cc: development@qt-project.org
 Subject: Re: [Development] Use static qt libraries
 Importance: High
 
 On 23/07/2012 08:56, ext song.7@nokia.com wrote:
  Hi,
 
  To use the static qt libraries, now I can build out all the
  libQtCore.a , libQtGui.a , libQtWidgets.a etc with option -static.
 
  Also I can create a new shared object libQtMaster.so which is composed
  of all of above static objects (libQtXXX.a),
 
 This would be all wrong.
 
 The only reason for compiling several modules into one would be (of the top
 of my head) to
  1) Get cross-module optimizations (which indicate also cross-compile-unit
 optimizations, so you'll need a bin tools chain which can do that) to a) 
 reduce
 code size, and b) improve performance.
  2) Reduce number of exported symbols.
  3) Faster shared library load time.
 
 To do this you would have to compile each of the modules as normal (shared
 library), and then have a step which links all of the object files into one
 shared library, maybe called just qt5.so
 
 Configuring as static only to gather them into a shared lib is wrong.
 
 
  then I want my Qt application be dynamic linked with this libQtMain.so by:
 
  QT += master
 
  so how to create this new QT module master that can be used from the
  .pro files ?
 
 This is also wrong, since this would require everyone to change the way they
 create Qt projects. In this case you would want
  QT += core gui network
 to do the same thing, simply to add linking to this new qt5.so library.
 
 That way you can keep projects working both with and without this magical
 single library without further adjustments.
 
 
 --
 .marius
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread song.7.liu
 then have a step which links all of the object files into one shared library, 
 maybe called just qt5.so

Or do you mean that I need create a qt5-massive-library.pro to gather all the 
needed object file (.obj) from each module
instead of the static object (.a) of each module ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Monday, July 23, 2012 10:39 PM
To: Storm-Olsen Marius (Nokia-MP/Austin)
Cc: development@qt-project.org
Subject: Re: [Development] Use static qt libraries

OK, based on my current understanding, do you mean that:
I still need to build all of the current qt modules as static objects, which 
can be done by OPTS += -static or by other way ?

Thanks,
Song

-Original Message-
From: Storm-Olsen Marius (Nokia-MP/Austin)
Sent: Monday, July 23, 2012 10:35 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: RE: [Development] Use static qt libraries
Importance: High

No, you will need to link it all at once, since an .so is considered a final 
product.

You might be able to mess around with a qt5-massive-library.pro, which 
include()s all the module .pro files you want in the final library.
It's unknown how much tweaking you will need to achieve this final all-in-one 
module though. This is uncharted territory.

(Btw, with GCC you _can_ do
gcc -shared qt5.so -Wl,--whole-archive lib1.a lib2.a lib3.a 
-Wl,--no-whole-archive but I have no idea if the end result would be usable in 
Qt's case. I doubt it.)

--
.marius


 -Original Message-
 From: Liu Song.7 (Nokia-MP/Beijing)
 Sent: Monday, July 23, 2012 9:16 AM
 To: Storm-Olsen Marius (Nokia-MP/Austin)
 Cc: development@qt-project.org
 Subject: RE: [Development] Use static qt libraries
 
 Thanks for help. Is there any tool to link all of the separate shared 
 libraries into one single shared library (libqt5.so) ?
 
 Thanks,
 Song
 
 -Original Message-
 From: Storm-Olsen Marius (Nokia-MP/Austin)
 Sent: Monday, July 23, 2012 10:12 PM
 To: Liu Song.7 (Nokia-MP/Beijing)
 Cc: development@qt-project.org
 Subject: Re: [Development] Use static qt libraries
 Importance: High
 
 On 23/07/2012 08:56, ext song.7@nokia.com wrote:
  Hi,
 
  To use the static qt libraries, now I can build out all the 
  libQtCore.a , libQtGui.a , libQtWidgets.a etc with option -static.
 
  Also I can create a new shared object libQtMaster.so which is 
  composed of all of above static objects (libQtXXX.a),
 
 This would be all wrong.
 
 The only reason for compiling several modules into one would be (of 
 the top of my head) to
  1) Get cross-module optimizations (which indicate also 
 cross-compile-unit optimizations, so you'll need a bin tools chain 
 which can do that) to a) reduce code size, and b) improve performance.
  2) Reduce number of exported symbols.
  3) Faster shared library load time.
 
 To do this you would have to compile each of the modules as normal 
 (shared library), and then have a step which links all of the object 
 files into one shared library, maybe called just qt5.so
 
 Configuring as static only to gather them into a shared lib is wrong.
 
 
  then I want my Qt application be dynamic linked with this libQtMain.so by:
 
  QT += master
 
  so how to create this new QT module master that can be used from 
  the .pro files ?
 
 This is also wrong, since this would require everyone to change the 
 way they create Qt projects. In this case you would want
  QT += core gui network
 to do the same thing, simply to add linking to this new qt5.so library.
 
 That way you can keep projects working both with and without this 
 magical single library without further adjustments.
 
 
 --
 .marius
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread song.7.liu
OK, this way should be easier and doable, thanks for your help ;)

Thanks,
Song

-Original Message-
From: Storm-Olsen Marius (Nokia-MP/Austin) 
Sent: Monday, July 23, 2012 10:44 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: RE: [Development] Use static qt libraries
Importance: High

No, I mean you should create a new .pro file which includes all the module libs 
you want to include, and then later in that file do the tweaks needed to 
generate the required result. Just compiling this new project will be enough to 
produce the end result.

So, a new qt5-massive-library.pro which does something like:
include(../corelib/corelib.pro)
include(../gui/gui.pro)
include(../network/network.pro)
include(../opengl/opengl.pro)

TARGET = Qt5
MODULE = qt5-massive-library
...etc...

-- 
.marius


 -Original Message-
 From: Liu Song.7 (Nokia-MP/Beijing)
 Sent: Monday, July 23, 2012 9:39 AM
 To: Storm-Olsen Marius (Nokia-MP/Austin)
 Cc: development@qt-project.org
 Subject: RE: [Development] Use static qt libraries
 
 OK, based on my current understanding, do you mean that:
 I still need to build all of the current qt modules as static objects, which 
 can
 be done by OPTS += -static or by other way ?
 
 Thanks,
 Song
 
 -Original Message-
 From: Storm-Olsen Marius (Nokia-MP/Austin)
 Sent: Monday, July 23, 2012 10:35 PM
 To: Liu Song.7 (Nokia-MP/Beijing)
 Cc: development@qt-project.org
 Subject: RE: [Development] Use static qt libraries
 Importance: High
 
 No, you will need to link it all at once, since an .so is considered a final
 product.
 
 You might be able to mess around with a qt5-massive-library.pro, which
 include()s all the module .pro files you want in the final library.
 It's unknown how much tweaking you will need to achieve this final all-in-one
 module though. This is uncharted territory.
 
 (Btw, with GCC you _can_ do
 gcc -shared qt5.so -Wl,--whole-archive lib1.a lib2.a lib3.a 
 -Wl,--no-whole-
 archive but I have no idea if the end result would be usable in Qt's case. I
 doubt it.)
 
 --
 .marius
 
 
  -Original Message-
  From: Liu Song.7 (Nokia-MP/Beijing)
  Sent: Monday, July 23, 2012 9:16 AM
  To: Storm-Olsen Marius (Nokia-MP/Austin)
  Cc: development@qt-project.org
  Subject: RE: [Development] Use static qt libraries
 
  Thanks for help. Is there any tool to link all of the separate shared 
  libraries
  into one single shared library (libqt5.so) ?
 
  Thanks,
  Song
 
  -Original Message-
  From: Storm-Olsen Marius (Nokia-MP/Austin)
  Sent: Monday, July 23, 2012 10:12 PM
  To: Liu Song.7 (Nokia-MP/Beijing)
  Cc: development@qt-project.org
  Subject: Re: [Development] Use static qt libraries
  Importance: High
 
  On 23/07/2012 08:56, ext song.7@nokia.com wrote:
   Hi,
  
   To use the static qt libraries, now I can build out all the
   libQtCore.a , libQtGui.a , libQtWidgets.a etc with option -static.
  
   Also I can create a new shared object libQtMaster.so which is composed
   of all of above static objects (libQtXXX.a),
 
  This would be all wrong.
 
  The only reason for compiling several modules into one would be (of the
 top
  of my head) to
   1) Get cross-module optimizations (which indicate also cross-compile-
 unit
  optimizations, so you'll need a bin tools chain which can do that) to a)
 reduce
  code size, and b) improve performance.
   2) Reduce number of exported symbols.
   3) Faster shared library load time.
 
  To do this you would have to compile each of the modules as normal
 (shared
  library), and then have a step which links all of the object files into one
  shared library, maybe called just qt5.so
 
  Configuring as static only to gather them into a shared lib is wrong.
 
 
   then I want my Qt application be dynamic linked with this libQtMain.so
 by:
  
   QT += master
  
   so how to create this new QT module master that can be used from the
   .pro files ?
 
  This is also wrong, since this would require everyone to change the way
 they
  create Qt projects. In this case you would want
   QT += core gui network
  to do the same thing, simply to add linking to this new qt5.so library.
 
  That way you can keep projects working both with and without this magical
  single library without further adjustments.
 
 
  --
  .marius
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] 回复: Re: Use static qt libraries

2012-07-23 Thread song.7.liu
To reduce the loading time.
-原信息-
发件人: ext Thiago Macieira
发送:  2012/07/24, 02:09
收件人: development@qt-project.org
主题: Re: [Development] Use static qt libraries


On segunda-feira, 23 de julho de 2012 14.39.16, song.7@nokia.com wrote:
 OK, based on my current understanding, do you mean that:
 I still need to build all of the current qt modules as static objects, which
 can be done by OPTS += -static or by other way ?

No.

What you need to do is figure out what you want to do in the first place. What
is your objective? What are you trying to accomplish? And why is the current
solution not enough?

Don't tell us how you planned on implementing it. Forget libqt5.so.
--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread song.7.liu
Hi,

Now we can build out the single libqt5.so (using ARM toolchain) by:

OPTS += -static  to create the static qt libs
ar -x libQtXX.a to extract the .o files
armlink --fpic --shared *.o -o libqt5.so to generate final single so

But the readelf -s libqt5.so | grep UND:

 4:  0 OBJECT  WEAK   DEFAULT  UND _ZTI12QFocusHelper
 5:  0 OBJECT  WEAK   DEFAULT  UND _ZTI17QAbstractUndoItem
 6:  0 OBJECT  WEAK   DEFAULT  UND _ZTI19QStaticTextUserData
 7:  0 OBJECT  WEAK   DEFAULT  UND _ZTI22QItemEditorCreatorB
 8:  0 OBJECT  WEAK   DEFAULT  UND _ZTI26QAbstractDynamicMet
 9:  0 OBJECT  WEAK   DEFAULT  UND _ZTI28QNetworkConfigurati

Does anyone know what is this mangled symbol _ZTIXX in C++ ?

Thanks,
Song

-Original Message-
From: Lan Peng-Peter (Nokia-MP/Beijing) 
Sent: Tuesday, July 24, 2012 9:42 AM
To: Storm-Olsen Marius (Nokia-MP/Austin); Liu Song.7 (Nokia-MP/Beijing); 
development@qt-project.org; thiago.macie...@intel.com
Subject: RE: [Development] Use static qt libraries
Importance: High

I would like to explain the background of this approach.

We are now porting Qt5 (selected modules) on a low profile device 
(ARM11@300MHz). All shared objects can XIP - so there is no need to load libs 
from ROM to RAM. But a major problem is the loading time of an application 
(qtbase examples) - it cost ~10-20 seconds to resolve the dependencies among 
the qt libraries. We believe if we can make a merged shared object, the 
performance would be greatly improved. By the way, the OS is a proprietary 
one...

Thanks,
Lan Peng

-Original Message-
From: development-bounces+peng-peter.lan=nokia@qt-project.org 
[mailto:development-bounces+peng-peter.lan=nokia@qt-project.org] On Behalf 
Of Storm-Olsen Marius (Nokia-MP/Austin)
Sent: Tuesday, July 24, 2012 9:11 AM
To: Liu Song.7 (Nokia-MP/Beijing); development@qt-project.org; 
thiago.macie...@intel.com
Subject: Re: [Development] 回复: Re: Use static qt libraries

I have my doubts about how much you'll really gain from that.

This would only give you a large benefit if most applications requires all the 
libs you bundle together, and that you significantly reduce the total amount of 
symbols exported by the final shared library. I guess worth a quick try, but I 
wouldn't spend too much time on it. Most OSes will have pretty good caching of 
these libs anyways, and time is probably better spent optimizing the 
initialization of the applications rather than focusing on the time it takes to 
resolve library symbols.
 
M2c.

-- 
.marius


 -Original Message-
 From: development-bounces+marius.storm-olsen=nokia.com@qt-
 project.org [mailto:development-bounces+marius.storm-
 olsen=nokia@qt-project.org] On Behalf Of Liu Song.7 (Nokia-
 MP/Beijing)
 Sent: Monday, July 23, 2012 6:06 PM
 To: development@qt-project.org; thiago.macie...@intel.com
 Subject: [Development] 回复: Re: Use static qt libraries
 
 To reduce the loading time.
 -原信息-
 发件人: ext Thiago Macieira
 发送:  2012/07/24, 02:09
 收件人: development@qt-project.org
 主题: Re: [Development] Use static qt libraries
 
 
 On segunda-feira, 23 de julho de 2012 14.39.16, song.7@nokia.com wrote:
  OK, based on my current understanding, do you mean that:
  I still need to build all of the current qt modules as static objects, which
  can be done by OPTS += -static or by other way ?
 
 No.
 
 What you need to do is figure out what you want to do in the first place.
 What
 is your objective? What are you trying to accomplish? And why is the current
 solution not enough?
 
 Don't tell us how you planned on implementing it. Forget libqt5.so.
 --
 Thiago Macieira - thiago.macieira (AT) intel.com
   Software Architect - Intel Open Source Technology Center
  Intel Sweden AB - Registration Number: 556189-6027
  Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
 ___
 Development mailing list
 Development@qt-project.org
 http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Use static qt libraries

2012-07-23 Thread song.7.liu
Thanks, are such undefined symbols normal ? And is there a way to fix it ?

-Original Message-
From: Mcgovern Rohan (Nokia-MP/Brisbane) 
Sent: Tuesday, July 24, 2012 11:58 AM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: Lan Peng-Peter (Nokia-MP/Beijing); Storm-Olsen Marius (Nokia-MP/Austin); 
development; thiago.macieira
Subject: Re: [Development] Use static qt libraries
Importance: High

song.7@nokia.com said:
 Hi,
 
 Now we can build out the single libqt5.so (using ARM toolchain) by:
 
 OPTS += -static  to create the static qt libs
 ar -x libQtXX.a to extract the .o files
 armlink --fpic --shared *.o -o libqt5.so to generate final single so
 
 But the readelf -s libqt5.so | grep UND:
 
  4:  0 OBJECT  WEAK   DEFAULT  UND _ZTI12QFocusHelper
  5:  0 OBJECT  WEAK   DEFAULT  UND _ZTI17QAbstractUndoItem
  6:  0 OBJECT  WEAK   DEFAULT  UND _ZTI19QStaticTextUserData
  7:  0 OBJECT  WEAK   DEFAULT  UND _ZTI22QItemEditorCreatorB
  8:  0 OBJECT  WEAK   DEFAULT  UND _ZTI26QAbstractDynamicMet
  9:  0 OBJECT  WEAK   DEFAULT  UND _ZTI28QNetworkConfigurati
 
 Does anyone know what is this mangled symbol _ZTIXX in C++ ?
 

The 'c++filt' program can answer this.

  $ echo _ZTI12QFocusHelper | c++filt
  typeinfo for QFocusHelper
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] About finish signal in QHttpNetworkConnectionChannel

2012-07-19 Thread song.7.liu
Hi,

I am using the QNetworkAccessManager::get to request content from 
http://www.google.com.
Then the QHttpNetworkConnectionChannel will be created and worked on another 
thread, when all the data is received, the 
QHttpNetworkConnectionChannel::allDone will be invoked, where:

// queue the finished signal, this is required since we might send new 
requests from
// slot connected to it. The socket will not fire readyRead signal, if we 
are already
// in the slot connected to readyRead
if (reply  emitFinished)
QMetaObject::invokeMethod(reply, finished, Qt::QueuedConnection);

So this finished signal will be queued in the thread of QNetworkReplyHttpImpl 
until a new event will be handled.

Finally, my application also won't receive any finished signal until for 
example: touch the screen to trigger the queued signal be handled.

So why using the type Qt::QueuedConnection for this finished signal ? is 
there something wrong in my side ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] About finish signal in QHttpNetworkConnectionChannel

2012-07-19 Thread song.7.liu
Hi,

Thanks, and now the root cause is found, that the finished signal is posted 
to the main thread, and also it will try to wake up the main thread:

void QEventDispatcherUNIX::wakeUp()
{
Q_D(QEventDispatcherUNIX);
if (d-wakeUps.testAndSetAcquire(0, 1)) {
char c = 0;
qt_safe_write( d-thread_pipe[1], c, 1 );
}
}

But d-wakeUps.testAndSetAcquire(0, 1) returns zero, so eventually the main 
thread's event loop is not triggered.

Can someone share what's the purpose of using testAndSetAcquire here ?

Thanks,
Song

From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Markus Goetz
Sent: Friday, July 20, 2012 3:32 AM
To: development@qt-project.org
Subject: Re: [Development] About finish signal in 
QHttpNetworkConnectionChannel

On 19.07.12 17:55, song.7@nokia.commailto:song.7@nokia.com wrote:
Hi,
I am using the QNetworkAccessManager::get to request content from 
http://www.google.com.
Then the QHttpNetworkConnectionChannel will be created and worked on another 
thread, when all the data is received, the 
QHttpNetworkConnectionChannel::allDone will be invoked, where:

// queue the finished signal, this is required since we might send new 
requests from
// slot connected to it. The socket will not fire readyRead signal, if we 
are already
// in the slot connected to readyRead
if (reply  emitFinished)
QMetaObject::invokeMethod(reply, finished, Qt::QueuedConnection);

So this finished signal will be queued in the thread of QNetworkReplyHttpImpl 
until a new event will be handled.

Finally, my application also won't receive any finished signal until for 
example: touch the screen to trigger the queued signal be handled.

So why using the type Qt::QueuedConnection for this finished signal ? is 
there something wrong in my side ?

The finished() communicated will be queued anyway nowadays since the 
inter-thread communication (from HTTP thread to your user thread) is happening 
via the event loop. Also it is not queued until a new event will be handled, it 
should flow to your user thread without further delay.

I have no idea right now why your issue could happen = 
https://bugreports.qt-project.org

bye,
Markus
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] About finish signal in QHttpNetworkConnectionChannel

2012-07-19 Thread song.7.liu
It seem I know that it is avoiding wake up again if it's already alive.
And the wakeUps._q_value is 1 in my case,  but this main thread actually is 
pending at doSelect, so I don't know why wakeUps is not zero !

From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Friday, July 20, 2012 10:27 AM
To: mar...@woboq.com; development@qt-project.org
Subject: Re: [Development] About finish signal in 
QHttpNetworkConnectionChannel

Hi,

Thanks, and now the root cause is found, that the finished signal is posted 
to the main thread, and also it will try to wake up the main thread:

void QEventDispatcherUNIX::wakeUp()
{
Q_D(QEventDispatcherUNIX);
if (d-wakeUps.testAndSetAcquire(0, 1)) {
char c = 0;
qt_safe_write( d-thread_pipe[1], c, 1 );
}
}

But d-wakeUps.testAndSetAcquire(0, 1) returns zero, so eventually the main 
thread's event loop is not triggered.

Can someone share what's the purpose of using testAndSetAcquire here ?

Thanks,
Song

From: 
development-bounces+song.7.liu=nokia@qt-project.orgmailto:development-bounces+song.7.liu=nokia@qt-project.org
 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org]mailto:[mailto:development-bounces+song.7.liu=nokia@qt-project.org]
 On Behalf Of ext Markus Goetz
Sent: Friday, July 20, 2012 3:32 AM
To: development@qt-project.orgmailto:development@qt-project.org
Subject: Re: [Development] About finish signal in 
QHttpNetworkConnectionChannel

On 19.07.12 17:55, song.7@nokia.commailto:song.7@nokia.com wrote:
Hi,
I am using the QNetworkAccessManager::get to request content from 
http://www.google.com.
Then the QHttpNetworkConnectionChannel will be created and worked on another 
thread, when all the data is received, the 
QHttpNetworkConnectionChannel::allDone will be invoked, where:

// queue the finished signal, this is required since we might send new 
requests from
// slot connected to it. The socket will not fire readyRead signal, if we 
are already
// in the slot connected to readyRead
if (reply  emitFinished)
QMetaObject::invokeMethod(reply, finished, Qt::QueuedConnection);

So this finished signal will be queued in the thread of QNetworkReplyHttpImpl 
until a new event will be handled.

Finally, my application also won't receive any finished signal until for 
example: touch the screen to trigger the queued signal be handled.

So why using the type Qt::QueuedConnection for this finished signal ? is 
there something wrong in my side ?

The finished() communicated will be queued anyway nowadays since the 
inter-thread communication (from HTTP thread to your user thread) is happening 
via the event loop. Also it is not queued until a new event will be handled, it 
should flow to your user thread without further delay.

I have no idea right now why your issue could happen = 
https://bugreports.qt-project.org

bye,
Markus
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] About finish signal in QHttpNetworkConnectionChannel

2012-07-19 Thread song.7.liu
OK, you can ignore this mail thread now, it's the thread_pipe not implemented 
in our porting ... thanks.

From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
Liu Song.7 (Nokia-MP/Beijing)
Sent: Friday, July 20, 2012 10:48 AM
To: mar...@woboq.com; development@qt-project.org
Subject: Re: [Development] About finish signal in 
QHttpNetworkConnectionChannel

It seem I know that it is avoiding wake up again if it's already alive.
And the wakeUps._q_value is 1 in my case,  but this main thread actually is 
pending at doSelect, so I don't know why wakeUps is not zero !

From: 
development-bounces+song.7.liu=nokia@qt-project.orgmailto:development-bounces+song.7.liu=nokia@qt-project.org
 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org]mailto:[mailto:development-bounces+song.7.liu=nokia@qt-project.org]
 On Behalf Of Liu Song.7 (Nokia-MP/Beijing)
Sent: Friday, July 20, 2012 10:27 AM
To: mar...@woboq.commailto:mar...@woboq.com; 
development@qt-project.orgmailto:development@qt-project.org
Subject: Re: [Development] About finish signal in 
QHttpNetworkConnectionChannel

Hi,

Thanks, and now the root cause is found, that the finished signal is posted 
to the main thread, and also it will try to wake up the main thread:

void QEventDispatcherUNIX::wakeUp()
{
Q_D(QEventDispatcherUNIX);
if (d-wakeUps.testAndSetAcquire(0, 1)) {
char c = 0;
qt_safe_write( d-thread_pipe[1], c, 1 );
}
}

But d-wakeUps.testAndSetAcquire(0, 1) returns zero, so eventually the main 
thread's event loop is not triggered.

Can someone share what's the purpose of using testAndSetAcquire here ?

Thanks,
Song

From: 
development-bounces+song.7.liu=nokia@qt-project.orgmailto:development-bounces+song.7.liu=nokia@qt-project.org
 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org]mailto:[mailto:development-bounces+song.7.liu=nokia@qt-project.org]
 On Behalf Of ext Markus Goetz
Sent: Friday, July 20, 2012 3:32 AM
To: development@qt-project.orgmailto:development@qt-project.org
Subject: Re: [Development] About finish signal in 
QHttpNetworkConnectionChannel

On 19.07.12 17:55, song.7@nokia.commailto:song.7@nokia.com wrote:
Hi,
I am using the QNetworkAccessManager::get to request content from 
http://www.google.com.
Then the QHttpNetworkConnectionChannel will be created and worked on another 
thread, when all the data is received, the 
QHttpNetworkConnectionChannel::allDone will be invoked, where:

// queue the finished signal, this is required since we might send new 
requests from
// slot connected to it. The socket will not fire readyRead signal, if we 
are already
// in the slot connected to readyRead
if (reply  emitFinished)
QMetaObject::invokeMethod(reply, finished, Qt::QueuedConnection);

So this finished signal will be queued in the thread of QNetworkReplyHttpImpl 
until a new event will be handled.

Finally, my application also won't receive any finished signal until for 
example: touch the screen to trigger the queued signal be handled.

So why using the type Qt::QueuedConnection for this finished signal ? is 
there something wrong in my side ?

The finished() communicated will be queued anyway nowadays since the 
inter-thread communication (from HTTP thread to your user thread) is happening 
via the event loop. Also it is not queued until a new event will be handled, it 
should flow to your user thread without further delay.

I have no idea right now why your issue could happen = 
https://bugreports.qt-project.org

bye,
Markus
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt Mobility in Qt5

2012-06-16 Thread song.7.liu
Are the “Mobilities” in a signal .so or different .so ?

From: ext Xizhi Zhu [mailto:xizhi@gmail.com]
Sent: Saturday, June 16, 2012 2:44 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: Re: [Development] Qt Mobility in Qt5
Importance: High

There's no longer Qt Mobility as such, but for different modules, you can 
find the docs here:
http://qt-project.org/doc/qt-5.0/modules.html
On Sat, Jun 16, 2012 at 9:42 AM, 
song.7@nokia.commailto:song.7@nokia.com wrote:
Thanks, is there a documentation about Qt Mobility in Qt5 ?

From: ext Xizhi Zhu [mailto:xizhi@gmail.commailto:xizhi@gmail.com]
Sent: Saturday, June 16, 2012 2:41 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.orgmailto:development@qt-project.org
Subject: Re: [Development] Qt Mobility in Qt5
Importance: High

Yes, they have been modularized into different modules, e.g. QtPim, QtSystems, 
etc.
All source code are available from gitorious.
On Sat, Jun 16, 2012 at 9:39 AM, 
song.7@nokia.commailto:song.7@nokia.com wrote:
Hi,

Is the Qt Mobility a part of Qt5 ? If not, where can I get the source of latest 
Qt Mobility?

Thanks,
Song

___
Development mailing list
Development@qt-project.orgmailto:Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development



--
Blessings,
Xizhi Zhu (Steven)




--
Blessings,
Xizhi Zhu (Steven)

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Qt Mobility in Qt5

2012-06-16 Thread song.7.liu
Thanks… Also do you know how to configure and build the qtpim module along with 
qtbase ?

Thanks,
Song

From: ext Xizhi Zhu [mailto:xizhi@gmail.com]
Sent: Saturday, June 16, 2012 2:44 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: Re: [Development] Qt Mobility in Qt5
Importance: High

There's no longer Qt Mobility as such, but for different modules, you can 
find the docs here:
http://qt-project.org/doc/qt-5.0/modules.html
On Sat, Jun 16, 2012 at 9:42 AM, 
song.7@nokia.commailto:song.7@nokia.com wrote:
Thanks, is there a documentation about Qt Mobility in Qt5 ?

From: ext Xizhi Zhu [mailto:xizhi@gmail.commailto:xizhi@gmail.com]
Sent: Saturday, June 16, 2012 2:41 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.orgmailto:development@qt-project.org
Subject: Re: [Development] Qt Mobility in Qt5
Importance: High

Yes, they have been modularized into different modules, e.g. QtPim, QtSystems, 
etc.
All source code are available from gitorious.
On Sat, Jun 16, 2012 at 9:39 AM, 
song.7@nokia.commailto:song.7@nokia.com wrote:
Hi,

Is the Qt Mobility a part of Qt5 ? If not, where can I get the source of latest 
Qt Mobility?

Thanks,
Song

___
Development mailing list
Development@qt-project.orgmailto:Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development



--
Blessings,
Xizhi Zhu (Steven)




--
Blessings,
Xizhi Zhu (Steven)

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] mkspec linux-arm-armcc for qt5

2012-06-06 Thread song.7.liu
Thanks for sharing...

Anyway, the armcc4.1 is still used for our project... and now theQtCore can be 
successfully build out, but I still have one C++ template related error in 
qtnetwork module as bellow:

access/qnetworkrequest_p.h, line 94: Error:  #2574: explicit 
specialization of class QTypeInfoQPairQByteArray, QByteArray must precede 
its first use (at line 105 of 
../../include/QtCore/../../src/corelib/tools/qlist.h)
  Q_DECLARE_TYPEINFO(QNetworkHeadersPrivate::RawHeaderPair, Q_MOVABLE_TYPE);

Code of qnetworkrequest_p.h:
L1:  class QNetworkHeadersPrivate
L2:  {
L3:  public:
L4:  typedef QPairQByteArray, QByteArray RawHeaderPair;
L5:  typedef QListRawHeaderPair RawHeadersList;
L6:  ...
  };

L94:  Q_DECLARE_TYPEINFO(QNetworkHeadersPrivate::RawHeaderPair, Q_MOVABLE_TYPE);

And the above code indicates that QListRawHeaderPair (L4) will firstly use 
the QTypeInfoRawHeaderPair, which is declared in last code L94.
So it seems an error, but does anyone know how to fix it ? or how to ignore 
such error ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Monday, June 04, 2012 7:20 PM
To: development@qt-project.org
Subject: Re: [Development] mkspec linux-arm-armcc  for qt5

On segunda-feira, 4 de junho de 2012 08.32.03, song.7@nokia.com wrote:
 Hi,
 
 We are trying to use armcc to build qt5, and meet many compiling issues...
 Here, I just want to confirm that is there some assumption / 
 limitation in our qt5 code base about use armcc or gcc ???

I don't think anyone has compiler using that compiler for months or even years.

It's completely untested. Here there be dragons.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] About pcre in qt5

2012-06-06 Thread song.7.liu
Yes, we are creating a super minimal build with basic functionalities...
But is there some feature depending on the REGEXP in case if it's disabled 
other features don't work then.

Thanks,
Song

-Original Message-
From: ext Giuseppe D'Angelo [mailto:dange...@gmail.com] 
Sent: Wednesday, June 06, 2012 4:34 PM
To: Liu Song.7 (Nokia-MP/Beijing)
Cc: development@qt-project.org
Subject: Re: [Development] About pcre in qt5
Importance: High

Hi,

On 6 June 2012 02:42,  song.7@nokia.com wrote:
 We are doing a customized build on qt5, but can I disable the pcre in qt5 ?

it does not exactly work out of the box, but with little effort you should be 
able to define QT_NO_REGEXP (to avoid compiling
QRegularExpression) and remove the PCRE inclusion from tools.pri...

May I ask which kind of customized build are you doing and why you'd like to 
strip PCRE? Size? Or do you have a platform on which PCRE does not work?

Cheers,
--
Giuseppe D'Angelo
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] About pcre in qt5

2012-06-06 Thread song.7.liu
Not sure about the PCRE, but now I am trying the regx disabling, if it's 
impossible or big efforts I will keep this feature in for my minimal-build.

And also, we find that so many feature flags can't be easily disabled for 
example: QT_NO_DATASTREAM etc., as it seems many codes are not fully controlled 
on some feature flag.
So is that caused as the Qt5 code refine ??

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Wednesday, June 06, 2012 5:17 PM
To: development@qt-project.org
Subject: Re: [Development] About pcre in qt5

On quarta-feira, 6 de junho de 2012 08.44.22, song.7@nokia.com wrote:
 Yes, we are creating a super minimal build with basic functionalities...
 But is there some feature depending on the REGEXP in case if it's 
 disabled other features don't work then.

There's probably nothing out there depending on QRegularExpression, but that 
may change at any time. Also note that there's no feature define for 
QRegularExpression, but only QT_NO_REGEXP which also disables QRegExp and that 
is used everywhere.

Are you sure disabling PCRE support is the best use of your time, cost/benefit- 
wise?

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] One qmake problem for rvct

2012-06-06 Thread song.7.liu
Hi,

When using the armcc to compile qt5, there is one Makefile generation issue for 
widgets:
You know the widgets is depending on platformsupport static library, but the 
libQtPlatformSupport.so is appended into LIBS flag within this Makefile.

After checked with the source code of qmake/generators/unix/unixmake.cpp, where:
bool UnixMakefileGenerator::findLibraries()
... ...
else if (project-isActiveConfig(rvct_linker) || 
project-isActiveConfig(armcc_linker)) {
(*it) = lib + opt.mid(2) + .so;
}

You will see that it treats all the dependency as a so without any checking.
Then I am trying to modify here but can't find the current object indicated by 
current opt is static or shared...

Anyone can help point out what's the correct way to fix this issue ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] One qmake problem for rvct

2012-06-06 Thread song.7.liu
Hi,

Same issue happened in platform plugins...

Could someone share what's the idea to change qmake or something else ?

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Wednesday, June 06, 2012 11:44 PM
To: development@qt-project.org
Subject: Re: [Development] One qmake problem for rvct

On quarta-feira, 6 de junho de 2012 14.38.46, song.7@nokia.com wrote:
 Hi,
 
 When using the armcc to compile qt5, there is one Makefile generation 
 issue for widgets: You know the widgets is depending on 
 platformsupport static library, but the libQtPlatformSupport.so is 
 appended into LIBS flag within this Makefile.

That is a mistake and needs to be fixed. QtWidgets cannot link to 
QtPlatformSupport (which, by the way, is a .a file, never a .so one).

However, can you check if the platform plugins have the same issue?

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] About pcre in qt5

2012-06-05 Thread song.7.liu
Hi,

We are doing a customized build on qt5, but can I disable the pcre in qt5 ?

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] mkspec linux-arm-armcc for qt5

2012-06-04 Thread song.7.liu
Hi,

We are trying to use armcc to build qt5, and meet many compiling issues...
Here, I just want to confirm that is there some assumption / limitation in our 
qt5 code base about use armcc or gcc ???

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] About the QtDir::currentPath

2012-06-01 Thread song.7.liu
Hi,

My QtDir::currentPath is /c_drive/ instead of C:/, so do someone know the 
reason behind ?
And how can it be as C:/ ?

Any information is appreciated ;)

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] [Interest] Warining about: Project WARNING: QtGui cannot have a QT of gui

2012-05-22 Thread song.7.liu
But,,, I am building my Qt5 in Linux server. :(

Thanks,
Song

From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Loaden
Sent: Tuesday, May 22, 2012 5:31 PM
To: Thiago Macieira
Cc: development@qt-project.org
Subject: Re: [Development] [Interest] Warining about: Project WARNING: QtGui 
cannot have a QT of gui

It's only related with Windows. It's should be qmake's problem / issue.
Hope to be fixed before the release coming.
2012/5/22 Thiago Macieira 
thiago.macie...@intel.commailto:thiago.macie...@intel.com
 I am building the Qt5, but could somebody point out what's the possible
 cause of: Project WARNING: QtGui cannot have a QT of gui



--
Please don't ask where I come from, It's a shame!
Best Regards
Yuchen

___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] How to let QtCore and QtGui etc. static linked against with one precompiled object

2012-05-19 Thread song.7.liu
Hi,

I want to let QtCore and QtGui etc. modules static linked against with one 
pre-compiled achieve object.
So could someone help how to modify the qmake.conf under the related mkspecs 
folder ?

Many thanks ;)

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Source code path in the debug information

2012-05-15 Thread song.7.liu
Hi,

I am trying to copy libQtCore.so.5.0.0 to another different folder to debug 
with my application,
but find that I can't step into the source code.

After look into libQtCore, it seems that the path of source code is relative 
instead absolute, for example as bellow:

../../include/QtCore/../../src/corelib/tools/qstring.h:
qstring.h6940x15013a

So is there a way to use the absolute path to build out a debug version of 
libQtCore ?
Or does anyone have some idea about this issue?

Many thanks ;)

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


[Development] Link error about QtCore.dynlist

2012-05-14 Thread song.7.liu
Hi,

I am building the latest Qt5 on Linux, but with bellow link error in qtbase:

/nokia/apps/tww/@sys/gcc442/x86_64-unknown-linux-gnu/bin/ld: 
/build/qt5-2/qtbase/src/corelib/QtCore.dynlist: file format not recognized; 
treating as linker script
/nokia/apps/tww/@sys/gcc442/x86_64-unknown-linux-gnu/bin/ld:/build/qt5-2/qtbase/src/corelib/QtCore.dynlist:1:
 syntax error
collect2: ld returned 1 exit status
make[1]: *** [../../lib/libQtCore.so.5.0.0] Error 1
make[1]: Leaving directory `/build/qt5-2/qtbase/src/corelib'
make: *** [sub-corelib-install_subtargets-ordered] Error 2
'cd qtbase  make install failed: 512
Fatal failure installing qtbase at ./build line 455
Qt::Build::build_project('Qt::Build=HASH(0x2581930)', 'qtbase') called 
at ./build line 484
Qt::Build::build_qt('Qt::Build=HASH(0x2581930)') called at ./build line 
544
Qt::Build::run('Qt::Build=HASH(0x2581930)') called at ./build line 553

The content of file QtCore.dynlist is:

{
 extern C {
 qt_startup_hook;
 qt_addObject;
 qt_removeObject;
 };
 extern C++ {
 QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag);
 };
};

Does anyone have some idea ? thanks ;)

Thanks,
Song
___
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development


Re: [Development] Link error about QtCore.dynlist

2012-05-14 Thread song.7.liu
Hi,

Thanks for your reply, please get the error info from attached file.

Thanks,
Song

-Original Message-
From: development-bounces+song.7.liu=nokia@qt-project.org 
[mailto:development-bounces+song.7.liu=nokia@qt-project.org] On Behalf Of 
ext Thiago Macieira
Sent: Monday, May 14, 2012 11:36 PM
To: development@qt-project.org
Subject: Re: [Development] Link error about QtCore.dynlist

On segunda-feira, 14 de maio de 2012 14.58.33, song.7@nokia.com wrote:
 /nokia/apps/tww/@sys/gcc442/x86_64-unknown-linux-gnu/bin/ld:
 /build/qt5-2/qtbase/src/corelib/QtCore.dynlist: file format not 
 recognized; treating as linker script 
 /nokia/apps/tww/@sys/gcc442/x86_64-unknown-linux-gnu/bin/ld:/build/qt5
 -2/qt
 base/src/corelib/QtCore.dynlist:1: syntax error collect2: ld returned 
 1 exit status
[snip]
 Does anyone have some idea ? thanks

Please paste the full linker command-line, which make printed before the first 
line you pasted here.

--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
 Intel Sweden AB - Registration Number: 556189-6027
 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
rm -f libQtCore.so.5.0.0 libQtCore.so libQtCore.so.5 libQtCore.so.5.0
g++ -Wl,-rpath-link,/build/qt5-2/qtbase/lib -m32 -shared -shared 
/build/qt5-2/qtbase/src/corelib/QtCore.dynlist -Wl,-soname,libQtCore.so.5 -o 
libQtCore.so.5.0.0 .obj/debug-shared/qabstractanimation.o 
.obj/debug-shared/qvariantanimation.o .obj/debug-shared/qpropertyanimation.o 
.obj/debug-shared/qanimationgroup.o 
.obj/debug-shared/qsequentialanimationgroup.o 
.obj/debug-shared/qparallelanimationgroup.o .obj/debug-shared/qpauseanimation.o 
.obj/debug-shared/qatomic_unix.o .obj/debug-shared/qglobal.o 
.obj/debug-shared/qlibraryinfo.o .obj/debug-shared/qmalloc.o 
.obj/debug-shared/qnumeric.o .obj/debug-shared/qlogging.o 
.obj/debug-shared/qatomic.o .obj/debug-shared/qmutex.o 
.obj/debug-shared/qreadwritelock.o .obj/debug-shared/qrunnable.o 
.obj/debug-shared/qmutexpool.o .obj/debug-shared/qsemaphore.o 
.obj/debug-shared/qthread.o .obj/debug-shared/qthreadpool.o 
.obj/debug-shared/qthreadstorage.o .obj/debug-shared/qthread_unix.o 
.obj/debug-shared/qwaitcondition_unix.o .obj/debug-shared/qmutex_unix.o 
.obj/debug-shared/qarraydata.o .obj/debug-shared/qbitarray.o 
.obj/debug-shared/qbytearray.o .obj/debug-shared/qbytearraymatcher.o 
.obj/debug-shared/qcryptographichash.o .obj/debug-shared/qdatetime.o 
.obj/debug-shared/qeasingcurve.o .obj/debug-shared/qelapsedtimer.o 
.obj/debug-shared/qfreelist.o .obj/debug-shared/qhash.o 
.obj/debug-shared/qline.o .obj/debug-shared/qlinkedlist.o 
.obj/debug-shared/qlist.o .obj/debug-shared/qlocale.o 
.obj/debug-shared/qlocale_tools.o .obj/debug-shared/qpoint.o 
.obj/debug-shared/qmap.o .obj/debug-shared/qmargins.o 
.obj/debug-shared/qcontiguouscache.o .obj/debug-shared/qrect.o 
.obj/debug-shared/qregexp.o .obj/debug-shared/qregularexpression.o 
.obj/debug-shared/qrefcount.o .obj/debug-shared/qshareddata.o 
.obj/debug-shared/qsharedpointer.o .obj/debug-shared/qsimd.o 
.obj/debug-shared/qsize.o .obj/debug-shared/qstring.o 
.obj/debug-shared/qstringbuilder.o .obj/debug-shared/qstringlist.o 
.obj/debug-shared/qtextboundaryfinder.o .obj/debug-shared/qtimeline.o 
.obj/debug-shared/qunicodetools.o .obj/debug-shared/qvector.o 
.obj/debug-shared/qvsnprintf.o .obj/debug-shared/qelapsedtimer_unix.o 
.obj/debug-shared/qlocale_unix.o .obj/debug-shared/adler32.o 
.obj/debug-shared/compress.o .obj/debug-shared/crc32.o 
.obj/debug-shared/deflate.o .obj/debug-shared/gzclose.o 
.obj/debug-shared/gzlib.o .obj/debug-shared/gzread.o 
.obj/debug-shared/gzwrite.o .obj/debug-shared/infback.o 
.obj/debug-shared/inffast.o .obj/debug-shared/inflate.o 
.obj/debug-shared/inftrees.o .obj/debug-shared/trees.o 
.obj/debug-shared/uncompr.o .obj/debug-shared/zutil.o 
.obj/debug-shared/pcre16_byte_order.o .obj/debug-shared/pcre16_chartables.o 
.obj/debug-shared/pcre16_compile.o .obj/debug-shared/pcre16_config.o 
.obj/debug-shared/pcre16_dfa_exec.o .obj/debug-shared/pcre16_exec.o 
.obj/debug-shared/pcre16_fullinfo.o .obj/debug-shared/pcre16_get.o 
.obj/debug-shared/pcre16_globals.o .obj/debug-shared/pcre16_jit_compile.o 
.obj/debug-shared/pcre16_maketables.o .obj/debug-shared/pcre16_newline.o 
.obj/debug-shared/pcre16_ord2utf16.o .obj/debug-shared/pcre16_refcount.o 
.obj/debug-shared/pcre16_string_utils.o .obj/debug-shared/pcre16_study.o 
.obj/debug-shared/pcre16_tables.o .obj/debug-shared/pcre16_ucd.o 
.obj/debug-shared/pcre16_utf16_utils.o .obj/debug-shared/pcre16_valid_utf16.o 
.obj/debug-shared/pcre16_version.o .obj/debug-shared/pcre16_xclass.o 
.obj/debug-shared/harfbuzz-buffer.o .obj/debug-shared/harfbuzz-gdef.o 
.obj/debug-shared/harfbuzz-gsub.o .obj/debug-shared/harfbuzz-gpos.o 
.obj/debug-shared/harfbuzz-impl.o .obj/debug-shared/harfbuzz-open.o 
.obj/debug-shared/harfbuzz-stream.o .obj/debug-shared/harfbuzz-shaper-all.o 
.obj/debug-shared/qharfbuzz.o .obj/debug