Bug 304794 - Okteta fails parallel build
Summary: Okteta fails parallel build
Status: RESOLVED FIXED
Alias: None
Product: okteta
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Friedrich W. H. Kossebau
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-08 12:51 UTC by Michael Palimaka
Modified: 2012-08-25 17:11 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
build log (40.90 KB, application/octet-stream)
2012-08-14 12:46 UTC, Michael Palimaka
Details
Possible patch, using the internal lib name, not the output lib name in the target link libraries list (639 bytes, patch)
2012-08-24 07:54 UTC, Friedrich W. H. Kossebau
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Palimaka 2012-08-08 12:51:06 UTC
When building Okteta in parallel, compile intermittently fails:

Building CXX object okteta/gui/CMakeFiles/oktetagui.dir/controller/zoomwheelcontroller.o
[0m/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.1/../../../../x86_64-pc-linux-gnu/bin/ld: error: cannot find -lkasten2core

The full build log is attached.
Comment 1 Friedrich W. H. Kossebau 2012-08-12 19:37:20 UTC
Hi Michael, thanks for your report. Never heard of such a problem, so curious how this could happen for you. Seems the full build log did not make it yet to this report, so could you please retry to attach it?

The snippet you pasted above does not help, as this seems to be the mixed output of a build with parallel jobs, which sadly all output to the same place, adding lines to the output as they are created.
I can see this because the first line is about compiling a source file to an object file, while the second line is the error output from the linker, which is a separate step and would have first a "Linking [something]" line before a possible error output. And just the second line does not tell what was going to be linked.

Besides attaching the full log, could you please also try to do a build with no parallel jobs and tell if it also fails?

And what sources are you using? From your distribution or pulled from the KDE repos? Which branch? Could you tell what "svn info" tells for URL: and Revision:?
Comment 2 Michael Palimaka 2012-08-14 12:46:30 UTC
Created attachment 73160 [details]
build log

Thanks for the response.

Attached is the missing build log, and here is the SVN information you requested:
URL: svn+ssh://palimaka@svn.kde.org/home/kde/trunk/KDE/kdesdk/okteta
Revision: 1310636

Further, build without parallel jobs is always successful.

Sorry for neglecting to include this information in the original report.
Comment 3 Friedrich W. H. Kossebau 2012-08-17 15:33:01 UTC
Thanks Michael. The full log is helpful and shows that linking of libkasten2okteta1core fails, because for some reason the buildsystem seems to miss the internal dependency to the lib kasten2core and to make sure it is build before.

I have an idea where this could come from, but need to consult the KDE buildsystem experts for this :)
Comment 4 Friedrich W. H. Kossebau 2012-08-24 07:54:00 UTC
Created attachment 73425 [details]
Possible patch, using the internal lib name, not the output lib name in the target link libraries list

Michael, could you try if this patch solves the problem for you?
Comment 5 Michael Palimaka 2012-08-25 16:30:48 UTC
Hi,

With that patch, parallel build succeeds for me ever time.

Thanks!
Comment 6 Friedrich W. H. Kossebau 2012-08-25 16:42:59 UTC
Good, thanks for testing the patch, I am going to commit it to 4.9 and trunk next.

BTW, to boost compiling of kdesdk or okteta, you could also use the cmake flag -DKDE4_ENABLE_FINAL=ON , that should work for 4.9 and trunk.
(given you have enough working memory, no link at hand what would be needed)
That flag results in all source files put in one file which then gets compiled, please ask google if you have more interest in that :)
Comment 7 Friedrich W. H. Kossebau 2012-08-25 17:09:47 UTC
SVN commit 1313158 by kossebau:

Fixed: ensure dependencies between base Kasten libs and OktetaKasten libs (using targetnames, not output names)

As long as the base Kasten libs are part of the build tree of Okteta, the linking lists need to use the
the target names instead of the output names, otherwise the dependency is not known.



 M  +4 -3      CMakeLists.txt  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1313158
Comment 8 Friedrich W. H. Kossebau 2012-08-25 17:11:19 UTC
SVN commit 1313159 by kossebau:

Fixed: ensure dependencies between base Kasten libs and OktetaKasten libs (using targetnames, not output names)
(backport of 1313158)

As long as the base Kasten libs are part of the build tree of Okteta, the linking lists need to use the
the target names instead of the output names, otherwise the dependency is not known.




 M  +4 -3      CMakeLists.txt  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1313159