Re: [OE-core] [PATCH 1/1] bash: make job control really work

2011-11-02 Thread Cui, Dexuan
Richard Purdie wrote on 2011-11-01:
 On Tue, 2011-11-01 at 16:05 +0800, Dexuan Cui wrote:
 It turns out 9393ff833f44570fd5f500bc9de6c72db94b0296 didn't really
 fix the bug.
 
 This patch is made and tested after I read the link below
 http://www.mail-archive.com/bug-bash@gnu.org/msg03107.html
 
 [YOCTO #487]
 
 Signed-off-by: Dexuan Cui dexuan@intel.com
 ---
  meta/recipes-extended/bash/bash.inc|1 +
  meta/recipes-extended/bash/bash_4.2.bb |2 +-
  2 files changed, 2 insertions(+), 1 deletions(-)
 diff --git a/meta/recipes-extended/bash/bash.inc
 b/meta/recipes-extended/bash/bash.inc
 index d55e517..d495538 100644
 --- a/meta/recipes-extended/bash/bash.inc
 +++ b/meta/recipes-extended/bash/bash.inc
 @@ -23,6 +23,7 @@ ALTERNATIVE_LINK = ${base_bindir}/sh
  ALTERNATIVE_PRIORITY = 100
  
  do_configure () { + export bash_cv_job_control_missing=present
  gnu-configize   oe_runconf }
 
 This really should go into the common site files...
Hi Richard,
I found we do define the variable:
meta/site/common-linux:33:bash_cv_job_control_missing=${bash_cv_job_control_missing=present}
but looks autoconf doesn't realize the variable has been assigned the value 
'present'?
I think this is because of the below do_configure in bash.inc -- looks 
autoreconf is skipped?
do_configure () {
gnu-configize
oe_runconf
}
Why do we need a customized do_configure to replace autotools_do_configure?

Later, after I added
do_configure_prepend () {
autoreconf -f -i -s
}
The generated config.log does show bash_cv_job_control_missing is assigned with 
'present'.
(BTW, common-linux also introduces many other variables -- would this be safe? 
Actually here I only need to introduce bash_cv_job_control_missing.)

However, finally, do_compile got a strange failure:
| shell.c: In function 'shell_reinitialize':
| shell.c:1742:20: error: 'PPROMPT' undeclared (first use in this function)
| shell.c:1742:20: note: each undeclared identifier is reported only once for 
each function it appears in
| shell.c:1743:22: error: 'SPROMPT' undeclared (first use in this function)

Could you please give some suggestions?

Thanks,
-- Dexuan



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


Re: [OE-core] [PATCH 1/1] bash: make job control really work

2011-11-02 Thread Richard Purdie
On Wed, 2011-11-02 at 15:10 +0800, Cui, Dexuan wrote:
 Richard Purdie wrote on 2011-11-01:
  On Tue, 2011-11-01 at 16:05 +0800, Dexuan Cui wrote:
  It turns out 9393ff833f44570fd5f500bc9de6c72db94b0296 didn't really
  fix the bug.
  
  This patch is made and tested after I read the link below
  http://www.mail-archive.com/bug-bash@gnu.org/msg03107.html
  
  [YOCTO #487]
  
  Signed-off-by: Dexuan Cui dexuan@intel.com
  ---
   meta/recipes-extended/bash/bash.inc|1 +
   meta/recipes-extended/bash/bash_4.2.bb |2 +-
   2 files changed, 2 insertions(+), 1 deletions(-)
  diff --git a/meta/recipes-extended/bash/bash.inc
  b/meta/recipes-extended/bash/bash.inc
  index d55e517..d495538 100644
  --- a/meta/recipes-extended/bash/bash.inc
  +++ b/meta/recipes-extended/bash/bash.inc
  @@ -23,6 +23,7 @@ ALTERNATIVE_LINK = ${base_bindir}/sh
   ALTERNATIVE_PRIORITY = 100
   
   do_configure () { +   export bash_cv_job_control_missing=present
 gnu-configize   oe_runconf }
  
  This really should go into the common site files...
 Hi Richard,
 I found we do define the variable:
 meta/site/common-linux:33:bash_cv_job_control_missing=${bash_cv_job_control_missing=present}
 but looks autoconf doesn't realize the variable has been assigned the value 
 'present'?
 I think this is because of the below do_configure in bash.inc -- looks 
 autoreconf is skipped?
 do_configure () {
 gnu-configize
 oe_runconf
 }
 Why do we need a customized do_configure to replace autotools_do_configure?
 
 Later, after I added
 do_configure_prepend () {
 autoreconf -f -i -s
 }
 The generated config.log does show bash_cv_job_control_missing is assigned 
 with 'present'.
 (BTW, common-linux also introduces many other variables -- would this be 
 safe? Actually here I only need to introduce bash_cv_job_control_missing.)
 
 However, finally, do_compile got a strange failure:
 | shell.c: In function 'shell_reinitialize':
 | shell.c:1742:20: error: 'PPROMPT' undeclared (first use in this function)
 | shell.c:1742:20: note: each undeclared identifier is reported only once for 
 each function it appears in
 | shell.c:1743:22: error: 'SPROMPT' undeclared (first use in this function)
 
 Could you please give some suggestions?

This is why its a really bad idea for recipes to have their own
configure rather than using our core one :/.

I had a go at this problem myself and it took a bit of figuring out. The
problem is that bash ships config.h.in but autoheader overwrites it.
This removes the start/end includes from config.h or config-bot.h and
config-top.h. We can do something like this:

export AUTOHEADER = true

do_configure_prepend () {
   if [ ! -e acinclude.m4 ]; then
   cat aclocal.m4  acinclude.m4
   fi
}
 
instead of the current do_configure override. The _prepend ensures the
bash specific macros are preserved and the export AUTOHEADER stops
autoheader from running at all.

Could you test those changes against bash 4.x and bash 3.x (replacing
the current do_configure in bash.inc) and then if that works send a
patch please?

Cheers,

Richard




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


Re: [OE-core] [PATCH 1/1] bash: make job control really work

2011-11-02 Thread Cui, Dexuan
Richard Purdie wrote on 2011-11-02:
 On Wed, 2011-11-02 at 15:10 +0800, Cui, Dexuan wrote:
 Richard Purdie wrote on 2011-11-01:
 On Tue, 2011-11-01 at 16:05 +0800, Dexuan Cui wrote:
 I had a go at this problem myself and it took a bit of figuring out.
 The problem is that bash ships config.h.in but autoheader overwrites it.
 This removes the start/end includes from config.h or config-bot.h and
 config-top.h. We can do something like this:
 
 export AUTOHEADER = true
 
 do_configure_prepend () {
if [ ! -e acinclude.m4 ]; then
cat aclocal.m4  acinclude.m4
fi
 }
 
 instead of the current do_configure override. The _prepend ensures the
 bash specific macros are preserved and the export AUTOHEADER stops
 autoheader from running at all.
 
 Could you test those changes against bash 4.x and bash 3.x (replacing
 the current do_configure in bash.inc) and then if that works send a patch 
 please?
Looks bug 487 only happens to bash 4.x and bash 3.x doesn't have such a bug (the
recipe of bash 3.x doesn't use bash.inc, either)

RP, thanks a lot for the help! Here is the new patch:
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=dcui/bug487id=b524337ed5670de2c0d294c3f6970e24f23847eb

Thanks,
-- Dexuan

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


Re: [OE-core] [PATCH 1/1] bash: make job control really work

2011-11-01 Thread Richard Purdie
On Tue, 2011-11-01 at 16:05 +0800, Dexuan Cui wrote:
 It turns out 9393ff833f44570fd5f500bc9de6c72db94b0296 didn't really fix
 the bug.
 
 This patch is made and tested after I read the link below
 http://www.mail-archive.com/bug-bash@gnu.org/msg03107.html
 
 [YOCTO #487]
 
 Signed-off-by: Dexuan Cui dexuan@intel.com
 ---
  meta/recipes-extended/bash/bash.inc|1 +
  meta/recipes-extended/bash/bash_4.2.bb |2 +-
  2 files changed, 2 insertions(+), 1 deletions(-)
 
 diff --git a/meta/recipes-extended/bash/bash.inc 
 b/meta/recipes-extended/bash/bash.inc
 index d55e517..d495538 100644
 --- a/meta/recipes-extended/bash/bash.inc
 +++ b/meta/recipes-extended/bash/bash.inc
 @@ -23,6 +23,7 @@ ALTERNATIVE_LINK = ${base_bindir}/sh
  ALTERNATIVE_PRIORITY = 100
  
  do_configure () {
 + export bash_cv_job_control_missing=present
   gnu-configize
   oe_runconf
  }

This really should go into the common site files...

Cheers,

Richard



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