Bug#831136: calculix-cgx: FTBFS with GCC 6: stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2

Lucas Nussbaum lucas at debian.org
Thu Jul 14 06:50:17 UTC 2016


Source: calculix-cgx
Version: 2.10.1+dfsg-1
Severity: serious
Tags: stretch sid
User: debian-qa at lists.debian.org
Usertags: qa-ftbfs-20160713 qa-ftbfs
Justification: FTBFS with GCC 6 on amd64

Hi,

During a rebuild of all packages in sid using the gcc-defaults package
available in experimental to make GCC default to version 6, your package failed
to build on amd64. For more information about GCC 6 and Stretch, see:
- https://wiki.debian.org/GCC6
- https://lists.debian.org/debian-devel-announce/2016/06/msg00007.html

Relevant part (hopefully):
> g++  userFunction.o  AsplitA.o AsplitL.o adjustMidsideNode.o compareStrings.o XFunktions.o badelems.o bodyMesh2.o bsort.o bsortf.o bsorti.o calcNormalen.o calcPrinc.o calcPvector.o calcWeight.o checkIfNumber.o cgx.o compare.o copyEntity.o corrad.o dataGeo.o dataMesh.o defineEntity.o dispLists.o elemChecker.o extFunktions.o extGL.o fillBody2.o frecord.o foamFaces.o fuss.o gl3grades.o getGeoDataTria.o graph.o ifind.o iinsert.o improveBadTr3.o improveMesh.o iniMeshData.o intpol.o intpol2.o intpol3.o iremove.o linelength.o m_copy.o m_sub.o mergEntity.o mesh2d.o meshSet.o meshSurf.o messages.o near3d.o nurbl2seq.o orient.o p_angle.o parser.o pickFunktions.o plotFunktions.o readEdges.o readfrd.o readFoam.o readStdCmap.o readStl.o readccx.o readDuns.o readNastran.o readNG.o readIsaac.o readstep.o readWf.o rectcyl.o renumberfrd.o selectDisplayFaces.o sendMpc.o sendSet.o setFunktions.o shapeFunctions.o spline.o splitElementsToTets.o stof.o stoi.o stopClock.o stos.o strfind.o strsplt.o sins.o surfMesh2.o sword.o trackball.o v_distA.o v_rec2cyl.o v_add.o v_angle.o v_angle_ref.o v_betrag.o v_matmult.o v_norm.o v_prod.o v_result.o v_scal.o v_rot.o v_sprod.o m_prod.o m_prodtr.o write2aba.o write2ansys.o write2aster.o write2darwin.o write2dolfyn.o write2isaac.o write2duns.o write2frd.o write2foam.o write2nas.o write2samcef.o write2tochnog.o writefbd.o writebp.o contact.o makeTriFromElems.o uselibSNL.cpp generateTet.cpp  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -I. -L/usr/lib64 -lGL -lGLU -lglut -lSNL -L/usr/X11R6/lib -lX11 -lXi -lXmu -lXext -lXt -lSM -lICE -lm -lpthread -o  cgx
> In file included from /usr/include/c++/6/bits/char_traits.h:39:0,
>                  from /usr/include/c++/6/ios:40,
>                  from /usr/include/c++/6/ostream:38,
>                  from /usr/include/c++/6/iostream:39,
>                  from uselibSNL.cpp:28:
> /usr/include/c++/6/bits/stl_algobase.h:243:56: error: macro "min" passed 3 arguments, but takes just 2
>      min(const _Tp& __a, const _Tp& __b, _Compare __comp)
>                                                         ^
> /usr/include/c++/6/bits/stl_algobase.h:265:56: error: macro "max" passed 3 arguments, but takes just 2
>      max(const _Tp& __a, const _Tp& __b, _Compare __comp)
>                                                         ^
> In file included from /usr/include/snlCurveBase.h:23:0,
>                  from /usr/include/snlCurve.h:25,
>                  from /usr/include/snlSurface.h:20,
>                  from uselibSNL.cpp:30:
> /usr/include/snlKnotVector.h:110:18: error: macro "max" requires 2 arguments, but only 1 given
>          knot max() const;  // Max knot val.
>                   ^
> /usr/include/snlKnotVector.h:111:18: error: macro "min" requires 2 arguments, but only 1 given
>          knot min() const;  // Min knot val.
>                   ^
> In file included from ./cgx.h:25:0,
>                  from uselibSNL.h:8,
>                  from uselibSNL.cpp:26:
> /usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected unqualified-id before 'const'
>      min(const _Tp& __a, const _Tp& __b)
>      ^
> /usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected ')' before 'const'
> /usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected ')' before 'const'
> /usr/include/c++/6/bits/stl_algobase.h:195:5: error: expected initializer before 'const'
> /usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected unqualified-id before 'const'
>      max(const _Tp& __a, const _Tp& __b)
>      ^
> /usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected ')' before 'const'
> /usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected ')' before 'const'
> /usr/include/c++/6/bits/stl_algobase.h:219:5: error: expected initializer before 'const'
> In file included from /usr/include/c++/6/bits/char_traits.h:39:0,
>                  from /usr/include/c++/6/ios:40,
>                  from /usr/include/c++/6/ostream:38,
>                  from /usr/include/c++/6/iostream:39,
>                  from uselibSNL.cpp:28:
> /usr/include/c++/6/bits/stl_algobase.h:243:5: error: 'std::min' declared as an 'inline' variable
>      min(const _Tp& __a, const _Tp& __b, _Compare __comp)
>      ^~~
> /usr/include/c++/6/bits/stl_algobase.h:246:7: error: expected primary-expression before 'if'
>        if (__comp(__b, __a))
>        ^~
> /usr/include/c++/6/bits/stl_algobase.h:246:7: error: expected '}' before 'if'
> /usr/include/c++/6/bits/stl_algobase.h:246:7: error: expected ';' before 'if'
> /usr/include/c++/6/bits/stl_algobase.h:248:7: error: expected unqualified-id before 'return'
>        return __a;
>        ^~~~~~
> /usr/include/c++/6/bits/stl_algobase.h:265:5: error: 'max' declared as an 'inline' variable
>      max(const _Tp& __a, const _Tp& __b, _Compare __comp)
>      ^~~
> /usr/include/c++/6/bits/stl_algobase.h:268:7: error: expected primary-expression before 'if'
>        if (__comp(__a, __b))
>        ^~
> /usr/include/c++/6/bits/stl_algobase.h:268:7: error: expected '}' before 'if'
> /usr/include/c++/6/bits/stl_algobase.h:268:7: error: expected ';' before 'if'
> /usr/include/c++/6/bits/stl_algobase.h:270:7: error: expected unqualified-id before 'return'
>        return __a;
>        ^~~~~~
> /usr/include/c++/6/bits/stl_algobase.h:271:5: error: expected declaration before '}' token
>      }
>      ^
> generateTet.cpp: In function 'int generateTetFromSet(int, double)':
> generateTet.cpp:114:20: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    delSet("+snodSet");
>                     ^
> generateTet.cpp:115:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    delSet("+velemSet");
>                      ^
> generateTet.cpp:116:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    snodSet=pre_seta("+snodSet","i",0);
>                                     ^
> generateTet.cpp:116:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
> generateTet.cpp:126:76: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      for(k=0; k<3; k++) seta(snodSet,"n",e_enqire[set[setNr].elem[i]].nod[k]);
>                                                                             ^
> generateTet.cpp:145:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      { errMsg("ERROR: realloc failure in generateTet\n"); return(0); }
>                                                        ^
> generateTet.cpp:180:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    if ( (  readNG( "test.vol", anz_ng, &setx, &node_ng, &elem_ng, NULL)) == -1)
>                                                                       ^
> generateTet.cpp:205:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      { errMsg("ERROR: realloc failure in generateTet\n"); return(0); }
>                                                        ^
> generateTet.cpp:274:74: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>        for (j=0; j<set[setNr].anz_e; j++) setr( k, "e", set[setNr].elem[j]);
>                                                                           ^
> generateTet.cpp:297:85: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      else { elem_define( anz->emax+1, 3, cgxtet, 1, 0 ); seta( setNr, "e", anz->emax ); }
>                                                                                      ^
> generateTet.cpp:311:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      fixMidsideNodes( set[setNr].name, "gen" );
>                                              ^
> generateTet.cpp:314:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      snodSet=pre_seta("+snodSet","i",0);
>                                       ^
> generateTet.cpp:314:38: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
> generateTet.cpp:331:82: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>              seta(snodSet,"n",e_enqire[set[setNr].elem[k]].nod[nodseq_te10[n*3+1]]);
>                                                                                   ^
> generateTet.cpp:337:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      fixMidsideNodes( set[setNr].name, "" );
>                                           ^
> generateTet.cpp: In function 'int generateTetFromBody(int, double)':
> generateTet.cpp:402:20: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    delSet("+snodSet");
>                     ^
> generateTet.cpp:403:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    delSet("+velemSet");
>                      ^
> generateTet.cpp:404:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    snodSet=pre_seta("+snodSet","i",0);
>                                     ^
> generateTet.cpp:404:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
> generateTet.cpp:405:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    setNr=pre_seta("+velemSet","i",0);
>                                    ^
> generateTet.cpp:405:35: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
> generateTet.cpp:419:75: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>        for(k=0; k<3; k++) seta(snodSet,"n",e_enqire[surf[s].elem[i]].nod[k]);
>                                                                            ^
> generateTet.cpp:439:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      { errMsg("ERROR: realloc failure in generateTet\n"); return(0); }
>                                                        ^
> generateTet.cpp:500:70: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    if ( (  readNG( "test.vol", anz_ng, &setx, &node_ng, &elem_ng, NULL)) == -1)
>                                                                       ^
> generateTet.cpp:529:55: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      { errMsg("ERROR: realloc failure in generateTet\n"); return(0); }
>                                                        ^
> generateTet.cpp:607:78: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      elem_define( anz->emax+1, 3, cgxtet, 1, 0 ); seta( setNr, "e", anz->emax );
>                                                                               ^
> generateTet.cpp:619:45: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      fixMidsideNodes( set[setNr].name, "gen" );
>                                              ^
> generateTet.cpp:622:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      snodSet2=pre_seta("+snodSet2","i",0);
>                                         ^
> generateTet.cpp:622:40: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
> generateTet.cpp:640:81: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>            seta(snodSet2,"n",e_enqire[set[setNr].elem[k]].nod[nodseq_te10[n*3+1]]);
>                                                                                  ^
> generateTet.cpp:648:82: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>        for (n=0; n<10; n++) seta( setNr, "n", e_enqire[set[setNr].elem[k]].nod[n] );
>                                                                                   ^
> generateTet.cpp:651:42: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>      fixMidsideNodes( set[setNr].name, "" );
>                                           ^
> generateTet.cpp:657:81: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>        for (n=0; n<4; n++) seta( setNr, "n", e_enqire[set[setNr].elem[k]].nod[n] );
>                                                                                  ^
> generateTet.cpp:661:79: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    for (k = 0; k < set[snodSet].anz_n; k++) setr(setNr,"n",set[snodSet].node[k]);
>                                                                                ^
> generateTet.cpp:670:21: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
>    delSet("+velemSet");
>                      ^
> make[2]: *** [cgx] Error 1

The full build log is available from:
   http://people.debian.org/~lucas/logs/2016/07/13/calculix-cgx_2.10.1+dfsg-1_unstable_gcc6.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.



More information about the debian-science-maintainers mailing list