Subject: [bug#40283] [WIP PATCH] gnu: flint: Build with ntl.

From: Marius Bakke <[email-masked]>
Date: Tue, 31 Mar 2020 17:12:24 +0200

Jakub Kądziołka <[email-masked]> writes:

> * gnu/packages/algebra.scm (flint)[inputs]: Add ntl.
>   [arguments]: Pass --with-ntl to configure.
> ---
> This is required by sagemath, but the patch as written makes the build
> error:
>
> /gnu/store/9yzqiiyfhxi4yhndp46nndi77ica9g4i-ntl-11.4.3/include/NTL/vector.h:201:31: error: invalid conversion from ‘const NTL::Vec<NTL::ZZ>*’ to ‘int’ [-fpermissive]
>   201 | { VecStrategy<NTL_RELOC_TAG>::do_BlockConstructFromVec(p, n, q); }
>       |                               ^~~~~~~~~~~~~~~~~~~~~~~~
>       |                               |
>       |                               const NTL::Vec<NTL::ZZ>*
>
> Arch Linux seems to be using the same version of ntl and flint, and I
> don't see any special workarounds in their PKGBUILDs. I guessed that the
> gcc version might be influencing things, but adding gcc-9 to
> native-inputs didn't help. Does Guix set up GCC with some non-standard
> default flags, maybe?

This is because of -Werror, which is not supposed to trigger on external
dependencies.  The issue has been fixed on 'core-updates' where
dependencies are added on C_INCLUDE_PATH (which behave like -isystem)
instead of CPATH (which behave like -I).