I'm compiling giac-1.9.0 build-19 on Fedora 38 (devel branch) s390x with GCC-12; it's failing with this output:
Code : Tout sélectionner
/bin/sh ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  -DIN_GIAC -I. -I.. -I. -I..       -std=gnu++14 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -DDOUBLEVAL -fno-strict-aliasing -DGIAC_GENERIC_CONSTANTS -DTIMEOUT -DHAVE_LIBMICROPYTHON -fpermissive -DQUICKJS -c -o lpsolve.lo lpsolve.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -DIN_GIAC -I. -I.. -I. -I.. -std=gnu++14 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -DDOUBLEVAL -fno-strict-aliasing -DGIAC_GENERIC_CONSTANTS -DTIMEOUT -DHAVE_LIBMICROPYTHON -fpermissive -DQUICKJS -c lpsolve.cc  -fPIC -DPIC -o .libs/lpsolve.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -DIN_GIAC -I. -I.. -I. -I.. -std=gnu++14 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -DDOUBLEVAL -fno-strict-aliasing -DGIAC_GENERIC_CONSTANTS -DTIMEOUT -DHAVE_LIBMICROPYTHON -fpermissive -DQUICKJS -c lpsolve.cc -o lpsolve.o >/dev/null 2>&1
In file included from giacPCH.h:8,
                 from lpsolve.cc:20:
index.h:33: warning: ignoring '#pragma anon_unions ' [-Wunknown-pragmas]
   33 | #pragma anon_unions
      | 
In file included from poly.h:26,
                 from gen.h:71,
                 from giacPCH.h:32:
monomial.h:341:10: warning: 'template<class _Arg1, class _Arg2, class _Result> class std::pointer_to_binary_function' is deprecated [-Wdeprecated-declarations]
  341 |     std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> strictly_greater ;
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/12/bits/refwrap.h:39,
                 from /usr/include/c++/12/vector:66,
                 from vector.h:474,
                 from index.h:21:
/usr/include/c++/12/bits/stl_function.h:1131:11: note: declared here
 1131 |     class pointer_to_binary_function
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
monomial.h:342:28: warning: 'template<class _Arg1, class _Arg2, class _Result> class std::pointer_to_binary_function' is deprecated [-Wdeprecated-declarations]
  342 |     sort_helper(const std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> is_strictly_greater):strictly_greater(is_strictly_greater) {};
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_function.h:1131:11: note: declared here
 1131 |     class pointer_to_binary_function
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
monomial.h:680:25: warning: 'template<class _Arg1, class _Arg2, class _Result> class std::pointer_to_binary_function' is deprecated [-Wdeprecated-declarations]
  680 |              const std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> m_is_strictly_greater
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_function.h:1131:11: note: declared here
 1131 |     class pointer_to_binary_function
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
monomial.h: In function 'void giac::Mul(typename std::vector<monomial<T> >::const_iterator&, typename std::vector<monomial<T> >::const_iterator&, typename std::vector<monomial<T> >::const_iterator&, typename std::vector<monomial<T> >::const_iterator&, std::vector<monomial<T> >&, bool (*)(const index_m&, const index_m&), std::pointer_to_binary_function<const monomial<T>&, const monomial<T>&, bool>)':
monomial.h:729:44: warning: 'template<class _Arg1, class _Arg2, class _Result> class std::pointer_to_binary_function' is deprecated [-Wdeprecated-declarations]
  729 |     typedef std::map< index_t,T,const std::pointer_to_binary_function < const index_m &, const index_m &, bool> > application;
      |                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_function.h:1131:11: note: declared here
 1131 |     class pointer_to_binary_function
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
monomial.h:730:37: warning: 'std::pointer_to_binary_function<_Arg1, _Arg2, _Result> std::ptr_fun(_Result (*)(_Arg1, _Arg2)) [with _Arg1 = const giac::index_m&; _Arg2 = const giac::index_m&; _Result = bool]' is deprecated: use 'std::function' instead [-Wdeprecated-declarations]
  730 |     application produit(std::ptr_fun(is_strictly_greater));
      |                         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_function.h:1153:5: note: declared here
 1153 |     ptr_fun(_Result (*__x)(_Arg1, _Arg2))
      |     ^~~~~~~
poly.h: At global scope:
poly.h:43:10: warning: 'template<class _Arg1, class _Arg2, class _Result> class std::pointer_to_binary_function' is deprecated [-Wdeprecated-declarations]
   43 |     std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> m_is_strictly_greater ;
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_function.h:1131:11: note: declared here
 1131 |     class pointer_to_binary_function
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
gen.h: In constructor 'giac::eqwdata::eqwdata(int, int, int, int, const giac::attributs&, const giac::gen&)':
gen.h:1408:15: warning: 'giac::eqwdata::eqw_attributs' will be initialized after [-Wreorder]
 1408 |     attributs eqw_attributs;
      |               ^~~~~~~~~~~~~
gen.h:1401:9: warning:   'int giac::eqwdata::x' [-Wreorder]
 1401 |     int x,y,dx,dy;
      |         ^
gen.h:1409:5: warning:   when initialized here [-Wreorder]
 1409 |     eqwdata(int dxx,int dyy,int xx, int yy,const attributs & a,const gen& gg):g(gg),eqw_attributs(a),x(xx),y(yy),dx(dxx),dy(dyy),selected(false),active(false),hasbaseline(false),modifiable(true),baseline(0) {};
      |     ^~~~~~~
gen.h:1407:10: warning: 'giac::eqwdata::modifiable' will be initialized after [-Wreorder]
 1407 |     bool modifiable;
      |          ^~~~~~~~~~
gen.h:1402:9: warning:   'int giac::eqwdata::baseline' [-Wreorder]
 1402 |     int baseline;
      |         ^~~~~~~~
gen.h:1409:5: warning:   when initialized here [-Wreorder]
 1409 |     eqwdata(int dxx,int dyy,int xx, int yy,const attributs & a,const gen& gg):g(gg),eqw_attributs(a),x(xx),y(yy),dx(dxx),dy(dyy),selected(false),active(false),hasbaseline(false),modifiable(true),baseline(0) {};
      |     ^~~~~~~
gen.h: In constructor 'giac::eqwdata::eqwdata(int, int, int, int, const giac::attributs&, const giac::gen&, int)':
gen.h:1408:15: warning: 'giac::eqwdata::eqw_attributs' will be initialized after [-Wreorder]
 1408 |     attributs eqw_attributs;
      |               ^~~~~~~~~~~~~
gen.h:1401:9: warning:   'int giac::eqwdata::x' [-Wreorder]
 1401 |     int x,y,dx,dy;
      |         ^
gen.h:1410:5: warning:   when initialized here [-Wreorder]
 1410 |     eqwdata(int dxx,int dyy,int xx, int yy,const attributs & a,const gen& gg,int mybaseline):g(gg),eqw_attributs(a),x(xx),y(yy),dx(dxx),dy(dyy),selected(false),active(false),hasbaseline(true),modifiable(true),baseline(mybaseline) {};
      |     ^~~~~~~
gen.h:1407:10: warning: 'giac::eqwdata::modifiable' will be initialized after [-Wreorder]
 1407 |     bool modifiable;
      |          ^~~~~~~~~~
gen.h:1402:9: warning:   'int giac::eqwdata::baseline' [-Wreorder]
 1402 |     int baseline;
      |         ^~~~~~~~
gen.h:1410:5: warning:   when initialized here [-Wreorder]
 1410 |     eqwdata(int dxx,int dyy,int xx, int yy,const attributs & a,const gen& gg,int mybaseline):g(gg),eqw_attributs(a),x(xx),y(yy),dx(dxx),dy(dyy),selected(false),active(false),hasbaseline(true),modifiable(true),baseline(mybaseline) {};
      |     ^~~~~~~
In file included from sym2poly.h:27,
                 from giacPCH.h:38:
gausspol.h: At global scope:
gausspol.h:96:29: warning: 'template<class _Arg1, class _Arg2, class _Result> class std::pointer_to_binary_function' is deprecated [-Wdeprecated-declarations]
   96 |                  const std::pointer_to_binary_function < const monomial<gen> &, const monomial<gen> &, bool> m_is_greater
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/stl_function.h:1131:11: note: declared here
 1131 |     class pointer_to_binary_function
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~
lpsolve.cc: In member function 'bool giac::lp_node::rounding_heuristic(giac::vecteur&, giac::gen&) const':
lpsolve.cc:850:12: warning: unused variable 'viol' [-Wunused-variable]
  850 |     double viol;
      |            ^~~~
lpsolve.cc:851:9: warning: unused variable 'vc' [-Wunused-variable]
  851 |     int vc,j,last_j=-1,pass=0;
      |         ^~
lpsolve.cc:851:24: warning: unused variable 'pass' [-Wunused-variable]
  851 |     int vc,j,last_j=-1,pass=0;
      |                        ^~~~
lpsolve.cc: In member function 'int giac::lp_problem::solve()':
lpsolve.cc:1678:35: warning: unused variable 'fr' [-Wunused-variable]
 1678 |                 double opt_lbound,fr,max_score;
      |                                   ^~
lpsolve.cc: In member function 'giac::lp_node::change_basis(giac::dbgprint_vector<giac::gen>&, giac::dbgprint_vector<giac::gen> const&, std::vector<bool, std::allocator<bool> >&, std::vector<int, std::allocator<int> >&, std::vector<int, std::allocator<int> >&)':
lpsolve.cc:369:13: warning: 'lr' may be used uninitiamake[2]: Leaving directory '/builddir/build/BUILD/giac-1.9.0/src'
lized [-Wmaybe-uninitialized]
  369 |     basis[lr]=ev;
      |             ^
lpsolve.cc:303:15: note: 'lr' was declared here
  303 |     int ec,ev,lr,lv,nc=cols.size(),nr=basis.size();
      |               ^~
lpsolve.cc:354:31: warning: 'ec' may be used uninitialized [-Wmaybe-uninitialized]
  354 |             a=it->_VECTptr->at(ec);
      |               ~~~~~~~~~~~~~~~~^~~~
lpsolve.cc:303:9: note: 'ec' was declared here
  303 |     int ec,ev,lr,lv,nc=cols.size(),nr=basis.size();
      |         ^~
lpsolve.cc: In member function 'giac::lp_problem::glpk_solve()':
lpsolve.cc:2214:16: warning: 'solution_status' may be used uninitialized [-Wmaybe-uninitialized]
 2214 |         return solution_status;
      |                ^~~~~~~~~~~~~~~
lpsolve.cc:2118:18: note: 'solution_status' was declared here
 2118 |     int result=0,solution_status;
      |                  ^~~~~~~~~~~~~~~
lpsolve.cc:2212:22: warning: 'term_old' may be used uninitialized [-Wmaybe-uninitialized]
 2212 |     else glp_term_out(term_old);
      |          ~~~~~~~~~~~~^~~~~~~~~~
lpsolve.cc:2113:9: note: 'term_old' was declared here
 2113 |     int term_old;
      |         ^~~~~~~~
lpsolve.cc: In member function 'giac::lp_node::solve_relaxation()':
lpsolve.cc:731:37: warning: 'cuts0' may be used uninitialized [-Wmaybe-uninitialized]
  731 |         if (prob->stats.cuts_applied-cuts0>=prob->settings.max_cuts)
      |             ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
lpsolve.cc:647:16: note: 'cuts0' was declared here
  647 |     int pass=0,cuts0;
      |                ^~~~~
In member function 'giac::gen::operator=(giac::gen const&)',
    inlined from 'giac::gen::operator=(giac::gen const&)' at gen.h:747:11,
    inlined from 'giac::lp_problem::glpk_load_from_file(char const*)' at lpsolve.cc:2287:40:
gen.h:767:17: warning: 'D.270177.subtype' may be used uninitialized [-Wmaybe-uninitialized]
  767 |       subtype=a.subtype;
      |               ~~^~~~~~~
lpsolve.cc: In member function 'giac::lp_problem::glpk_load_from_file(char const*)':
lpsolve.cc:2287:40: note: '<anonymous>' declared here
 2287 |                     row[ind[j]-1]=val[j];
      |                                        ^
In file included from /usr/include/c++/12/cmath:47,
                 from first.h:538,
                 from giacPCH.h:4:
In function 'std::abs(double)',
    inlined from 'giac::lp_problem::solve()' at lpsolve.cc:1780:100:
/usr/include/c++/12/bits/std_abs.h:72:30: warning: 'opt_approx' may be used uninitialized [-Wmaybe-uninitialized]
   72 |   { return __builtin_fabs(__x); }
      |                              ^
lpsolve.cc: In member function 'giac::lp_problem::solve()':
lpsolve.cc:1658:20: note: 'opt_approx' was declared here
 1658 |             double opt_approx;
      |                    ^~~~~~~~~~
lpsolve.cc: In function 'giac::_lpsolve(giac::gen const&, giac::context const*)':
lpsolve.cc:2697:28: warning: 'is_solver_exact' may be used uninitialized [-Wmaybe-uninitialized]
 2697 |     switch (is_solver_exact?prob.solve():prob.glpk_solve()) {
      |             ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lpsolve.cc:2677:10: note: 'is_solver_exact' was declared here
 2677 |     bool is_solver_exact;
      |          ^~~~~~~~~~~~~~~
make[1]: *** [Makefile:500: all-recursive] Error 1