Re: [OE-core] RFC: Separate build dir for autotools

2014-02-26 Thread Nicolas Dechesne
Ross,

On Tue, Feb 25, 2014 at 11:10 PM, Nicolas Dechesne
nicolas.deche...@linaro.org wrote:
 oops. you're right. it's fixed in both dora and master. in fact i got
 hit by that on dylan... but they i switched to dora anyways... so this
 one is fine.

I guess i spoke too quickly... i just retried a dora and master after
cleansstate on mesa, and master seems to build fine, but dora failed
to build. see

https://bugzilla.yoctoproject.org/show_bug.cgi?id=5882
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-26 Thread Martin Jansa
On Mon, Feb 24, 2014 at 04:27:04PM +, Richard Purdie wrote:
 On Mon, 2014-02-24 at 17:09 +0100, Martin Jansa wrote:
  On Mon, Feb 24, 2014 at 03:41:11PM +, Burton, Ross wrote:
   On 24 February 2014 15:27, Martin Jansa martin.ja...@gmail.com wrote:
Can we start by adding
include conf/distro/include/seperatebuilddir.inc
to
conf/distro/defaultsetup.conf
? so that more people start using it and possibly report issues in their
builds?
   
   That list is opt-in and mainly covers oe-core, so this gets tested
   every time the YP autobuilder does a world build.  We need a meta-oe
   world build where autotools.bbclass sets B=${WORKDIR}/build: it's
   literally just this one-line patch.
  
  But doesn't cover oe-core built with different combinations for
  PACKAGECONFIGs, .bbappends etc, so including this file in
  defaultsetup.conf can still reveal few issues in oe-core recipes.
 
 Patch out for testing, I'll merge it if nobody objects...

I've added it to my world builds as soon as you sent it.. but only 1
architecture was finished since then :/

Is it supposed to work correctly in incremental builds? Today I've seen
couple of components failing in do_configure and building fine after
manual clean, interesting part of log is that autotools.bbclass was
actually trying to clean them:

Previously configured separate build directory detected, cleaning
/OE/../oprofileui-server/0.0+gitAUTOINC+f168b8bfdc-r0/build
..
checking whether make supports nested variables... yes
configure: error: source directory already configured; run make distclean 
there first
Configure failed. The contents of all config.log files follows to aid debugging
/OE/../oprofileui-server/0.0+gitAUTOINC+f168b8bfdc-r0/git/config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by oprofileui configure 0.2.0, which was

The working version also has:
configure.ac:5: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are 
deprecated.  For more info, see:
configure.ac:5: 
http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
configure.ac:8: installing './compile'
configure.ac:5: installing './install-sh'
configure.ac:5: installing './missing'
protocol/Makefile.am: installing './depcomp'

I've seen similar behavior in 3 other components.

-- 
Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com


signature.asc
Description: Digital signature
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-26 Thread Burton, Ross
On 26 February 2014 19:11, Martin Jansa martin.ja...@gmail.com wrote:
 Is it supposed to work correctly in incremental builds? Today I've seen
 couple of components failing in do_configure and building fine after
 manual clean, interesting part of log is that autotools.bbclass was
 actually trying to clean them:

autotools will clean away the stale build/ directory but it won't
clean ${S} sufficiently to convince configure that it can re-execute
with a different build directory.  autoconf is a bit weird here, so
sadly this means enabling B!=S for a recipe means doing a clean on
that recipe.

Unless, of course, you work out where configure is looking to bail on
this test, and if we can safely remove it on rebuilds.

Ross
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-26 Thread Phil Blundell
On Wed, 2014-02-26 at 19:54 +, Burton, Ross wrote:
 Unless, of course, you work out where configure is looking to bail on
 this test, and if we can safely remove it on rebuilds.

I don't think there's any safe way of defeating that configure check
other than to properly clean ${S}.  You could add something like:

if [ -f ${S}/config.status ]; then
  ( cd ${S} ; make distclean || true )
fi

to autotools.bbclass, which would probably take care of most of the
simple cases.

If you just remove config.status (and maybe config.h) then that'd
probably be enough to fool configure, but then you'd be running the risk
that the vpaths would pick up stale copies of generated files from ${S}
rather than rebuilding them in ${B}.

p.


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-25 Thread Burton, Ross
On 25 February 2014 05:46, Khem Raj raj.k...@gmail.com wrote:
 b) We introduce an autotools2 class and have recipes inherit that.
 This version would default to separate builddirs. It does mean change to
 all the good recipes rather than the broken ones though and hence a
 fair bit of churn.

 probably a better migration path can happen over time. may be we can raname
 existing autotools.bbclass to autotoolsold and have autotools.bbclass
 default to S != B
 that way the recipes which break can inherit autotoolsold and can have quick 
 fix
 then we can slowly remove inheriting autotoolsold and finally remove
 the class itself.

I really don't see the point of this churn.  If autotools defaults to
B!=S then the recipe is going to need changing anyway, and adding
B=${S} in the recipe is far lower impact than having a fork of
autotools.bbclass that has one change and would need to remain (and be
maintained) for several release cycles.

Ross
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-25 Thread Khem Raj
On Tue, Feb 25, 2014 at 1:52 AM, Burton, Ross ross.bur...@intel.com wrote:
 On 25 February 2014 05:46, Khem Raj raj.k...@gmail.com wrote:
 b) We introduce an autotools2 class and have recipes inherit that.
 This version would default to separate builddirs. It does mean change to
 all the good recipes rather than the broken ones though and hence a
 fair bit of churn.

 probably a better migration path can happen over time. may be we can raname
 existing autotools.bbclass to autotoolsold and have autotools.bbclass
 default to S != B
 that way the recipes which break can inherit autotoolsold and can have quick 
 fix
 then we can slowly remove inheriting autotoolsold and finally remove
 the class itself.

 I really don't see the point of this churn.  If autotools defaults to
 B!=S then the recipe is going to need changing anyway, and adding
 B=${S} in the recipe is far lower impact than having a fork of
 autotools.bbclass

OK yes.

that has one change and would need to remain (and be
 maintained) for several release cycles.

 Ross
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-25 Thread Nicolas Dechesne
On Mon, Feb 24, 2014 at 5:09 PM, Martin Jansa martin.ja...@gmail.com wrote:

 That list is opt-in and mainly covers oe-core, so this gets tested
 every time the YP autobuilder does a world build.  We need a meta-oe
 world build where autotools.bbclass sets B=${WORKDIR}/build: it's
 literally just this one-line patch.

 But doesn't cover oe-core built with different combinations for
 PACKAGECONFIGs, .bbappends etc, so including this file in
 defaultsetup.conf can still reveal few issues in oe-core recipes.

right. I have recently (on dora) noticed that mesa build is broken
when using separate build dir, i have the following extra config:

PACKAGECONFIG_append =  gallium gallium-egl gallium-gbm gallium-llvm

since gallium-egl needs the egl.h files generated during mesa build.
the generated files stay in $B while gallium-egl is looking for them
in $S (or sysroot)
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-25 Thread Burton, Ross
On 25 February 2014 17:36, Nicolas Dechesne nicolas.deche...@linaro.org wrote:
 right. I have recently (on dora) noticed that mesa build is broken
 when using separate build dir, i have the following extra config:

 PACKAGECONFIG_append =  gallium gallium-egl gallium-gbm gallium-llvm

 since gallium-egl needs the egl.h files generated during mesa build.
 the generated files stay in $B while gallium-egl is looking for them
 in $S (or sysroot)

Pretty sure I fixed that:  oe-core fbc7092f0ae07538d4363679b1597ba4e556d1a8

It looks like that's in Dora so we've possibly regressed again, can
you file a bug (CCing me) with the build log?

Ross
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-25 Thread Nicolas Dechesne
On Tue, Feb 25, 2014 at 7:43 PM, Burton, Ross ross.bur...@intel.com wrote:
 On 25 February 2014 17:36, Nicolas Dechesne nicolas.deche...@linaro.org 
 wrote:
 right. I have recently (on dora) noticed that mesa build is broken
 when using separate build dir, i have the following extra config:

 PACKAGECONFIG_append =  gallium gallium-egl gallium-gbm gallium-llvm

 since gallium-egl needs the egl.h files generated during mesa build.
 the generated files stay in $B while gallium-egl is looking for them
 in $S (or sysroot)

 Pretty sure I fixed that:  oe-core fbc7092f0ae07538d4363679b1597ba4e556d1a8

 It looks like that's in Dora so we've possibly regressed again, can
 you file a bug (CCing me) with the build log?

oops. you're right. it's fixed in both dora and master. in fact i got
hit by that on dylan... but they i switched to dora anyways... so this
one is fine.
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-24 Thread Otavio Salvador
Hello Richard,

On Mon, Feb 24, 2014 at 11:58 AM, Richard Purdie
richard.pur...@linuxfoundation.org wrote:
 For a while poky and others have been using the seperatebuilddir.inc
 file. This makes ${S} != ${B} and means that ${B} can be wiped when
 configuration changes.

 This helps deal with the fact that autotools and friends are not
 particular good at rebuilding things that change. The recent libcheck
 upgrade which broke bluez4 builds is but one example of the kind of
 problem we can hit. Sadly bluez4 doesn't work for S!=B so it didn't
 protect against that issue but it does protect other packages.

 I'd really love to switch the default in autotools.bbclass to make this
 the default and then have broken packages opt out of it.

 I can deal with OE-Core and make sure the metadata there is updated, my
 bigger worry is what this would do to other layers.

 The options I can see are therefore basically:

 a) We change the default in autotools.bbclass and fix things that break

+1

I think it is better to fix this sooner than later. This indeed helps
improve the build stability so I think this is better to default to
the better options; adding an extra class for it is the wrong way in
my point of view and we'll support the wrong use of it. I think the
exceptions are better covered if we keep it explicit in a var and easy
to spot in a git grep.

-- 
Otavio Salvador O.S. Systems
http://www.ossystems.com.brhttp://code.ossystems.com.br
Mobile: +55 (53) 9981-7854Mobile: +1 (347) 903-9750
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-24 Thread Burton, Ross
On 24 February 2014 15:27, Martin Jansa martin.ja...@gmail.com wrote:
 Can we start by adding
 include conf/distro/include/seperatebuilddir.inc
 to
 conf/distro/defaultsetup.conf
 ? so that more people start using it and possibly report issues in their
 builds?

That list is opt-in and mainly covers oe-core, so this gets tested
every time the YP autobuilder does a world build.  We need a meta-oe
world build where autotools.bbclass sets B=${WORKDIR}/build: it's
literally just this one-line patch.

I guess a good first step would be to make this change in oe-core and
do a world build there, adding explicit B=$S statements to any recipes
that break with B!=S.

Ross
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-24 Thread Martin Jansa
On Mon, Feb 24, 2014 at 03:41:11PM +, Burton, Ross wrote:
 On 24 February 2014 15:27, Martin Jansa martin.ja...@gmail.com wrote:
  Can we start by adding
  include conf/distro/include/seperatebuilddir.inc
  to
  conf/distro/defaultsetup.conf
  ? so that more people start using it and possibly report issues in their
  builds?
 
 That list is opt-in and mainly covers oe-core, so this gets tested
 every time the YP autobuilder does a world build.  We need a meta-oe
 world build where autotools.bbclass sets B=${WORKDIR}/build: it's
 literally just this one-line patch.

But doesn't cover oe-core built with different combinations for
PACKAGECONFIGs, .bbappends etc, so including this file in
defaultsetup.conf can still reveal few issues in oe-core recipes.

-- 
Martin 'JaMa' Jansa jabber: martin.ja...@gmail.com


signature.asc
Description: Digital signature
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-24 Thread Richard Purdie
On Mon, 2014-02-24 at 17:09 +0100, Martin Jansa wrote:
 On Mon, Feb 24, 2014 at 03:41:11PM +, Burton, Ross wrote:
  On 24 February 2014 15:27, Martin Jansa martin.ja...@gmail.com wrote:
   Can we start by adding
   include conf/distro/include/seperatebuilddir.inc
   to
   conf/distro/defaultsetup.conf
   ? so that more people start using it and possibly report issues in their
   builds?
  
  That list is opt-in and mainly covers oe-core, so this gets tested
  every time the YP autobuilder does a world build.  We need a meta-oe
  world build where autotools.bbclass sets B=${WORKDIR}/build: it's
  literally just this one-line patch.
 
 But doesn't cover oe-core built with different combinations for
 PACKAGECONFIGs, .bbappends etc, so including this file in
 defaultsetup.conf can still reveal few issues in oe-core recipes.

Patch out for testing, I'll merge it if nobody objects...

Cheers,

Richard


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] RFC: Separate build dir for autotools

2014-02-24 Thread Khem Raj
On Mon, Feb 24, 2014 at 6:58 AM, Richard Purdie
richard.pur...@linuxfoundation.org wrote:
 For a while poky and others have been using the seperatebuilddir.inc
 file. This makes ${S} != ${B} and means that ${B} can be wiped when
 configuration changes.

 This helps deal with the fact that autotools and friends are not
 particular good at rebuilding things that change. The recent libcheck
 upgrade which broke bluez4 builds is but one example of the kind of
 problem we can hit. Sadly bluez4 doesn't work for S!=B so it didn't
 protect against that issue but it does protect other packages.

 I'd really love to switch the default in autotools.bbclass to make this
 the default and then have broken packages opt out of it.

 I can deal with OE-Core and make sure the metadata there is updated, my
 bigger worry is what this would do to other layers.

 The options I can see are therefore basically:

 a) We change the default in autotools.bbclass and fix things that break

This would be sort of late call for 1.6 IMO but I would prefer this solution.


 b) We introduce an autotools2 class and have recipes inherit that.
 This version would default to separate builddirs. It does mean change to
 all the good recipes rather than the broken ones though and hence a
 fair bit of churn.

probably a better migration path can happen over time. may be we can raname
existing autotools.bbclass to autotoolsold and have autotools.bbclass
default to S != B
that way the recipes which break can inherit autotoolsold and can have quick fix
then we can slowly remove inheriting autotoolsold and finally remove
the class itself.


 Have we got the willpower to fix a)? is b) an option? Other ideas?

 One way or another I think we should try and switch things somehow...

 Cheers,

 Richard

 ___
 Openembedded-core mailing list
 Openembedded-core@lists.openembedded.org
 http://lists.openembedded.org/mailman/listinfo/openembedded-core
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core