All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] native.bbclass: Override TARGET_ flags too
@ 2014-04-16  9:31 Mike Crowe
  2014-04-16  9:49 ` Paul Eggleton
  0 siblings, 1 reply; 6+ messages in thread
From: Mike Crowe @ 2014-04-16  9:31 UTC (permalink / raw)
  To: openembedded-core; +Cc: Mike Crowe

TARGET_LDFLAGS is currently defined in bitbake.conf to contain
${TARGET_LINK_HASH_STYLE} which differs between MIPS and other
targets. Since TARGET_LDFLAGS is an exported variable it affects the hash
of every shell task even if it is not used.

We don't want native recipe tasks to have different hashes purely because
they happen to have been built in order to satisfy dependencies for
different MACHINEs since this causes lots of churn in the native sysroot
when switching between MACHINEs.

Making native.bbclass override TARGET_LDFLAGS to use BUILD_LDFLAGS ensures
consistent hashes and is a sensible thing to be doing anyway.

Although they don't appear to have the same detrimental affect on task
hashes TARGET_CPPFLAGS, TARGET_CFLAGS and TARGET_CXXFLAGS should be
overridden too.

Signed-off-by: Mike Crowe <mac@mcrowe.com>
---
 meta/classes/native.bbclass | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta/classes/native.bbclass b/meta/classes/native.bbclass
index 5a318d2..2d182f0 100644
--- a/meta/classes/native.bbclass
+++ b/meta/classes/native.bbclass
@@ -26,6 +26,10 @@ TARGET_PREFIX = "${BUILD_PREFIX}"
 TARGET_CC_ARCH = "${BUILD_CC_ARCH}"
 TARGET_LD_ARCH = "${BUILD_LD_ARCH}"
 TARGET_AS_ARCH = "${BUILD_AS_ARCH}"
+TARGET_CPPFLAGS = "${BUILD_CPPFLAGS}"
+TARGET_CFLAGS = "${BUILD_CFLAGS}"
+TARGET_CXXFLAGS = "${BUILD_CXXFLAGS}"
+TARGET_LDFLAGS = "${BUILD_LDFLAGS}"
 TARGET_FPU = ""
 
 HOST_ARCH = "${BUILD_ARCH}"
-- 
1.9.1



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

* Re: [PATCH] native.bbclass: Override TARGET_ flags too
  2014-04-16  9:31 [PATCH] native.bbclass: Override TARGET_ flags too Mike Crowe
@ 2014-04-16  9:49 ` Paul Eggleton
  2014-04-16  9:53   ` Mike Crowe
  0 siblings, 1 reply; 6+ messages in thread
From: Paul Eggleton @ 2014-04-16  9:49 UTC (permalink / raw)
  To: Mike Crowe; +Cc: openembedded-core

On Wednesday 16 April 2014 10:31:36 Mike Crowe wrote:
> TARGET_LDFLAGS is currently defined in bitbake.conf to contain
> ${TARGET_LINK_HASH_STYLE} which differs between MIPS and other
> targets. Since TARGET_LDFLAGS is an exported variable it affects the hash
> of every shell task even if it is not used.
> 
> We don't want native recipe tasks to have different hashes purely because
> they happen to have been built in order to satisfy dependencies for
> different MACHINEs since this causes lots of churn in the native sysroot
> when switching between MACHINEs.
> 
> Making native.bbclass override TARGET_LDFLAGS to use BUILD_LDFLAGS ensures
> consistent hashes and is a sensible thing to be doing anyway.

Just to be clear, for a native recipe how is TARGET_LDFLAGS entering the 
signatures? AIUI there ought to be indirection such that LDFLAGS is used and 
that is set from BUILD_LDFLAGS for a native recipe rather than TARGET_LDFLAGS.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


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

* Re: [PATCH] native.bbclass: Override TARGET_ flags too
  2014-04-16  9:49 ` Paul Eggleton
@ 2014-04-16  9:53   ` Mike Crowe
  2014-04-16  9:59     ` Paul Eggleton
  0 siblings, 1 reply; 6+ messages in thread
From: Mike Crowe @ 2014-04-16  9:53 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: openembedded-core

On Wednesday 16 April 2014 at 10:49:48 +0100, Paul Eggleton wrote:
> On Wednesday 16 April 2014 10:31:36 Mike Crowe wrote:
> > TARGET_LDFLAGS is currently defined in bitbake.conf to contain
> > ${TARGET_LINK_HASH_STYLE} which differs between MIPS and other
> > targets. Since TARGET_LDFLAGS is an exported variable it affects the hash
> > of every shell task even if it is not used.
> > 
> > We don't want native recipe tasks to have different hashes purely because
> > they happen to have been built in order to satisfy dependencies for
> > different MACHINEs since this causes lots of churn in the native sysroot
> > when switching between MACHINEs.
> > 
> > Making native.bbclass override TARGET_LDFLAGS to use BUILD_LDFLAGS ensures
> > consistent hashes and is a sensible thing to be doing anyway.
> 
> Just to be clear, for a native recipe how is TARGET_LDFLAGS entering the 
> signatures? AIUI there ought to be indirection such that LDFLAGS is used and 
> that is set from BUILD_LDFLAGS for a native recipe rather than
> TARGET_LDFLAGS.

Because TARGET_LDFLAGS is an exported variable. LDFLAGS is set from
TARGET_LDFLAGS but (prior to this patch) only LDFLAGS is set to
BUILD_LDFLAGS; TARGET_LDFLAGS remains unchanged.

See thread "export TARGET_LDFLAGS and native sstate"
<20140407155333.GA19351@mcrowe.com> .

Should I improve the commit message?

Thanks.

Mike.


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

* Re: [PATCH] native.bbclass: Override TARGET_ flags too
  2014-04-16  9:53   ` Mike Crowe
@ 2014-04-16  9:59     ` Paul Eggleton
  2014-04-16 10:07       ` Mike Crowe
  2014-04-16 23:00       ` Khem Raj
  0 siblings, 2 replies; 6+ messages in thread
From: Paul Eggleton @ 2014-04-16  9:59 UTC (permalink / raw)
  To: Mike Crowe; +Cc: openembedded-core

On Wednesday 16 April 2014 10:53:59 Mike Crowe wrote:
> On Wednesday 16 April 2014 at 10:49:48 +0100, Paul Eggleton wrote:
> > On Wednesday 16 April 2014 10:31:36 Mike Crowe wrote:
> > > TARGET_LDFLAGS is currently defined in bitbake.conf to contain
> > > ${TARGET_LINK_HASH_STYLE} which differs between MIPS and other
> > > targets. Since TARGET_LDFLAGS is an exported variable it affects the
> > > hash
> > > of every shell task even if it is not used.
> > > 
> > > We don't want native recipe tasks to have different hashes purely
> > > because
> > > they happen to have been built in order to satisfy dependencies for
> > > different MACHINEs since this causes lots of churn in the native sysroot
> > > when switching between MACHINEs.
> > > 
> > > Making native.bbclass override TARGET_LDFLAGS to use BUILD_LDFLAGS
> > > ensures
> > > consistent hashes and is a sensible thing to be doing anyway.
> > 
> > Just to be clear, for a native recipe how is TARGET_LDFLAGS entering the
> > signatures? AIUI there ought to be indirection such that LDFLAGS is used
> > and that is set from BUILD_LDFLAGS for a native recipe rather than
> > TARGET_LDFLAGS.
> 
> Because TARGET_LDFLAGS is an exported variable. LDFLAGS is set from
> TARGET_LDFLAGS but (prior to this patch) only LDFLAGS is set to
> BUILD_LDFLAGS; TARGET_LDFLAGS remains unchanged.
> 
> See thread "export TARGET_LDFLAGS and native sstate"
> <20140407155333.GA19351@mcrowe.com> .
> 
> Should I improve the commit message?

Sorry, I had missed the other thread. If it's exported then we probably do 
need it to have the correct value.

Since this doesn't look like something recent though I'd like to understand 
why it being effectively wrong hasn't been an issue up to this point.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre


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

* Re: [PATCH] native.bbclass: Override TARGET_ flags too
  2014-04-16  9:59     ` Paul Eggleton
@ 2014-04-16 10:07       ` Mike Crowe
  2014-04-16 23:00       ` Khem Raj
  1 sibling, 0 replies; 6+ messages in thread
From: Mike Crowe @ 2014-04-16 10:07 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: openembedded-core

On Wednesday 16 April 2014 at 10:59:27 +0100, Paul Eggleton wrote:
> On Wednesday 16 April 2014 10:53:59 Mike Crowe wrote:
> > On Wednesday 16 April 2014 at 10:49:48 +0100, Paul Eggleton wrote:
> > > On Wednesday 16 April 2014 10:31:36 Mike Crowe wrote:
> > > > TARGET_LDFLAGS is currently defined in bitbake.conf to contain
> > > > ${TARGET_LINK_HASH_STYLE} which differs between MIPS and other
> > > > targets. Since TARGET_LDFLAGS is an exported variable it affects the
> > > > hash
> > > > of every shell task even if it is not used.
> > > > 
> > > > We don't want native recipe tasks to have different hashes purely
> > > > because
> > > > they happen to have been built in order to satisfy dependencies for
> > > > different MACHINEs since this causes lots of churn in the native sysroot
> > > > when switching between MACHINEs.
> > > > 
> > > > Making native.bbclass override TARGET_LDFLAGS to use BUILD_LDFLAGS
> > > > ensures
> > > > consistent hashes and is a sensible thing to be doing anyway.
> > > 
> > > Just to be clear, for a native recipe how is TARGET_LDFLAGS entering the
> > > signatures? AIUI there ought to be indirection such that LDFLAGS is used
> > > and that is set from BUILD_LDFLAGS for a native recipe rather than
> > > TARGET_LDFLAGS.
> > 
> > Because TARGET_LDFLAGS is an exported variable. LDFLAGS is set from
> > TARGET_LDFLAGS but (prior to this patch) only LDFLAGS is set to
> > BUILD_LDFLAGS; TARGET_LDFLAGS remains unchanged.
> > 
> > See thread "export TARGET_LDFLAGS and native sstate"
> > <20140407155333.GA19351@mcrowe.com> .
> > 
> > Should I improve the commit message?
> 
> Sorry, I had missed the other thread. If it's exported then we probably do 
> need it to have the correct value.
> 
> Since this doesn't look like something recent though I'd like to understand 
> why it being effectively wrong hasn't been an issue up to this point.

Perhaps few people are building in the same source tree for both MIPS and
non-MIPS. I don't think you'd notice otherwise.

Even then we only noticed because it seems to be a good way provoke races
in building whilst unpopulating the sysroot (e.g. my recent fix for
cmake-native vs libacl.)

Thanks.

Mike.


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

* Re: [PATCH] native.bbclass: Override TARGET_ flags too
  2014-04-16  9:59     ` Paul Eggleton
  2014-04-16 10:07       ` Mike Crowe
@ 2014-04-16 23:00       ` Khem Raj
  1 sibling, 0 replies; 6+ messages in thread
From: Khem Raj @ 2014-04-16 23:00 UTC (permalink / raw)
  To: Paul Eggleton; +Cc: Mike Crowe, Patches and discussions about the oe-core layer

On Wed, Apr 16, 2014 at 2:59 AM, Paul Eggleton
<paul.eggleton@linux.intel.com> wrote:
> Since this doesn't look like something recent though I'd like to understand
> why it being effectively wrong hasn't been an issue up to this point.

because unless you build something like mips and arm in single
workspace you don't have different TARGET_LDFLAGS
and issue remains latent. With mips we change the hash-style since
mips can't support gnu style we have to use sysv and
that changes the TARGET_LDFLAGS but it should not change the
native/nativesdk flags only target flags


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

end of thread, other threads:[~2014-04-16 23:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-16  9:31 [PATCH] native.bbclass: Override TARGET_ flags too Mike Crowe
2014-04-16  9:49 ` Paul Eggleton
2014-04-16  9:53   ` Mike Crowe
2014-04-16  9:59     ` Paul Eggleton
2014-04-16 10:07       ` Mike Crowe
2014-04-16 23:00       ` Khem Raj

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.