diff options
author | kan <kan@FreeBSD.org> | 2015-08-27 14:00:20 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2015-08-27 14:00:20 +0000 |
commit | 7da6a7a55a185157c5aa27f2f62516852afdfa05 (patch) | |
tree | da629491d6386cc8d5ce3eeb4bf3460559c8ec22 | |
parent | 956823f74dbb8aeab18ab05c177891148a958f92 (diff) | |
download | FreeBSD-src-7da6a7a55a185157c5aa27f2f62516852afdfa05.zip FreeBSD-src-7da6a7a55a185157c5aa27f2f62516852afdfa05.tar.gz |
Make ncurses build with GCC 5.0 and up
Merge the end result of two upstream changes:
Original fix from 20141206:
+ modify MKlib_gen.sh to work around change in development version of
gcc introduced here:
https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html
(reports by Marcus Shawcroft, Maohui Lei).
Later fixed in different manner in 20150725:
+ use alternate workaround for gcc 5.x feature (adapted from patch by
Mikhail Peselnik).
-rwxr-xr-x | contrib/ncurses/ncurses/base/MKlib_gen.sh | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/contrib/ncurses/ncurses/base/MKlib_gen.sh b/contrib/ncurses/ncurses/base/MKlib_gen.sh index d8cc3c9..4f7f19d 100755 --- a/contrib/ncurses/ncurses/base/MKlib_gen.sh +++ b/contrib/ncurses/ncurses/base/MKlib_gen.sh @@ -2,10 +2,10 @@ # # MKlib_gen.sh -- generate sources from curses.h macro definitions # -# ($Id: MKlib_gen.sh,v 1.46 2011/06/04 19:14:08 tom Exp $) +# ($Id: MKlib_gen.sh,v 1.50 2015/08/07 00:48:24 tom Exp $) # ############################################################################## -# Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. # +# Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # # copy of this software and associated documentation files (the "Software"), # @@ -66,6 +66,23 @@ preprocessor="$1 -DNCURSES_INTERNALS -I../include" AWK="$2" USE="$3" +# A patch discussed here: +# https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html +# introduces spurious #line markers into the preprocessor output. The result +# appears in gcc 5.0 and (with modification) in 5.1, making it necessary to +# determine if we are using gcc, and if so, what version because the proposed +# solution uses a nonstandard option. +PRG=`echo "$1" | $AWK '{ sub(/^[[:space:]]*/,""); sub(/[[:space:]].*$/, ""); print; }' || exit 0` +FSF=`"$PRG" --version 2>/dev/null || exit 0 | fgrep "Free Software Foundation" | head -n 1` +ALL=`"$PRG" -dumpversion 2>/dev/null || exit 0` +ONE=`echo "$ALL" | sed -e 's/\..*$//'` +if test -n "$FSF" && test -n "$ALL" && test -n "$ONE" ; then + if test $ONE -ge 5 ; then + echo ".. adding -P option to work around $PRG $ALL" >&2 + preprocessor="$preprocessor -P" + fi +fi + PID=$$ ED1=sed1_${PID}.sed ED2=sed2_${PID}.sed |