Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 0/1] ncurses: Avoid occasional builling failure when having parallel processable task
@ 2012-05-21  8:51 xiaofeng.yan
  2012-05-21  8:51 ` [PATCH 1/1] " xiaofeng.yan
  2012-05-24 17:51 ` [PATCH 0/1] " Saul Wold
  0 siblings, 2 replies; 3+ messages in thread
From: xiaofeng.yan @ 2012-05-21  8:51 UTC (permalink / raw)
  To: openembedded-core

From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

| tic: error while loading shared libraries: /srv/home/pokybuild \
/yocto-autobuilder/yocto-slave/nightly-non-gpl3/build/build/tmp/\
work/x86_64-linux/ncurses-native-5.9-r8.1/ncurses-5.9/narrowc/lib\
/libtinfo.so.5: file too short
| ? tic could not build /srv/home/pokybuild/yocto-autobuilder/\
yocto-slave/nightly-non-gpl3/build/build/tmp/work/x86_64-linux/\
ncurses-native-5.9-r8.1/image/srv/home/pokybuild/yocto-autobuilder\
/yocto-slave/nightly-non-gpl3/build/build/tmp/sysroots/x86_64-linux\
/usr/share/terminfo
| make[1]: *** [install.data] Error 1

This is a race issue which is caused by
install.libs and install.data:

1) install.data needs run tic
2) tic needs libtinfo.so
3) install.libs would regenerate libtinfo.so
4) but install.data doesn't depend on install.libs, and they can run
   parallelly

So there would be errors in a very critical condition: tic is begining
to run at the same time when install.libs is generating libtinfo.so, and
this libtinfo.so is not integrity, then there would be the  above error.

Let task install.libs run before install.data for fixing this bug.

The following changes since commit b4c8c74a45e386f99344cf9799eb5294ad6c9e3e:
  Joshua Lock (1):
        hob: update required pygtk to 2.22.0 and gtk+ to 2.20.0

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib xiaofeng/2298
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=xiaofeng/2298

Xiaofeng Yan (1):
  ncurses: Avoid occasional builling failure when having parallel
    processable task

 meta/recipes-core/ncurses/ncurses.inc |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)




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

* [PATCH 1/1] ncurses: Avoid occasional builling failure when having parallel processable task
  2012-05-21  8:51 [PATCH 0/1] ncurses: Avoid occasional builling failure when having parallel processable task xiaofeng.yan
@ 2012-05-21  8:51 ` xiaofeng.yan
  2012-05-24 17:51 ` [PATCH 0/1] " Saul Wold
  1 sibling, 0 replies; 3+ messages in thread
From: xiaofeng.yan @ 2012-05-21  8:51 UTC (permalink / raw)
  To: openembedded-core

From: Xiaofeng Yan <xiaofeng.yan@windriver.com>

ncurses failure non-gplv3 build (race issue) like the following \
error information:

| tic: error while loading shared libraries: /srv/home/pokybuild \
/yocto-autobuilder/yocto-slave/nightly-non-gpl3/build/build/tmp/\
work/x86_64-linux/ncurses-native-5.9-r8.1/ncurses-5.9/narrowc/lib\
/libtinfo.so.5: file too short
| ? tic could not build /srv/home/pokybuild/yocto-autobuilder/\
yocto-slave/nightly-non-gpl3/build/build/tmp/work/x86_64-linux/\
ncurses-native-5.9-r8.1/image/srv/home/pokybuild/yocto-autobuilder\
/yocto-slave/nightly-non-gpl3/build/build/tmp/sysroots/x86_64-linux\
/usr/share/terminfo
| make[1]: *** [install.data] Error 1

This is a race issue which is caused by
install.libs and install.data:

1) install.data needs run tic
2) tic needs libtinfo.so
3) install.libs would regenerate libtinfo.so
4) but install.data doesn't depend on install.libs, and they can run
   parallelly

So there would be errors in a very critical condition: tic is begining
to run at the same time when install.libs is generating libtinfo.so, and
this libtinfo.so is not integrity, then there would be the  above error.

Let task install.libs run before install.data for fixing this bug.

[YOCTO #2298]

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---
 meta/recipes-core/ncurses/ncurses.inc |   23 ++++++++++++++++++-----
 1 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index ae99e2c..b031119 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbc
 SECTION = "libs"
 DEPENDS = "ncurses-native"
 DEPENDS_virtclass-native = ""
-INC_PR = "r8"
+INC_PR = "r9"
 
 inherit autotools binconfig multilib_header
 
@@ -107,10 +107,15 @@ do_test() {
         diff curses-narrowc.h curses-widec.h
 }
 
+# Split original _install_opts to two parts.
+# One is the options to install contents, the other is the parameters \
+# when running command "make install"
 _install_opts = "\
+  install.libs install.includes install.man \
+"
+_install_cfgs = "\
   DESTDIR='${D}' \
   PKG_CONFIG_LIBDIR='${libdir}/pkgconfig' \
-  install.libs install.includes install.man \
 "
 
 python do_install () {
@@ -122,11 +127,19 @@ shell_do_install() {
         # Order of installation is important; widec installs a 'curses.h'
         # header with more definitions and must be installed last hence.
         # Compatibility of these headers will be checked in 'do_test()'.
-        oe_runmake -C narrowc ${_install_opts} \
-                install.data install.progs
+        oe_runmake -C narrowc ${_install_cfgs} ${_install_opts} \
+                install.progs
+
+        # The install.data should run after install.libs, otherwise
+        # there would be a race issue in a very critical conditon, since
+        # tic will be run by install.data, and tic needs libtinfo.so
+        # which would be regenerated by install.libs.
+        oe_runmake -C narrowc ${_install_cfgs} \
+                install.data
+
 
         ! ${ENABLE_WIDEC} || \
-            oe_runmake -C widec ${_install_opts}
+            oe_runmake -C widec ${_install_cfgs} ${_install_opts}
 
         cd narrowc
 
-- 
1.7.0.4




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

* Re: [PATCH 0/1] ncurses: Avoid occasional builling failure when having parallel processable task
  2012-05-21  8:51 [PATCH 0/1] ncurses: Avoid occasional builling failure when having parallel processable task xiaofeng.yan
  2012-05-21  8:51 ` [PATCH 1/1] " xiaofeng.yan
@ 2012-05-24 17:51 ` Saul Wold
  1 sibling, 0 replies; 3+ messages in thread
From: Saul Wold @ 2012-05-24 17:51 UTC (permalink / raw)
  To: Patches and discussions about the oe-core layer

On 05/21/2012 01:51 AM, xiaofeng.yan@windriver.com wrote:
> From: Xiaofeng Yan<xiaofeng.yan@windriver.com>
>
> | tic: error while loading shared libraries: /srv/home/pokybuild \
> /yocto-autobuilder/yocto-slave/nightly-non-gpl3/build/build/tmp/\
> work/x86_64-linux/ncurses-native-5.9-r8.1/ncurses-5.9/narrowc/lib\
> /libtinfo.so.5: file too short
> | ? tic could not build /srv/home/pokybuild/yocto-autobuilder/\
> yocto-slave/nightly-non-gpl3/build/build/tmp/work/x86_64-linux/\
> ncurses-native-5.9-r8.1/image/srv/home/pokybuild/yocto-autobuilder\
> /yocto-slave/nightly-non-gpl3/build/build/tmp/sysroots/x86_64-linux\
> /usr/share/terminfo
> | make[1]: *** [install.data] Error 1
>
> This is a race issue which is caused by
> install.libs and install.data:
>
> 1) install.data needs run tic
> 2) tic needs libtinfo.so
> 3) install.libs would regenerate libtinfo.so
> 4) but install.data doesn't depend on install.libs, and they can run
>     parallelly
>
> So there would be errors in a very critical condition: tic is begining
> to run at the same time when install.libs is generating libtinfo.so, and
> this libtinfo.so is not integrity, then there would be the  above error.
>
> Let task install.libs run before install.data for fixing this bug.
>
> The following changes since commit b4c8c74a45e386f99344cf9799eb5294ad6c9e3e:
>    Joshua Lock (1):
>          hob: update required pygtk to 2.22.0 and gtk+ to 2.20.0
>
> are available in the git repository at:
>
>    git://git.pokylinux.org/poky-contrib xiaofeng/2298
>    http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=xiaofeng/2298
>
> Xiaofeng Yan (1):
>    ncurses: Avoid occasional builling failure when having parallel
>      processable task
>
>   meta/recipes-core/ncurses/ncurses.inc |   23 ++++++++++++++++++-----
>   1 files changed, 18 insertions(+), 5 deletions(-)
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
Merged into OE-Core

Thanks
	Sau!




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

end of thread, other threads:[~2012-05-24 18:02 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-21  8:51 [PATCH 0/1] ncurses: Avoid occasional builling failure when having parallel processable task xiaofeng.yan
2012-05-21  8:51 ` [PATCH 1/1] " xiaofeng.yan
2012-05-24 17:51 ` [PATCH 0/1] " Saul Wold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox