According to the
ncurses 6.0 release notes (the site is at
"https://www.gnu.org/software/ncurses/"),
the intent of the release is to provide a new stable ABI,
which is binary-incompatible with ncurses 5,
but it can still be configured to support the
ncurses5. Because this release introduces
symbol-versioning.
The
symbol-versioning allows the
developers of a library to mark each public sysmbol(both data and
functions) with an identifier denoting the library name and
the version for which it was built. By doing this , users of the
library have a way to help ensure that applications do not
accidentally load an imcompatible library.
In addition, private sysmbols can be hidden entirely.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
When I first release the patch 5.9 -> 6.0 with the option
--with-abi-version=5, I want to be compatible with the existing
system, so I do the following test:
$bitbake world core-image-sato-sdk
tested it on the qemuarm, qemux86, qemux86-64 with multilib
(oe-core), and no error happened .
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
When I second release the patch "drop the compatible option
--with-abi-version=5", because I want to introduces the feature
symbol-versioning, so I
droped the
option --with-abi-version=5 , and I do the following test:
$bitbake world core-image-sato-sdk
tested it on the qemuarm, qemux86, qemux86-64 with multilib
(oe-core), and no error happened.
Today, Robert let me test it on the following layers:
/meta-openembedded/meta-oe
/meta-openembedded/meta-networking
/meta-openembedded/meta-meta-webserver
so I add the layers to my build and run the following
commands:
$bitbake world
It reported the following error:
Summary: 15 tasks failed:
/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-support/portaudio/portaudio-v19_svn.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-gnome/gtkhtml2/gtkhtml2_svn.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-python/recipes-devtools/python/python-cryptography-vectors_1.1.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-networking/recipes-support/geoip/geoip_1.6.6.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-11.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-python/recipes-devtools/python/python-decorator_4.0.2.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-python/recipes-connectivity/python-thrift/python-thrift_0.9.2.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-python/recipes-devtools/python/python-sqlalchemy_0.7.9.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-webserver/recipes-httpd/cherokee/cherokee_1.2.98.bb,
do_fetch
/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb,
do_fetch
virtual:native:/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-support/uim/uim_1.8.6.bb,
do_install
/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-connectivity/umip/umip_1.0.bb,
do_compile
/buildarea/raid0/ddu/poky/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb,
do_package_qa
It seems the umip was affect by the ncurses version change. So
I went to the log.do_compile, the log file say:
fatal error: gram.h : No such file or
directory
compilation terminated
So I think the ncurses version change didn't affect the whole
system. Then I release the patch "ncurses: drop the compatible
option"
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
On 2016年01月21日 10:17, Khem Raj wrote:
On Wed, Jan 20, 2016 at 5:30 PM, Robert Yang <liezhi.yang@windriver.com> wrote:
I had talked with Dengke, we have upgraded ncurses to 6, so remove
--with-abi-version=5 seems better. He had tested world and sdk
build based on oe-core. He will test it based on meta-openembedded.
we need to ensure that all apps using ncurses are able to work with
new APIs if we drop compatibility.
may be have ncurses5 package still around to provide backward compatibility.