ncurses: fix gcc 5 compile issue for real
PATCH 1/1 ncurses: fix gcc 5 compile issue for real
The previous patch didn't work in all cases. The new patch is taken from
upstream: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=97bb4678dc03e753290b39bbff30ba2825df9517
--- package/ncurses/0002-gcc-5.x-MKlib_gen.patch | 60 +++++++++++++--------------- 1 file changed, 28 insertions(+), 32 deletions(-)
package/ncurses/0002-gcc-5.x-MKlib_gen.patch +28 -32
@@ -1,33 +1,29 @@ -Fix GCC 5.x preprocessor failure - -Building ncurses 5.9 with GCC 5.x fails with a syntax error, caused by -earlier preprocessing. This failure is more likely when building for -host (e.g. host-ncurses) that recently updated to GCC 5.x. - -This patch is taken from the following link (more information is also -available here): -https://groups.google.com/forum/#!topic/sage-trac/U31shviuqzk - -Signed-off-by: Doug Kehn <[email protected]> - -Index: b/ncurses/base/MKlib_gen.sh -=================================================================== ---- a/ncurses/base/MKlib_gen.sh -+++ b/ncurses/base/MKlib_gen.sh -@@ -62,7 +62,15 @@ if test "${LC_MESSAGES+set}" = set; then - if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi - --preprocessor="$1 -DNCURSES_INTERNALS -I../include" -+# Work around "unexpected" output of GCC 5.1.0's cpp w.r.t. #line directives -+# by simply suppressing them: -+case `$1 -dumpversion 2>/dev/null` in -+ 5.[01].*) # assume a "broken" one -+ preprocessor="$1 -P -DNCURSES_INTERNALS -I../include" -+ ;; -+ *) -+ preprocessor="$1 -DNCURSES_INTERNALS -I../include" -+esac - AWK="$2" - USE="$3" +--- a/ncurses/base/MKlib_gen.sh.orig 2015-07-23 21:52:32.239481505 +0300 ++++ b/ncurses/base/MKlib_gen.sh 2015-07-23 21:53:20.772966587 +0300 +@@ -437,11 +437,22 @@ + -e 's/gen_$//' \ + -e 's/ / /g' >>$TMP ++cat >$ED1 <<EOF ++s/ / /g ++s/^ // ++s/ $// ++s/P_NCURSES_BOOL/NCURSES_BOOL/g ++EOF ++ ++# A patch discussed here: ++# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html ++# introduces spurious #line markers. Work around that by ignoring the system's ++# attempt to define "bool" and using our own symbol here. ++sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2 ++cat $ED2 >$TMP ++ + $preprocessor $TMP 2>/dev/null \ +-| sed \ +- -e 's/ / /g' \ +- -e 's/^ //' \ +- -e 's/_Bool/NCURSES_BOOL/g' \ ++| sed -f $ED1 \ + | $AWK -f $AW2 \ + | sed -f $ED3 \ + | sed \
Signature · 1 line
2.4.6
PATCH 1/1 ncurses: fix gcc 5 compile issue for real
Quoted 7 lines · kyak
The previous patch didn't work in all cases. The new patch is taken from
upstream: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=97bb4678dc03e753290b39bbff30ba2825df9517Signed-off-by Thomas E. Dickey <[email protected]>Signed-off-by Mikhail Peselnik <[email protected]>
<snip>
regards,
Jaap
PATCH 1/1 ncurses: fix gcc 5 compile issue for real
In reply to kyakMikhail, All,
On 2015-07-24 16:00 +0300, kyak spake thusly:
Quoted 7 lines
The previous patch didn't work in all cases. The new patch is taken from
upstream: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=97bb4678dc03e753290b39bbff30ba2825df9517Signed-off-by Thomas E. Dickey <[email protected]>Signed-off-by Mikhail Peselnik <[email protected]>
Regards,
Yann E. MORIN.
Quoted 77 lines
--- package/ncurses/0002-gcc-5.x-MKlib_gen.patch | 60 +++++++++++++--------------- 1 file changed, 28 insertions(+), 32 deletions(-)package/ncurses/0002-gcc-5.x-MKlib_gen.patch +28
-32@@ -1,33 +1,29 @@ -Fix GCC 5.x preprocessor failure - -Building ncurses 5.9 with GCC 5.x fails with a syntax error, caused by -earlier preprocessing. This failure is more likely when building for -host (e.g. host-ncurses) that recently updated to GCC 5.x. - -This patch is taken from the following link (more information is also -available here): -https://groups.google.com/forum/#!topic/sage-trac/U31shviuqzk - -Signed-off-by: Doug Kehn <[email protected]> - -Index: b/ncurses/base/MKlib_gen.sh -=================================================================== ---- a/ncurses/base/MKlib_gen.sh -+++ b/ncurses/base/MKlib_gen.sh -@@ -62,7 +62,15 @@ if test "${LC_MESSAGES+set}" = set; then - if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi - if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi - --preprocessor="$1 -DNCURSES_INTERNALS -I../include" -+# Work around "unexpected" output of GCC 5.1.0's cpp w.r.t. #line directives -+# by simply suppressing them: -+case `$1 -dumpversion 2>/dev/null` in -+ 5.[01].*) # assume a "broken" one -+ preprocessor="$1 -P -DNCURSES_INTERNALS -I../include" -+ ;; -+ *) -+ preprocessor="$1 -DNCURSES_INTERNALS -I../include" -+esac - AWK="$2" - USE="$3" +--- a/ncurses/base/MKlib_gen.sh.orig 2015-07-23 21:52:32.239481505 +0300 ++++ b/ncurses/base/MKlib_gen.sh 2015-07-23 21:53:20.772966587 +0300 +@@ -437,11 +437,22 @@ + -e 's/gen_$//' \ + -e 's/ / /g' >>$TMP ++cat >$ED1 <<EOF ++s/ / /g ++s/^ // ++s/ $// ++s/P_NCURSES_BOOL/NCURSES_BOOL/g ++EOF ++ ++# A patch discussed here: ++# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html ++# introduces spurious #line markers. Work around that by ignoring the system's ++# attempt to define "bool" and using our own symbol here. ++sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2 ++cat $ED2 >$TMP ++ + $preprocessor $TMP 2>/dev/null \ +-| sed \ +- -e 's/ / /g' \ +- -e 's/^ //' \ +- -e 's/_Bool/NCURSES_BOOL/g' \ ++| sed -f $ED1 \ + | $AWK -f $AW2 \ + | sed -f $ED3 \ + | sed \Signature · 6 lines
2.4.6 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 ncurses: fix gcc 5 compile issue for real
In reply to kyakHello,
Quoted 10 lines · kyak
The previous patch didn't work in all cases. The new patch is taken from
upstream: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commit;h=97bb4678dc03e753290b39bbff30ba2825df9517Signed-off-by Thomas E. Dickey <[email protected]>Signed-off-by Mikhail Peselnik <[email protected]>--- package/ncurses/0002-gcc-5.x-MKlib_gen.patch | 60 +++++++++++++--------------- 1 file changed, 28 insertions(+), 32 deletions(-)
I've applied your patch, but there were still a number of incorrect things that I fixed before applying:
[Thomas:
- removed Signed-off-by in the Buildroot commit from the ncurses
author: the ncurses author never submitted this patch to Buildroot.
- fixed the Author of the Buildroot commit, it was still "kyak"
- added a description + Signed-off-by in the patch itself.]
Best regards,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com