Bug#811798: syfi: FTBFS with GCC 6: error: reference is ambiguous

Martin Michlmayr tbm at hpe.com
Wed Jan 20 02:06:10 UTC 2016


Package: syfi
Version: 1.0.0.dfsg-1.2
Severity: important
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-6 gcc-6-reference-ambiguous

This package fails to build with GCC 6.  GCC 6 has not been released
yet, but it's expected that GCC 6 will become the default compiler for
stretch.

Note that only the first error is reported; there might be more.  You
can find a snapshot of GCC 6 in experimental.  To build with GCC 6,
you can set CC=gcc-6 CXX=g++-6 explicitly.

You may be able to find out more about this issue at
https://gcc.gnu.org/gcc-6/changes.html

> sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
...
> [ 22%] Building CXX object syfi/CMakeFiles/syfi.dir/ginac_tools.cpp.o
> cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/syfi && /usr/bin/g++   -DSYFILIB_VERSION=\"1.0.0\" -Dsyfi_EXPORTS -I/<<PKGBUILDDIR>>/syfi -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/syfi -I/<<PKGBUILDDIR>>/syfi/swig -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/syfi/swig  -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -g -DNDEBUG -fPIC   -o CMakeFiles/syfi.dir/ginac_tools.cpp.o -c /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: In function 'GiNaC::ex SyFi::legendre1D(GiNaC::symbol, unsigned int)':
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:933:14: error: call of overloaded 'pow(int, unsigned int&)' is ambiguous
>   P=1/(pow(2,n)*GiNaC::factorial(n))*GiNaC::diff(GiNaC::pow((x*x-1),n),x,n);
>               ^
> 
> In file included from /usr/include/features.h:361:0,
>                  from /usr/include/x86_64-linux-gnu/c++/6/bits/os_defines.h:39,
>                  from /usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:509,
>                  from /usr/include/c++/6/string:38,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:21,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/x86_64-linux-gnu/bits/mathcalls.h:153:1: note: candidate: double pow(double, double)
>  __MATHCALL_VEC (pow,, (_Mdouble_ __x, _Mdouble_ __y));
>  ^
> 
> In file included from /usr/include/ginac/ginac.h:41:0,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:25,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/ginac/power.h:121:11: note: candidate: GiNaC::ex GiNaC::pow(const T1&, const T2&) [with T1 = int; T2 = unsigned int]
>  inline ex pow(const T1 & b, const T2 & e)
>            ^~~
> 
> /usr/include/ginac/power.h:116:11: note: candidate: GiNaC::ex GiNaC::pow(const GiNaC::ex&, const GiNaC::ex&)
>  inline ex pow(const ex & b, const ex & e)
>            ^~~
> 
> In file included from /usr/include/ginac/ginac.h:40:0,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:25,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/ginac/numeric.h:255:22: note: candidate: const GiNaC::numeric GiNaC::pow(const GiNaC::numeric&, const GiNaC::numeric&)
>  inline const numeric pow(const numeric &x, const numeric &y)
>                       ^~~
> 
> In file included from /usr/include/c++/6/random:38:0,
>                  from /usr/include/c++/6/bits/stl_algo.h:66,
>                  from /usr/include/c++/6/algorithm:62,
>                  from /usr/include/ginac/basic.h:32,
>                  from /usr/include/ginac/ginac.h:28,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:25,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/c++/6/cmath:434:5: note: candidate: constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type std::pow(_Tp, _Up) [with _Tp = int; _Up = unsigned int; typename __gnu_cxx::__promote_2<_Tp, _Up>::__type = double]
>      pow(_Tp __x, _Up __y)
>      ^~~
> 
> /usr/include/c++/6/cmath:411:3: note: candidate: constexpr long double std::pow(long double, long double)
>    pow(long double __x, long double __y)
>    ^~~
> 
> /usr/include/c++/6/cmath:407:3: note: candidate: constexpr float std::pow(float, float)
>    pow(float __x, float __y)
>    ^~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: At global scope:
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1332:9: error: reference to 'function' is ambiguous
>   public function::visitor
>          ^~~~~~~~
> 
> In file included from /usr/include/ginac/ginac.h:55:0,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:25,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/ginac/function.h:675:7: note: candidates are: class GiNaC::function
>  class function : public exprseq
>        ^~~~~~~~
> 
> In file included from /usr/include/ginac/ptr.h:29:0,
>                  from /usr/include/ginac/basic.h:27,
>                  from /usr/include/ginac/ginac.h:28,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:25,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/c++/6/functional:1535:11: note:                 template<class _Signature> class std::function
>      class function;
>            ^~~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1332:19: error: expected '{' before 'visitor'
>   public function::visitor
>                    ^~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1334:2: error: expected primary-expression before 'public'
>   public:
>   ^~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1334:2: error: expected '}' before 'public'
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: In function 'void SyFi::visit(const GiNaC::power&)':
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1349:6: error: 'es' was not declared in this scope
>       es.muls  += n-1;
>       ^~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1354:4: error: 'es' was not declared in this scope
>     es.pows++;
>     ^~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: In function 'void SyFi::visit(const GiNaC::mul&)':
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1360:4: error: 'es' was not declared in this scope
>     es.muls  += e.nops()-1;
>     ^~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: In function 'void SyFi::visit(const GiNaC::add&)':
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1367:4: error: 'es' was not declared in this scope
>     es.adds  += e.nops()-1;
>     ^~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: At global scope:
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1371:20: error: reference to 'function' is ambiguous
>    void visit(const function & e)
>                     ^~~~~~~~
> 
> In file included from /usr/include/ginac/ginac.h:55:0,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:25,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/ginac/function.h:675:7: note: candidates are: class GiNaC::function
>  class function : public exprseq
>        ^~~~~~~~
> 
> In file included from /usr/include/ginac/ptr.h:29:0,
>                  from /usr/include/ginac/basic.h:27,
>                  from /usr/include/ginac/ginac.h:28,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:25,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /usr/include/c++/6/functional:1535:11: note:                 template<class _Signature> class std::function
>      class function;
>            ^~~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: In function 'void SyFi::visit(const int&)':
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1374:4: error: 'es' was not declared in this scope
>     es.functions++;
>     ^~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: At global scope:
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1378:1: error: 'ExStats' does not name a type
>  ExStats count_ops(const ex & e)
>  ^~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1394:70: error: 'symexpair' was not declared in this scope
>  ex replace_powers(const ex & ein, const list<symbol> & symbols, list<symexpair> & sel, const string & tmpsymbolprefix)
>                                                                       ^~~~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1394:70: note: suggested alternative:
> In file included from /<<PKGBUILDDIR>>/syfi/utilities.h:25:0,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:27,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /<<PKGBUILDDIR>>/syfi/containers.h:33:60: note:   'SyFi::symexpair'
>   typedef std::pair<GiNaC::symbol, GiNaC::ex>               symexpair;
>                                                             ^~~~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1394:79: error: template argument 1 is invalid
>  ex replace_powers(const ex & ein, const list<symbol> & symbols, list<symexpair> & sel, const string & tmpsymbolprefix)
>                                                                                ^
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1394:79: error: template argument 2 is invalid
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: In function 'GiNaC::ex replace_powers(const GiNaC::ex&, const std::__cxx11::list<GiNaC::symbol>&, int&, const string&)':
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1412:52: error: 'int2string' was not declared in this scope
>      symbols[i] = get_symbol( sname + int2string(i+1) );
>                                                     ^
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1412:52: note: suggested alternative:
> In file included from /<<PKGBUILDDIR>>/syfi/ginac_tools.h:27:0,
>                  from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:18:
> /<<PKGBUILDDIR>>/syfi/utilities.h:37:14: note:   'SyFi::int2string'
>   std::string int2string(int i);
>               ^~~~~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1412:54: error: 'get_symbol' was not declared in this scope
>      symbols[i] = get_symbol( sname + int2string(i+1) );
>                                                       ^
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1412:54: note: suggested alternative:
> In file included from /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:19:0:
> /<<PKGBUILDDIR>>/syfi/symbol_factory.h:67:24: note:   'SyFi::get_symbol'
>   const GiNaC::symbol & get_symbol(const std::string & name);
>                         ^~~~~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1413:9: error: request for member 'push_back' in 'sel', which is of non-class type 'int'
>      sel.push_back(make_pair(symbols[i], symbols[i-1]*sym));
>          ^~~~~~~~~
> 
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp: At global scope:
> /<<PKGBUILDDIR>>/syfi/ginac_tools.cpp:1428:1: error: expected declaration before '}' token
>  };         // namespace SyFi
>  ^
> 
> syfi/CMakeFiles/syfi.dir/build.make:209: recipe for target 'syfi/CMakeFiles/syfi.dir/ginac_tools.cpp.o' failed
> make[3]: *** [syfi/CMakeFiles/syfi.dir/ginac_tools.cpp.o] Error 1
> make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'

-- 
Martin Michlmayr
Linux for HPE Helion, Hewlett Packard Enterprise



More information about the debian-science-maintainers mailing list