Opened 7 years ago

Closed 7 years ago

#3273 closed defect (fixed)

Fails to build with GCC 7

Reported by: Bas Couwenberg Owned by: grass-dev@…
Priority: critical Milestone: 7.2.2
Component: Compiling Version: 7.2.0
Keywords: Cc: Bas Couwenberg
CPU: x86-64 Platform: Linux

Description

As reported by Matthias Klose in Debian Bug #853433:

The package fails to build in a test rebuild on at least amd64 with gcc-7/g++-7, but succeeds to build with gcc-6/g++-6. The severity of this report may be raised before the buster release. There is no need to fix this issue in time for the stretch release.

The full build log can be found at: http://people.debian.org/~doko/logs/gcc7-20170126/grass_7.2.0-1_unstable_gcc7.log The last lines of the build log are at the end of this report.

To build with GCC 7, either set CC=gcc-7 CXX=g++-7 explicitly, or install the gcc, g++, gfortran, ... packages from experimental.

apt-get -t=experimental install g++

Common build failures are new warnings resulting in build failures with -Werror turned on, or new/dropped symbols in Debian symbols files. For other C/C++ related build failures see the porting guide at http://gcc.gnu.org/gcc-7/porting_to.html

[...]
can't handle line breaks in <dt>...</dt>
make[6]: Leaving directory '/<<PKGBUILDDIR>>/man'
make[5]: Leaving directory '/<<PKGBUILDDIR>>/man'
make[4]: Leaving directory '/<<PKGBUILDDIR>>/man'
make[4]: Entering directory '/<<PKGBUILDDIR>>/macosx'
make[4]: Leaving directory '/<<PKGBUILDDIR>>/macosx'
make[4]: Entering directory '/<<PKGBUILDDIR>>/mswindows'
make[4]: Nothing to be done for 'first'.
make[4]: Leaving directory '/<<PKGBUILDDIR>>/mswindows'
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
make /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/AUTHORS /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/CHANGES /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/CITING /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/COPYING /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/GPL.TXT /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/INSTALL /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/REQUIREMENTS.html /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/contributors.csv /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/contributors_extra.csv /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/translators.csv
make[3]: Entering directory '/<<PKGBUILDDIR>>'
/usr/bin/install -c  -m 644 AUTHORS /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/AUTHORS
/usr/bin/install -c  -m 644 CHANGES /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/CHANGES
/usr/bin/install -c  -m 644 CITING /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/CITING
/usr/bin/install -c  -m 644 COPYING /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/COPYING
/usr/bin/install -c  -m 644 GPL.TXT /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/GPL.TXT
/usr/bin/install -c  -m 644 INSTALL /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/INSTALL
/usr/bin/install -c  -m 644 REQUIREMENTS.html /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/REQUIREMENTS.html
/usr/bin/install -c  -m 644 contributors.csv /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/contributors.csv
/usr/bin/install -c  -m 644 contributors_extra.csv /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/contributors_extra.csv
/usr/bin/install -c  -m 644 translators.csv /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/translators.csv
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
make manifests
make[3]: Entering directory '/<<PKGBUILDDIR>>'
make[3]: Nothing to be done for 'manifests'.
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
GRASS GIS 7.2.0 exported compilation log
--------------------------------------------------
Started compilation: Fri Jan 27 12:58:35 UTC 2017
--
Errors in:
/<<PKGBUILDDIR>>/lib/python/ctypes
--
In case of errors please change into the directory with error and run 'make'.
If you get multiple errors, you need to deal with them in the order they
appear in the error log. If you get an error building a library, you will
also get errors from anything which uses the library.
--
Finished compilation: Fri Jan 27 12:59:36 UTC 2017
Makefile:57: recipe for target 'default' failed
make[2]: *** [default] Error 1
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: make -j64 returned exit code 2
debian/rules:110: recipe for target 'build-arch-stamp' failed
make[1]: *** [build-arch-stamp] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules:37: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

Attachments (1)

grass_7.2.0-1_unstable_gcc7.log.gz (226.3 KB ) - added by Bas Couwenberg 7 years ago.
Full build log

Download all attachments as: .zip

Change History (8)

by Bas Couwenberg, 7 years ago

Full build log

comment:1 by wenzeslaus, 7 years ago

This is probably the error message:

ValueError: invalid literal for int() with base 8: '08420217248550443400745280086994171'

and in context:

GISRC=/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/demolocation/.grassrc72 GISBASE=/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu PATH="/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/scripts:$PATH" PYTHONPATH="/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/etc/python:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/gui/wxpython:$PYTHONPATH" LD_LIBRARY_PATH="/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/scripts:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/lib:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/lib:" LC_ALL=C ./ctypesgen.py --cpp "gcc -E -Wdate-time -D_FORTIFY_SOURCE=2      -I/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include -I/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include -D__GLIBC_HAVE_LONG_LONG" -lgrass_rowio.7.2.0   /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include/grass/rowio.h /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include/grass/defs/rowio.h -o OBJ.x86_64-pc-linux-gnu/rowio.py
...
GISRC=/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/demolocation/.grassrc72 GISBASE=/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu PATH="/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/scripts:$PATH" PYTHONPATH="/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/etc/python:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/gui/wxpython:$PYTHONPATH" LD_LIBRARY_PATH="/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/bin:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/scripts:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/lib:/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/lib:" LC_ALL=C ./ctypesgen.py --cpp "gcc -E -Wdate-time -D_FORTIFY_SOURCE=2      -I/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include -I/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include -D__GLIBC_HAVE_LONG_LONG" -lgrass_nviz.7.2.0   /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include/grass/nviz.h /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include/grass/defs/nviz.h -o OBJ.x86_64-pc-linux-gnu/nviz.py
python -t -3 -m py_compile /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/etc/python/grass/lib/__init__.py
python -t -3 -m py_compile /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/etc/python/grass/lib/ctypes_preamble.py
python -t -3 -m py_compile /<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/etc/python/grass/lib/ctypes_loader.py
Status: Preprocessing /tmp/tmpWXgDtl.h
Status: gcc -E -Wdate-time -D_FORTIFY_SOURCE=2      -I/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include -I/<<PKGBUILDDIR>>/dist.x86_64-pc-linux-gnu/include -D__GLIBC_HAVE_LONG_LONG -U __GNUC__ -dD "-Dinline=" "-D__inline__=" "-D__extension__=" "-D_Bool=uint8_t" "-D__const=const" "-D__asm__(x)=" "-D__asm(x)=" "-DCTYPESGEN=1" /tmp/tmpWXgDtl.h
Traceback (most recent call last):
  File "./ctypesgen.py", line 139, in <module>
    descriptions = ctypesgencore.parser.parse(options.headers, options)
  File "/<<PKGBUILDDIR>>/lib/python/ctypes/ctypesgencore/parser/__init__.py", line 22, in parse
    parser.parse()
  File "/<<PKGBUILDDIR>>/lib/python/ctypes/ctypesgencore/parser/datacollectingparser.py", line 74, in parse
    ctypesparser.CtypesParser.parse(self, fname, None)
  File "/<<PKGBUILDDIR>>/lib/python/ctypes/ctypesgencore/parser/cparser.py", line 120, in parse
    self.preprocessor_parser.parse(filename)
  File "/<<PKGBUILDDIR>>/lib/python/ctypes/ctypesgencore/parser/preprocessor.py", line 218, in parse
    token = self.lexer.token()
  File "/<<PKGBUILDDIR>>/lib/python/ctypes/ctypesgencore/parser/preprocessor.py", line 63, in token
    result = lex.Lexer.token(self)
  File "/<<PKGBUILDDIR>>/lib/python/ctypes/ctypesgencore/parser/lex.py", line 355, in token
    newtok = func(tok)
  File "/<<PKGBUILDDIR>>/lib/python/ctypes/ctypesgencore/parser/pplexer.py", line 262, in t_ANY_int
    g1 = str(long(g1, 8))
ValueError: invalid literal for int() with base 8: '08420217248550443400745280086994171'
Makefile:102: recipe for target 'OBJ.x86_64-pc-linux-gnu/rowio.py' failed
make[8]: *** [OBJ.x86_64-pc-linux-gnu/rowio.py] Error 1
make[8]: *** Waiting for unfinished jobs....

I don't know how to find where this is coming from. My attempt:

> grep -IrnE 8420217248550443400745280086994171
/usr/include/boost/multiprecision/cpp_dec_float.hpp:2426:
  cpp_dec_float("1.08420217248550443400745280086994171142578125000...000e-19"),

Since it is in multiple files and the number is not in GRASS GIS source code, it is coming from a library header. Indeed 0842... is not octal. Do we need new ctypes or is there something strange in some header?

comment:2 by martinl, 7 years ago

Milestone: 7.2.17.2.2

comment:3 by Bas Couwenberg, 7 years ago

GCC 7 is now the default compiler in Debian causing the issue to become Release Critical which will trigger to automatic removal of the package from Debian testing (and by extension from the next stable release) when the issue remains unfixed.

comment:4 by martinl, 7 years ago

Priority: normalcritical

in reply to:  1 ; comment:5 by mlennert, 7 years ago

Replying to wenzeslaus:

This is probably the error message:

ValueError: invalid literal for int() with base 8: '08420217248550443400745280086994171'

Isn't this the same issue in #3331 (where it was apparently fixed) ?

in reply to:  5 comment:6 by neteler, 7 years ago

Replying to mlennert:

Replying to wenzeslaus:

This is probably the error message:

ValueError: invalid literal for int() with base 8: '08420217248550443400745280086994171'

Isn't this the same issue in #3331 (where it was apparently fixed) ?

Yes, 7.2.2 will ship the fix. (also 7.0.6 if we ever release it...)

comment:7 by Bas Couwenberg, 7 years ago

Resolution: fixed
Status: newclosed

Confirmed fixed in 7.2.2-rc1.

Note: See TracTickets for help on using tickets.