From: Andreas Sturmlechner Date: Wed, 4 Apr 2018 20:42:47 +0000 (+0200) Subject: sci-geosciences/grass: Fix build with GCC-7 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=6ca4bd78d32c439cb0bdae189d3d309787fbbdb1;p=gentoo.git sci-geosciences/grass: Fix build with GCC-7 Thanks-to: Martin von Gagern Closes: https://bugs.gentoo.org/642750 Package-Manager: Portage-2.3.28, Repoman-2.3.9 --- diff --git a/sci-geosciences/grass/files/grass-7.2.0-gcc7.patch b/sci-geosciences/grass/files/grass-7.2.0-gcc7.patch new file mode 100644 index 000000000000..97be4d7d8606 --- /dev/null +++ b/sci-geosciences/grass/files/grass-7.2.0-gcc7.patch @@ -0,0 +1,94 @@ +Index: releasebranch_7_2/lib/python/ctypes/ctypesgencore/parser/lextab.py +=================================================================== +--- a/lib/python/ctypes/ctypesgencore/parser/lextab.py (revision 71218) ++++ b/lib/python/ctypes/ctypesgencore/parser/lextab.py (revision 71219) +@@ -1,59 +1,8 @@ + # lextab.py. This file automatically created by PLY (version 2.2). Don't edit! +-_lextokens = { +- 'RIGHT_OP': None, +- 'RIGHT_ASSIGN': None, +- 'DEC_OP': None, +- 'PP_MACRO_PARAM': None, +- 'DIV_ASSIGN': None, +- 'PP_DEFINE': None, +- 'PP_END_DEFINE': None, +- 'PP_DEFINE_MACRO_NAME': None, +- 'HEADER_NAME': None, +- 'NEWLINE': None, +- 'CHARACTER_CONSTANT': None, +- 'PP_STRINGIFY': None, +- 'AND_ASSIGN': None, +- 'PTR_OP': None, +- 'ELLIPSIS': None, +- 'IDENTIFIER': None, +- 'ADD_ASSIGN': None, +- 'PERIOD': None, +- 'AND_OP': None, +- 'OTHER': None, +- 'LPAREN': None, +- 'LEFT_OP': None, +- 'LE_OP': None, +- 'OR_OP': None, +- 'SUB_ASSIGN': None, +- 'MOD_ASSIGN': None, +- 'STRING_LITERAL': None, +- 'PP_IDENTIFIER_PASTE': None, +- 'PP_NUMBER': None, +- 'PP_DEFINE_NAME': None, +- 'XOR_ASSIGN': None, +- 'OR_ASSIGN': None, +- 'GE_OP': None, +- 'MUL_ASSIGN': None, +- 'LEFT_ASSIGN': None, +- 'INC_OP': None, +- 'NE_OP': None, +- 'EQ_OP': None} +-_lexreflags = 0 +-_lexliterals = '' ++_lextokens = {'RIGHT_OP': None, 'RIGHT_ASSIGN': None, 'DEC_OP': None, 'PP_MACRO_PARAM': None, 'DIV_ASSIGN': None, 'PP_DEFINE': None, 'PP_END_DEFINE': None, 'PP_DEFINE_MACRO_NAME': None, 'HEADER_NAME': None, 'NEWLINE': None, 'CHARACTER_CONSTANT': None, 'PP_STRINGIFY': None, 'AND_ASSIGN': None, 'PTR_OP': None, 'ELLIPSIS': None, 'IDENTIFIER': None, 'ADD_ASSIGN': None, 'PERIOD': None, 'AND_OP': None, 'OTHER': None, 'LPAREN': None, 'LEFT_OP': None, 'LE_OP': None, 'OR_OP': None, 'SUB_ASSIGN': None, 'MOD_ASSIGN': None, 'STRING_LITERAL': None, 'PP_IDENTIFIER_PASTE': None, 'PP_NUMBER': None, 'PP_DEFINE_NAME': None, 'XOR_ASSIGN': None, 'OR_ASSIGN': None, 'GE_OP': None, 'MUL_ASSIGN': None, 'LEFT_ASSIGN': None, 'INC_OP': None, 'NE_OP': None, 'EQ_OP': None} ++_lexreflags = 0 ++_lexliterals = '' + _lexstateinfo = {'INITIAL': 'inclusive', 'DEFINE': 'exclusive'} +-_lexstatere = { +- 'INITIAL': [ +- ('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))', [ +- None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [ +- None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P[FflL]?)(?!\\w))', [ +- None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [ +- None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P\\#define)', [ +- None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_INITIAL_newline', 'INITIAL_newline'), ('t_INITIAL_pp_define', 'INITIAL_pp_define')])], 'DEFINE': [ +- ('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|\\*=|\\^=|<<=|>>=|\\|=|\\+=|>=|>>|<<|<=|<:|%=|:>|<%|!=|\\)|\\+|\\*|\\.|\\?|==|&=|&&|\\[|\\^|--|/=|%>|-=|->|\\||!|%|&|-|,|/|;|:|=|>|]|<|{|}|~))', [ +- None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [ +- None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P[FflL]?)(?!\\w))', [ +- None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [ +- None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P(\\#\\#)|(\\#))', [ +- None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 'DEFINE_pp_param_op')])]} ++_lexstatere = {'INITIAL': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_INITIAL_identifier', 'INITIAL_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P\\#define)', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_INITIAL_newline', 'INITIAL_newline'), ('t_INITIAL_pp_define', 'INITIAL_pp_define')])], 'DEFINE': [('(?P\\#\\s+(\\d+)\\s+"([^"]+)"[ \\d]*\\n)|(?P(\\.\\.\\.|\\|\\||\\+\\+|>>=|\\|=|\\^=|<<=|\\*=|\\+=|>=|>>|%=|:>|%>|!=|\\*|\\.|==|\\^|--|-=|->|\\||<<|<=|<:|<%|\\)|\\+|\\?|&=|&&|\\[|/=|&|,|:|<|>|~|!|%|-|/|;|=|]|{|}))', [None, ('t_ANY_directive', 'ANY_directive'), None, None, ('t_ANY_punctuator', 'ANY_punctuator')]), ('(?P[a-zA-Z_]([a-zA-Z_]|[0-9])*)', [None, ('t_DEFINE_identifier', 'DEFINE_identifier')]), ('(?P(?P[0-9]+)?(?P[.]?)(?P(?(p1)[0-9]*|[0-9]+))(?P(?:[Ee][+-]?[0-9]+)?)(?P([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)?)(?!\\w))', [None, ('t_ANY_float', 'ANY_float'), None, None, None, None, None]), ('(?P(?P(?:0x[a-fA-F0-9]+)|(?:[0-9]+))(?P[uUlL]*))', [None, ('t_ANY_int', 'ANY_int'), None, None]), ('(?PL?\'(\\\\.|[^\\\\\'])+\')|(?PL?"(\\\\.|[^\\\\"])*")|(?P\\()|(?P\\n)|(?P(\\#\\#)|(\\#))', [None, ('t_ANY_character_constant', 'ANY_character_constant'), None, ('t_ANY_string_literal', 'ANY_string_literal'), None, ('t_ANY_lparen', 'ANY_lparen'), ('t_DEFINE_newline', 'DEFINE_newline'), ('t_DEFINE_pp_param_op', 'DEFINE_pp_param_op')])]} + _lexstateignore = {'INITIAL': ' \t\x0b\x0c\r', 'DEFINE': ' \t\x0b\x0c\r'} + _lexstateerrorf = {'INITIAL': 't_INITIAL_error', 'DEFINE': 't_DEFINE_error'} +Index: releasebranch_7_2/lib/python/ctypes/ctypesgencore/parser/pplexer.py +=================================================================== +--- a/lib/python/ctypes/ctypesgencore/parser/pplexer.py (revision 71218) ++++ b/lib/python/ctypes/ctypesgencore/parser/pplexer.py (revision 71219) +@@ -52,7 +52,7 @@ + 'L': '[a-zA-Z_]', + 'H': '[a-fA-F0-9]', + 'E': '[Ee][+-]?\s*{D}+', +- 'FS': '[FflL]', ++ 'FS': '([FfLl]|d[dfl]|D[DFL]|[fFdD][0-9]+x?)', + 'IS': '[uUlL]*', + } + # Helper: substitute {foo} with subs[foo] in string (makes regexes more lexy) +@@ -226,10 +226,10 @@ + exp = m.group("exp") + suf = m.group("suf") + +- if dp or exp or (suf and suf in ("Ff")): ++ if dp or exp or (suf and suf not in ("Ll")): + s = m.group(0) + if suf: +- s = s[:-1] ++ s = s[:-len(suf)] + # Attach a prefix so the parser can figure out if should become an + # integer, float, or long + t.value = "f" + s diff --git a/sci-geosciences/grass/grass-7.2.0-r1.ebuild b/sci-geosciences/grass/grass-7.2.0-r1.ebuild index be625fa853d0..00657af184ed 100644 --- a/sci-geosciences/grass/grass-7.2.0-r1.ebuild +++ b/sci-geosciences/grass/grass-7.2.0-r1.ebuild @@ -78,6 +78,7 @@ REQUIRED_USE=" PATCHES=( "${FILESDIR}/${PN}"-7.0.1-declare-inespg.patch + "${FILESDIR}/${P}"-gcc7.patch ) pkg_setup() {