Message ID | 1343328590-1803-2-git-send-email-thomas.petazzoni@free-electrons.com |
---|---|
State | Accepted |
Headers | show |
On 07/26/12 15:49, Thomas Petazzoni wrote: > Bumping to 5.9 has two nice side-effects: > > * It builds fine on noMMU architectures such as Blackfin, which will > fix build failures like > http://autobuild.buildroot.org/results/cf3e6a95c82b60d63da041293db576a8f21f9136/build-end.log. > > * It installs a pkg-config file, which will allow gpsd to find > ncurses properly, without the need to use ncurses5-config, which > means we can get rid of one of our gpsd patches. Thanks to Mike > Frysinger for pointing the new --enable-pc-files option. > > After this bump, I build tested a large number of the ncurses reverse > dependencies we have in Buildroot, and they all built fine. > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Nack. The version bump to 5.8 and 5.9 had issues in the past and still has. It may compile just fine but it segfaults miserably in a target, chroot or qemu image. Simple test, i586 target with external toolchain, build less and see. Regards.
Le Thu, 26 Jul 2012 16:15:15 -0300, Gustavo Zacarias <gustavo@zacarias.com.ar> a écrit : > > After this bump, I build tested a large number of the ncurses reverse > > dependencies we have in Buildroot, and they all built fine. > > > > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> > > Nack. > The version bump to 5.8 and 5.9 had issues in the past and still has. > It may compile just fine but it segfaults miserably in a target, chroot > or qemu image. > Simple test, i586 target with external toolchain, build less and see. > Regards. Yes, I just did some runtime testing, and also faced segfaults. Now that you say it, I also remember what you said. Thanks! Thomas
Le Thu, 26 Jul 2012 16:15:15 -0300, Gustavo Zacarias <gustavo@zacarias.com.ar> a écrit : > Nack. > The version bump to 5.8 and 5.9 had issues in the past and still has. > It may compile just fine but it segfaults miserably in a target, chroot > or qemu image. > Simple test, i586 target with external toolchain, build less and see. There must something odd: both Yocto and PTXdist are using ncurses 5.9, so I presume it works for them. So it's not as simple as "cross-compilation breaks ncurses 5.9", it's something more subtle than that. Thomas
On 07/27/12 03:59, Thomas Petazzoni wrote: > Le Thu, 26 Jul 2012 16:15:15 -0300, > Gustavo Zacarias <gustavo@zacarias.com.ar> a écrit : > >> Nack. >> The version bump to 5.8 and 5.9 had issues in the past and still has. >> It may compile just fine but it segfaults miserably in a target, chroot >> or qemu image. >> Simple test, i586 target with external toolchain, build less and see. > > There must something odd: both Yocto and PTXdist are using ncurses 5.9, > so I presume it works for them. So it's not as simple as > "cross-compilation breaks ncurses 5.9", it's something more subtle than > that. > > Thomas Yes, i agree it's pretty much some little thing. I did some tests in the past and it doesn't seem to be configure options related (didn't try everything around, just what would be more obvious to cause such a failure). Yet OpenWRT, which is BR's closest relative, still uses 5.7, maybe they didn't care about bumping it or hit the same issue. I'll give it another shot later today. Regards.
Le Fri, 27 Jul 2012 07:21:39 -0300, Gustavo Zacarias <gustavo@zacarias.com.ar> a écrit : > Yes, i agree it's pretty much some little thing. > I did some tests in the past and it doesn't seem to be configure > options related (didn't try everything around, just what would be > more obvious to cause such a failure). > Yet OpenWRT, which is BR's closest relative, still uses 5.7, maybe > they didn't care about bumping it or hit the same issue. I indeed just talked to Florian Fainelli on IRC (he is an OpenWRT developer), and he remembers hearing issues about ncurses 5.9, and those issues being the reason to stick to 5.7 for now. But still, PTXdist and OE have it. So it should work somehow. And they don't seem to have bizarre patches. Thomas
On 07/27/12 12:28, Thomas Petazzoni wrote: > But still, PTXdist and OE have it. So it should work somehow. And they > don't seem to have bizarre patches. Does the segfault issue also occur on arm or powerpc? Neither PTXdist nor OE is a big i386 user, so maybe they just didn't notice the problem. Regards, Arnout
On 07/27/12 08:23, Arnout Vandecappelle wrote: > On 07/27/12 12:28, Thomas Petazzoni wrote: >> But still, PTXdist and OE have it. So it should work somehow. And they >> don't seem to have bizarre patches. > > Does the segfault issue also occur on arm or powerpc? Neither PTXdist > nor OE is a big i386 user, so maybe they just didn't notice the problem. > > Regards, > Arnout Gentoo has 5.9 as stable for all major architectures, i'm pretty sure it works so it's something we're doing different/wrong. Regards.
Le Fri, 27 Jul 2012 13:23:45 +0200, Arnout Vandecappelle <arnout@mind.be> a écrit : > Does the segfault issue also occur on arm or powerpc? Neither PTXdist > nor OE is a big i386 user, so maybe they just didn't notice the problem. Yesterday, I tried on ARM Cortex-A8 within the Qemu VExpress emulation (using Linaro toolchain), and it segfaulted. I haven't tried on real hardware though, so could always be a Qemu problem, or a toolchain problem. Thomas
On 07/27/12 08:38, Thomas Petazzoni wrote: > Le Fri, 27 Jul 2012 13:23:45 +0200, > Arnout Vandecappelle <arnout@mind.be> a écrit : > >> Does the segfault issue also occur on arm or powerpc? Neither PTXdist >> nor OE is a big i386 user, so maybe they just didn't notice the problem. > > Yesterday, I tried on ARM Cortex-A8 within the Qemu VExpress emulation > (using Linaro toolchain), and it segfaulted. I haven't tried on real > hardware though, so could always be a Qemu problem, or a toolchain > problem. > > Thomas I've tried on real hardware (arm, powerpc) and it's the same issue. I'll do some tests on a chroot (i586 or x86_64) to try track it down since it fails too, at least for i586. Regards.
diff --git a/package/ncurses/ncurses-01-fixup-pkg-config-handling.patch b/package/ncurses/ncurses-01-fixup-pkg-config-handling.patch new file mode 100644 index 0000000..e1cfc75 --- /dev/null +++ b/package/ncurses/ncurses-01-fixup-pkg-config-handling.patch @@ -0,0 +1,89 @@ +Change handling of PKG_CONFIG_LIBDIR + +When PKG_CONFIG_LIBDIR was unset in the environment, the configure +script was deducing the PKG_CONFIG_LIBDIR from the location of the +pkg-config binary, which doesn't make a lot of sense, and isn't done +by other autotools based packages. + +Also, the configure script was checking that the directory really +exists. This forced to create the directory *and* provide an absolute +path in PKG_CONFIG_LIBDIR, which didn't play well with the fact that +at installation time, PKG_CONFIG_LIBDIR is suffixed to DESTDIR, which +means that we got two times the staging directory location. + +This patch fixes both of those issues. Also, since ncurses uses a fork +of autoconf 2.13, we can't simply use _AUTORECONF=YES, so we also fix +the configure script in this patch. + +Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> + +Index: b/configure +=================================================================== +--- a/configure ++++ b/configure +@@ -3623,27 +3623,20 @@ + + # Leave this as something that can be overridden in the environment. + if test -z "$PKG_CONFIG_LIBDIR" ; then +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig ++ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig" + fi ++ + PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then + +-# Check whether --enable-pc-files or --disable-pc-files was given. +-if test "${enable_pc_files+set}" = set; then +- enableval="$enable_pc_files" +- enable_pc_files=$enableval +-else +- enable_pc_files=no +-fi; +- echo "$as_me:3638: result: $enable_pc_files" >&5 +-echo "${ECHO_T}$enable_pc_files" >&6 ++ # Check whether --enable-pc-files or --disable-pc-files was given. ++ if test "${enable_pc_files+set}" = set; then ++ enableval="$enable_pc_files" ++ enable_pc_files=$enableval + else +- echo "$as_me:3641: result: no" >&5 +-echo "${ECHO_T}no" >&6 +- { echo "$as_me:3643: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5 +-echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;} +- enable_pc_files=no +- fi ++ enable_pc_files=no ++ fi; ++ echo "$as_me:3638: result: $enable_pc_files" >&5 ++ echo "${ECHO_T}$enable_pc_files" >&6 + fi + + echo "$as_me:3649: checking if we should assume mixed-case filenames" >&5 +Index: b/configure.in +=================================================================== +--- a/configure.in ++++ b/configure.in +@@ -174,20 +174,14 @@ + + # Leave this as something that can be overridden in the environment. + if test -z "$PKG_CONFIG_LIBDIR" ; then +- PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig ++ PKG_CONFIG_LIBDIR="/usr/lib/pkgconfig" + fi + PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/^://' -e 's/:.*//'` +- if test -n "$PKG_CONFIG_LIBDIR" && test -d "$PKG_CONFIG_LIBDIR" ; then +- AC_ARG_ENABLE(pc-files, ++ AC_ARG_ENABLE(pc-files, + [ --enable-pc-files generate and install .pc files for pkg-config], + [enable_pc_files=$enableval], + [enable_pc_files=no]) +- AC_MSG_RESULT($enable_pc_files) +- else +- AC_MSG_RESULT(no) +- AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR) +- enable_pc_files=no +- fi ++ AC_MSG_RESULT($enable_pc_files) + fi + AC_SUBST(PKG_CONFIG_LIBDIR) + diff --git a/package/ncurses/ncurses.mk b/package/ncurses/ncurses.mk index 72a8030..e0df2aa 100644 --- a/package/ncurses/ncurses.mk +++ b/package/ncurses/ncurses.mk @@ -23,7 +23,7 @@ # USA # TARGETS -NCURSES_VERSION = 5.7 +NCURSES_VERSION = 5.9 NCURSES_SITE = $(BR2_GNU_MIRROR)/ncurses NCURSES_INSTALL_STAGING = YES NCURSES_DEPENDENCIES = host-ncurses @@ -41,7 +41,8 @@ NCURSES_CONF_OPT = \ --enable-echo \ --enable-const \ --enable-overwrite \ - --enable-broken_linker + --enable-broken_linker \ + --enable-pc-files ifneq ($(BR2_ENABLE_DEBUG),y) NCURSES_CONF_OPT += --without-debug
Bumping to 5.9 has two nice side-effects: * It builds fine on noMMU architectures such as Blackfin, which will fix build failures like http://autobuild.buildroot.org/results/cf3e6a95c82b60d63da041293db576a8f21f9136/build-end.log. * It installs a pkg-config file, which will allow gpsd to find ncurses properly, without the need to use ncurses5-config, which means we can get rid of one of our gpsd patches. Thanks to Mike Frysinger for pointing the new --enable-pc-files option. After this bump, I build tested a large number of the ncurses reverse dependencies we have in Buildroot, and they all built fine. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> --- .../ncurses-01-fixup-pkg-config-handling.patch | 89 ++++++++++++++++++++ package/ncurses/ncurses.mk | 5 +- 2 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 package/ncurses/ncurses-01-fixup-pkg-config-handling.patch