Report for IPChains-0.7

Back
From: metabase:user:30f4dfbe-2aae-11df-837a-5e0a49663a4f
Subject: UNKNOWN IPChains-0.7 v5.8.1 GNU/Linux
Date: 2016-03-06T10:22:19Z

This distribution has been tested as part of the CPAN Testers
project, supporting the Perl programming language.  See
http://wiki.cpantesters.org/ for more information or email
questions to cpan-testers-discuss@perl.org


--
Dear Jessica Hutchison,

This is a computer-generated report for IPChains-0.7
on perl 5.8.1, created by CPAN-Reporter-1.2015.

Thank you for uploading your work to CPAN.  However, attempting to
test your distribution gave an inconclusive result.

This could be because your distribution had an error during the make/build
stage, did not define tests, tests could not be found, because your tests were
interrupted before they finished, or because the results of the tests could not
be parsed.  You may wish to consult the CPAN Testers Wiki:

http://wiki.cpantesters.org/wiki/CPANAuthorNotes

Sections of this report:

    * Tester comments
    * Program output
    * Prerequisites
    * Environment and other context

------------------------------
TESTER COMMENTS
------------------------------

Additional comments from tester:

this report is from an automated smoke testing program
and was not reviewed by a human for accuracy

------------------------------
PROGRAM OUTPUT
------------------------------

Output from '/usr/bin/make -j4 -j4':

Running Mkbootstrap for IPChains ()
cc -c   -D_REENTRANT -D_GNU_SOURCE -Os -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -fomit-frame-pointer -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"0.6\" -DXS_VERSION=\"0.6\" -fpic "-I/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE"   ipfw.c
cc -c   -D_REENTRANT -D_GNU_SOURCE -Os -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -fomit-frame-pointer -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"0.6\" -DXS_VERSION=\"0.6\" -fpic "-I/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE"   libipfwc.c
chmod 644 "IPChains.bs"
cc -c   -D_REENTRANT -D_GNU_SOURCE -Os -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -fomit-frame-pointer -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2   -DVERSION=\"0.6\" -DXS_VERSION=\"0.6\" -fpic "-I/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE"   ipchains.c
cp IPChains.pm blib/lib/IPChains.pm
libipfwc.c:22:12: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
 static int ipfwc_init()
            ^
libipfwc.c: In function ‘ipfwc_init’:
libipfwc.c:24:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_init;
           ^
libipfwc.c: In function ‘do_setsockopt’:
libipfwc.c:32:45: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
  return setsockopt(sockfd, IPPROTO_IP, cmd, (char *)data, length) != -1;
                                             ^
libipfwc.c: In function ‘ipfwc_insert_entry’:
libipfwc.c:40:9: warning: initializer element is not computable at load time
  struct ip_fwnew new = { rulenum, *fw, "" };
         ^
libipfwc.c:40:9: warning: initializer element is not computable at load time
libipfwc.c:45:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_insert_entry;
           ^
libipfwc.c: In function ‘ipfwc_replace_entry’:
libipfwc.c:54:9: warning: initializer element is not computable at load time
  struct ip_fwnew new = { rulenum, *fw, "" };
         ^
libipfwc.c:54:9: warning: initializer element is not computable at load time
libipfwc.c:59:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_replace_entry;
           ^
libipfwc.c: In function ‘ipfwc_append_entry’:
libipfwc.c:67:9: warning: initializer element is not computable at load time
  struct ip_fwchange new = { *fw, "" };
         ^
libipfwc.c:72:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_append_entry;
           ^
libipfwc.c: In function ‘ipfwc_delete_entry’:
libipfwc.c:79:9: warning: initializer element is not computable at load time
  struct ip_fwchange del = { *fw, "" };
         ^
libipfwc.c:84:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_delete_entry;
           ^
libipfwc.c: In function ‘ipfwc_delete_num_entry’:
libipfwc.c:91:9: warning: initializer element is not computable at load time
  struct ip_fwdelnum del = { rulenum, "" };
         ^
libipfwc.c:96:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_delete_num_entry;
           ^
libipfwc.c: In function ‘ipfwc_check_packet’:
libipfwc.c:159:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_check_packet;
           ^
libipfwc.c: In function ‘ipfwc_flush_entries’:
libipfwc.c:193:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_flush_entries;
           ^
libipfwc.c: In function ‘ipfwc_zero_entries’:
libipfwc.c:202:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_zero_entries;
           ^
libipfwc.c: In function ‘ipfwc_create_chain’:
libipfwc.c:211:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_create_chain;
           ^
libipfwc.c: In function ‘ipfwc_delete_chain’:
libipfwc.c:220:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_delete_chain;
           ^
libipfwc.c: In function ‘ipfwc_set_policy’:
libipfwc.c:231:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_set_policy;
           ^
libipfwc.c: In function ‘ipfwc_get_chainnames’:
libipfwc.c:248:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_get_chainnames;
           ^
libipfwc.c: In function ‘ipfwc_get_rules’:
libipfwc.c:329:11: warning: ISO C forbids assignment between function pointer and ‘void *’ [-Wpedantic]
  ipfwc_fn = ipfwc_get_rules;
           ^
libipfwc.c: In function ‘ipfwc_strerror’:
libipfwc.c:433:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_init, EPERM, "Permission denied (you must be root)" },
      ^
libipfwc.c:433:6: warning: (near initialization for ‘table[2].fn’) [-Wpedantic]
libipfwc.c:434:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_delete_chain, ENOTEMPTY, "Chain is not empty" },
      ^
libipfwc.c:434:6: warning: (near initialization for ‘table[3].fn’) [-Wpedantic]
libipfwc.c:435:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_create_chain, EEXIST, "Chain already exists" },
      ^
libipfwc.c:435:6: warning: (near initialization for ‘table[4].fn’) [-Wpedantic]
libipfwc.c:437:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_check_packet, EINVAL, 
      ^
libipfwc.c:437:6: warning: (near initialization for ‘table[5].fn’) [-Wpedantic]
libipfwc.c:440:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_delete_entry, EINVAL,
      ^
libipfwc.c:440:6: warning: (near initialization for ‘table[6].fn’) [-Wpedantic]
libipfwc.c:442:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_insert_entry, EINVAL,
      ^
libipfwc.c:442:6: warning: (near initialization for ‘table[7].fn’) [-Wpedantic]
libipfwc.c:444:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_delete_num_entry, EINVAL,
      ^
libipfwc.c:444:6: warning: (near initialization for ‘table[8].fn’) [-Wpedantic]
libipfwc.c:446:6: warning: ISO C forbids initialization between function pointer and ‘void *’ [-Wpedantic]
      { ipfwc_replace_entry, EINVAL,
      ^
libipfwc.c:446:6: warning: (near initialization for ‘table[9].fn’) [-Wpedantic]
ipchains.c:377:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
 static void exit_printicmphelp() __attribute__((noreturn));
 ^
ipchains.c:378:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
 static void exit_printhelp() __attribute__((noreturn));
 ^
ipchains.c: In function ‘list_entries’:
ipchains.c:734:13: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
             chains[i].bytes);
             ^
ipchains.c:734:13: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:740:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (rulenum = 0; rulenum < num_rules; rulenum++) {
                              ^
ipchains.c: In function ‘ipfw_init’:
ipchains.c:797:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "rule would never match protocol");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/op.h:484:0,
                 from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2344,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/reentr.h:723:26: warning: "REENTRANT_PROTO_iS" is not defined [-Wundef]
 #   if RANDOM_R_PROTO == REENTRANT_PROTO_iS
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/reentr.h:726:26: warning: "REENTRANT_PROTO_lS" is not defined [-Wundef]
 #   if RANDOM_R_PROTO == REENTRANT_PROTO_lS
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/reentr.h:729:26: warning: "REENTRANT_PROTO_tS" is not defined [-Wundef]
 #   if RANDOM_R_PROTO == REENTRANT_PROTO_tS
                          ^
ipchains.c:852:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:878:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:885:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:892:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:900:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:907:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:915:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:929:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:940:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "-%c requires 2 hexbyte arguments",
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:947:9: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
         "unexpected ! flag");
         ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:961:10: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
          "multiple consecutive ! not allowed\n");
          ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:975:7: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
       "unknown arguments found on commandline");
       ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:977:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "no command specified");
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:980:7: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
       "nothing appropriate following !");
       ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1008:7: warning: pointer targets in passing argument 5 of ‘parse_icmp’ differ in signedness [-Wpointer-sign]
       &options, fw.ipfw.fw_invflg, command == CMD_CHECK);
       ^
ipchains.c:321:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void parse_icmp(const char *srcportstring, const char *dstportstring,
             ^
ipchains.c:1013:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "! not allowed with multiple source or destination IP addresses");
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1016:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "-b not allowed with multiple source or destination IP addresses");
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1020:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "no ports allowed without specific protocol");
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1025:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "-%c only allowed with TCP protocol",
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1030:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "no ports allowed with -%c",
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1035:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "-%c not allowed with -%c",
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1047:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "one port required with source/destination "
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1051:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "! not allowed with -%c", cmd2char(CMD_CHECK));
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1056:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "redirecting only allowed with TCP or UDP");
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1062:7: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
       "masquerading not allowed for input and output chains");
       ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1068:7: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
       "redirect not allowed for output and forward chains");
       ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1071:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "Replacement rule does not "
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1082:7: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
       "chain name `%s' too long (must be under %i chars)",
       ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1099:7: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
       "-M/--masquerading requires -L/--list or -S/--set");
       ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘ipfw_append’:
ipchains.c:1191:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_APPEND, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_delete’:
ipchains.c:1201:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_DELETE, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_check’:
ipchains.c:1212:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_CHECK, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_replace’:
ipchains.c:1222:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_REPLACE, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_insert’:
ipchains.c:1232:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_INSERT, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_list’:
ipchains.c:1244:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_LIST, CMD_ZERO|CMD_MASQUERADE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_flush’:
ipchains.c:1254:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_FLUSH, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_zero’:
ipchains.c:1264:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_ZERO, CMD_LIST);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_new_chain’:
ipchains.c:1274:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_NEW_CHAIN, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_del_chain’:
ipchains.c:1284:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_DELETE_CHAIN, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_set_policy’:
ipchains.c:1294:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_SET_POLICY, CMD_NONE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘ipfw_masq’:
ipchains.c:1304:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_MASQUERADE, CMD_LIST|CMD_SET_MASQUERADE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c:1305:14: warning: pointer targets in passing argument 1 of ‘add_command’ differ in signedness [-Wpointer-sign]
  add_command(&command, CMD_LIST, CMD_ZERO|CMD_MASQUERADE);
              ^
ipchains.c:351:13: note: expected ‘int *’ but argument is of type ‘unsigned int *’
 static void add_command(int *cmd, const int newcmd, const int othercmds);
             ^
ipchains.c: In function ‘check_inverse’:
ipchains.c:1315:45: warning: declaration of ‘invert’ shadows a global declaration [-Wshadow]
 int check_inverse(const char option[], int *invert)
                                             ^
ipchains.c:310:12: warning: shadowed declaration is here [-Wshadow]
 static int invert = FALSE;
            ^
ipchains.c:1319:34: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
    exit_error(PARAMETER_PROBLEM, "Multiple `!' flags not allowed");
                                  ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_hostnetwork’:
ipchains.c:1354:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "host/network `%s' not found", name);
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_mask’:
ipchains.c:1407:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "invalid mask `%s' specified", mask);
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_policy’:
ipchains.c:1423:10: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
          "`-%c %s' only valid for `%s' chain.",
          ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1434:6: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
      "Can only set policy in built-in chains.");
      ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1439:32: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
  exit_error(PARAMETER_PROBLEM, "Invalid policy `%s' for -%c", policy,
                                ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: At top level:
ipchains.c:1453:2: warning: initialization discards ‘const’ qualifier from pointer target type
  { "all", 0 },
  ^
ipchains.c:1454:2: warning: initialization discards ‘const’ qualifier from pointer target type
  { "tcp", IPPROTO_TCP },
  ^
ipchains.c:1455:2: warning: initialization discards ‘const’ qualifier from pointer target type
  { "udp", IPPROTO_UDP },
  ^
ipchains.c:1456:2: warning: initialization discards ‘const’ qualifier from pointer target type
  { "icmp", IPPROTO_ICMP },
  ^
ipchains.c: In function ‘parse_protocol’:
ipchains.c:1478:32: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
  exit_error(PARAMETER_PROBLEM, "unknown protocol `%s' specified", s);
                                ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_icmp’:
ipchains.c:1514:36: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
      exit_error(PARAMETER_PROBLEM, "Ambiguous ICMP `%s' : "
                                    ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1525:35: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
     exit_error(PARAMETER_PROBLEM, "Can't use ICMP name and destination port together");
                                   ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1534:36: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
      exit_error(PARAMETER_PROBLEM, "Must specify exact ICMP type for testing");
                                    ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1539:35: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
     exit_error(PARAMETER_PROBLEM, "Can't invert named ICMP types");
                                   ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_mark’:
ipchains.c:1587:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "Bad value `%s' for -%c.\n",
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_outputsize’:
ipchains.c:1609:34: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
    exit_error(PARAMETER_PROBLEM, "-o argument must be 0-65535, not `%s'",
                                  ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_interface’:
ipchains.c:1620:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "interface name `%s' must be shorter than IFNAMSIZ (%i)",
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_port’:
ipchains.c:1641:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "can only specify ports for icmp, tcp or udp");
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1646:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "invalid ICMP type `%s' specified", port);
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1650:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "invalid port/service `%s' specified", port);
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_rulenumber’:
ipchains.c:1659:51: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
  if (rulenum == -1) exit_error(PARAMETER_PROBLEM, "Invalid rule number `%s'", rule);
                                                   ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_hexbyte’:
ipchains.c:1676:34: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
    exit_error(PARAMETER_PROBLEM, "invalid hexbyte `%s' specified", s);
                                  ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1679:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "invalid hexbyte `%s' specified", s);
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_timeout’:
ipchains.c:1691:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "invalid timeout value `%s' specified", s);
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘parse_target’:
ipchains.c:1699:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "Invalid target name (too short)");
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1702:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "Invalid target name `%s' (%i chars max)",
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1706:52: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   if (isspace(*ptr)) exit_error(PARAMETER_PROBLEM, "Invalid target name `%s'",
                                                    ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘host_to_addr’:
ipchains.c:1728:26: warning: cast increases required alignment of target type [-Wcast-align]
    inaddrcpy(&(addr[i]), (struct in_addr *) host->h_addr_list[i]);
                          ^
ipchains.c: In function ‘mask_to_dotted’:
ipchains.c:1843:3: warning: return discards ‘const’ qualifier from pointer target type
   return "";
   ^
ipchains.c: In function ‘list_masq’:
ipchains.c:1915:29: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(OTHER_PROBLEM, "cannot open file `/proc/net/ip_masquerade'");
                             ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:1919:7: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
       "unexpected input from `/proc/net/ip_masquerade'");
       ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘print_firewall’:
ipchains.c:2011:8: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
        cntgb);
        ^
ipchains.c:2011:8: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2014:7: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
       fprintf(fp, FMT("%4lluM ","%lluM "), cntmb);
       ^
ipchains.c:2014:7: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2016:6: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
      fprintf(fp, FMT("%4lluK ","%lluK "), cntkb);
      ^
ipchains.c:2016:6: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2018:5: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
     fprintf(fp, FMT("%5llu ","%llu "), cnt);
     ^
ipchains.c:2018:5: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2020:4: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
    fprintf(fp, FMT("%8llu ","%llu "), cnt);
    ^
ipchains.c:2020:4: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2031:8: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
        cntgb);
        ^
ipchains.c:2031:8: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2034:7: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
       fprintf(fp, FMT("%4lluM ","%lluM "), cntmb);
       ^
ipchains.c:2034:7: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2036:6: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
      fprintf(fp, FMT("%4lluK ","%lluK "), cntkb);
      ^
ipchains.c:2036:6: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2038:5: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
     fprintf(fp, FMT("%5llu ","%llu "), cnt);
     ^
ipchains.c:2038:5: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2040:4: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
    fprintf(fp, FMT("%10llu ","%llu "), cnt);
    ^
ipchains.c:2040:4: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat=]
ipchains.c:2094:5: warning: '+' flag used with ‘%x’ gnu_printf format [-Wformat=]
     (int)fw->ipfw.fw_mark);
     ^
ipchains.c:2094:5: warning: '+' flag used with ‘%x’ gnu_printf format [-Wformat=]
ipchains.c: In function ‘read_masqinfo’:
ipchains.c:2284:32: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
    exit_error(VERSION_PROBLEM, "unexpected input data");
                                ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: In function ‘set_option’:
ipchains.c:2302:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "multiple -%c flags not allowed\n",
                                 ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c:2308:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (i = 0; 1 << i != option; i++);
                      ^
ipchains.c:2310:34: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
    exit_error(PARAMETER_PROBLEM, "cannot have ! before -%c\n",
                                  ^
ipchains.c:374:13: note: expected ‘char *’ but argument is of type ‘const char *’
 static void exit_error(enum exittype, char *, ...)
             ^
ipchains.c: At top level:
ipchains.c:2384:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
 exit_printicmphelp()
 ^
ipchains.c:2408:1: warning: function declaration isn’t a prototype [-Wstrict-prototypes]
 exit_printhelp()
 ^
ipchains.c: In function ‘exit_printhelp’:
ipchains.c:2469:1: warning: string length ‘2048’ is greater than the length ‘509’ ISO C90 compilers are required to support [-Woverlength-strings]
 "[!] --version -V  print package version.\n");
 ^
ipchains.c: In function ‘generic_opt_check’:
ipchains.c:2492:36: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
      exit_error(PARAMETER_PROBLEM, "You need to supply the `-%c' option for this command\n", optflags[i]);
                                    ^
ipchains.c:2361:1: note: expected ‘char *’ but argument is of type ‘const char *’
 exit_error(enum exittype status, char *msg, ...)
 ^
ipchains.c:2503:8: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
        "Illegal option `-%c' with this command\n",
        ^
ipchains.c:2361:1: note: expected ‘char *’ but argument is of type ‘const char *’
 exit_error(enum exittype status, char *msg, ...)
 ^
ipchains.c: In function ‘check_tos’:
ipchains.c:2544:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "TOS manipulation cannot alter bit 0 (RFC1349)\n");
                                 ^
ipchains.c:2361:1: note: expected ‘char *’ but argument is of type ‘const char *’
 exit_error(enum exittype status, char *msg, ...)
 ^
ipchains.c:2553:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "TOS manipulation cannot set multiple TOS bits "
                                 ^
ipchains.c:2361:1: note: expected ‘char *’ but argument is of type ‘const char *’
 exit_error(enum exittype status, char *msg, ...)
 ^
ipchains.c: In function ‘add_command’:
ipchains.c:2567:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "unexpected ! flag");
                                 ^
ipchains.c:2361:1: note: expected ‘char *’ but argument is of type ‘const char *’
 exit_error(enum exittype status, char *msg, ...)
 ^
ipchains.c:2569:33: warning: passing argument 2 of ‘exit_error’ discards ‘const’ qualifier from pointer target type
   exit_error(PARAMETER_PROBLEM, "Can't use -%c with -%c\n",
                                 ^
ipchains.c:2361:1: note: expected ‘char *’ but argument is of type ‘const char *’
 exit_error(enum exittype status, char *msg, ...)
 ^
ipchains.c: At top level:
ipchains.c:1684:1: warning: ‘parse_timeout’ defined but not used [-Wunused-function]
 parse_timeout(char *s)
 ^
ipchains.c:1656:1: warning: ‘parse_rulenumber’ defined but not used [-Wunused-function]
 parse_rulenumber(const char *rule)
 ^
ipfw.c: In function ‘swigsort’:
ipfw.c:158:20: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
  SwigPtrType *d1 = (SwigPtrType *) data1;
                    ^
ipfw.c:159:20: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
  SwigPtrType *d2 = (SwigPtrType *) data2;
                    ^
ipfw.c: In function ‘swigcmp’:
ipfw.c:165:13: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
   char *k = (char *) key;
             ^
ipfw.c:166:20: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
   SwigPtrType *d = (SwigPtrType *) data;
                    ^
ipfw.c: In function ‘SWIG_GetPtr’:
ipfw.c:289:2: warning: return discards ‘const’ qualifier from pointer target type
  return "Not a valid pointer value";
  ^
ipfw.c:298:21: error: ‘sv_undef’ undeclared (first use in this function)
   } else if (sv == &sv_undef) {            /* Check for undef */
                     ^
ipfw.c:298:21: note: each undeclared identifier is reported only once for each function it appears in
ipfw.c:306:7: warning: return discards ‘const’ qualifier from pointer target type
       return "Not a valid pointer value";
       ^
ipfw.c:309:7: warning: return discards ‘const’ qualifier from pointer target type
       return "Not a valid pointer value";
       ^
ipfw.c:322:4: warning: array subscript has type ‘char’ [-Wchar-subscripts]
    SwigStart[SwigPtrTable[i].name[0]] = i;
    ^
ipfw.c:350:7: warning: array subscript has type ‘char’ [-Wchar-subscripts]
       start = SwigStart[_t[0]];
       ^
ipfw.c:264:9: warning: variable ‘name’ set but not used [-Wunused-but-set-variable]
   char *name,*_c;
         ^
ipfw.c: In function ‘_swig_create_magic’:
ipfw.c:417:27: warning: assignment from incompatible pointer type
   mg->mg_virtual->svt_get = get;
                           ^
ipfw.c:418:27: warning: assignment from incompatible pointer type
   mg->mg_virtual->svt_set = set;
                           ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:457:4: warning: no previous prototype for ‘_wrap_ipfwc_get_chainnames’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_get_chainnames) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_get_chainnames’:
ipfw.c:467:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"unsigned intPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:469:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:474:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:477:4: warning: no previous prototype for ‘_wrap_ipfwc_get_rules’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_get_rules) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_get_rules’:
ipfw.c:488:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"unsigned intPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:490:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:496:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:499:4: warning: no previous prototype for ‘_wrap_ipfwc_insert_entry’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_insert_entry) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_insert_entry’:
ipfw.c:511:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:513:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
ipfw.c:515:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(1),(void **) &_arg1,"struct ip_fwuserPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:517:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:523:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:526:4: warning: no previous prototype for ‘_wrap_ipfwc_replace_entry’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_replace_entry) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_replace_entry’:
ipfw.c:538:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:540:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
ipfw.c:542:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(1),(void **) &_arg1,"struct ip_fwuserPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:544:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:550:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:553:4: warning: no previous prototype for ‘_wrap_ipfwc_append_entry’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_append_entry) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_append_entry’:
ipfw.c:564:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:566:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
ipfw.c:568:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(1),(void **) &_arg1,"struct ip_fwuserPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:570:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:575:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:578:4: warning: no previous prototype for ‘_wrap_ipfwc_delete_entry’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_delete_entry) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_delete_entry’:
ipfw.c:589:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:591:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
ipfw.c:593:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(1),(void **) &_arg1,"struct ip_fwuserPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:595:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:600:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:603:4: warning: no previous prototype for ‘_wrap_ipfwc_delete_num_entry’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_delete_num_entry) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_delete_num_entry’:
ipfw.c:614:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:616:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:622:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:625:4: warning: no previous prototype for ‘_wrap_ipfwc_check_packet’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_check_packet) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_check_packet’:
ipfw.c:636:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:638:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
ipfw.c:640:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(1),(void **) &_arg1,"struct ip_fwPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:642:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
ipfw.c:644:15: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
     _result = (char *)ipfwc_check_packet(*_arg0,_arg1);
               ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:647:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:650:4: warning: no previous prototype for ‘_wrap_ipfwc_flush_entries’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_flush_entries) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_flush_entries’:
ipfw.c:660:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:662:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:667:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:670:4: warning: no previous prototype for ‘_wrap_ipfwc_zero_entries’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_zero_entries) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_zero_entries’:
ipfw.c:680:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:682:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:687:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:690:4: warning: no previous prototype for ‘_wrap_ipfwc_create_chain’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_create_chain) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_create_chain’:
ipfw.c:700:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:702:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:707:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:710:4: warning: no previous prototype for ‘_wrap_ipfwc_delete_chain’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_delete_chain) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_delete_chain’:
ipfw.c:720:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:722:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:727:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:730:4: warning: no previous prototype for ‘_wrap_ipfwc_set_policy’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_set_policy) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_set_policy’:
ipfw.c:741:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(0),(void **) &_arg0,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:743:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
ipfw.c:745:44: warning: passing argument 3 of ‘SWIG_GetPtr’ discards ‘const’ qualifier from pointer target type
     if (SWIG_GetPtr(ST(1),(void **) &_arg1,"ip_chainlabelPtr")) {
                                            ^
ipfw.c:256:7: note: expected ‘char *’ but argument is of type ‘const char *’
 char *SWIG_GetPtr(SV *sv, void **ptr, char *_t)
       ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:747:9: note: in expansion of macro ‘XSRETURN’
         XSRETURN(1);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:752:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:755:4: warning: no previous prototype for ‘_wrap_ipfwc_strerror’ [-Wmissing-prototypes]
 XS(_wrap_ipfwc_strerror) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c: In function ‘_wrap_ipfwc_strerror’:
ipfw.c:766:15: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
     _result = (char *)ipfwc_strerror(_arg0);
               ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:769:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:772:4: warning: no previous prototype for ‘_wrap_ipfw_init’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_init) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_init’:
ipfw.c:803:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:803:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:803:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:809:22: note: in expansion of macro ‘SvPV’
     _arg3 = (char *) SvPV(ST(3),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:817:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:781:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:820:4: warning: no previous prototype for ‘_wrap_ipfw_append’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_append) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_append’:
ipfw.c:849:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:849:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:849:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:854:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:861:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:827:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:864:4: warning: no previous prototype for ‘_wrap_ipfw_delete’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_delete) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_delete’:
ipfw.c:894:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:894:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:894:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:899:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:907:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:872:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:910:4: warning: no previous prototype for ‘_wrap_ipfw_check’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_check) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_check’:
ipfw.c:939:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:939:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:939:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:944:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:951:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:917:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:954:4: warning: no previous prototype for ‘_wrap_ipfw_replace’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_replace) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_replace’:
ipfw.c:984:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:984:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:984:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:989:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:997:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:962:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1000:4: warning: no previous prototype for ‘_wrap_ipfw_insert’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_insert) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_insert’:
ipfw.c:1030:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1030:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1030:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1035:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1043:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1008:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1046:4: warning: no previous prototype for ‘_wrap_ipfw_list’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_list) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_list’:
ipfw.c:1075:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1075:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1075:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1080:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1087:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1053:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1090:4: warning: no previous prototype for ‘_wrap_ipfw_flush’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_flush) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_flush’:
ipfw.c:1119:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1119:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1119:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1124:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1131:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1097:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1134:4: warning: no previous prototype for ‘_wrap_ipfw_zero’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_zero) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_zero’:
ipfw.c:1162:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1162:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1162:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1173:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1140:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1176:4: warning: no previous prototype for ‘_wrap_ipfw_masq’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_masq) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_masq’:
ipfw.c:1204:42: error: ‘na’ undeclared (first use in this function)
             _arg1[i] = (char *) SvPV(*tv,na);
                                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1204:33: note: in expansion of macro ‘SvPV’
             _arg1[i] = (char *) SvPV(*tv,na);
                                 ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1204:33: note: in expansion of macro ‘SvPV’
             _arg1[i] = (char *) SvPV(*tv,na);
                                 ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1215:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1182:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1218:4: warning: no previous prototype for ‘_wrap_ipfw_new_chain’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_new_chain) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_new_chain’:
ipfw.c:1247:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1247:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1247:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1252:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1259:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1225:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1262:4: warning: no previous prototype for ‘_wrap_ipfw_del_chain’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_del_chain) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_del_chain’:
ipfw.c:1291:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1291:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1291:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1296:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1303:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1269:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1306:4: warning: no previous prototype for ‘_wrap_ipfw_set_policy’ [-Wmissing-prototypes]
 XS(_wrap_ipfw_set_policy) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:2337:0,
                 from ipfw.c:29:
ipfw.c: In function ‘_wrap_ipfw_set_policy’:
ipfw.c:1335:35: error: ‘na’ undeclared (first use in this function)
      _arg1[i] = (char *) SvPV(*tv,na);
                                   ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:10: note: in definition of macro ‘SvPV_flags’
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
          ^
ipfw.c:1335:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1335:26: note: in expansion of macro ‘SvPV’
      _arg1[i] = (char *) SvPV(*tv,na);
                          ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:969:25: warning: left-hand operand of comma expression has no effect [-Wunused-value]
      ? ((lp = SvCUR(sv)), SvPVX(sv)) : sv_2pv_flags(sv, &lp, flags))
                         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/sv.h:965:22: note: in expansion of macro ‘SvPV_flags’
 #define SvPV(sv, lp) SvPV_flags(sv, lp, SV_GMAGIC)
                      ^
ipfw.c:1340:22: note: in expansion of macro ‘SvPV’
     _arg2 = (char *) SvPV(ST(2),na);
                      ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1347:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(argvi);
     ^
ipfw.c:1313:10: warning: variable ‘_saved’ set but not used [-Wunused-but-set-variable]
     SV * _saved[1];
          ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1350:4: warning: no previous prototype for ‘_wrap_perl5_IPChains_var_init’ [-Wmissing-prototypes]
 XS(_wrap_perl5_IPChains_var_init) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
In file included from ipfw.c:29:0:
ipfw.c: In function ‘_wrap_perl5_IPChains_var_init’:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1354:5: note: in expansion of macro ‘XSRETURN’
     XSRETURN(1);
     ^
ipfw.c:1352:9: warning: unused variable ‘sv’ [-Wunused-variable]
     SV *sv;
         ^
In file included from ipfw.c:30:0:
ipfw.c: At top level:
ipfw.c:1359:4: error: conflicting types for ‘boot_IPChains’
 XS(boot_IPChains) {
    ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:78:25: note: in definition of macro ‘XS’
 #  define XS(name) void name(pTHX_ CV* cv)
                         ^
ipfw.c:432:17: note: previous declaration of ‘boot_IPChains’ was here
 SWIGEXPORT(void,boot_IPChains)(CV* cv);
                 ^
ipfw.c:50:30: note: in definition of macro ‘SWIGEXPORT’
 #   define SWIGEXPORT(a,b) a b
                              ^
ipfw.c: In function ‘boot_IPChains’:
ipfw.c:1361:1: warning: initialization discards ‘const’ qualifier from pointer target type
   char *file = __FILE__;
 ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1363:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::var_IPChains_init", _wrap_perl5_IPChains_var_init, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1364:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_get_chainnames", _wrap_ipfwc_get_chainnames, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1365:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_get_rules", _wrap_ipfwc_get_rules, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1366:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_insert_entry", _wrap_ipfwc_insert_entry, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1367:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_replace_entry", _wrap_ipfwc_replace_entry, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1368:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_append_entry", _wrap_ipfwc_append_entry, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1369:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_delete_entry", _wrap_ipfwc_delete_entry, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1370:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_delete_num_entry", _wrap_ipfwc_delete_num_entry, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1371:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_check_packet", _wrap_ipfwc_check_packet, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1372:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_flush_entries", _wrap_ipfwc_flush_entries, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1373:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_zero_entries", _wrap_ipfwc_zero_entries, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1374:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_create_chain", _wrap_ipfwc_create_chain, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1375:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_delete_chain", _wrap_ipfwc_delete_chain, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1376:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_set_policy", _wrap_ipfwc_set_policy, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1377:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfwc_strerror", _wrap_ipfwc_strerror, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1378:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_init", _wrap_ipfw_init, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1379:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_append", _wrap_ipfw_append, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1380:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_delete", _wrap_ipfw_delete, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1381:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_check", _wrap_ipfw_check, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1382:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_replace", _wrap_ipfw_replace, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1383:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_insert", _wrap_ipfw_insert, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1384:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_list", _wrap_ipfw_list, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1385:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_flush", _wrap_ipfw_flush, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1386:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_zero", _wrap_ipfw_zero, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1387:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_masq", _wrap_ipfw_masq, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1388:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_new_chain", _wrap_ipfw_new_chain, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1389:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_del_chain", _wrap_ipfw_del_chain, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:475:0,
                 from ipfw.c:29:
ipfw.c:1390:9: warning: passing argument 2 of ‘Perl_newXS’ discards ‘const’ qualifier from pointer target type
   newXS("IPChainsc::ipfw_set_policy", _wrap_ipfw_set_policy, file);
         ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/embed.h:3235:40: note: in definition of macro ‘newXS’
 #define newXS(a,b,c)  Perl_newXS(aTHX_ a,b,c)
                                        ^
In file included from /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:3552:0,
                 from ipfw.c:29:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/proto.h:496:19: note: expected ‘char *’ but argument is of type ‘const char *’
 PERL_CALLCONV CV* Perl_newXS(pTHX_ char* name, XSUBADDR_t f, char* filename);
                   ^
ipfw.c:1395:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("unsigned short","short",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1395:41: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("unsigned short","short",0);
                                         ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1396:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("long","unsigned long",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1396:31: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("long","unsigned long",0);
                               ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1397:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("long","signed long",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1397:31: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("long","signed long",0);
                               ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1398:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("signed short","short",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1398:39: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("signed short","short",0);
                                       ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1399:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("signed int","int",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1399:37: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("signed int","int",0);
                                     ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1400:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("short","unsigned short",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1400:32: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("short","unsigned short",0);
                                ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1401:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("short","signed short",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1401:32: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("short","signed short",0);
                                ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1402:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("unsigned long","long",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1402:40: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("unsigned long","long",0);
                                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1403:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("int","unsigned int",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1403:30: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("int","unsigned int",0);
                              ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1404:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("int","signed int",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1404:30: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("int","signed int",0);
                              ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1405:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("unsigned int","int",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1405:39: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("unsigned int","int",0);
                                       ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1406:24: warning: passing argument 1 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("signed long","long",0);
                        ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1406:38: warning: passing argument 2 of ‘SWIG_RegisterMapping’ discards ‘const’ qualifier from pointer target type
   SWIG_RegisterMapping("signed long","long",0);
                                      ^
ipfw.c:174:6: note: expected ‘char *’ but argument is of type ‘const char *’
 void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) {
      ^
ipfw.c:1407:12: error: ‘sv_yes’ undeclared (first use in this function)
   ST(0) = &sv_yes;
            ^
In file included from ipfw.c:29:0:
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/perl.h:241:29: warning: ISO C forbids braced-groups within expressions [-Wpedantic]
 #   define STMT_START (void)( /* gcc supports ``({ STATEMENTS; })'' */
                             ^
/home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi/CORE/XSUB.h:195:5: note: in expansion of macro ‘STMT_START’
     STMT_START {     \
     ^
ipfw.c:1408:3: note: in expansion of macro ‘XSRETURN’
   XSRETURN(1);
   ^
ipfw.c: At top level:
ipfw.c:224:6: warning: ‘SWIG_MakePtr’ defined but not used [-Wunused-function]
 void SWIG_MakePtr(char *_c, const void *_ptr, char *type) {
      ^
ipfw.c:408:13: warning: ‘_swig_create_magic’ defined but not used [-Wunused-function]
 static void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) {
             ^
ipfw.c:445:22: warning: ‘swig_magic_readonly’ defined but not used [-Wunused-function]
 SWIGCLASS_STATIC int swig_magic_readonly(SV *sv, MAGIC *mg) {
                      ^
Makefile:340: recipe for target 'ipfw.o' failed
make: *** [ipfw.o] Error 1
make: *** Waiting for unfinished jobs....

------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

build_requires:

    Module              Need Have
    ------------------- ---- ----
    ExtUtils::MakeMaker 0    7.10


------------------------------
ENVIRONMENT AND OTHER CONTEXT
------------------------------

Environment variables:

    AUTOMATED_TESTING = 1
    LANG = en_GB.UTF-8
    PATH = /home/njh/perl5/perlbrew/bin:/home/njh/perl5/perlbrew/perls/perl-5.8.1/bin:/home/njh/perl5/perlbrew/bin:/usr/bin:/bin
    PERL = /home/njh/perl5/perlbrew/perls/perl-5.8.1/bin/perl
    PERL5LIB = 
    PERL5OPT = 
    PERL5_CPANPLUS_IS_RUNNING = 11304
    PERL5_CPAN_IS_RUNNING = 11304
    PERL5_MINISMOKEBOX = 0.58
    PERLBREW_BASHRC_VERSION = 0.74
    PERLBREW_LIB = 
    PERLBREW_MANPATH = /home/njh/perl5/perlbrew/perls/perl-5.8.1/man
    PERLBREW_PATH = /home/njh/perl5/perlbrew/bin:/home/njh/perl5/perlbrew/perls/perl-5.8.1/bin
    PERLBREW_PERL = perl-5.8.1
    PERLBREW_ROOT = /home/njh/perl5/perlbrew
    PERLBREW_VERSION = 0.74
    PERL_EXTUTILS_AUTOINSTALL = --defaultdeps
    PERL_LOCAL_LIB_ROOT = 
    PERL_MM_USE_DEFAULT = 1
    SHELL = /bin/sh

Perl special variables (and OS-specific diagnostics, for MSWin32):

    $^X = /home/njh/perl5/perlbrew/perls/perl-5.8.1/bin/perl
    $UID/$EUID = 1000 / 1000
    $GID = 1000 1000 200 46 44 30 29 25 24 4
    $EGID = 1000 1000 200 46 44 30 29 25 24 4

Perl module toolchain versions installed:

    Module              Have    
    ------------------- --------
    CPAN                2.10    
    CPAN::Meta          2.150005
    Cwd                 3.47    
    ExtUtils::CBuilder  0.280224
    ExtUtils::Command   7.10    
    ExtUtils::Install   2.04    
    ExtUtils::MakeMaker 7.10    
    ExtUtils::Manifest  1.68    
    ExtUtils::ParseXS   3.30    
    File::Spec          3.47    
    JSON                2.61    
    JSON::PP            2.27300 
    Module::Build       0.4216  
    Module::Signature   n/a     
    Parse::CPAN::Meta   1.4417  
    Test::Harness       3.36    
    Test::More          1.001014
    YAML                1.15    
    YAML::Syck          1.29    
    version             0.9912  


--

Summary of my perl5 (revision 5.0 version 8 subversion 1) configuration:
  Platform:
    osname=linux, osvers=3.6.11+, archname=armv6l-linux-thread-multi
    uname='linux pi 3.6.11+ #371 preempt thu feb 7 16:31:35 gmt 2013 armv6l gnulinux '
    config_args='-de -Dprefix=/home/njh/perl5/perlbrew/perls/perl-5.8.1 -Duseithreads -Dusemultiplicity -Accflags=-Os -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -fomit-frame-pointer -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -Aeval:scriptdir=/home/njh/perl5/perlbrew/perls/perl-5.8.1/bin'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -Os -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -fomit-frame-pointer -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -Os -W -Wformat=2 -Wswitch -Wshadow -Wwrite-strings -Wuninitialized -Wall -pipe -fomit-frame-pointer -pedantic -D_FORTIFY_SOURCE=2 -Wpointer-arith -Wstrict-prototypes -fstack-protector -Wstack-protector -Wextra -Wbad-function-cast -Wcast-align -Wcast-qual -Wdisabled-optimization -Wendif-labels -Wfloat-equal -Wformat-nonliteral -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wformat-security -fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='4.6.3', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib/arm-linux-gnueabihf /lib /usr/lib/arm-linux-gnueabihf /usr/lib
    libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
    libc=, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.13'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
  Built under linux
  Compiled at Feb 21 2013 07:25:38
  %ENV:
    PERL="/home/njh/perl5/perlbrew/perls/perl-5.8.1/bin/perl"
    PERL5LIB=""
    PERL5OPT=""
    PERL5_CPANPLUS_IS_RUNNING="11304"
    PERL5_CPAN_IS_RUNNING="11304"
    PERL5_MINISMOKEBOX="0.58"
    PERLBREW_BASHRC_VERSION="0.74"
    PERLBREW_LIB=""
    PERLBREW_MANPATH="/home/njh/perl5/perlbrew/perls/perl-5.8.1/man"
    PERLBREW_PATH="/home/njh/perl5/perlbrew/bin:/home/njh/perl5/perlbrew/perls/perl-5.8.1/bin"
    PERLBREW_PERL="perl-5.8.1"
    PERLBREW_ROOT="/home/njh/perl5/perlbrew"
    PERLBREW_VERSION="0.74"
    PERL_EXTUTILS_AUTOINSTALL="--defaultdeps"
    PERL_LOCAL_LIB_ROOT=""
    PERL_MM_USE_DEFAULT="1"
  @INC:
    /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1/armv6l-linux-thread-multi
    /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/5.8.1
    /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/site_perl/5.8.1/armv6l-linux-thread-multi
    /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/site_perl/5.8.1
    /home/njh/perl5/perlbrew/perls/perl-5.8.1/lib/site_perl
    .