ncurses: Apply patch from upstream to allow building by gcc 5.0
authorJohn Marino <draco@marino.st>
Tue, 10 Feb 2015 01:41:18 +0000 (02:41 +0100)
committerJohn Marino <draco@marino.st>
Tue, 10 Feb 2015 01:44:03 +0000 (02:44 +0100)
The gcc 5.0 processor will mangle the headers produced by this script.
It has already been fixed in official patches from upstream.  Applying
the appropriate patch will allow gcc 5.0 to build ncurses, and gcc 4.7
has been verified to continue to work as well.

contrib/ncurses/README.DRAGONFLY
contrib/ncurses/ncurses/base/MKlib_gen.sh

index 108f77b..76a9ee7 100644 (file)
@@ -22,6 +22,7 @@ The .h files copied into base where created using configure opts:
        --with-terminfo-dirs=/usr/share/terminfo
 
 The following files have been modified:
+       ncurses/base/Mklib_gen.sh
        ncurses/tinfo/comp_scan.c
        misc/terminfo.src [1]
 
index 66ae295..b92f22b 100755 (executable)
@@ -437,11 +437,22 @@ sed -n -f $ED1 \
        -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 \