All of lore.kernel.org
 help / color / mirror / Atom feed
* qmake issue
@ 2010-01-03 16:33 Frans Meulenbroeks
  2010-01-03 21:09 ` Phil Blundell
  0 siblings, 1 reply; 7+ messages in thread
From: Frans Meulenbroeks @ 2010-01-03 16:33 UTC (permalink / raw)
  To: openembedded-devel

Hi,

I noticed the following issue when building mythtv.
Mythtv uses qmake. Several of the .pro files contain additional
libraries with -L

However if e.g. I look at the generated Makefile for mythfrontend I see:

LIBS          = $(SUBLIBS)  -L$(OE_QMAKE_LIBDIR_QT)
-Wl,-rpath-link,/home/frans/oe/tmp_angstrom/work/armv7a-angstrom-linux-gnueabi/qt4-x11-free-4.6.0-r13.1/qt-everywhere-opensource-src-4.6.0/lib
-L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavutil
-L../../libs/libavcodec -L../../libs/libavformat
-L../../libs/libswscale -L../../libs/libmythdb -L../../libs/libmythui
-L../../libs/libmythupnp -lmythtv-0.22 -lmythavformat-0.22
-lmythavutil-0.22 -lmythavcodec-0.22 -lmythswscale-0.22
-lmythupnp-0.22 -lmyth-0.22 -lmythui-0.22 -lmythdb-0.22
-L../../libs/libmythlivemedia -lmythlivemedia-0.22
-L../../libs/libmythfreemheg -lmythfreemheg-0.22
-L../../libs/libmythhdhomerun -lmythhdhomerun-0.22
-L/home/frans/oe/tmp_angstrom/staging/armv7a-angstrom-linux-gnueabi/usr/lib
-lfreetype -lXinerama -lX11 -lXext -lXxf86vm -lXv -lXrandr -lQtWebKit
-Wl,-rpath-link,/usr/lib -lphonon -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -lQtDBus -Wl,-rpath-link,/usr/lib -lQtSql
-Wl,-rpath-link,/usr/lib -lQtXml -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -lQtGui -Wl,-rpath-link,/usr/lib -lQtNetwork
-Wl,-rpath-link,/usr/lib -lQtCore -Wl,-rpath-link,/usr/lib -lglib-2.0
-lpthread

and eventually the executed link command is:

ccache arm-angstrom-linux-gnueabi-g++
-L/home/frans/oe/tmp_angstrom/staging/armv7a-angstrom-linux-gnueabi/usr/lib
-Wl,-rpath-link,/home/frans/oe/tmp_angstrom/staging/armv7a-angstrom-linux-gnueabi/usr/lib
-Wl,-O1 -Wl,--hash-style=gnu -o mythfrontend version.o main.o
playbackbox.o viewscheduled.o globalsettings.o manualschedule.o
programrecpriority.o channelrecpriority.o statusbox.o networkcontrol.o
mediarenderer.o mythfexml.o playbackboxlistitem.o custompriority.o
mythappearance.o exitprompt.o proglist.o action.o actionset.o
mythcontrols.o keybindings.o keygrabber.o mythosdmenueditor.o
progfind.o guidegrid.o customedit.o schedulecommon.o progdetails.o
scheduleeditor.o moc_main.o moc_playbackbox.o moc_viewscheduled.o
moc_globalsettings.o moc_manualschedule.o moc_programrecpriority.o
moc_channelrecpriority.o moc_statusbox.o moc_networkcontrol.o
moc_custompriority.o moc_mythappearance.o moc_exitprompt.o
moc_proglist.o moc_mythcontrols.o moc_keygrabber.o
moc_mythosdmenueditor.o moc_progfind.o moc_guidegrid.o
moc_customedit.o moc_progdetails.o moc_scheduleeditor.o
-L/home/frans/oe/tmp_angstrom/staging/armv7a-angstrom-linux-gnueabi/usr/lib
-Wl,-rpath-link,/home/frans/oe/tmp_angstrom/work/armv7a-angstrom-linux-gnueabi/qt4-x11-free-4.6.0-r13.1/qt-everywhere-opensource-src-4.6.0/lib
-L../../libs/libmyth -L../../libs/libmythtv -L../../libs/libavutil
-L../../libs/libavcodec -L../../libs/libavformat
-L../../libs/libswscale -L../../libs/libmythdb -L../../libs/libmythui
-L../../libs/libmythupnp -lmythtv-0.22 -lmythavformat-0.22
-lmythavutil-0.22 -lmythavcodec-0.22 -lmythswscale-0.22
-lmythupnp-0.22 -lmyth-0.22 -lmythui-0.22 -lmythdb-0.22
-L../../libs/libmythlivemedia -lmythlivemedia-0.22
-L../../libs/libmythfreemheg -lmythfreemheg-0.22
-L../../libs/libmythhdhomerun -lmythhdhomerun-0.22
-L/home/frans/oe/tmp_angstrom/staging/armv7a-angstrom-linux-gnueabi/usr/lib
-lfreetype -lXinerama -lX11 -lXext -lXxf86vm -lXv -lXrandr -lQtWebKit
-Wl,-rpath-link,/usr/lib -lphonon -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib -lQtDBus
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -lQtSql -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib -lQtXml
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -lQtGui -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib -lQtNetwork
-Wl,-rpath-link,/usr/lib -Wl,-rpath-link,/usr/lib
-Wl,-rpath-link,/usr/lib -lQtCore -Wl,-rpath-link,/usr/lib -lglib-2.0
-lpthread

In this I see two issues.

The obvious one is of course the explosion of  -Wl,-rpath-link,/usr/lib
Somewhat annoying but not really harmful.

What is more harmful though is that somewhere in the build process the
linking is done by invoking: arm-angstrom-linux-gnueabi-g++
-L/home/frans/oe/tmp_angstrom/staging/armv7a-angstrom-linux-gnueabi/usr/lib
...
-L dirs are searched for in the order they appear on the command line,
so the version in staging has preference above the local version
(which is only moved to staging after the compilation is completed).

I can imagine a few solutions, but no idea which one is the best and
how to implement them.
First option is to hack the generated makefile in a configure_append
step. While this would solve the issue for me it is not really a
generic solution.
Second option is to force removing a package from staging when a new
version is build
Third option is to change the class which generates the above command
to put the -L near the end (after any -L's from the makefile itself.

No idea on the way to solve this. Anyone an idea (and perhaps the
knowledge to fix this)?

Frans.



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2010-01-04 20:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-03 16:33 qmake issue Frans Meulenbroeks
2010-01-03 21:09 ` Phil Blundell
2010-01-04  7:31   ` Frans Meulenbroeks
2010-01-04 15:56     ` Richard Purdie
2010-01-04 20:14       ` Frans Meulenbroeks
2010-01-04 20:32         ` Koen Kooi
2010-01-04 20:41           ` Frans Meulenbroeks

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.