Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 500230 - net-libs/webkit-gtk-2.2.4 parallel build fix, fix configure w/ ruby21 and finally _FORTIFY_SOURCE redefinition fix for gcc 4.8.x
Summary: net-libs/webkit-gtk-2.2.4 parallel build fix, fix configure w/ ruby21 and fin...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords: PATCH
Depends on:
Blocks:
 
Reported: 2014-02-04 04:05 UTC by Alex Turbov
Modified: 2015-01-13 15:50 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
patch for ebuild w/ 3 fixes (net-lib-webkit-gtk-2.2.4-r200.ebuild.patch,2.12 KB, patch)
2014-02-04 04:06 UTC, Alex Turbov
Details | Diff
patch for insane build scripts to apply before configure (webkit-gtk-2.2.4-parallel-build-fixes.patch,7.75 KB, patch)
2014-02-04 04:07 UTC, Alex Turbov
Details | Diff
patch for insane build scripts to apply before configure (webkit-gtk-2.2.4-parallel-build-fixes.patch,7.61 KB, patch)
2014-02-04 04:10 UTC, Alex Turbov
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Turbov 2014-02-04 04:05:44 UTC
fixes for silly build scripts of upstream version:
0) parallel build permanently fail (even w/ enabled dependency tracking, maybe because of --enable-silent-rules I have in EXTRA_ECONF as well) due incorrect usage of BUILT_SOURCES feature of automake. unfortunately my fixes still not allow to generate a bunch of sources in parallel (cuz insane^W developers wanted to build libWTF using it) but everything else (libs) can be build in parallel (yeah, even w/ dependency tracking turned OFF)
1) also here is a fix for nasty warning about redefinition of _FORTIFY_SOURCE when build w/ >=gcc-4.8
2) also added a fix for configure w/ ruby21 as the only enabled RUBY_TARGETS


Reproducible: Always




now I can successfully build this package w/ EXTRA_ECONF='--disable-dependency-traking --enable-silent-rules' and w/ `-j4` in my make options
Comment 1 Alex Turbov 2014-02-04 04:06:27 UTC
Created attachment 369492 [details, diff]
patch for ebuild w/ 3 fixes
Comment 2 Alex Turbov 2014-02-04 04:07:24 UTC
Created attachment 369494 [details, diff]
patch for insane build scripts to apply before configure
Comment 3 Alex Turbov 2014-02-04 04:10:30 UTC
Created attachment 369496 [details, diff]
patch for insane build scripts to apply before configure
Comment 4 Pacho Ramos gentoo-dev 2014-02-04 07:47:20 UTC
(In reply to Alex Turbov from comment #0)
> fixes for silly build scripts of upstream version:
> 0) parallel build permanently fail (even w/ enabled dependency tracking,
> maybe because of --enable-silent-rules I have in EXTRA_ECONF as well) due
> incorrect usage of BUILT_SOURCES feature of automake. unfortunately my fixes
> still not allow to generate a bunch of sources in parallel (cuz insane^W
> developers wanted to build libWTF using it) but everything else (libs) can
> be build in parallel (yeah, even w/ dependency tracking turned OFF)

I don't suffer this parallel build issue, maybe because I don't force --enable-silent-rules. But I see you "fix" this building all-built-sources-local with -j1 and, then, I doubt what option is better:
1. Build sources-local with -j1 to allow --enable-silent-rules
2. Build all in parallel without allowing silent rules

Personally, I would still prefer the second option as I think I can live without silent-rules for this case (also, we don't want silent-rules as discussed time ago and as eapi5 will force, see bug 429308)

> 1) also here is a fix for nasty warning about redefinition of
> _FORTIFY_SOURCE when build w/ >=gcc-4.8

Could you report this to upstream for not need to carry this forever? -> bugs.webkit.org

> 2) also added a fix for configure w/ ruby21 as the only enabled RUBY_TARGETS
> 
> 

The same :)

Thanks
Comment 5 Alex Turbov 2014-02-04 08:28:59 UTC
(In reply to Pacho Ramos from comment #4)
> (In reply to Alex Turbov from comment #0)
> > fixes for silly build scripts of upstream version:
> > 0) parallel build permanently fail (even w/ enabled dependency tracking,
> > maybe because of --enable-silent-rules I have in EXTRA_ECONF as well) due
> > incorrect usage of BUILT_SOURCES feature of automake. unfortunately my fixes
> > still not allow to generate a bunch of sources in parallel (cuz insane^W
> > developers wanted to build libWTF using it) but everything else (libs) can
> > be build in parallel (yeah, even w/ dependency tracking turned OFF)
> 
> I don't suffer this parallel build issue, maybe because I don't force
> --enable-silent-rules. But I see you "fix" this building
> all-built-sources-local with -j1 and, then, I doubt what option is better:
> 1. Build sources-local with -j1 to allow --enable-silent-rules

`all-built-sources-local' is a target (just) to generate all files mentioned in automakes' BUILT_SOURCES variable. unfortunately crazy upstream devs build a small lib at this moment as well, it is why this stage can't be parallel (due not all required files are generated yet). And `--enable-dependency-tracking' option just work, because before build everything, it generates all that files (in a single thread as well, because running from ./configure). But later it leads to generation of useless, for a single time build, *.d files (w/ -MD -MP -MF compiler options), which are consume CPU, disk I/O and time (multiplying to a number of files compiled and .d files size, it will be quite noticeable I guess). My fix (which is a real fix, btw) allows to compile this package w/o enabled dependency tracking (as well as w/ --enable-silent-rules which dramatically reduce amount of useless info, printed while compiling, which is also reduce compilation time! (because printing so much text to a console is far from fast operation, especially to a graphical one)).

so when `all-built-sources-local' completed, everything else (the major part) will be build in parallel (w/o wasting resources)...

> 2. Build all in parallel without allowing silent rules

again, my patch do not prevent parallel build!

> Personally, I would still prefer the second option as I think I can live
> without silent-rules for this case (also, we don't want silent-rules as
> discussed time ago and as eapi5 will force, see bug 429308)

silent rules is a part of the problem: the bigger disadvantage is inability to disable dependency tracking when it definitely wasting of resources...

> 
> > 1) also here is a fix for nasty warning about redefinition of
> > _FORTIFY_SOURCE when build w/ >=gcc-4.8
> 
> Could you report this to upstream for not need to carry this forever? ->
> bugs.webkit.org

can you? %)

> 
> > 2) also added a fix for configure w/ ruby21 as the only enabled RUBY_TARGETS
> > 
> > 
> 
> The same :)

what "the same"??
Comment 6 Gilles Dartiguelongue (RETIRED) gentoo-dev 2014-02-04 08:37:42 UTC
I fixed the ruby21 stuff, sorry for that. I'll review the rest later.
Comment 7 Pacho Ramos gentoo-dev 2014-02-04 21:21:19 UTC
(In reply to Alex Turbov from comment #5)
[...] 
> `all-built-sources-local' is a target (just) to generate all files mentioned
> in automakes' BUILT_SOURCES variable. unfortunately crazy upstream devs
> build a small lib at this moment as well, it is why this stage can't be
> parallel (due not all required files are generated yet). And
> `--enable-dependency-tracking' option just work, because before build
> everything, it generates all that files (in a single thread as well, because
> running from ./configure). But later it leads to generation of useless, for
> a single time build, *.d files (w/ -MD -MP -MF compiler options), which are
> consume CPU, disk I/O and time (multiplying to a number of files compiled
> and .d files size, it will be quite noticeable I guess). My fix (which is a
> real fix, btw) allows to compile this package w/o enabled dependency
> tracking (as well as w/ --enable-silent-rules which dramatically reduce
> amount of useless info, printed while compiling, which is also reduce
> compilation time! (because printing so much text to a console is far from
> fast operation, especially to a graphical one)).
> 
> so when `all-built-sources-local' completed, everything else (the major
> part) will be build in parallel (w/o wasting resources)...
> 

Thanks for the explanation :)

[...] 
> > > 1) also here is a fix for nasty warning about redefinition of
> > > _FORTIFY_SOURCE when build w/ >=gcc-4.8
> > 
> > Could you report this to upstream for not need to carry this forever? ->
> > bugs.webkit.org
> 
> can you? %)

Yeah, but I usually prefer people providing the patches to report directly as they will know better what to modify if upstream wants to modify it in some way :/

> 
> > 
> > > 2) also added a fix for configure w/ ruby21 as the only enabled RUBY_TARGETS
> > > 
> > > 
> > 
> > The same :)
> 
> what "the same"??

Sorry, my fault ;)
Comment 8 Pacho Ramos gentoo-dev 2014-07-16 09:04:09 UTC
Is there anything pending for 2.4.4? Related with parallel build issues I doubt upstream will care due they moving to cmake for next cycle, but the fix for gcc-4.8 could have been included there (or made obsolete)
Comment 9 Alex Turbov 2014-07-16 10:51:46 UTC
I can't waste my time for doing patches that do not go into the tree...
Comment 10 Craig Coleman 2014-08-08 13:33:10 UTC
I've read the bug report and really don't understand how to resolve the emerge problem.  I'm using ruby (*  dev-lang/ruby  2.1.2) and rubygems (7) along with a ruby java.  I really don't want to upgrade to gcc.
I've done everything I could think of to resolve this problem.
I don't understand because http://packages.gentoo.org/package/net-libs/webkit-gtk indicates it's stable.

Please throw me a spoon fed bone.

erivedSources/JavaScriptCore/LLIntDesiredOffsets.h
/usr/lib64/ruby/2.1.0/rubygems.rb:15:in `require': cannot load such file -- rubygems/compatibility (LoadError)
	from /usr/lib64/ruby/2.1.0/rubygems.rb:15:in `<top (required)>'
	from <internal:gem_prelude>:1:in `require'
	from <internal:gem_prelude>:1:in `<compiled>'
make: *** [DerivedSources/JavaScriptCore/LLIntDesiredOffsets.h] Error 1
 * ERROR: net-libs/webkit-gtk-2.4.4-r200::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=net-libs/webkit-gtk-2.4.4-r200::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=net-libs/webkit-gtk-2.4.4-r200::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/temp/environment'.
 * Working directory: '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/work/webkitgtk-2.4.4'
 * S: '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/work/webkitgtk-2.4.4'

>>> Failed to emerge net-libs/webkit-gtk-2.4.4-r200, Log file:

>>>  '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/temp/build.log'

 * Messages for package net-libs/webkit-gtk-2.4.4-r200:

 * ERROR: net-libs/webkit-gtk-2.4.4-r200::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=net-libs/webkit-gtk-2.4.4-r200::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=net-libs/webkit-gtk-2.4.4-r200::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/temp/environment'.
 * Working directory: '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/work/webkitgtk-2.4.4'
 * S: '/var/tmp/portage/net-libs/webkit-gtk-2.4.4-r200/work/webkitgtk-2.4.4'
Comment 11 Pacho Ramos gentoo-dev 2015-01-13 15:50:27 UTC
closing as original bugs/patches are obsolete. For next time sending one issue per bug will surely help :/