Skip to contentSkip to conversation

upgrade bash and ncurses

PATCH Superseded Hongxu Jia 3 participants 12 messages Feb 14, 2017 – Feb 21, 2017

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore

Hongxu Jia

author
#0 lore raw

v3 cover upgrade bash and ncurses

Changed in V3:

- Fix nativesdk-bash compile failure

- Fix ncurses configure failure in beaglebone

//Hongxu

The following changes since commit e758547db9048d4aa1c1415d6af8072f519fae24:

nss: Fix nss-native so the checksum doesn't change with BUILD_ARCH (2017-02-09 10:52:03 +0000)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib hongxu/upgrade-20170214
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=hongxu/upgrade-20170214

Hongxu Jia (3):
bash: update patches for 4.4
ncurses: 6.0+20160625 -> 6.0+20161126
ncurses: fix beaglebone do_configure failure

Zheng Ruoqin (1):
bash: 4.3.30 -> 4.4

 ...ses_6.0+20160625.bb => ncurses_6.0+20161126.bb} |   4 +-
 ...e-builtins-uname-could-not-be-parsed-by-r.patch |  89 +++++++++++++
 .../0001-patch-to-obtain-pkgconfig-sanity.patch    |  28 +++++
 ...roc-run-heredoc-run-execscript-run-test-f.patch | 137 ++-------------------
 meta/recipes-extended/bash/bash/fix-run-intl.patch | 110 -----------------
 meta/recipes-extended/bash/bash/test-output.patch  |  20 ++-
 meta/recipes-extended/bash/bash_4.3.30.bb          |  71 -----------
 meta/recipes-extended/bash/bash_4.4.bb             |  66 ++++++++++
 8 files changed, 212 insertions(+), 313 deletions(-)
 rename meta/recipes-core/ncurses/{ncurses_6.0+20160625.bb => ncurses_6.0+20161126.bb} (77%)
 create mode 100644 meta/recipes-extended/bash/bash/0001-The-loadable-builtins-uname-could-not-be-parsed-by-r.patch
 create mode 100644 meta/recipes-extended/bash/bash/0001-patch-to-obtain-pkgconfig-sanity.patch
 delete mode 100644 meta/recipes-extended/bash/bash/fix-run-intl.patch
 delete mode 100644 meta/recipes-extended/bash/bash_4.3.30.bb
 create mode 100644 meta/recipes-extended/bash/bash_4.4.bb
Signature · 1 line
2.8.1
author
#1 lore raw

PATCH v3 1/4 bash: 4.3.30 -> 4.4

From: Zheng Ruoqin <[email protected]>

1) Upgrade bash from 4.3.30 to 4.4
2) Delete 1 patche below, since they are integrated upstream. fix-run-intl.patch
3) Modify 2 patches below to make it compatible with new version fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch test-output.patch
4) Add 1 patche below to solve pkgconfig sanity error 0001-patch-to-obtain-pkgconfig-sanity.patch

---
 .../0001-patch-to-obtain-pkgconfig-sanity.patch    |  28 +++++
 ...roc-run-heredoc-run-execscript-run-test-f.patch | 137 ++-------------------
 meta/recipes-extended/bash/bash/fix-run-intl.patch | 110 -----------------
 meta/recipes-extended/bash/bash/test-output.patch  |  20 ++-
 meta/recipes-extended/bash/bash_4.3.30.bb          |  71 -----------
 meta/recipes-extended/bash/bash_4.4.bb             |  38 ++++++
 6 files changed, 92 insertions(+), 312 deletions(-)
 create mode 100644 meta/recipes-extended/bash/bash/0001-patch-to-obtain-pkgconfig-sanity.patch
 delete mode 100644 meta/recipes-extended/bash/bash/fix-run-intl.patch
 delete mode 100644 meta/recipes-extended/bash/bash_4.3.30.bb
 create mode 100644 meta/recipes-extended/bash/bash_4.4.bb
meta/recipes-extended/bash/bash/0001-patch-to-obtain-pkgconfig-sanity.patch new file +28 -0
new file mode 100644
index 0000000..9b5e4ec
@@ -0,0 +1,28 @@
+Subject: [PATCH] patch to obtain pkgconfig sanity
+
+Drop the paths from the pkgconfig file bash.pc.in which will cause pkgconfig sanity error below:
+ERROR: QA Issue: bash.pc failed sanity test (tmpdir) in path /yocto/work001/fnst/zrq/community/poky/build/tmp/work/i586-poky-linux/bash    /4.4-r0/sysroot-destdir/usr/lib/pkgconfig [pkgconfig]
+
+Upstream-Status: Pending
+
+Signed-off-by: Zheng Ruoqin <[email protected]>
+---
+ support/bash.pc.in | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/support/bash.pc.in b/support/bash.pc.in
+index 6009659..871fa9f 100644
+--- a/support/bash.pc.in
++++ b/support/bash.pc.in
+@@ -12,8 +12,6 @@ LOCAL_CFLAGS = @LOCAL_CFLAGS@
+ LOCAL_DEFS = @LOCAL_DEFS@
+ CCFLAGS = ${LOCAL_DEFS} ${LOCAL_CFLAGS}
+ 
+-CC = @CC@
+-SHOBJ_CC = @SHOBJ_CC@
+ SHOBJ_CFLAGS = @SHOBJ_CFLAGS@
+ SHOBJ_LD = @SHOBJ_LD@
+ SHOBJ_LDFLAGS = @SHOBJ_LDFLAGS@
+-- 
+2.7.4
+
meta/recipes-extended/bash/bash/fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch +11 -126

161 lines not on this page · raw message

meta/recipes-extended/bash/bash/fix-run-intl.patch deleted +0 -110

110 lines not on this page · raw message

meta/recipes-extended/bash/bash/test-output.patch +15 -5
index 2b09b7d..652ffb1 100644
@@ -2,15 +2,21 @@ Add FAIL/PASS output to test output.
 
 Signed-off-by: Björn Stenberg <[email protected]>
 Upstream-Status: Pending
+
+Signed-off-by: Zheng Ruoqin <[email protected]>
 ---
-diff -uNr a/tests/run-all b/tests/run-all
---- a/tests/run-all	1999-10-08 17:07:46.000000000 +0200
-+++ b/tests/run-all	2012-10-27 21:04:18.663331887 +0200
-@@ -22,7 +22,15 @@
+ tests/run-all | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/tests/run-all b/tests/run-all
+index 2882fe0..069dbbe 100644
+--- a/tests/run-all
++++ b/tests/run-all
+@@ -33,7 +33,16 @@ do
  	case $x in
  	$0|run-minimal|run-gprof)	;;
  	*.orig|*~) ;;
--	*)	echo $x ; sh $x ;;
+-	*)	echo $x ; sh $x ; rm -f ${BASH_TSTOUT} ;;
 +    *)  echo $x
 +         output=`sh $x`
 +         if [ -n "$output" ]; then
@@ -19,7 +25,11 @@ diff -uNr a/tests/run-all b/tests/run-all
 +         else
 +             echo "PASS: $x"
 +         fi
++         rm -f ${BASH_TSTOUT} 
 +         ;;
  	esac
  done
  
+-- 
+2.7.4
+
meta/recipes-extended/bash/bash_4.3.30.bb deleted +0 -71

71 lines not on this page · raw message

meta/recipes-extended/bash/bash_4.4.bb new file +38 -0
new file mode 100644
index 0000000..16ff114
@@ -0,0 +1,38 @@
+require bash.inc
+
+# GPLv2+ (< 4.0), GPLv3+ (>= 4.0)
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-001;apply=yes;striplevel=0;name=patch001 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-002;apply=yes;striplevel=0;name=patch002 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-003;apply=yes;striplevel=0;name=patch003 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-004;apply=yes;striplevel=0;name=patch004 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-005;apply=yes;striplevel=0;name=patch005 \
+           file://execute_cmd.patch;striplevel=0 \
+           file://mkbuiltins_have_stringize.patch \
+           file://build-tests.patch \
+           file://test-output.patch  \
+           file://fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch \
+           file://run-ptest \
+           file://fix-run-builtins.patch \
+           file://0001-help-fix-printf-format-security-warning.patch \
+           file://0001-patch-to-obtain-pkgconfig-sanity.patch \
+           "
+
+SRC_URI[tarball.md5sum] = "148888a7c95ac23705559b6f477dfe25" 
+SRC_URI[tarball.sha256sum] = "d86b3392c1202e8ff5a423b302e6284db7f8f435ea9f39b5b1b20fd3ac36dfcb"
+
+SRC_URI[patch001.md5sum] = "817d01a6c0af6f79308a8b7b649e53d8"
+SRC_URI[patch001.sha256sum] = "3e28d91531752df9a8cb167ad07cc542abaf944de9353fe8c6a535c9f1f17f0f"
+SRC_URI[patch002.md5sum] = "765e14cff12c7284009772e8e24f2fe0"
+SRC_URI[patch002.sha256sum] = "7020a0183e17a7233e665b979c78c184ea369cfaf3e8b4b11f5547ecb7c13c53"
+SRC_URI[patch003.md5sum] = "49e7da93bf07f510a2eb6bb43ac3e5a2"
+SRC_URI[patch003.sha256sum] = "51df5a9192fdefe0ddca4bdf290932f74be03ffd0503a3d112e4199905e718b2"
+SRC_URI[patch004.md5sum] = "4557d674ab5831a5fa98052ab19edaf4"
+SRC_URI[patch004.sha256sum] = "ad080a30a4ac6c1273373617f29628cc320a35c8cd06913894794293dc52c8b3"
+SRC_URI[patch005.md5sum] = "cce96dd77cdd1d293beec10848f6cbb5"
+SRC_URI[patch005.sha256sum] = "221e4b725b770ad0bb6924df3f8d04f89eeca4558f6e4c777dfa93e967090529"
+
+BBCLASSEXTEND = "nativesdk"
Signature · 1 line
2.8.1
author
#2 lore raw

PATCH v3 2/4 bash: update patches for 4.4

In reply to Hongxu Jia

- Update patches from upstream to 4.4

- Add ${PN}-loadable for loadable builtins which is new features in Bash 4.4
--------------
a. `make install' now installs the example loadable builtins and a set of
bash headers to use when developing new loadable builtins.

b. `enable -f' now attempts to call functions named BUILTIN_builtin_load when
loading BUILTIN, and BUILTIN_builtin_unload when deleting it. This allows loadable builtins to run initialization and cleanup code.

c. There is a new BASH_LOADABLES_PATH variable containing a list of directories
where the `enable -f' command looks for shared objects containing loadable builtins.
--------------

- The loadable builtins `uname' could not be parsed by rpmdeps correctly:
--------------

   $ recipe-sysroot-native/usr/lib/rpm/bin/rpmdeps-oecore --macros \
   recipe-sysroot-native/usr/lib/rpm/macros --define '_rpmfc_magic_path \
   recipe-sysroot-native/usr/share/misc/magic.mgc' --rpmpopt \
   recipe-sysroot-native/usr/lib/rpm/rpmpopt packages-split/bash/usr/lib64/bash/uname

|packages-split/bash/usr/lib64/bash/uname Provides: )(64bit |packages-split/bash/usr/lib64/bash/uname Provides: elf(buildid) = 7186059a5a6b11ec38493b53072c3a62edf7e05c
--------------

The incorrected "Provides: )(64bit" could not be parsed by rpmbuild.
--------------

   | DEBUG: Executing shell function BUILDSPEC
   | error: line 56: Dependency ")(64bit" must begin with alpha-numeric, '_' or '/': Provides: )(64bit
   | error: Package has no %description: bash-4.4-r0.core2_64

--------------

---
 ...e-builtins-uname-could-not-be-parsed-by-r.patch | 89 ++++++++++++++++++++++
 meta/recipes-extended/bash/bash_4.4.bb             | 28 +++++++
 2 files changed, 117 insertions(+)
 create mode 100644 meta/recipes-extended/bash/bash/0001-The-loadable-builtins-uname-could-not-be-parsed-by-r.patch
meta/recipes-extended/bash/bash/0001-The-loadable-builtins-uname-could-not-be-parsed-by-r.patch new file +89 -0
new file mode 100644
index 0000000..79d9e4e
@@ -0,0 +1,89 @@
+rename uname to workaround name confliction in rpmnsProbe
+
+The loadable builtins `uname' could not be parsed by
+rpmdeps correctly:
+--------------
+$recipe-sysroot-native/usr/lib/rpm/bin/rpmdeps-oecore --macros \
+recipe-sysroot-native/usr/lib/rpm/macros --define '_rpmfc_magic_path \
+recipe-sysroot-native/usr/share/misc/magic.mgc' --rpmpopt \
+recipe-sysroot-native/usr/lib/rpm/rpmpopt packages-split/bash/usr/lib64/bash/uname
+
+|packages-split/bash/usr/lib64/bash/uname Provides: )(64bit
+|packages-split/bash/usr/lib64/bash/uname Provides: elf(buildid) = 7186059a5a6b11ec38493b53072c3a62edf7e05c
+--------------
+
+The incorrected "Provides: )(64bit" could not be parsed by rpmbuild.
+--------------
+| DEBUG: Executing shell function BUILDSPEC
+| error: line 56: Dependency ")(64bit" must begin with alpha-numeric, '_' or '/': Provides: )(64bit
+| error: Package has no %description: bash-4.4-r0.core2_64
+--------------
+
+The root cause is `uname' is incorrectly parsed by rpmnsProbe that string
+matches with "uname()(64bit)".
+
+The nsType of `uname' should be RPMNS_TYPE_NAMESPACE (like other utilities),
+rather than RPMNS_TYPE_UNAME which generates "Provides: )(64bit".
+
+We could not fix rpm-native without side effect. So rename to `uname-oe'
+and create a symlink `uname' could workaround the issue.
+
+Here is to load builtin uname in the target:
+----------------
+root@qemux86-64:# enable -f /usr/lib64/bash/uname uname
+root@qemux86-64:# help uname
+uname: uname [-amnrsv]
+    Display system information.
+
+    Display information about the system hardware and OS.
+----------------
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <[email protected]>
+---
+ examples/loadables/Makefile.in | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/examples/loadables/Makefile.in b/examples/loadables/Makefile.in
+index ec305cd..c7c96e2 100644
+--- a/examples/loadables/Makefile.in
++++ b/examples/loadables/Makefile.in
+@@ -102,7 +102,7 @@ INC = -I. -I.. -I$(topdir) -I$(topdir)/lib -I$(topdir)/builtins -I${srcdir} \
+ 
+ ALLPROG = print truefalse sleep finfo logname basename dirname \
+ 	  tty pathchk tee head mkdir rmdir printenv id whoami \
+-	  uname sync push ln unlink realpath strftime mypid setpgid
++	  uname-oe sync push ln unlink realpath strftime mypid setpgid
+ OTHERPROG = necho hello cat pushd
+ 
+ all:	$(SHOBJ_STATUS)
+@@ -178,7 +178,7 @@ id:	id.o
+ whoami:	whoami.o
+ 	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ whoami.o $(SHOBJ_LIBS)
+ 
+-uname:	uname.o
++uname-oe:	uname.o
+ 	$(SHOBJ_LD) $(SHOBJ_LDFLAGS) $(SHOBJ_XLDFLAGS) -o $@ uname.o $(SHOBJ_LIBS)
+ 
+ sync:	sync.o
+@@ -244,13 +244,15 @@ install-supported:	all installdirs install-dev
+ 		echo $$prog ; \
+ 		$(INSTALL_PROGRAM) $(INSTALLMODE) $$prog $(DESTDIR)$(loadablesdir)/$$prog ;\
+ 	done
++	-( cd $(DESTDIR)$(loadablesdir) && ln -snf uname-oe uname)
++
+ 
+ uninstall-dev:
+ 	-$(RM) $(DESTDIR)$(loadablesdir)/Makefile.inc
+ 	-( cd $(BUILD_DIR) && ${MAKE} ${MFLAGS} DESTDIR="$(DESTDIR)" uninstall-headers)
+ 
+ uninstall-supported:	uninstall-dev
+-	-( cd $(DESTDIR)${loadablesdir} && $(RM) ${ALLPROG} )
++	-( cd $(DESTDIR)${loadablesdir} && $(RM) ${ALLPROG} uname)
+ 
+ install-unsupported:
+ uninstall-unsupported:
+-- 
+2.8.1
+
meta/recipes-extended/bash/bash_4.4.bb +28 -0
index 16ff114..798bfdb 100644
@@ -10,6 +10,13 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
            ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-003;apply=yes;striplevel=0;name=patch003 \
            ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-004;apply=yes;striplevel=0;name=patch004 \
            ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-005;apply=yes;striplevel=0;name=patch005 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-006;apply=yes;striplevel=0;name=patch006 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-007;apply=yes;striplevel=0;name=patch007 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-008;apply=yes;striplevel=0;name=patch008 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-009;apply=yes;striplevel=0;name=patch009 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-010;apply=yes;striplevel=0;name=patch010 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-011;apply=yes;striplevel=0;name=patch011 \
+           ${GNU_MIRROR}/bash/bash-4.4-patches/bash44-012;apply=yes;striplevel=0;name=patch012 \
            file://execute_cmd.patch;striplevel=0 \
            file://mkbuiltins_have_stringize.patch \
            file://build-tests.patch \
@@ -19,6 +26,7 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \
            file://fix-run-builtins.patch \
            file://0001-help-fix-printf-format-security-warning.patch \
            file://0001-patch-to-obtain-pkgconfig-sanity.patch \
+           file://0001-The-loadable-builtins-uname-could-not-be-parsed-by-r.patch \
            "
 
 SRC_URI[tarball.md5sum] = "148888a7c95ac23705559b6f477dfe25" 
@@ -34,5 +42,25 @@ SRC_URI[patch004.md5sum] = "4557d674ab5831a5fa98052ab19edaf4"
 SRC_URI[patch004.sha256sum] = "ad080a30a4ac6c1273373617f29628cc320a35c8cd06913894794293dc52c8b3"
 SRC_URI[patch005.md5sum] = "cce96dd77cdd1d293beec10848f6cbb5"
 SRC_URI[patch005.sha256sum] = "221e4b725b770ad0bb6924df3f8d04f89eeca4558f6e4c777dfa93e967090529"
+SRC_URI[patch006.md5sum] = "d3379f8d8abce5c6ee338f931ad008d5"
+SRC_URI[patch006.sha256sum] = "6a8e2e2a6180d0f1ce39dcd651622fb6d2fd05db7c459f64ae42d667f1e344b8"
+SRC_URI[patch007.md5sum] = "ec38c76ca439ca7f9c178e9baede84fc"
+SRC_URI[patch007.sha256sum] = "de1ccc07b7bfc9e25243ad854f3bbb5d3ebf9155b0477df16aaf00a7b0d5edaf"
+SRC_URI[patch008.md5sum] = "e0ba18c1e3b94f905da9b5bf9d38b58b"
+SRC_URI[patch008.sha256sum] = "86144700465933636d7b945e89b77df95d3620034725be161ca0ca5a42e239ba"
+SRC_URI[patch009.md5sum] = "e952d4f44e612048930c559d90eb99bb"
+SRC_URI[patch009.sha256sum] = "0b6bdd1a18a0d20e330cc3bc71e048864e4a13652e29dc0ebf3918bea729343c"
+SRC_URI[patch010.md5sum] = "57b5b35955d68f9a09dbef6b86d2c782"
+SRC_URI[patch010.sha256sum] = "8465c6f2c56afe559402265b39d9e94368954930f9aa7f3dfa6d36dd66868e06"
+SRC_URI[patch011.md5sum] = "cc896e1fa696b93ded568e557e2392d5"
+SRC_URI[patch011.sha256sum] = "dd56426ef7d7295e1107c0b3d06c192eb9298f4023c202ca2ba6266c613d170d"
+SRC_URI[patch012.md5sum] = "fa47fbfa56fb7e9e5367f19a9df5fc9e"
+SRC_URI[patch012.sha256sum] = "fac271d2bf6372c9903e3b353cb9eda044d7fe36b5aab52f21f3f21cd6a2063e"
 
 BBCLASSEXTEND = "nativesdk"
+
+PACKAGE_BEFORE_PN += "${PN}-loadable"
+RDEPENDS_${PN}-loadable += "${PN}"
+FILES_${PN}-dev += "${libdir}/bash/Makefile.inc"
+FILES_${PN}-loadable += "${libdir}/bash/*"
+
Signature · 1 line
2.8.1
author
#3 lore raw

PATCH v3 3/4 ncurses: 6.0+20160625 -> 6.0+20161126

In reply to Hongxu Jia
---
 .../ncurses/{ncurses_6.0+20160625.bb => ncurses_6.0+20161126.bb}        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename meta/recipes-core/ncurses/{ncurses_6.0+20160625.bb => ncurses_6.0+20161126.bb} (84%)
meta/recipes-core/ncurses/ncurses_6.0+20161126.bb renamed from meta/recipes-core/ncurses/ncurses_6.0+20160625.bb +1 -1
similarity index 84%
rename from meta/recipes-core/ncurses/ncurses_6.0+20160625.bb
rename to meta/recipes-core/ncurses/ncurses_6.0+20161126.bb
index 6514613..7328e78 100644
@@ -4,7 +4,7 @@ SRC_URI += "file://tic-hang.patch \
             file://config.cache \
 "
 # commit id corresponds to the revision in package version
-SRCREV = "63dd558cb8e888d6fab5f00bbf7842736a2356b9"
+SRCREV = "3db0bd19cb50e3d9b4f2cf15b7a102fe11302068"
 S = "${WORKDIR}/git"
 EXTRA_OECONF += "--with-abi-version=5"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
Signature · 1 line
2.8.1
author
#4 lore raw

PATCH v3 4/4 ncurses: fix beaglebone do_configure failure

In reply to Hongxu Jia

In configure, the option ${HOST_CC_ARCH} was removed from ${CC}:
---------------
|configure:2188: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options
|configure:2284: testing resulting CC: 'arm-poky-linux-gnueabi-gcc --sysroot=tmp/work/cortexa8hf-neon-poky-linux-gnueabi/ncurses/ 6.0+20161126-r0/recipe-sysroot'
---------------

While arm compiling, option "-mfloat-abi=hard" in ${HOST_CC_ARCH} lost that caused the failure:
---------------
|tmp/work/cortexa8hf-neon-poky-linux-gnueabi/ncurses/6.0+20161126-r0/ recipe-sysroot/usr/include/gnu/stubs.h:7:29: fatal error:
gnu/stubs-soft.h: No such file or directory
| # include <gnu/stubs-soft.h>
---------------

Append ${HOST_CC_ARCH} to ${CFLAGS} could fix the issue.

---
 meta/recipes-core/ncurses/ncurses_6.0+20161126.bb | 2 ++
 1 file changed, 2 insertions(+)
meta/recipes-core/ncurses/ncurses_6.0+20161126.bb +2 -0
index 7328e78..af75044 100644
@@ -8,3 +8,5 @@ SRCREV = "3db0bd19cb50e3d9b4f2cf15b7a102fe11302068"
 S = "${WORKDIR}/git"
 EXTRA_OECONF += "--with-abi-version=5"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+(\+\d+)*)"
+
+CFLAGS += "${HOST_CC_ARCH}"
Signature · 1 line
2.8.1
#6 lore raw

Re: [PATCH 4/4] ncurses: fix beaglebone do_configure failure

On 14 February 2017 at 10:48, Enrico Scholz <[email protected]

Quoted 6 lines

wrote:

a) bother the ncurses author to remove the stupid CC sanity check, or

b) create a wrapper around CC like in

c) fix the function that detects the "broken" use of CC as it should be extracting the flags and moving them to CFLAGS. Clearly this isn't working somewhere.

Ross

#7 lore raw

Re: [PATCH 4/4] ncurses: fix beaglebone do_configure failure

Quoted 4 lines · Ross

c) fix the function that detects the "broken" use of CC as it should be extracting the flags and moving them to CFLAGS. Clearly this isn't working somewhere.

So upstream's sed made the assumption that there was only one argument being passed via CC.

I've a local working fix that basically does this:

- cf_flags=echo "$CC" | sed -e 's/^.*[ ]\(-[^ ]\)/\1/'
+ cf_flags=echo "$CC" | cut -f2- -d' '

(use cut to remove the first word, assuming everything after the first word of CC is an option).

Hongxu, would you mind if I squash this into your upgrade so we don't end up with a revision where ncurses doesn't build?

Ross

#8 lore raw

Re: [PATCH 4/4] ncurses: fix beaglebone do_configure failure

Quoted 3 lines · Ross
Quoted 3 lines

c) fix the function that detects the "broken" use of CC as it should be extracting the flags and moving them to CFLAGS. Clearly this isn't working somewhere.

Upstream tries to do it correctly for nearly a year and fails everytime at some cornercases.

Quoted 4 lines

I've a local working fix that basically does this:

- cf_flags=echo "$CC" | sed -e 's/^.*[ ]\(-[^ ]\)/\1/'
+ cf_flags=echo "$CC" | cut -f2- -d' '

This will break for

CC='ccache gcc -m32'

Perhaps there are cases (not for OE), where gcc contains a space... How to deal with this?

Enrico

author
#9 lore raw

Re: [PATCH 4/4] ncurses: fix beaglebone do_configure failure

Quoted 11 lines · Enrico Scholz
Quoted 3 lines · Ross
Quoted 3 lines

c) fix the function that detects the "broken" use of CC as it should be extracting the flags and moving them to CFLAGS. Clearly this isn't working somewhere.

Upstream tries to do it correctly for nearly a year and fails everytime at some cornercases.

Quoted 2 lines

I've a local working fix that basically does this:

Quoted 8 lines
Quoted 2 lines

- cf_flags=echo "$CC" | sed -e 's/^.*[ ]\(-[^ ]\)/\1/'
+ cf_flags=echo "$CC" | cut -f2- -d' '

This will break for

   CC='ccache gcc -m32'

Perhaps there are cases (not for OE), where gcc contains a space... How to deal with this?

How about directly remove the cf_flags assigning? Because our OE have correctly assigned it in bitbake.conf.

//Hongxu

Quoted 3 lines

Enrico

#10 lore raw

Re: [PATCH 4/4] ncurses: fix beaglebone do_configure failure

Quoted 3 lines · Hongxu Jia

How about directly remove the cf_flags assigning? Because our OE have correctly assigned it in bitbake.conf.

I'm a big fan of fixing upstream so we don't have to carry a patch forever. Their rationale I don't understand, but the implementation is clearly broken.

Ross

#11 lore raw

Re: [PATCH 4/4] ncurses: fix beaglebone do_configure failure

Quoted 4 lines · Ross

I'm a big fan of fixing upstream so we don't have to carry a patch forever. Their rationale I don't understand, but the implementation is clearly broken.

Here's my current fix:

+ cf_flags=`echo "$CC" | awk 'BEGIN{ORS=" ";RS=" "} /^-.+/ {print
$1}'`
+ CC=echo "$CC " | awk 'BEGIN{ORS=" ";RS=" "} /^[^-].+/ {print $1}'

Works for ccache, and doesn't involve a long/horrible sed. I've also sent it upstream.

Ross