Bug#831160: jugglemaster: 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 07:05:21 UTC 2016


Source: jugglemaster
Version: 0.4-8
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++ -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -fsigned-char `wx-config --cppflags` -DHAVE_AVCODEC_H -Wdate-time -D_FORTIFY_SOURCE=2  -c -o patt.o patt.cpp
> In file included from /usr/include/c++/6/bits/char_traits.h:39:0,
>                  from /usr/include/c++/6/string:40,
>                  from /usr/include/wx-3.0/wx/stringimpl.h:66,
>                  from /usr/include/wx-3.0/wx/unichar.h:15,
>                  from /usr/include/wx-3.0/wx/strvararg.h:22,
>                  from /usr/include/wx-3.0/wx/string.h:46,
>                  from /usr/include/wx-3.0/wx/memory.h:15,
>                  from /usr/include/wx-3.0/wx/object.h:19,
>                  from /usr/include/wx-3.0/wx/wx.h:15,
>                  from patt.h:21,
>                  from patt.cpp:17:
> /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/wx-3.0/wx/longlong.h:1094:0,
>                  from /usr/include/wx-3.0/wx/utils.h:35,
>                  from /usr/include/wx-3.0/wx/cursor.h:69,
>                  from /usr/include/wx-3.0/wx/event.h:21,
>                  from /usr/include/wx-3.0/wx/wx.h:24,
>                  from patt.h:21,
>                  from patt.cpp:17:
> /usr/include/c++/6/limits:320:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return _Tp(); }
>            ^
> /usr/include/c++/6/limits:324:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return _Tp(); }
>            ^
> /usr/include/c++/6/limits:387:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return false; }
>            ^
> /usr/include/c++/6/limits:390:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return true; }
>            ^
> /usr/include/c++/6/limits:394:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:456:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min(char); }
>            ^
> /usr/include/c++/6/limits:459:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max(char); }
>            ^
> /usr/include/c++/6/limits:463:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:523:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return -__SCHAR_MAX__ - 1; }
>            ^
> /usr/include/c++/6/limits:526:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__; }
>            ^
> /usr/include/c++/6/limits:530:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:593:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return 0; }
>            ^
> /usr/include/c++/6/limits:596:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __SCHAR_MAX__ * 2U + 1; }
>            ^
> /usr/include/c++/6/limits:600:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:666:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_min (wchar_t); }
>            ^
> /usr/include/c++/6/limits:669:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __glibcxx_max (wchar_t); }
>            ^
> /usr/include/c++/6/limits:673:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:735:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() noexcept { return __glibcxx_min (char16_t); }
>            ^
> /usr/include/c++/6/limits:738:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() noexcept { return __glibcxx_max (char16_t); }
>            ^
> /usr/include/c++/6/limits:741:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:796:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() noexcept { return __glibcxx_min (char32_t); }
>            ^
> /usr/include/c++/6/limits:799:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() noexcept { return __glibcxx_max (char32_t); }
>            ^
> /usr/include/c++/6/limits:802:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:858:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return -__SHRT_MAX__ - 1; }
>            ^
> /usr/include/c++/6/limits:861:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__; }
>            ^
> /usr/include/c++/6/limits:865:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:925:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return 0; }
>            ^
> /usr/include/c++/6/limits:928:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __SHRT_MAX__ * 2U + 1; }
>            ^
> /usr/include/c++/6/limits:932:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:998:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return -__INT_MAX__ - 1; }
>            ^
> /usr/include/c++/6/limits:1001:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__; }
>            ^
> /usr/include/c++/6/limits:1005:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:1065:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return 0; }
>            ^
> /usr/include/c++/6/limits:1068:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __INT_MAX__ * 2U + 1; }
>            ^
> /usr/include/c++/6/limits:1072:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:1137:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_MAX__ - 1; }
>            ^
> /usr/include/c++/6/limits:1140:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__; }
>            ^
> /usr/include/c++/6/limits:1144:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:1204:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return 0; }
>            ^
> /usr/include/c++/6/limits:1207:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __LONG_MAX__ * 2UL + 1; }
>            ^
> /usr/include/c++/6/limits:1211:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:1277:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return -__LONG_LONG_MAX__ - 1; }
>            ^
> /usr/include/c++/6/limits:1280:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__; }
>            ^
> /usr/include/c++/6/limits:1284:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:1347:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return 0; }
>            ^
> /usr/include/c++/6/limits:1350:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __LONG_LONG_MAX__ * 2ULL + 1; }
>            ^
> /usr/include/c++/6/limits:1354:38: error: macro "min" requires 2 arguments, but only 1 given
>        lowest() noexcept { return min(); }
>                                       ^
> /usr/include/c++/6/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given
>     __INT_N_201103 (__GLIBCXX_TYPE_INT_N_0), __INT_N_U201103 (__GLIBCXX_TYPE_INT_N_0))
>                                                                                      ^
> /usr/include/c++/6/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given
> /usr/include/c++/6/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given
> /usr/include/c++/6/limits:1570:85: error: macro "max" requires 2 arguments, but only 1 given
> /usr/include/c++/6/limits:1570:85: error: macro "min" requires 2 arguments, but only 1 given
> /usr/include/c++/6/limits:1570:85: error: macro "max" requires 2 arguments, but only 1 given
> /usr/include/c++/6/limits:1598:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return __FLT_MIN__; }
>            ^
> /usr/include/c++/6/limits:1601:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __FLT_MAX__; }
>            ^
> /usr/include/c++/6/limits:1673:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return __DBL_MIN__; }
>            ^
> /usr/include/c++/6/limits:1676:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __DBL_MAX__; }
>            ^
> /usr/include/c++/6/limits:1748:11: error: macro "min" requires 2 arguments, but only 1 given
>        min() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MIN__; }
>            ^
> /usr/include/c++/6/limits:1751:11: error: macro "max" requires 2 arguments, but only 1 given
>        max() _GLIBCXX_USE_NOEXCEPT { return __LDBL_MAX__; }
>            ^
> In file included from patt.h:20:0,
>                  from patt.cpp:17:
> /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/string:40,
>                  from /usr/include/wx-3.0/wx/stringimpl.h:66,
>                  from /usr/include/wx-3.0/wx/unichar.h:15,
>                  from /usr/include/wx-3.0/wx/strvararg.h:22,
>                  from /usr/include/wx-3.0/wx/string.h:46,
>                  from /usr/include/wx-3.0/wx/memory.h:15,
>                  from /usr/include/wx-3.0/wx/object.h:19,
>                  from /usr/include/wx-3.0/wx/wx.h:15,
>                  from patt.h:21,
>                  from patt.cpp:17:
> /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
>      }
>      ^
> make[3]: *** [patt.o] Error 1

The full build log is available from:
   http://people.debian.org/~lucas/logs/2016/07/13/jugglemaster_0.4-8_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 Pkg-games-devel mailing list