Re: [yocto] pseudo interaction issue

2012-03-23 Thread Peter Seebach
On Fri, 23 Mar 2012 11:21:26 +0800
"Xu, Dongxiao"  wrote:

> What do you mean by first build? Did you click "Just bake" button?

Yes.  The original reproducer I saw said that it worked the first time,
but failed the second time.

> 1) build_target(packages)
> 2) build_target(image)
 
> I noticed the pseudo error will happen when calling
> build_target(image). Therefore I also treated it as second build.

Interesting.

I am, currently, sort of stumped on this.  The failures are coming from
the git log/git branch commands using os.popen(), and those calls
appear to be happening in a process:
1.  Which did not have the pseudo library loaded, at all.
2.  Which has LD_PRELOAD set to include pseudo.
3.  Which has most of the PSEUDO_BINDIR, etc., values set.
4.  Which does not have PSEUDO_PREFIX set.

I can't figure out how to get there.  I can't reproduce this outside of
hob, yet.  And obviously, if the pseudo library isn't loaded, I can't
add more debugging or logging to pseudo to fix it.  (I infer that it's
not loaded because os.popen() isn't hitting diagnostic messages in
pseudo's new popen() wrapper, even if they're completely unconditional.)

I added an abort(), and got a core file.  The core file shows a
backtrace in /bin/sh:

#0  0x7f1232cd8a75 in raise () from /lib/libc.so.6
#1  0x7f1232cdc5c0 in abort () from /lib/libc.so.6
#2  0x7f1233497489 in pseudo_get_prefix (pathname=0x7f123349ac9d
"")
at pseudo_util.c:1060
#3  0x7f1233498244 in pseudo_setupenv () at pseudo_util.c:717
#4  0x7f12334955dd in wrap_fork () at ports/common/guts/fork.c:14
#5  0x7f1233495675 in fork () at ports/common/pseudo_wrappers.c:322
#6  0x0044339c in make_child ()
#7  0x00436f04 in ?? ()
#8  0x00433fa4 in execute_command_internal ()
#9  0x0043475e in execute_command_internal ()
#10 0x0047262a in parse_and_execute ()
#11 0x0041fd04 in ?? ()
#12 0x00420e01 in main ()

I haven't found an obvious way to look at the arguments to main, but
I'm pretty sure it's one of the "cd REPO; git log..." commands.  So...

Basically, I can't see how we can get here.

Currently leaning towards a theory that the issue may be that we only
set PSEUDO_PREFIX when we think we want pseudo, and it looks like in
the PSEUDO_DISABLED=1 case, it may be that we can end up with a task
being run in an environment where LD_PRELOAD had been set, but we've
cleaned up our environment, and the disabled path is skipping part of
the environment setup.

Still really weird to me that I can't reproduce this outside of hob.
I am pretty sure there exists a series of forks and execs and
environment changes such that this will end up happening.

-s
-- 
Listen, get this.  Nobody with a good compiler needs to be justified.
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] pseudo interaction issue

2012-03-23 Thread Paul Eggleton
On Friday 23 March 2012 02:16:35 Peter Seebach wrote:
> Still really weird to me that I can't reproduce this outside of hob.
> I am pretty sure there exists a series of forks and execs and
> environment changes such that this will end up happening.

I now have a fairly simple test case outside of hob. Put the attached file in 
meta/classes/ and then add the following to your local.conf:

INHERIT += "breakit"

Then, just run something that will actually execute a real task. If bzip2 has 
already been built you can trigger it just with this, which doesn't take very 
long:

bitbake -c package -f bzip2

This should give you a stream of "pseudo: You must set the PSEUDO_PREFIX 
environment variable to run pseudo." after the task summary.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centrebreakit_break() {
cat > ${TMPDIR}/test123 <___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [PATCH] ia32-base.inc: Use '=' for IMAGE_FSTYPES

2012-03-23 Thread Tom Rini
As per
http://lists.linuxtogo.org/pipermail/openembedded-core/2012-March/019772.html
a machine conf file should use '=' to set IMAGE_FSTYPES.

Cc: Kishore Bodke 
Cc: Tom Zanussi 
Cc: Darren Hart 
Signed-off-by: Tom Rini 
---
 conf/machine/include/ia32-base.inc |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/conf/machine/include/ia32-base.inc 
b/conf/machine/include/ia32-base.inc
index 9b2ef5a..74ab5a5 100644
--- a/conf/machine/include/ia32-base.inc
+++ b/conf/machine/include/ia32-base.inc
@@ -11,7 +11,7 @@ MACHINE_FEATURES += "kernel26 screen keyboard pci usbhost 
ext2 ext3 x86 \
 MACHINE_EXTRA_RRECOMMENDS += "kernel-modules eee-acpi-scripts"
 MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "grub"
 
-IMAGE_FSTYPES += "ext3 cpio.gz live"
+IMAGE_FSTYPES = "ext3 cpio.gz live"
 
 KERNEL_IMAGETYPE ?= "bzImage"
 
-- 
1.7.0.4

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] pseudo interaction issue

2012-03-23 Thread Peter Seebach
On Fri, 23 Mar 2012 12:20:08 +
Paul Eggleton  wrote:

> On Friday 23 March 2012 02:16:35 Peter Seebach wrote:
> > Still really weird to me that I can't reproduce this outside of hob.
> > I am pretty sure there exists a series of forks and execs and
> > environment changes such that this will end up happening.
> 
> I now have a fairly simple test case outside of hob. Put the attached
> file in meta/classes/ and then add the following to your local.conf:
> 
> INHERIT += "breakit"

Confirmed, this produces the problem for me, reducing the reproduction
window from something over an hour to about 7 seconds.  THANK YOU!

-s
-- 
Listen, get this.  Nobody with a good compiler needs to be justified.
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] first pass at cleaning up ref manual: dead(?) variables in glossary

2012-03-23 Thread Robert P. J. Day

  as part of a concerted effort to tidy up more of the docs, i'm
currently perusing the variable glossary in the yocto/poky ref manual:

file:///home/rpjday/yocto/yocto-docs/documentation/poky-ref-manual/poky-ref-manual.html#ref-variables-glos

and cross-checking entries against their actual usage, and one simple
observation is that some of those entries appear to be obsolete and
can be removed entirely.

  some examples of dead content appear to be PACKAGE_SUMMARY,
PACKAGE_DESCRIPTION and perhaps anything starting with the string
"POKY" (POKY_EXTRA_INSTALL, POKYMODE, POKYLIBC).

  rather than remove this chaff one or two entries at a time, can
people suggest any other deadwood that can be tossed from that
glossary, and i can put together a patch that does it all in one shot?

rday

-- 


Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca

Twitter:   http://twitter.com/rpjday
LinkedIn:   http://ca.linkedin.com/in/rpjday

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [PATCH 0/1] [meta-intel] meta-romley switching kernel to 3.2

2012-03-23 Thread kishore . k . bodke
From: Kishore Bodke 

These patch set is to switch the kernel version to 3.2 for romley bsp.

Please pull into meta-intel/master.

Thanks
Kishore.

The following changes since commit f89405e115d73426c8a6450b6e795b5885d6bdf3:

  MAINTAINERS: Add FRI2 maintainer (2012-03-23 09:46:15 -0700)

are available in the git repository at:
  git://git.pokylinux.org/meta-intel-contrib kishore/romley-kernel-3.2-update
  
http://git.pokylinux.org/cgit.cgi/meta-intel-contrib/log/?h=kishore/romley-kernel-3.2-update

Kishore Bodke (1):
  meta-romley: switch to linux-yocto-3.2 kernel

 meta-romley/conf/machine/romley.conf   |3 +++
 .../linux/linux-yocto-rt_3.2.bbappend  |8 
 .../recipes-kernel/linux/linux-yocto_3.2.bbappend  |   10 ++
 3 files changed, 21 insertions(+), 0 deletions(-)
 create mode 100644 meta-romley/recipes-kernel/linux/linux-yocto-rt_3.2.bbappend
 create mode 100644 meta-romley/recipes-kernel/linux/linux-yocto_3.2.bbappend

-- 
1.7.5.4

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [PATCH 1/1] [meta-intel] meta-romley: switch to linux-yocto-3.2 kernel

2012-03-23 Thread kishore . k . bodke
From: Kishore Bodke 

Switch romley to the 3.2 kernel and update kernel SRCREVs.

Signed-off-by: Kishore Bodke 
---
 meta-romley/conf/machine/romley.conf   |3 +++
 .../linux/linux-yocto-rt_3.2.bbappend  |8 
 .../recipes-kernel/linux/linux-yocto_3.2.bbappend  |   10 ++
 3 files changed, 21 insertions(+), 0 deletions(-)
 create mode 100644 meta-romley/recipes-kernel/linux/linux-yocto-rt_3.2.bbappend
 create mode 100644 meta-romley/recipes-kernel/linux/linux-yocto_3.2.bbappend

diff --git a/meta-romley/conf/machine/romley.conf 
b/meta-romley/conf/machine/romley.conf
index aa334c0..9c93874 100644
--- a/meta-romley/conf/machine/romley.conf
+++ b/meta-romley/conf/machine/romley.conf
@@ -4,9 +4,12 @@
 #@DESCRIPTION: Machine configuration for Romley systems
 # i.e. Sandy Bridge + Patsburg Chipset
 
+PREFERRED_VERSION_linux-yocto ?= "3.2%"
+
 require conf/machine/include/tune-x86_64.inc
 require conf/machine/include/ia32-base.inc
 
+
 XSERVER ?= "${XSERVER_IA32_BASE} \
${XSERVER_IA32_EXT} \
xserver-xorg-module-xaa \
diff --git a/meta-romley/recipes-kernel/linux/linux-yocto-rt_3.2.bbappend 
b/meta-romley/recipes-kernel/linux/linux-yocto-rt_3.2.bbappend
new file mode 100644
index 000..1551ccf
--- /dev/null
+++ b/meta-romley/recipes-kernel/linux/linux-yocto-rt_3.2.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+COMPATIBLE_MACHINE_romley = "romley"
+KMACHINE_romley  = "romley"
+
+# Update the following to use a different BSP branch or meta SRCREV
+#KBRANCH_romley  = "yocto/standard/preempt-rt/base"
+#SRCREV_machine_pn-linux-yocto-rt_romley ?= 
+#SRCREV_meta_pn-linux-yocto-rt_romley ?= 
diff --git a/meta-romley/recipes-kernel/linux/linux-yocto_3.2.bbappend 
b/meta-romley/recipes-kernel/linux/linux-yocto_3.2.bbappend
new file mode 100644
index 000..7c8c024
--- /dev/null
+++ b/meta-romley/recipes-kernel/linux/linux-yocto_3.2.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+COMPATIBLE_MACHINE_romley = "romley"
+KMACHINE_romley  = "yocto/standard/common-pc-64/romley"
+
+KERNEL_FEATURES_append_romley += " cfg/smp.scc"
+
+SRCREV_machine_pn-linux-yocto_romley ?= 
"4716ac6af37c0c0dcc78690a4a0ba3b857f8bda2"
+SRCREV_meta_pn-linux-yocto_romley ?= "42fff722188e0de7246a3a6900af69f87047"
+
-- 
1.7.5.4

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [PATCH 0/1] [linux-yocto-3.2][meta] common-pc: Add PCNET32 to the config

2012-03-23 Thread Darren Hart
In support of the self-hosted-image, add CONFIG_PCNET32 to the common-pc BSP
default cfg. This enables the qemux86 image to be run on both qemux86 machines
as well as the vmware 32b machine. Since the qemux86 machine optionally supports
pcnet, this seems a reasonable compromise to managing a dedicated BSP for a
self-hosted-image machine which would be superset of the qemux86 machine.

As this is a single CONFIG_ option, add it to the common-pc.cfg directly, rather
than defining a new feature.

The following changes since commit 514847185c78c07f52e02750fbe0a03ca3a31d8f:

  meta: update kver to v3.2.11 (2012-03-16 10:42:41 -0400)

are available in the git repository at:
  git://git.yoctoproject.org/linux-yocto-2.6.37-contrib dvhart/meta/pcnet
  
http://git.yoctoproject.org/cgit.cgi/linux-yocto-2.6.37-contrib/log/?h=dvhart/meta/pcnet

Darren Hart (1):
  [meta] common-pc: Add PCNET32 to the config

 meta/cfg/kernel-cache/bsp/common-pc/common-pc.cfg |3 +++
 meta/cfg/kernel-cache/bsp/common-pc/hardware.cfg  |1 +
 2 files changed, 4 insertions(+), 0 deletions(-)

-- 
1.7.5.4

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [PATCH 1/1] [meta] common-pc: Add PCNET32 to the config

2012-03-23 Thread Darren Hart
Qemu and VM Ware both support PCNET32 and the latter requires it for
32 bit images.

Signed-off-by: Darren Hart 
---
 meta/cfg/kernel-cache/bsp/common-pc/common-pc.cfg |3 +++
 meta/cfg/kernel-cache/bsp/common-pc/hardware.cfg  |1 +
 2 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/meta/cfg/kernel-cache/bsp/common-pc/common-pc.cfg 
b/meta/cfg/kernel-cache/bsp/common-pc/common-pc.cfg
index 6d576ee..c0c899e 100644
--- a/meta/cfg/kernel-cache/bsp/common-pc/common-pc.cfg
+++ b/meta/cfg/kernel-cache/bsp/common-pc/common-pc.cfg
@@ -45,6 +45,9 @@ CONFIG_MAC80211=y
 CONFIG_WLAN=y
 CONFIG_ATH_COMMON=y
 CONFIG_ATH5K=y
+
+CONFIG_PCNET32=y
+
 CONFIG_INPUT=y
 CONFIG_INPUT_MOUSEDEV=y
 CONFIG_INPUT_EVDEV=y
diff --git a/meta/cfg/kernel-cache/bsp/common-pc/hardware.cfg 
b/meta/cfg/kernel-cache/bsp/common-pc/hardware.cfg
index 34c6200..869cf62 100644
--- a/meta/cfg/kernel-cache/bsp/common-pc/hardware.cfg
+++ b/meta/cfg/kernel-cache/bsp/common-pc/hardware.cfg
@@ -6,3 +6,4 @@ CONFIG_MAC80211
 CONFIG_SND_HDA_INTEL
 CONFIG_SERIAL_8250
 CONFIG_SERIAL_8250_CONSOLE
+CONFIG_PCNET32
-- 
1.7.5.4

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] pseudo interaction issue

2012-03-23 Thread Peter Seebach
On Fri, 23 Mar 2012 12:20:08 +
Paul Eggleton  wrote:

> On Friday 23 March 2012 02:16:35 Peter Seebach wrote:
> > Still really weird to me that I can't reproduce this outside of hob.
> > I am pretty sure there exists a series of forks and execs and
> > environment changes such that this will end up happening.
> 
> I now have a fairly simple test case outside of hob. Put the attached
> file in meta/classes/ and then add the following to your local.conf:
> 
> INHERIT += "breakit"

Okay, some notes.

The magic seems to come from the interpolated Python output that itself
calls os.popen from inside the shell script.

A bit of poking about turns up the following:

1.  The environment setup and teardown in runqueue.py don't seem to be
atomic at all, such that if I annotate the stashing in envbackup with a
bb.note for each variable stashed, I sometimes see a fork() call in
pseudo BETWEEN two variables.  Which is to say, we can be forking WHILE
changing the environment.
2.  The func_exec_shell calls seem to be able to call the git_branch
stuff (which uses os.popen()) in a way that does not hit the runqueue
code AT ALL.  Meaning it operates with Whatever Environment Seems Handy.
3.  I am inclined to suggest that a first pass would be to distinguish
between "we need to set this, but we never need to unset
it" (PSEUDO_PREFIX) and "we need to set this and then revert
it" (PSEUDO_UNLOAD).
4.  We should have a handler for popen() anyway, but it will not in and
of itself fix the problem.

I am still getting the hang of finding my way around bitbake and
figuring out who's calling what.  I'd guess that just making sure
PSEUDO_PREFIX never gets unset would effectively mitigate the problem,
but I suspect that we'll still be vulnerable to Weird Race Conditions.

-s
-- 
Listen, get this.  Nobody with a good compiler needs to be justified.
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] poky ref manual still confuses BB_ENV_WHITELIST and BB_ENV_EXTRAWHITE

2012-03-23 Thread Rifenbark, Scott M
Okay - I dug into this a bit with the help of Scott Garman.  He uncovered a bit 
in the BitBake changelog.  It states the following:

   By default it will now only pass certain
   whitelisted variables into the data store. If BB_PRESERVE_ENV is set bitbake 
will use
   all variable from the environment. If BB_ENV_WHITELIST is set, that 
whitelist will be
   used instead of the internal bitbake one. Alternatively, BB_ENV_EXTRAWHITE 
can be used
   to extend the internal whitelist

This entry is by no means clear but has some information.  It implies that 
BitBake has an internal list of environment variables that can be preserved if 
the user sets BB_PRESERVE_ENV.  Where those variables are set and what they are 
I don't know.  Maybe BB_ENV_WHITELIST defines them.  But, Scott Garman said 
that BB_ENV_WHITELIST doesn't seem to be getting set in the sources.  Does this 
mean the user has to set it up?  I don't know.  Maybe there is an internal list 
separate from everything and then if the user sets BB_ENV_WHITELIST to anything 
that list becomes the BB environment list.  Regarding BB_ENV_EXTRAWHITE, I 
think it is pretty clear that is just used to append or augment 
BB_ENV_WHITELIST. 

I think the actual example in the section B.5 is valid if you take it as 
augmenting a set of whitelisted variables.  What I need a clearer understanding 
of BB_ENV_WHITELIST, the existence or non-existence of a set of internal 
environment variables outside these lists as a default, and the effects of 
BB_PRESERVE_ENV.  

I need help from the audience here

Thanks,
scott

-Original Message-
From: yocto-boun...@yoctoproject.org [mailto:yocto-boun...@yoctoproject.org] On 
Behalf Of Robert P. J. Day
Sent: Thursday, March 22, 2012 9:37 AM
To: Yocto discussion list
Subject: [yocto] poky ref manual still confuses BB_ENV_WHITELIST and 
BB_ENV_EXTRAWHITE


  in ref manual, B.5, "Running a Task",

"Tell BitBake to load what you want from the environment into the data
store. You can do so through the BB_ENV_WHITELIST variable. For
example, assume you want to prevent the build system from accessing
your $HOME/.ccache directory. The following command tells BitBake to
load CCACHE_DIR from the environment into the data store:

 export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR""

  as you can see, the para refers to one variable, while the export
command refers to another.  not sure how someone wants to word that so
i'll leave it for someone else to fix.

rday

-- 


Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca

Twitter:   http://twitter.com/rpjday
LinkedIn:   http://ca.linkedin.com/in/rpjday

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] yocto docs: confusion between shell env vars and bitbake env vars

2012-03-23 Thread Rifenbark, Scott M
I clarified about 5 instances of this problem in the reference manual.  As 
usual, see 
http://www.yoctoprojects.org/docs/latest/poky-ref-manual/poky-ref-manual.html 
for the latest.

Scott


-Original Message-
From: yocto-boun...@yoctoproject.org [mailto:yocto-boun...@yoctoproject.org] On 
Behalf Of Robert P. J. Day
Sent: Thursday, March 22, 2012 9:29 AM
To: Yocto discussion list
Subject: [yocto] yocto docs: confusion between shell env vars and bitbake env 
vars


  since i'm reading this out of the yocto/poky reference manual, i
might as well point it out here.

  there is occasional confusion when the docs refer to "environment
variables", since it's not clear when that means *shell* env vars or
*bitbake* env vars.  for instance, in the ref manual, section B.1,
"Parsing", you read:

"The first thing BitBake does is look for the bitbake.conf file. The
Yocto Project keeps this file in the Yocto Project file's meta/conf/
directory. BitBake finds it by examining the BBPATH environment
variable and looking for the meta/conf/ directory."

  but there is no BBPATH shell environment variable.  in fact,
oe-init-build-env explicitly *unsets* that shell variable at the very
end.

  however, you can check the *bitbake* environment with "bitbake -e"
and there it is, and i think that not being clear about the difference
has the potential to massively confuse readers.

rday

-- 


Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca

Twitter:   http://twitter.com/rpjday
LinkedIn:   http://ca.linkedin.com/in/rpjday

___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto