ncurses: Avoid occasional builling failure when having parallel processable task
cover ncurses: Avoid occasional builling failure when having parallel processable task
From: Xiaofeng Yan <[email protected]>
| 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(-)
PATCH 1/1 ncurses: Avoid occasional builling failure when having parallel processable task
From: Xiaofeng Yan <[email protected]>
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]
--- meta/recipes-core/ncurses/ncurses.inc | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-)
meta/recipes-core/ncurses/ncurses.inc +18 -5
@@ -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
Signature · 1 line
1.7.0.4
Saul Wold
AppliedQuoted 41 lines · On 05/21/2012 01:51 AM, [email protected] wrote:
From: Xiaofeng Yan<[email protected]>
| 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 1This 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 parallellySo 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.0are 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/2298Xiaofeng Yan (1):
ncurses: Avoid occasional builling failure when having parallel
processable task
Quoted 10 lines
meta/recipes-core/ncurses/ncurses.inc | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-)_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
Merged into OE-Core
Thanks
Sau!