===> License GPLv3 accepted by the user ===> miruo-0cipiertest depends on file: /usr/local/sbin/pkg - found ===> Fetching all distfiles required by miruo-0cipiertest for building ===> Extracting for miruo-0cipiertest => SHA256 Checksum OK for KLab-miruo-0cipiertest_GH0.tar.gz. ===> Patching for miruo-0cipiertest ===> Configuring for miruo-0cipiertest configure: loading site script /usr/ports/Templates/config.site checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... (cached) /bin/mkdir -p checking for gawk... (cached) /usr/bin/awk checking whether make sets $(MAKE)... yes checking for gcc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of cc... gcc3 checking how to run the C preprocessor... cpp checking for grep that handles long lines and -e... (cached) /usr/bin/grep checking for egrep... (cached) /usr/bin/egrep checking for ANSI C header files... (cached) yes checking for sys/types.h... (cached) yes checking for sys/stat.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for memory.h... (cached) yes checking for strings.h... (cached) yes checking for inttypes.h... (cached) yes checking for stdint.h... (cached) yes checking for unistd.h... (cached) yes checking for arpa/inet.h... (cached) yes checking for fcntl.h... (cached) yes checking for limits.h... (cached) yes checking for netinet/in.h... (cached) yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking for sys/socket.h... (cached) yes checking for sys/time.h... (cached) yes checking for unistd.h... (cached) yes checking pcap.h usability... yes checking pcap.h presence... yes checking for pcap.h... yes checking sys/epoll.h usability... no checking sys/epoll.h presence... no checking for sys/epoll.h... no checking for an ANSI C-conforming const... yes checking for int64_t... (cached) yes checking whether time.h and sys/time.h may both be included... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for uint16_t... (cached) yes checking for uint32_t... (cached) yes checking for uint64_t... (cached) yes checking for uint8_t... (cached) yes checking for stdlib.h... (cached) yes checking for GNU libc compatible malloc... (cached) yes checking for working memcmp... yes checking for sys/select.h... (cached) yes checking for sys/socket.h... (cached) yes checking types of arguments for select... int,fd_set *,struct timeval * checking for gettimeofday... (cached) yes checking for inet_ntoa... (cached) yes checking for memset... (cached) yes checking for select... (cached) yes checking for strerror... (cached) yes configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands ===> Building for miruo-0cipiertest --- all --- /usr/bin/make all-am --- miruo.o --- --- lnklist.o --- --- miruo.o --- cc -DHAVE_CONFIG_H -I. -O2 -pipe -fstack-protector -fno-strict-aliasing -MT miruo.o -MD -MP -MF .deps/miruo.Tpo -c -o miruo.o miruo.c --- lnklist.o --- cc -DHAVE_CONFIG_H -I. -O2 -pipe -fstack-protector -fno-strict-aliasing -MT lnklist.o -MD -MP -MF .deps/lnklist.Tpo -c -o lnklist.o lnklist.c --- miruo.o --- miruo.c:130:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while(r=strtok(NULL, " ")){ ~^~~~~~~~~~~~~~~~~~ miruo.c:130:12: note: place parentheses around the assignment to silence this warning while(r=strtok(NULL, " ")){ ^ ( ) miruo.c:130:12: note: use '==' to turn this assignment into an equality comparison while(r=strtok(NULL, " ")){ ^ == miruo.c:147:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] while(r=strtok(NULL, " ")){ ~^~~~~~~~~~~~~~~~~~ miruo.c:147:10: note: place parentheses around the assignment to silence this warning while(r=strtok(NULL, " ")){ ^ ( ) miruo.c:147:10: note: use '==' to turn this assignment into an equality comparison while(r=strtok(NULL, " ")){ ^ == miruo.c:169:13: warning: passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(str, "%lluGB", val / 1024 / 1024 / 1024); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:169:28: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat] sprintf(str, "%lluGB", val / 1024 / 1024 / 1024); ~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~ %lu miruo.c:171:13: warning: passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(str, "%lluMB", val / 1024 / 1024); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:171:28: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat] sprintf(str, "%lluMB", val / 1024 / 1024); ~~~~ ^~~~~~~~~~~~~~~~~ %lu miruo.c:173:13: warning: passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(str, "%lluKB", val / 1024); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:173:28: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat] sprintf(str, "%lluKB", val / 1024); ~~~~ ^~~~~~~~~~ %lu miruo.c:175:13: warning: passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(str, "%lluB", val); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:175:27: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] sprintf(str, "%lluB", val); ~~~~ ^~~ %lu miruo.c:270:17: warning: passing 'uint8_t [32]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(buf, "mss=%u", d0); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:273:17: warning: passing 'uint8_t [32]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(buf, "wscale=%u", d0); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:276:17: warning: passing 'uint8_t [32]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(buf, "sackOK"); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:279:17: warning: passing 'uint8_t [32]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(buf, "sack 1"); /* len = 10 */ ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:282:17: warning: passing 'uint8_t [32]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(buf, "timestamp %u %u", d0, d1); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:285:17: warning: passing 'uint8_t [32]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] sprintf(buf, "len=%hhu opt[%hhu]", l, t); ^~~ /usr/include/stdio.h:277:31: note: passing argument to parameter here int sprintf(char * __restrict, const char * __restrict, ...); ^ miruo.c:291:14: warning: passing 'uint8_t [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strcat(optstr, ", "); ^~~~~~ /usr/include/string.h:75:31: note: passing argument to parameter here char *strcat(char * __restrict, const char * __restrict); ^ miruo.c:293:12: warning: passing 'uint8_t [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strcat(optstr, buf); ^~~~~~ /usr/include/string.h:75:31: note: passing argument to parameter here char *strcat(char * __restrict, const char * __restrict); ^ miruo.c:293:20: warning: passing 'uint8_t [32]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] strcat(optstr, buf); ^~~ /usr/include/string.h:75:56: note: passing argument to parameter here char *strcat(char * __restrict, const char * __restrict); ^ miruo.c:295:9: warning: returning 'uint8_t [256]' from a function with result type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] return(optstr); ^~~~~~~~ miruo.c:414:30: warning: more '%' conversions than data arguments [-Wformat] printf("option[%02d]: %02x\n", h->option[i]); ~~~^ miruo.c:442:43: warning: format specifies type 'int' but the argument has type 'time_t' (aka 'long') [-Wformat] fprintf(stderr, "debug time=%d.%06d\n", tv[2].tv_sec, tv[2].tv_usec); ~~ ^~~~~~~~~~~~ %ld miruo.c:442:57: warning: format specifies type 'int' but the argument has type 'suseconds_t' (aka 'long') [-Wformat] fprintf(stderr, "debug time=%d.%06d\n", tv[2].tv_sec, tv[2].tv_usec); ~~~~ ^~~~~~~~~~~~~ %06ld miruo.c:577:13: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(optlen = h->ihl - sizeof(iphdraw)){ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~ miruo.c:577:13: note: place parentheses around the assignment to silence this warning if(optlen = h->ihl - sizeof(iphdraw)){ ^ ( ) miruo.c:577:13: note: use '==' to turn this assignment into an equality comparison if(optlen = h->ihl - sizeof(iphdraw)){ ^ == miruo.c:673:24: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(opt.tsegpool.free = tp->next){ ~~~~~~~~~~~~~~~~~~^~~~~~~~~~ miruo.c:673:24: note: place parentheses around the assignment to silence this warning if(opt.tsegpool.free = tp->next){ ^ ( ) miruo.c:673:24: note: use '==' to turn this assignment into an equality comparison if(opt.tsegpool.free = tp->next){ ^ == miruo.c:806:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(s = opt.tsespool.free){ ~~^~~~~~~~~~~~~~~~~~~ miruo.c:806:8: note: place parentheses around the assignment to silence this warning if(s = opt.tsespool.free){ ^ ( ) miruo.c:806:8: note: use '==' to turn this assignment into an equality comparison if(s = opt.tsespool.free){ ^ == miruo.c:807:26: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(opt.tsespool.free = s->next){ ~~~~~~~~~~~~~~~~~~^~~~~~~~~ miruo.c:807:26: note: place parentheses around the assignment to silence this warning if(opt.tsespool.free = s->next){ ^ ( ) miruo.c:807:26: note: use '==' to turn this assignment into an equality comparison if(opt.tsespool.free = s->next){ ^ == miruo.c:813:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(s = malloc(sizeof(tcpsession))){ ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ miruo.c:813:10: note: place parentheses around the assignment to silence this warning if(s = malloc(sizeof(tcpsession))){ ^ ( ) miruo.c:813:10: note: use '==' to turn this assignment into an equality comparison if(s = malloc(sizeof(tcpsession))){ ^ == miruo.c:852:16: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(c->next = opt.tsespool.free){ ~~~~~~~~^~~~~~~~~~~~~~~~~~~ miruo.c:852:16: note: place parentheses around the assignment to silence this warning if(c->next = opt.tsespool.free){ ^ ( ) miruo.c:852:16: note: use '==' to turn this assignment into an equality comparison if(c->next = opt.tsespool.free){ ^ == miruo.c:868:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(opt.tsact = n){ ~~~~~~~~~~^~~ miruo.c:868:18: note: place parentheses around the assignment to silence this warning if(opt.tsact = n){ ^ ( ) miruo.c:868:18: note: use '==' to turn this assignment into an equality comparison if(opt.tsact = n){ ^ == miruo.c:902:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(c->next = opt.tsact){ ~~~~~~~~^~~~~~~~~~~ miruo.c:902:14: note: place parentheses around the assignment to silence this warning if(c->next = opt.tsact){ ^ ( ) miruo.c:902:14: note: use '==' to turn this assignment into an equality comparison if(c->next = opt.tsact){ ^ == miruo.c:930:77: warning: format specifies type 'unsigned int' but the argument has type 'long' [-Wformat] sprintf(ts[0], "%02d:%02d:%02d.%03u", t->tm_hour, t->tm_min, t->tm_sec, c->segment.ts.tv_usec / 1000); ~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ %03ld miruo.c:1030:74: warning: format specifies type 'unsigned int' but the argument has type 'long' [-Wformat] sprintf(ts, "%02d:%02d:%02d.%03u", t->tm_hour, t->tm_min, t->tm_sec, sg->ts.tv_usec / 1000); ~~~~ ^~~~~~~~~~~~~~~~~~~~~ %03ld miruo.c:1126:35: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat] sprintf(tstr, "%02d:%02d:%02d", ctm/3600, (ctm % 3600)/60, ctm % 60); ~~~~ ^~~~~~~~ %02lu miruo.c:1126:45: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat] sprintf(tstr, "%02d:%02d:%02d", ctm/3600, (ctm % 3600)/60, ctm % 60); ~~~~ ^~~~~~~~~~~~~~~ %02lu miruo.c:1126:62: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat] sprintf(tstr, "%02d:%02d:%02d", ctm/3600, (ctm % 3600)/60, ctm % 60); ~~~~ ^~~~~~~~ %02lu miruo.c:1130:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, "Total Sessions : %llu\n", opt.count_ts_total); ~~~~ ^~~~~~~~~~~~~~~~~~ %lu miruo.c:1131:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, " Lookup : %llu\n", opt.count_ts_view); ~~~~ ^~~~~~~~~~~~~~~~~ %lu miruo.c:1132:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, " LongConnect : %llu\n", opt.count_ts_long); ~~~~ ^~~~~~~~~~~~~~~~~ %lu miruo.c:1133:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, " LongDelay : %llu\n", opt.count_sg_delay); ~~~~ ^~~~~~~~~~~~~~~~~~ %lu miruo.c:1134:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, " Retransmit : %llu\n", opt.count_sg_retrans); ~~~~ ^~~~~~~~~~~~~~~~~~~~ %lu miruo.c:1135:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, " Timeout : %llu\n", opt.count_ts_timeout); ~~~~ ^~~~~~~~~~~~~~~~~~~~ %lu miruo.c:1136:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, " Error : %llu\n", opt.count_ts_error); ~~~~ ^~~~~~~~~~~~~~~~~~ %lu miruo.c:1137:47: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat] fprintf(stderr, " RST : %llu\n", opt.count_rstbreak + opt.count_rstclose); ~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %lu miruo.c:1138:47: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, " fragment : %llu\n", opt.count_ip_fragment); ~~~~ ^~~~~~~~~~~~~~~~~~~~~ %lu miruo.c:1150:47: warning: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, "DropSession : %u\n", opt.count_ts_drop); ~~ ^~~~~~~~~~~~~~~~~ %lu miruo.c:1151:47: warning: format specifies type 'unsigned int' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] fprintf(stderr, "DropSegment : %u\n", opt.count_sg_drop); ~~ ^~~~~~~~~~~~~~~~~ %lu miruo.c:1154:7: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(mi = get_memmory()){ ~~~^~~~~~~~~~~~~~~ miruo.c:1154:7: note: place parentheses around the assignment to silence this warning if(mi = get_memmory()){ ^ ( ) miruo.c:1154:7: note: use '==' to turn this assignment into an equality comparison if(mi = get_memmory()){ ^ == miruo.c:1155:40: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat] fprintf(stderr, "VSZ : %lluKB\n", mi->vsz / 1024); ~~~~ ^~~~~~~~~~~~~~ %lu miruo.c:1156:40: warning: format specifies type 'unsigned long long' but the argument has type 'unsigned long' [-Wformat] fprintf(stderr, "RSS : %lluKB\n", mi->res / 1024); ~~~~ ^~~~~~~~~~~~~~ %lu miruo.c:1181:14: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(c->view = view){ ~~~~~~~~^~~~~~ miruo.c:1181:14: note: place parentheses around the assignment to silence this warning if(c->view = view){ ^ ( ) miruo.c:1181:14: note: use '==' to turn this assignment into an equality comparison if(c->view = view){ ^ == miruo.c:1199:77: warning: format specifies type 'unsigned int' but the argument has type 'long' [-Wformat] sprintf(ts, "%02d:%02d:%02d.%03u", tm->tm_hour, tm->tm_min, tm->tm_sec, opt.ntv.tv_usec/1000); ~~~~ ^~~~~~~~~~~~~~~~~~~~ %03ld miruo.c:1271:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(p = tcp_retransmit_segment(c, t)){ ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ miruo.c:1271:8: note: place parentheses around the assignment to silence this warning if(p = tcp_retransmit_segment(c, t)){ ^ ( ) miruo.c:1271:8: note: use '==' to turn this assignment into an equality comparison if(p = tcp_retransmit_segment(c, t)){ ^ == miruo.c:1305:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(c = add_tcpsession(s)){ ~~^~~~~~~~~~~~~~~~~~~ miruo.c:1305:10: note: place parentheses around the assignment to silence this warning if(c = add_tcpsession(s)){ ^ ( ) miruo.c:1305:10: note: use '==' to turn this assignment into an equality comparison if(c = add_tcpsession(s)){ ^ == miruo.c:1318:10: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(c = add_tcpsession(s)){ ~~^~~~~~~~~~~~~~~~~~~ miruo.c:1318:10: note: place parentheses around the assignment to silence this warning if(c = add_tcpsession(s)){ ^ ( ) miruo.c:1318:10: note: use '==' to turn this assignment into an equality comparison if(c = add_tcpsession(s)){ ^ == miruo.c:1589:41: warning: passing 'int *' to parameter of type 'uint32_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] p = read_header_tcp(&th, (u_char *)p, &l); ^~ miruo.c:588:58: note: passing argument to parameter 'l' here u_char *read_header_tcp(tcphdr *h, uint8_t *p, uint32_t *l) ^ miruo.c:1643:9: warning: implicitly declaring library function 'isspace' with type 'int (int)' [-Wimplicit-function-declaration] if(!isspace(*sp)) { ^ miruo.c:1643:9: note: include the header or explicitly provide a declaration for 'isspace' miruo.c:1666:16: warning: passing 'uint8_t *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] strncpy(buf, sg->payload, sg->plen < sizeof(buf) ? sg->plen : sizeof(buf) - 1); ^~~~~~~~~~~ /usr/include/string.h:101:57: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ miruo.c:2074:12: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(p = pcap_lookupdev(errmsg)){ ~~^~~~~~~~~~~~~~~~~~~~~~~~ miruo.c:2074:12: note: place parentheses around the assignment to silence this warning if(p = pcap_lookupdev(errmsg)){ ^ ( ) miruo.c:2074:12: note: use '==' to turn this assignment into an equality comparison if(p = pcap_lookupdev(errmsg)){ ^ == miruo.c:2098:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(p = pcap_datalink_val_to_name(opt.lktype)){ ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ miruo.c:2098:8: note: place parentheses around the assignment to silence this warning if(p = pcap_datalink_val_to_name(opt.lktype)){ ^ ( ) miruo.c:2098:8: note: use '==' to turn this assignment into an equality comparison if(p = pcap_datalink_val_to_name(opt.lktype)){ ^ == miruo.c:2101:8: warning: using the result of an assignment as a condition without parentheses [-Wparentheses] if(p = pcap_datalink_val_to_description(opt.lktype)){ ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ miruo.c:2101:8: note: place parentheses around the assignment to silence this warning if(p = pcap_datalink_val_to_description(opt.lktype)){ ^ ( ) miruo.c:2101:8: note: use '==' to turn this assignment into an equality comparison if(p = pcap_datalink_val_to_description(opt.lktype)){ ^ == --- lnklist.o --- mv -f .deps/lnklist.Tpo .deps/lnklist.Po --- miruo.o --- 61 warnings generated. mv -f .deps/miruo.Tpo .deps/miruo.Po --- miruo --- cc -O2 -pipe -fstack-protector -fno-strict-aliasing -fstack-protector -o miruo miruo.o lnklist.o -lpcap 0