+ case "${usergroup_phase}" in
+ local run_cmd
+ run_cmd=run_su
+ shift
+ run_su /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/kajaani-kombat-0.7nb14/work.log
+ su pbulk -c '"$@"' make /opt/pkg/bin/bmake all BATCH=1 DEPENDS_TARGET=/nonexistent WRKLOG=/tmp/bulklog/kajaani-kombat-0.7nb14/work.log
WARNING: [license.mk] Every package should define a LICENSE.
===> Building for kajaani-kombat-0.7nb14
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o game_obj.o game_obj.cpp
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o terrain.o terrain.cpp
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o msg.o msg.cpp
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o rotozoom.o rotozoom.cpp
In file included from terrain.h:34,
                 from rotozoom.h:25,
                 from rotozoom.cpp:21:
block.h:39:3: warning: 'typedef' was ignored in this declaration
   39 |   typedef enum block_type {
      |   ^~~~~~~
In file included from terrain.h:34,
                 from terrain.cpp:21:
block.h:39:3: warning: 'typedef' was ignored in this declaration
   39 |   typedef enum block_type {
      |   ^~~~~~~
In file included from terrain.h:34,
                 from msg.h:25,
                 from msg.cpp:21:
block.h:39:3: warning: 'typedef' was ignored in this declaration
   39 |   typedef enum block_type {
      |   ^~~~~~~
msg.h:50:42: error: ISO C++17 does not allow dynamic exception specifications
   50 |   void send (const TCPsocket sock) const throw (string);
      |                                          ^~~~~
msg.h:53:37: error: ISO C++17 does not allow dynamic exception specifications
   53 |   static msg* recv (TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:61:52: error: ISO C++17 does not allow dynamic exception specifications
   61 |   virtual void write_msgdata(TCPsocket sock) const throw (string) = 0;
      |                                                    ^~~~~
msg.h:62:45: error: ISO C++17 does not allow dynamic exception specifications
   62 |   virtual void read_msgdata(TCPsocket sock) throw (string) = 0;
      |                                             ^~~~~
msg.h:65:52: error: ISO C++17 does not allow dynamic exception specifications
   65 |   static void write_uint(TCPsocket sock, Uint32 d) throw (string);
      |                                                    ^~~~~
msg.h:66:43: error: ISO C++17 does not allow dynamic exception specifications
   66 |   static Uint32 read_uint(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:68:61: error: ISO C++17 does not allow dynamic exception specifications
   68 |   static void write_string(TCPsocket sock, const string &s) throw (string);
      |                                                             ^~~~~
msg.h:69:45: error: ISO C++17 does not allow dynamic exception specifications
   69 |   static string read_string(TCPsocket sock) throw (string);
      |                                             ^~~~~
msg.h:71:59: error: ISO C++17 does not allow dynamic exception specifications
   71 |   static void write_coord(TCPsocket sock, const coord &c) throw (string);
      |                                                           ^~~~~
msg.h:72:43: error: ISO C++17 does not allow dynamic exception specifications
   72 |   static coord read_coord(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:86:44: error: ISO C++17 does not allow dynamic exception specifications
   86 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:87:37: error: ISO C++17 does not allow dynamic exception specifications
   87 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:103:44: error: ISO C++17 does not allow dynamic exception specifications
  103 |   void write_msgdata(TCPsocket sock) const throw (string) ;
      |                                            ^~~~~
msg.h:104:37: error: ISO C++17 does not allow dynamic exception specifications
  104 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:122:44: error: ISO C++17 does not allow dynamic exception specifications
  122 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:124:37: error: ISO C++17 does not allow dynamic exception specifications
  124 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:139:44: error: ISO C++17 does not allow dynamic exception specifications
  139 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:141:37: error: ISO C++17 does not allow dynamic exception specifications
  141 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:156:44: error: ISO C++17 does not allow dynamic exception specifications
  156 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:158:37: error: ISO C++17 does not allow dynamic exception specifications
  158 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:172:44: error: ISO C++17 does not allow dynamic exception specifications
  172 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:174:37: error: ISO C++17 does not allow dynamic exception specifications
  174 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:188:44: error: ISO C++17 does not allow dynamic exception specifications
  188 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:190:37: error: ISO C++17 does not allow dynamic exception specifications
  190 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:204:44: error: ISO C++17 does not allow dynamic exception specifications
  204 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:206:37: error: ISO C++17 does not allow dynamic exception specifications
  206 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:220:44: error: ISO C++17 does not allow dynamic exception specifications
  220 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:222:37: error: ISO C++17 does not allow dynamic exception specifications
  222 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:236:44: error: ISO C++17 does not allow dynamic exception specifications
  236 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:238:37: error: ISO C++17 does not allow dynamic exception specifications
  238 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:252:44: error: ISO C++17 does not allow dynamic exception specifications
  252 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:254:37: error: ISO C++17 does not allow dynamic exception specifications
  254 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:270:44: error: ISO C++17 does not allow dynamic exception specifications
  270 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:271:37: error: ISO C++17 does not allow dynamic exception specifications
  271 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:289:44: error: ISO C++17 does not allow dynamic exception specifications
  289 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:290:37: error: ISO C++17 does not allow dynamic exception specifications
  290 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:309:44: error: ISO C++17 does not allow dynamic exception specifications
  309 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:310:37: error: ISO C++17 does not allow dynamic exception specifications
  310 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:331:44: error: ISO C++17 does not allow dynamic exception specifications
  331 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:332:37: error: ISO C++17 does not allow dynamic exception specifications
  332 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:353:44: error: ISO C++17 does not allow dynamic exception specifications
  353 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:354:37: error: ISO C++17 does not allow dynamic exception specifications
  354 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:375:44: error: ISO C++17 does not allow dynamic exception specifications
  375 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:376:37: error: ISO C++17 does not allow dynamic exception specifications
  376 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:397:44: error: ISO C++17 does not allow dynamic exception specifications
  397 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:398:37: error: ISO C++17 does not allow dynamic exception specifications
  398 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:419:44: error: ISO C++17 does not allow dynamic exception specifications
  419 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:420:37: error: ISO C++17 does not allow dynamic exception specifications
  420 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:439:44: error: ISO C++17 does not allow dynamic exception specifications
  439 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:440:37: error: ISO C++17 does not allow dynamic exception specifications
  440 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:460:44: error: ISO C++17 does not allow dynamic exception specifications
  460 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:461:37: error: ISO C++17 does not allow dynamic exception specifications
  461 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:484:44: error: ISO C++17 does not allow dynamic exception specifications
  484 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:485:37: error: ISO C++17 does not allow dynamic exception specifications
  485 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:504:44: error: ISO C++17 does not allow dynamic exception specifications
  504 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:505:37: error: ISO C++17 does not allow dynamic exception specifications
  505 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:526:44: error: ISO C++17 does not allow dynamic exception specifications
  526 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:527:37: error: ISO C++17 does not allow dynamic exception specifications
  527 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:548:44: error: ISO C++17 does not allow dynamic exception specifications
  548 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:549:37: error: ISO C++17 does not allow dynamic exception specifications
  549 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:568:44: error: ISO C++17 does not allow dynamic exception specifications
  568 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:569:37: error: ISO C++17 does not allow dynamic exception specifications
  569 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:591:44: error: ISO C++17 does not allow dynamic exception specifications
  591 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:592:37: error: ISO C++17 does not allow dynamic exception specifications
  592 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:618:44: error: ISO C++17 does not allow dynamic exception specifications
  618 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:619:37: error: ISO C++17 does not allow dynamic exception specifications
  619 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:644:44: error: ISO C++17 does not allow dynamic exception specifications
  644 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:645:37: error: ISO C++17 does not allow dynamic exception specifications
  645 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:661:44: error: ISO C++17 does not allow dynamic exception specifications
  661 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:662:37: error: ISO C++17 does not allow dynamic exception specifications
  662 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.cpp:176:33: error: ISO C++17 does not allow dynamic exception specifications
  176 | msg* msg::recv (TCPsocket sock) throw (string)
      |                                 ^~~~~
msg.cpp:289:39: error: ISO C++17 does not allow dynamic exception specifications
  289 | void msg::send (TCPsocket sock) const throw (string)
      |                                       ^~~~~
msg.cpp:327:48: error: ISO C++17 does not allow dynamic exception specifications
  327 | void msg::write_uint(TCPsocket sock, Uint32 d) throw (string)
      |                                                ^~~~~
msg.cpp:336:39: error: ISO C++17 does not allow dynamic exception specifications
  336 | Uint32 msg::read_uint(TCPsocket sock) throw (string)
      |                                       ^~~~~
msg.cpp:348:55: error: ISO C++17 does not allow dynamic exception specifications
  348 | void msg::write_coord(TCPsocket sock, const coord &c) throw (string)
      |                                                       ^~~~~
msg.cpp:354:39: error: ISO C++17 does not allow dynamic exception specifications
  354 | coord msg::read_coord(TCPsocket sock) throw (string)
      |                                       ^~~~~
msg.cpp:361:57: error: ISO C++17 does not allow dynamic exception specifications
  361 | void msg::write_string(TCPsocket sock, const string &s) throw (string)
      |                                                         ^~~~~
msg.cpp:369:41: error: ISO C++17 does not allow dynamic exception specifications
  369 | string msg::read_string(TCPsocket sock) throw (string)
      |                                         ^~~~~
msg.cpp:386:59: error: ISO C++17 does not allow dynamic exception specifications
  386 | void msg_serverhello::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:393:52: error: ISO C++17 does not allow dynamic exception specifications
  393 | void msg_serverhello::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:401:59: error: ISO C++17 does not allow dynamic exception specifications
  401 | void msg_clienthello::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:407:52: error: ISO C++17 does not allow dynamic exception specifications
  407 | void msg_clienthello::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:441:58: error: ISO C++17 does not allow dynamic exception specifications
  441 | void msg_start_game::write_msgdata(TCPsocket sock) const throw (string)
      |                                                          ^~~~~
msg.cpp:445:51: error: ISO C++17 does not allow dynamic exception specifications
  445 | void msg_start_game::read_msgdata(TCPsocket sock) throw (string)
      |                                                   ^~~~~
msg.cpp:462:58: error: ISO C++17 does not allow dynamic exception specifications
  462 | void msg_playerinfo::write_msgdata(TCPsocket sock) const throw (string)
      |                                                          ^~~~~
msg.cpp:468:51: error: ISO C++17 does not allow dynamic exception specifications
  468 | void msg_playerinfo::read_msgdata(TCPsocket sock) throw (string)
      |                                                   ^~~~~
msg.cpp:486:59: error: ISO C++17 does not allow dynamic exception specifications
  486 | void msg_talkmessage::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:492:52: error: ISO C++17 does not allow dynamic exception specifications
  492 | void msg_talkmessage::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:510:63: error: ISO C++17 does not allow dynamic exception specifications
  510 | void msg_castle_location::write_msgdata(TCPsocket sock) const throw (string)
      |                                                               ^~~~~
msg.cpp:516:56: error: ISO C++17 does not allow dynamic exception specifications
  516 | void msg_castle_location::read_msgdata(TCPsocket sock) throw (string)
      |                                                        ^~~~~
msg.cpp:535:65: error: ISO C++17 does not allow dynamic exception specifications
  535 | void msg_move_cannonplacer::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                 ^~~~~
msg.cpp:541:58: error: ISO C++17 does not allow dynamic exception specifications
  541 | void msg_move_cannonplacer::read_msgdata(TCPsocket sock) throw (string)
      |                                                          ^~~~~
msg.cpp:558:69: error: ISO C++17 does not allow dynamic exception specifications
  558 | void msg_move_characterchooser::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                     ^~~~~
msg.cpp:564:62: error: ISO C++17 does not allow dynamic exception specifications
  564 | void msg_move_characterchooser::read_msgdata(TCPsocket sock) throw (string)
      |                                                              ^~~~~
msg.cpp:584:64: error: ISO C++17 does not allow dynamic exception specifications
  584 | void msg_move_blockplacer::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:590:57: error: ISO C++17 does not allow dynamic exception specifications
  590 | void msg_move_blockplacer::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:631:60: error: ISO C++17 does not allow dynamic exception specifications
  631 | void msg_place_cannon::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:637:61: error: ISO C++17 does not allow dynamic exception specifications
  637 | void msg_change_cannon::write_msgdata(TCPsocket sock) const throw (string)
      |                                                             ^~~~~
msg.cpp:642:54: error: ISO C++17 does not allow dynamic exception specifications
  642 | void msg_change_cannon::read_msgdata(TCPsocket sock) throw (string)
      |                                                      ^~~~~
msg.cpp:647:53: error: ISO C++17 does not allow dynamic exception specifications
  647 | void msg_place_cannon::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:653:64: error: ISO C++17 does not allow dynamic exception specifications
  653 | void msg_place_big_cannon::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:659:57: error: ISO C++17 does not allow dynamic exception specifications
  659 | void msg_place_big_cannon::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:683:64: error: ISO C++17 does not allow dynamic exception specifications
  683 | void msg_choose_character::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:690:57: error: ISO C++17 does not allow dynamic exception specifications
  690 | void msg_choose_character::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:708:60: error: ISO C++17 does not allow dynamic exception specifications
  708 | void msg_chooser_lock::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:713:53: error: ISO C++17 does not allow dynamic exception specifications
  713 | void msg_chooser_lock::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:730:60: error: ISO C++17 does not allow dynamic exception specifications
  730 | void msg_move_chooser::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:736:53: error: ISO C++17 does not allow dynamic exception specifications
  736 | void msg_move_chooser::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:754:64: error: ISO C++17 does not allow dynamic exception specifications
  754 | void msg_move_chooser_req::write_msgdata(TCPsocket sock) const throw (string)
      |                                                                ^~~~~
msg.cpp:760:57: error: ISO C++17 does not allow dynamic exception specifications
  760 | void msg_move_chooser_req::read_msgdata(TCPsocket sock) throw (string)
      |                                                         ^~~~~
msg.cpp:777:60: error: ISO C++17 does not allow dynamic exception specifications
  777 | void msg_rotate_block::write_msgdata(TCPsocket sock) const throw (string)
      |                                                            ^~~~~
msg.cpp:782:53: error: ISO C++17 does not allow dynamic exception specifications
  782 | void msg_rotate_block::read_msgdata(TCPsocket sock) throw (string)
      |                                                     ^~~~~
msg.cpp:800:59: error: ISO C++17 does not allow dynamic exception specifications
  800 | void msg_place_block::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:807:52: error: ISO C++17 does not allow dynamic exception specifications
  807 | void msg_place_block::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
msg.cpp:828:53: error: ISO C++17 does not allow dynamic exception specifications
  828 | void msg_shoot::write_msgdata(TCPsocket sock) const throw (string)
      |                                                     ^~~~~
msg.cpp:836:46: error: ISO C++17 does not allow dynamic exception specifications
  836 | void msg_shoot::read_msgdata(TCPsocket sock) throw (string)
      |                                              ^~~~~
msg.cpp:862:58: error: ISO C++17 does not allow dynamic exception specifications
  862 | void msg_disconnect::write_msgdata(TCPsocket sock) const throw (string)
      |                                                          ^~~~~
msg.cpp:866:51: error: ISO C++17 does not allow dynamic exception specifications
  866 | void msg_disconnect::read_msgdata(TCPsocket sock) throw (string)
      |                                                   ^~~~~
msg.cpp:870:59: error: ISO C++17 does not allow dynamic exception specifications
  870 | void msg_move_cursor::write_msgdata(TCPsocket sock) const throw (string)
      |                                                           ^~~~~
msg.cpp:878:52: error: ISO C++17 does not allow dynamic exception specifications
  878 | void msg_move_cursor::read_msgdata(TCPsocket sock) throw (string)
      |                                                    ^~~~~
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o gfx.o gfx.cpp
g++ `sdl-config --cflags` -Wall -O -D MEDIA_PATH=\"/opt/pkg/share/kajaani-kombat/\" -I/opt/pkg/include/SDL -I/opt/pkg/include -I/opt/pkg/include/libdrm -I/usr/include -I/opt/pkg/include/freetype2  -c -o game_client.o game_client.cpp
gmake: *** [<builtin>: msg.o] Error 1
gmake: *** Waiting for unfinished jobs....
In file included from terrain.h:34,
                 from gfx.h:29,
                 from gfx.cpp:21:
block.h:39:3: warning: 'typedef' was ignored in this declaration
   39 |   typedef enum block_type {
      |   ^~~~~~~
In file included from particle_efects.h:24,
                 from gfx.h:35:
msg.h:50:42: error: ISO C++17 does not allow dynamic exception specifications
   50 |   void send (const TCPsocket sock) const throw (string);
      |                                          ^~~~~
msg.h:53:37: error: ISO C++17 does not allow dynamic exception specifications
   53 |   static msg* recv (TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:61:52: error: ISO C++17 does not allow dynamic exception specifications
   61 |   virtual void write_msgdata(TCPsocket sock) const throw (string) = 0;
      |                                                    ^~~~~
msg.h:62:45: error: ISO C++17 does not allow dynamic exception specifications
   62 |   virtual void read_msgdata(TCPsocket sock) throw (string) = 0;
      |                                             ^~~~~
msg.h:65:52: error: ISO C++17 does not allow dynamic exception specifications
   65 |   static void write_uint(TCPsocket sock, Uint32 d) throw (string);
      |                                                    ^~~~~
msg.h:66:43: error: ISO C++17 does not allow dynamic exception specifications
   66 |   static Uint32 read_uint(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:68:61: error: ISO C++17 does not allow dynamic exception specifications
   68 |   static void write_string(TCPsocket sock, const string &s) throw (string);
      |                                                             ^~~~~
msg.h:69:45: error: ISO C++17 does not allow dynamic exception specifications
   69 |   static string read_string(TCPsocket sock) throw (string);
      |                                             ^~~~~
msg.h:71:59: error: ISO C++17 does not allow dynamic exception specifications
   71 |   static void write_coord(TCPsocket sock, const coord &c) throw (string);
      |                                                           ^~~~~
msg.h:72:43: error: ISO C++17 does not allow dynamic exception specifications
   72 |   static coord read_coord(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:86:44: error: ISO C++17 does not allow dynamic exception specifications
   86 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:87:37: error: ISO C++17 does not allow dynamic exception specifications
   87 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:103:44: error: ISO C++17 does not allow dynamic exception specifications
  103 |   void write_msgdata(TCPsocket sock) const throw (string) ;
      |                                            ^~~~~
msg.h:104:37: error: ISO C++17 does not allow dynamic exception specifications
  104 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:122:44: error: ISO C++17 does not allow dynamic exception specifications
  122 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:124:37: error: ISO C++17 does not allow dynamic exception specifications
  124 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:139:44: error: ISO C++17 does not allow dynamic exception specifications
  139 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:141:37: error: ISO C++17 does not allow dynamic exception specifications
  141 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:156:44: error: ISO C++17 does not allow dynamic exception specifications
  156 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:158:37: error: ISO C++17 does not allow dynamic exception specifications
  158 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:172:44: error: ISO C++17 does not allow dynamic exception specifications
  172 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:174:37: error: ISO C++17 does not allow dynamic exception specifications
  174 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:188:44: error: ISO C++17 does not allow dynamic exception specifications
  188 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:190:37: error: ISO C++17 does not allow dynamic exception specifications
  190 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:204:44: error: ISO C++17 does not allow dynamic exception specifications
  204 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:206:37: error: ISO C++17 does not allow dynamic exception specifications
  206 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:220:44: error: ISO C++17 does not allow dynamic exception specifications
  220 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:222:37: error: ISO C++17 does not allow dynamic exception specifications
  222 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:236:44: error: ISO C++17 does not allow dynamic exception specifications
  236 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:238:37: error: ISO C++17 does not allow dynamic exception specifications
  238 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:252:44: error: ISO C++17 does not allow dynamic exception specifications
  252 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:254:37: error: ISO C++17 does not allow dynamic exception specifications
  254 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:270:44: error: ISO C++17 does not allow dynamic exception specifications
  270 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:271:37: error: ISO C++17 does not allow dynamic exception specifications
  271 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:289:44: error: ISO C++17 does not allow dynamic exception specifications
  289 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:290:37: error: ISO C++17 does not allow dynamic exception specifications
  290 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:309:44: error: ISO C++17 does not allow dynamic exception specifications
  309 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:310:37: error: ISO C++17 does not allow dynamic exception specifications
  310 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:331:44: error: ISO C++17 does not allow dynamic exception specifications
  331 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:332:37: error: ISO C++17 does not allow dynamic exception specifications
  332 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:353:44: error: ISO C++17 does not allow dynamic exception specifications
  353 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:354:37: error: ISO C++17 does not allow dynamic exception specifications
  354 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:375:44: error: ISO C++17 does not allow dynamic exception specifications
  375 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:376:37: error: ISO C++17 does not allow dynamic exception specifications
  376 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:397:44: error: ISO C++17 does not allow dynamic exception specifications
  397 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:398:37: error: ISO C++17 does not allow dynamic exception specifications
  398 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:419:44: error: ISO C++17 does not allow dynamic exception specifications
  419 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:420:37: error: ISO C++17 does not allow dynamic exception specifications
  420 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:439:44: error: ISO C++17 does not allow dynamic exception specifications
  439 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:440:37: error: ISO C++17 does not allow dynamic exception specifications
  440 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:460:44: error: ISO C++17 does not allow dynamic exception specifications
  460 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:461:37: error: ISO C++17 does not allow dynamic exception specifications
  461 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:484:44: error: ISO C++17 does not allow dynamic exception specifications
  484 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:485:37: error: ISO C++17 does not allow dynamic exception specifications
  485 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
In file included from terrain.h:34,
                 from msg.h:25,
                 from game_client.h:33,
                 from game_client.cpp:21:
block.h:39:3: warning: 'typedef' was ignored in this declaration
   39 |   typedef enum block_type {
      |   ^~~~~~~
msg.h:504:44: error: ISO C++17 does not allow dynamic exception specifications
  504 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:505:37: error: ISO C++17 does not allow dynamic exception specifications
  505 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:526:44: error: ISO C++17 does not allow dynamic exception specifications
  526 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:527:37: error: ISO C++17 does not allow dynamic exception specifications
  527 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:548:44: error: ISO C++17 does not allow dynamic exception specifications
  548 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:549:37: error: ISO C++17 does not allow dynamic exception specifications
  549 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:568:44: error: ISO C++17 does not allow dynamic exception specifications
  568 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:569:37: error: ISO C++17 does not allow dynamic exception specifications
  569 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:591:44: error: ISO C++17 does not allow dynamic exception specifications
  591 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:592:37: error: ISO C++17 does not allow dynamic exception specifications
  592 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:618:44: error: ISO C++17 does not allow dynamic exception specifications
  618 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:619:37: error: ISO C++17 does not allow dynamic exception specifications
  619 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:644:44: error: ISO C++17 does not allow dynamic exception specifications
  644 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:645:37: error: ISO C++17 does not allow dynamic exception specifications
  645 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:661:44: error: ISO C++17 does not allow dynamic exception specifications
  661 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:662:37: error: ISO C++17 does not allow dynamic exception specifications
  662 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:50:42: error: ISO C++17 does not allow dynamic exception specifications
   50 |   void send (const TCPsocket sock) const throw (string);
      |                                          ^~~~~
msg.h:53:37: error: ISO C++17 does not allow dynamic exception specifications
   53 |   static msg* recv (TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:61:52: error: ISO C++17 does not allow dynamic exception specifications
   61 |   virtual void write_msgdata(TCPsocket sock) const throw (string) = 0;
      |                                                    ^~~~~
msg.h:62:45: error: ISO C++17 does not allow dynamic exception specifications
   62 |   virtual void read_msgdata(TCPsocket sock) throw (string) = 0;
      |                                             ^~~~~
msg.h:65:52: error: ISO C++17 does not allow dynamic exception specifications
   65 |   static void write_uint(TCPsocket sock, Uint32 d) throw (string);
      |                                                    ^~~~~
msg.h:66:43: error: ISO C++17 does not allow dynamic exception specifications
   66 |   static Uint32 read_uint(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:68:61: error: ISO C++17 does not allow dynamic exception specifications
   68 |   static void write_string(TCPsocket sock, const string &s) throw (string);
      |                                                             ^~~~~
msg.h:69:45: error: ISO C++17 does not allow dynamic exception specifications
   69 |   static string read_string(TCPsocket sock) throw (string);
      |                                             ^~~~~
msg.h:71:59: error: ISO C++17 does not allow dynamic exception specifications
   71 |   static void write_coord(TCPsocket sock, const coord &c) throw (string);
      |                                                           ^~~~~
msg.h:72:43: error: ISO C++17 does not allow dynamic exception specifications
   72 |   static coord read_coord(TCPsocket sock) throw (string);
      |                                           ^~~~~
msg.h:86:44: error: ISO C++17 does not allow dynamic exception specifications
   86 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:87:37: error: ISO C++17 does not allow dynamic exception specifications
   87 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:103:44: error: ISO C++17 does not allow dynamic exception specifications
  103 |   void write_msgdata(TCPsocket sock) const throw (string) ;
      |                                            ^~~~~
msg.h:104:37: error: ISO C++17 does not allow dynamic exception specifications
  104 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:122:44: error: ISO C++17 does not allow dynamic exception specifications
  122 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:124:37: error: ISO C++17 does not allow dynamic exception specifications
  124 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:139:44: error: ISO C++17 does not allow dynamic exception specifications
  139 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:141:37: error: ISO C++17 does not allow dynamic exception specifications
  141 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:156:44: error: ISO C++17 does not allow dynamic exception specifications
  156 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:158:37: error: ISO C++17 does not allow dynamic exception specifications
  158 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:172:44: error: ISO C++17 does not allow dynamic exception specifications
  172 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:174:37: error: ISO C++17 does not allow dynamic exception specifications
  174 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:188:44: error: ISO C++17 does not allow dynamic exception specifications
  188 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:190:37: error: ISO C++17 does not allow dynamic exception specifications
  190 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:204:44: error: ISO C++17 does not allow dynamic exception specifications
  204 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:206:37: error: ISO C++17 does not allow dynamic exception specifications
  206 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:220:44: error: ISO C++17 does not allow dynamic exception specifications
  220 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:222:37: error: ISO C++17 does not allow dynamic exception specifications
  222 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:236:44: error: ISO C++17 does not allow dynamic exception specifications
  236 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:238:37: error: ISO C++17 does not allow dynamic exception specifications
  238 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:252:44: error: ISO C++17 does not allow dynamic exception specifications
  252 |   void write_msgdata(TCPsocket sock) const throw (string)
      |                                            ^~~~~
msg.h:254:37: error: ISO C++17 does not allow dynamic exception specifications
  254 |   void read_msgdata(TCPsocket sock) throw (string)
      |                                     ^~~~~
msg.h:270:44: error: ISO C++17 does not allow dynamic exception specifications
  270 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:271:37: error: ISO C++17 does not allow dynamic exception specifications
  271 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:289:44: error: ISO C++17 does not allow dynamic exception specifications
  289 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:290:37: error: ISO C++17 does not allow dynamic exception specifications
  290 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:309:44: error: ISO C++17 does not allow dynamic exception specifications
  309 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:310:37: error: ISO C++17 does not allow dynamic exception specifications
  310 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:331:44: error: ISO C++17 does not allow dynamic exception specifications
  331 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:332:37: error: ISO C++17 does not allow dynamic exception specifications
  332 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:353:44: error: ISO C++17 does not allow dynamic exception specifications
  353 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:354:37: error: ISO C++17 does not allow dynamic exception specifications
  354 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:375:44: error: ISO C++17 does not allow dynamic exception specifications
  375 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:376:37: error: ISO C++17 does not allow dynamic exception specifications
  376 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:397:44: error: ISO C++17 does not allow dynamic exception specifications
  397 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:398:37: error: ISO C++17 does not allow dynamic exception specifications
  398 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:419:44: error: ISO C++17 does not allow dynamic exception specifications
  419 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:420:37: error: ISO C++17 does not allow dynamic exception specifications
  420 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:439:44: error: ISO C++17 does not allow dynamic exception specifications
  439 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:440:37: error: ISO C++17 does not allow dynamic exception specifications
  440 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:460:44: error: ISO C++17 does not allow dynamic exception specifications
  460 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:461:37: error: ISO C++17 does not allow dynamic exception specifications
  461 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:484:44: error: ISO C++17 does not allow dynamic exception specifications
  484 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:485:37: error: ISO C++17 does not allow dynamic exception specifications
  485 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:504:44: error: ISO C++17 does not allow dynamic exception specifications
  504 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:505:37: error: ISO C++17 does not allow dynamic exception specifications
  505 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:526:44: error: ISO C++17 does not allow dynamic exception specifications
  526 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:527:37: error: ISO C++17 does not allow dynamic exception specifications
  527 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:548:44: error: ISO C++17 does not allow dynamic exception specifications
  548 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:549:37: error: ISO C++17 does not allow dynamic exception specifications
  549 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:568:44: error: ISO C++17 does not allow dynamic exception specifications
  568 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:569:37: error: ISO C++17 does not allow dynamic exception specifications
  569 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:591:44: error: ISO C++17 does not allow dynamic exception specifications
  591 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:592:37: error: ISO C++17 does not allow dynamic exception specifications
  592 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:618:44: error: ISO C++17 does not allow dynamic exception specifications
  618 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:619:37: error: ISO C++17 does not allow dynamic exception specifications
  619 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:644:44: error: ISO C++17 does not allow dynamic exception specifications
  644 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:645:37: error: ISO C++17 does not allow dynamic exception specifications
  645 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
msg.h:661:44: error: ISO C++17 does not allow dynamic exception specifications
  661 |   void write_msgdata(TCPsocket sock) const throw (string);
      |                                            ^~~~~
msg.h:662:37: error: ISO C++17 does not allow dynamic exception specifications
  662 |   void read_msgdata(TCPsocket sock) throw (string);
      |                                     ^~~~~
In file included from player.h:27,
                 from gfx.h:39:
connects.h:19:33: error: ISO C++17 does not allow dynamic exception specifications
   19 |   virtual bool has_msgs() const throw (string &) = 0;
      |                                 ^~~~~
connects.h:20:26: error: ISO C++17 does not allow dynamic exception specifications
   20 |   virtual msg *receive() throw (string &) = 0;
      |                          ^~~~~
connects.h:21:30: error: ISO C++17 does not allow dynamic exception specifications
   21 |   virtual void send (msg *m) throw (string &) = 0;
      |                              ^~~~~
connects.h:39:29: error: ISO C++17 does not allow dynamic exception specifications
   39 |   tcp_connects(TCPsocket s) throw (string &);
      |                             ^~~~~
connects.h:43:22: error: ISO C++17 does not allow dynamic exception specifications
   43 |   void send (msg *m) throw (string &);
      |                      ^~~~~
connects.h:44:25: error: ISO C++17 does not allow dynamic exception specifications
   44 |   bool has_msgs() const throw (string &);
      |                         ^~~~~
connects.h:45:18: error: ISO C++17 does not allow dynamic exception specifications
   45 |   msg* receive() throw (string &);
      |                  ^~~~~
connects.h:55:71: error: ISO C++17 does not allow dynamic exception specifications
   55 |   local_connects(monitor_queue<msg *> *in, monitor_queue<msg *> *out) throw (string &);
      |                                                                       ^~~~~
connects.h:58:22: error: ISO C++17 does not allow dynamic exception specifications
   58 |   void send (msg *m) throw (string &);
      |                      ^~~~~
connects.h:59:25: error: ISO C++17 does not allow dynamic exception specifications
   59 |   bool has_msgs() const throw (string &);
      |                         ^~~~~
connects.h:60:18: error: ISO C++17 does not allow dynamic exception specifications
   60 |   msg* receive() throw (string &);
      |                  ^~~~~
In file included from player.h:27,
                 from gfx.h:39,
                 from game_client.h:36:
connects.h:19:33: error: ISO C++17 does not allow dynamic exception specifications
   19 |   virtual bool has_msgs() const throw (string &) = 0;
      |                                 ^~~~~
connects.h:20:26: error: ISO C++17 does not allow dynamic exception specifications
   20 |   virtual msg *receive() throw (string &) = 0;
      |                          ^~~~~
connects.h:21:30: error: ISO C++17 does not allow dynamic exception specifications
   21 |   virtual void send (msg *m) throw (string &) = 0;
      |                              ^~~~~
connects.h:39:29: error: ISO C++17 does not allow dynamic exception specifications
   39 |   tcp_connects(TCPsocket s) throw (string &);
      |                             ^~~~~
connects.h:43:22: error: ISO C++17 does not allow dynamic exception specifications
   43 |   void send (msg *m) throw (string &);
      |                      ^~~~~
connects.h:44:25: error: ISO C++17 does not allow dynamic exception specifications
   44 |   bool has_msgs() const throw (string &);
      |                         ^~~~~
connects.h:45:18: error: ISO C++17 does not allow dynamic exception specifications
   45 |   msg* receive() throw (string &);
      |                  ^~~~~
connects.h:55:71: error: ISO C++17 does not allow dynamic exception specifications
   55 |   local_connects(monitor_queue<msg *> *in, monitor_queue<msg *> *out) throw (string &);
      |                                                                       ^~~~~
connects.h:58:22: error: ISO C++17 does not allow dynamic exception specifications
   58 |   void send (msg *m) throw (string &);
      |                      ^~~~~
connects.h:59:25: error: ISO C++17 does not allow dynamic exception specifications
   59 |   bool has_msgs() const throw (string &);
      |                         ^~~~~
connects.h:60:18: error: ISO C++17 does not allow dynamic exception specifications
   60 |   msg* receive() throw (string &);
      |                  ^~~~~
In file included from gui.h:36,
                 from game_client.h:44:
audio.h:38:11: error: ISO C++17 does not allow dynamic exception specifications
   38 |   audio() throw (string &){}
      |           ^~~~~
audio.h:60:51: error: ISO C++17 does not allow dynamic exception specifications
   60 |   static Mix_Music *load_mus(const string &fname) throw (string);
      |                                                   ^~~~~
audio.h:61:51: error: ISO C++17 does not allow dynamic exception specifications
   61 |   static Mix_Chunk *load_sfx(const string &fname) throw (string);
      |                                                   ^~~~~
audio.h:67:15: error: ISO C++17 does not allow dynamic exception specifications
   67 |   nullaudio() throw (string &){}
      |               ^~~~~
audio.h:94:15: error: ISO C++17 does not allow dynamic exception specifications
   94 |   realaudio() throw (string &);
      |               ^~~~~
In file included from gui.h:40:
config.h:60:36: error: ISO C++17 does not allow dynamic exception specifications
   60 |     string& get_name( int player ) throw ( string ) {
      |                                    ^~~~~
config.h:80:40: error: ISO C++17 does not allow dynamic exception specifications
   80 |     const char  *key_to_str( int key ) throw ( int );
      |                                        ^~~~~
config.h:107:44: error: ISO C++17 does not allow dynamic exception specifications
  107 |     virtual void read_config( string& fn ) throw ( string );
      |                                            ^~~~~
config.h:108:45: error: ISO C++17 does not allow dynamic exception specifications
  108 |     virtual void write_config( string& fn ) throw ( string );
      |                                             ^~~~~
config.h:111:79: error: ISO C++17 does not allow dynamic exception specifications
  111 |     virtual void write_string( FILE *fp, const char *key, const char *value ) throw ( string );
      |                                                                               ^~~~~
config.h:112:68: error: ISO C++17 does not allow dynamic exception specifications
  112 |     virtual void write_int( FILE *fp, const char *key, int value ) throw ( string );
      |                                                                    ^~~~~
gui.h:104:47: error: ISO C++17 does not allow dynamic exception specifications
  104 |   virtual void action(SDLKey sym, SDLMod mod) throw (int);
      |                                               ^~~~~
gui.h:231:47: error: ISO C++17 does not allow dynamic exception specifications
  231 |   virtual void action(SDLKey sym, SDLMod mod) throw(int)
      |                                               ^~~~~
In file included from game_client.h:48:
client_net.h:38:23: error: ISO C++17 does not allow dynamic exception specifications
   38 |   virtual msg *recv() throw (string &) = 0;
      |                       ^~~~~
client_net.h:39:30: error: ISO C++17 does not allow dynamic exception specifications
   39 |   virtual void send(msg * m) throw (string &) = 0;
      |                              ^~~~~
client_net.h:40:27: error: ISO C++17 does not allow dynamic exception specifications
   40 |   virtual bool has_msgs() throw (string &) = 0;
      |                           ^~~~~
client_net.h:47:37: error: ISO C++17 does not allow dynamic exception specifications
   47 |   client_tcpnet(IPaddress *serv_ip) throw (string &);
      |                                     ^~~~~
client_net.h:50:15: error: ISO C++17 does not allow dynamic exception specifications
   50 |   msg *recv() throw (string &);
      |               ^~~~~
client_net.h:51:22: error: ISO C++17 does not allow dynamic exception specifications
   51 |   void send(msg * m) throw (string &);
      |                      ^~~~~
client_net.h:52:19: error: ISO C++17 does not allow dynamic exception specifications
   52 |   bool has_msgs() throw (string &);
      |                   ^~~~~
client_net.h:78:15: error: ISO C++17 does not allow dynamic exception specifications
   78 |   msg *recv() throw (string &);
      |               ^~~~~
client_net.h:79:22: error: ISO C++17 does not allow dynamic exception specifications
   79 |   void send(msg * m) throw (string &);
      |                      ^~~~~
client_net.h:80:19: error: ISO C++17 does not allow dynamic exception specifications
   80 |   bool has_msgs() throw (string &);
      |                   ^~~~~
game_client.h:107:18: error: ISO C++17 does not allow dynamic exception specifications
  107 |   void connect() throw (string &);
      |                  ^~~~~
game_client.h:109:77: error: ISO C++17 does not allow dynamic exception specifications
  109 |   void connect_local(monitor_queue<msg *> **in, monitor_queue<msg*> ** out) throw (string &);
      |                                                                             ^~~~~
game_client.h:242:24: error: ISO C++17 does not allow dynamic exception specifications
  242 |   void mode_inactive() throw (exception);
      |                        ^~~~~
game_client.h:246:32: error: ISO C++17 does not allow dynamic exception specifications
  246 |   void mode_character_select() throw (exception);
      |                                ^~~~~
game_client.h:250:29: error: ISO C++17 does not allow dynamic exception specifications
  250 |   void mode_castle_select() throw (exception);
      |                             ^~~~~
game_client.h:254:24: error: ISO C++17 does not allow dynamic exception specifications
  254 |   void mode_shooting() throw (exception);
      |                        ^~~~~
game_client.h:258:29: error: ISO C++17 does not allow dynamic exception specifications
  258 |   void mode_place_cannons() throw (exception);
      |                             ^~~~~
game_client.h:262:22: error: ISO C++17 does not allow dynamic exception specifications
  262 |   void mode_repair() throw (exception);
      |                      ^~~~~
game_client.h:267:24: error: ISO C++17 does not allow dynamic exception specifications
  267 |   bool mode_endround() throw (exception);
      |                        ^~~~~
game_client.h:271:23: error: ISO C++17 does not allow dynamic exception specifications
  271 |   void mode_endgame() throw (exception);
      |                       ^~~~~
game_client.h:300:44: error: ISO C++17 does not allow dynamic exception specifications
  300 |   void handle_player_disconnect(int index) throw (last_player_exception);
      |                                            ^~~~~
game_client.cpp: In destructor 'virtual game_client::~game_client()':
game_client.cpp:87:7: warning: deleting object of abstract class type 'msg' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
   87 |       delete m;
      |       ^~~~~~~~
game_client.cpp: In member function 'void game_client::disconnect()':
game_client.cpp:98:7: warning: deleting object of abstract class type 'client_net' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
   98 |       delete serv_conn;
      |       ^~~~~~~~~~~~~~~~
game_client.cpp: At global scope:
game_client.cpp:103:29: error: ISO C++17 does not allow dynamic exception specifications
  103 | void game_client::connect() throw (string &)
      |                             ^~~~~
game_client.cpp: In member function 'void game_client::connect()':
game_client.cpp:137:14: warning: deleting object of abstract class type 'msg' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
  137 |     if (m) { delete m; m = 0; }
      |              ^~~~~~~~
game_client.cpp:141:5: warning: deleting object of abstract class type 'client_net' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
  141 |     delete serv_conn;
      |     ^~~~~~~~~~~~~~~~
game_client.cpp:145:12: warning: deleting object of abstract class type 'msg' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
  145 |   if (m) { delete m; m = 0;}
      |            ^~~~~~~~
game_client.cpp: At global scope:
game_client.cpp:151:92: error: ISO C++17 does not allow dynamic exception specifications
  151 | void game_client::connect_local(monitor_queue<msg *> **in_q, monitor_queue<msg*> ** out_q) throw (string &)
      |                                                                                            ^~~~~
game_client.cpp: In member function 'void game_client::data_transfer()':
game_client.cpp:198:40: warning: catching polymorphic type 'class last_player_exception' by value [-Wcatch-value=]
  198 |           catch (last_player_exception e)
      |                                        ^
game_client.cpp:532:7: warning: deleting object of abstract class type 'msg' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
  532 |       delete m;
      |       ^~~~~~~~
game_client.cpp:540:7: warning: deleting object of abstract class type 'msg' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
  540 |       delete sm;
      |       ^~~~~~~~~
game_client.cpp: At global scope:
game_client.cpp:544:43: error: ISO C++17 does not allow dynamic exception specifications
  544 | void game_client::mode_character_select() throw (exception)
      |                                           ^~~~~
game_client.cpp:669:40: error: ISO C++17 does not allow dynamic exception specifications
  669 | void game_client::mode_castle_select() throw (exception)
      |                                        ^~~~~
game_client.cpp:854:35: error: ISO C++17 does not allow dynamic exception specifications
  854 | void game_client::mode_shooting() throw (exception)
      |                                   ^~~~~
game_client.cpp:1225:40: error: ISO C++17 does not allow dynamic exception specifications
 1225 | void game_client::mode_place_cannons() throw (exception)
      |                                        ^~~~~
game_client.cpp: In member function 'bool game_client::place_cannon(int)':
game_client.cpp:1563:66: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
 1563 |     if(players[player_index[i]].get_kredits() >= BIG_CANNON_COST && players[player_index[i]].is_alive() || (players[player_index[i]].get_kredits() >= CANNON_COST && players[player_index[i]].is_alive()))
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
game_client.cpp: In member function 'bool game_client::place_big_cannon(int)':
game_client.cpp:1654:66: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
 1654 |     if(players[player_index[i]].get_kredits() >= BIG_CANNON_COST && players[player_index[i]].is_alive() || (players[player_index[i]].get_kredits() >= CANNON_COST && players[player_index[i]].is_alive()))
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
game_client.cpp: At global scope:
game_client.cpp:1670:35: error: ISO C++17 does not allow dynamic exception specifications
 1670 | void game_client::mode_inactive() throw (exception)
      |                                   ^~~~~
game_client.cpp:1874:33: error: ISO C++17 does not allow dynamic exception specifications
 1874 | void game_client::mode_repair() throw (exception)
      |                                 ^~~~~
game_client.cpp:2065:35: error: ISO C++17 does not allow dynamic exception specifications
 2065 | bool game_client::mode_endround() throw (exception)
      |                                   ^~~~~
game_client.cpp:2236:34: error: ISO C++17 does not allow dynamic exception specifications
 2236 | void game_client::mode_endgame() throw (exception)
      |                                  ^~~~~
game_client.cpp:2651:55: error: ISO C++17 does not allow dynamic exception specifications
 2651 | void game_client::handle_player_disconnect(int index) throw (last_player_exception)
      |                                                       ^~~~~
game_client.cpp: In member function 'virtual void game_client::process_objects()':
game_client.cpp:2868:7: warning: deleting object of abstract class type 'game_obj' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor]
 2868 |       delete o;
      |       ^~~~~~~~
gmake: *** [<builtin>: gfx.o] Error 1
gmake: *** [<builtin>: game_client.o] Error 1
*** Error code 2

Stop.
bmake[1]: stopped making "all" in /data/jenkins/workspace/pkgsrc-upstream-trunk/games/kajaani-kombat
*** Error code 1

Stop.
bmake: stopped making "all" in /data/jenkins/workspace/pkgsrc-upstream-trunk/games/kajaani-kombat