zmap/zmap

Zmap compile error with PF_RING

Closed this issue · 1 comments

Describe the bug
I run into an error while trying to compile zmap with PF_RING settings. All dependencies are installed, seems to be related just to PF_RING.

[  1%] Building C object lib/CMakeFiles/zmaplib.dir/blocklist.c.o
[  2%] Building C object lib/CMakeFiles/zmaplib.dir/cachehash.c.o
[  3%] Building C object lib/CMakeFiles/zmaplib.dir/constraint.c.o
[  4%] Building C object lib/CMakeFiles/zmaplib.dir/logger.c.o
[  4%] Building C object lib/CMakeFiles/zmaplib.dir/pbm.c.o
[  5%] Building C object lib/CMakeFiles/zmaplib.dir/random.c.o
[  6%] Building C object lib/CMakeFiles/zmaplib.dir/rijndael-alg-fst.c.o
[  7%] Building C object lib/CMakeFiles/zmaplib.dir/xalloc.c.o
[  8%] Building C object lib/CMakeFiles/zmaplib.dir/lockfd.c.o
[  9%] Building C object lib/CMakeFiles/zmaplib.dir/util.c.o
[ 10%] Building C object lib/CMakeFiles/zmaplib.dir/queue.c.o
[ 10%] Building C object lib/CMakeFiles/zmaplib.dir/csv.c.o
[ 11%] Building C object lib/CMakeFiles/zmaplib.dir/aes128.c.o
[ 12%] Linking C static library libzmaplib.a
[ 12%] Built target zmaplib
[ 12%] Built target git_versioning
[ 13%] Generating zopt.h
[ 14%] Generating lexer.c
[ 15%] Generating parser.c
[ 16%] Building C object src/CMakeFiles/zmap.dir/aesrand.c.o
[ 17%] Building C object src/CMakeFiles/zmap.dir/cyclic.c.o
[ 17%] Building C object src/CMakeFiles/zmap.dir/expression.c.o
[ 18%] Building C object src/CMakeFiles/zmap.dir/fieldset.c.o
[ 19%] Building C object src/CMakeFiles/zmap.dir/filter.c.o
[ 20%] Building C object src/CMakeFiles/zmap.dir/get_gateway.c.o
[ 21%] Building C object src/CMakeFiles/zmap.dir/iterator.c.o
[ 22%] Building C object src/CMakeFiles/zmap.dir/monitor.c.o
/root/zmap/src/monitor.c: In function ‘export_then_update’:
/root/zmap/src/monitor.c:208:70: warning: ‘%s’ directive output may be truncated writing up to 19 bytes into a region of size 18 [-Wformat-truncation=]
  208 |                 snprintf(exp->time_remaining_str, NUMBER_STR_LEN, " (%s left)",
      |                                                                      ^~
  209 |                          buf);
      |                          ~~~
In file included from /usr/include/stdio.h:894,
                 from /root/zmap/src/monitor.c:20:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:71:10: note: ‘__builtin___snprintf_chk’ output between 9 and 28 bytes into a destination of size 20
   71 |   return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   72 |                                    __glibc_objsize (__s), __fmt,
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   73 |                                    __va_arg_pack ());
      |                                    ~~~~~~~~~~~~~~~~~
[ 23%] Building C object src/CMakeFiles/zmap.dir/ports.c.o
[ 23%] Building C object src/CMakeFiles/zmap.dir/recv.c.o
[ 24%] Building C object src/CMakeFiles/zmap.dir/send.c.o
[ 25%] Building C object src/CMakeFiles/zmap.dir/shard.c.o
[ 26%] Building C object src/CMakeFiles/zmap.dir/socket.c.o
[ 27%] Building C object src/CMakeFiles/zmap.dir/state.c.o
[ 28%] Building C object src/CMakeFiles/zmap.dir/summary.c.o
[ 29%] Building C object src/CMakeFiles/zmap.dir/utility.c.o
[ 29%] Building C object src/CMakeFiles/zmap.dir/validate.c.o
[ 30%] Building C object src/CMakeFiles/zmap.dir/zmap.c.o
/root/zmap/src/zmap.c: In function ‘start_zmap’:
/root/zmap/src/zmap.c:239:67: warning: passing argument 8 of ‘pfring_zc_run_balancer’ from incompatible pointer type [-Wincompatible-pointer-types]
  239 |             zconf.pf.prefetches, round_robin_bursts_policy, NULL, distrib_func,
      |                                                                   ^~~~~~~~~~~~
      |                                                                   |
      |                                                                   int32_t (*)(pfring_zc_pkt_buff *, pfring_zc_queue *, void *) {aka int (*)(pfring_zc_pkt_buff *, void *, void *)}
In file included from /root/zmap/src/state.h:18,
                 from /root/zmap/src/ports.h:1,
                 from /root/zmap/src/zmap.c:37:
/usr/include/pfring_zc.h:826:31: note: expected ‘pfring_zc_distribution_func’ {aka ‘long int (*)(pfring_zc_pkt_buff *, void *, void *)’} but argument is of type ‘int32_t (*)(pfring_zc_pkt_buff *, pfring_zc_queue *, void *)’ {aka ‘int (*)(pfring_zc_pkt_buff *, void *, void *)’}
  826 |   pfring_zc_distribution_func distr_func,
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/root/zmap/src/zmap.c: In function ‘main’:
/root/zmap/src/zmap.c:1129:45: warning: passing argument 7 of ‘pfring_zc_create_cluster’ makes integer from pointer without a cast [-Wint-conversion]
 1129 |             total_buffers, numa_node, NULL, NULL);
      |                                             ^~~~
      |                                             |
      |                                             void *
In file included from /root/zmap/src/state.h:18,
                 from /root/zmap/src/ports.h:1,
                 from /root/zmap/src/zmap.c:37:
/usr/include/pfring_zc.h:241:13: note: expected ‘u_int32_t’ {aka ‘unsigned int’} but argument is of type ‘void *’
  241 |   u_int32_t flags
      |   ~~~~~~~~~~^~~~~
[ 31%] Building C object src/CMakeFiles/zmap.dir/zopt_compat.c.o
[ 32%] Building C object src/CMakeFiles/zmap.dir/lexer.c.o
[ 33%] Building C object src/CMakeFiles/zmap.dir/parser.c.o
/root/zmap/src/parser.c:74:23: warning: redundant redeclaration of ‘yylex’ [-Wredundant-decls]
   74 | # define YYLEX_DECL() yylex(void)
      |                       ^~~~~
/root/zmap/src/parser.c:79:5: note: in expansion of macro ‘YYLEX_DECL’
   79 | int YYLEX_DECL();
      |     ^~~~~~~~~~
In file included from /root/zmap/src/parser.y:5:
/root/zmap/src/lexer.h:305:12: note: previous declaration of ‘yylex’ with type ‘int(void)’
  305 | extern int yylex (void);
      |            ^~~~~
[ 34%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_icmp_echo.c.o
[ 35%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_icmp_echo_time.c.o
[ 35%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_tcp_synscan.c.o
[ 36%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_tcp_synackscan.c.o
[ 37%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_udp.c.o
[ 38%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_ipip.c.o
[ 39%] Building C object src/CMakeFiles/zmap.dir/probe_modules/packet.c.o
[ 40%] Building C object src/CMakeFiles/zmap.dir/probe_modules/probe_modules.c.o
[ 41%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_ntp.c.o
[ 41%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_upnp.c.o
[ 42%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_dns.c.o
[ 43%] Building C object src/CMakeFiles/zmap.dir/probe_modules/module_bacnet.c.o
[ 44%] Building C object src/CMakeFiles/zmap.dir/output_modules/module_csv.c.o
[ 45%] Building C object src/CMakeFiles/zmap.dir/output_modules/module_json.c.o
[ 46%] Building C object src/CMakeFiles/zmap.dir/output_modules/output_modules.c.o
[ 47%] Building C object src/CMakeFiles/zmap.dir/socket-pfring.c.o
[ 47%] Building C object src/CMakeFiles/zmap.dir/recv-pfring.c.o
[ 48%] Linking C executable zmap
/usr/bin/ld: CMakeFiles/zmap.dir/send.c.o: in function `send_run':
send.c:(.text+0xcf7): undefined reference to `send_batch'
/usr/bin/ld: send.c:(.text+0x115d): undefined reference to `send_batch'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/zmap.dir/build.make:702: src/zmap] Error 1
make[1]: *** [CMakeFiles/Makefile2:205: src/CMakeFiles/zmap.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

Environment:

  • OS: Ubuntu 22.04.4
[ 48%] Linking C executable zmap
/usr/bin/ld: CMakeFiles/zmap.dir/send.c.o: in function `send_run':
send.c:(.text+0xcf7): undefined reference to `send_batch'
/usr/bin/ld: send.c:(.text+0x115d): undefined reference to `send_batch'
collect2: error: ld returned 1 exit status
make[2]: *** [src/CMakeFiles/zmap.dir/build.make:702: src/zmap] Error 1
make[1]: *** [CMakeFiles/Makefile2:205: src/CMakeFiles/zmap.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

I confirm the issue. For building v3.0.0, I used the official image ntop/pfring:latest built on 'Ubuntu 22.04.1 LTS' with perfectly installed drivers. I get the same error in Debian 12 and Ubuntu 22.04