robertdavidgraham / masscan

TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
GNU Affero General Public License v3.0
23.26k stars 3.04k forks source link

Centos 5.9 ( nagios ) compilation error. #114

Closed gh0stid closed 9 years ago

gh0stid commented 9 years ago

Hello! sorry to disturb you all but i have a question ... Im Trying to compile masscan on Nagios Centos

I did yum install all the dependencies still . got one error when trying to compile.

[root@sc50 mass-scan]# git clone https://github.com/robertdavidgraham/masscan Cloning into 'masscan'... remote: Counting objects: 3046, done. remote: Total 3046 (delta 0), reused 0 (delta 0) Receiving objects: 100% (3046/3046), 1.99 MiB | 1.96 MiB/s, done. Resolving deltas: 100% (1934/1934), done. [root@sc50 mass-scan]# cd masscan/ [root@sc50 masscan]# make gcc -g -ggdb -Wall -O3 -c src/crypto-base64.c -o tmp/crypto-base64.o gcc -g -ggdb -Wall -O3 -c src/crypto-blackrock2.c -o tmp/crypto-blackrock2.o gcc -g -ggdb -Wall -O3 -c src/event-timeout.c -o tmp/event-timeout.o gcc -g -ggdb -Wall -O3 -c src/in-binary.c -o tmp/in-binary.o gcc -g -ggdb -Wall -O3 -c src/logger.c -o tmp/logger.o gcc -g -ggdb -Wall -O3 -c src/main.c -o tmp/main.o src/main.c: In function ‘flush_packets’: src/main.c:191: warning: dereferencing type-punned pointer will break strict-aliasing rules gcc -g -ggdb -Wall -O3 -c src/main-conf.c -o tmp/main-conf.o -DGIT=\"1.0.3-82-g6f2d6af\" gcc -g -ggdb -Wall -O3 -c src/main-dedup.c -o tmp/main-dedup.o gcc -g -ggdb -Wall -O3 -c src/main-initadapter.c -o tmp/main-initadapter.o gcc -g -ggdb -Wall -O3 -c src/main-listscan.c -o tmp/main-listscan.o gcc -g -ggdb -Wall -O3 -c src/main-ptrace.c -o tmp/main-ptrace.o gcc -g -ggdb -Wall -O3 -c src/main-readrange.c -o tmp/main-readrange.o gcc -g -ggdb -Wall -O3 -c src/main-src.c -o tmp/main-src.o gcc -g -ggdb -Wall -O3 -c src/main-status.c -o tmp/main-status.o gcc -g -ggdb -Wall -O3 -c src/main-throttle.c -o tmp/main-throttle.o gcc -g -ggdb -Wall -O3 -c src/masscan-app.c -o tmp/masscan-app.o gcc -g -ggdb -Wall -O3 -c src/out-binary.c -o tmp/out-binary.o gcc -g -ggdb -Wall -O3 -c src/out-certs.c -o tmp/out-certs.o gcc -g -ggdb -Wall -O3 -c src/out-grepable.c -o tmp/out-grepable.o gcc -g -ggdb -Wall -O3 -c src/out-json.c -o tmp/out-json.o gcc -g -ggdb -Wall -O3 -c src/out-null.c -o tmp/out-null.o gcc -g -ggdb -Wall -O3 -c src/output.c -o tmp/output.o gcc -g -ggdb -Wall -O3 -c src/out-redis.c -o tmp/out-redis.o gcc -g -ggdb -Wall -O3 -c src/out-text.c -o tmp/out-text.o gcc -g -ggdb -Wall -O3 -c src/out-unicornscan.c -o tmp/out-unicornscan.o gcc -g -ggdb -Wall -O3 -c src/out-xml.c -o tmp/out-xml.o gcc -g -ggdb -Wall -O3 -c src/pixie-backtrace.c -o tmp/pixie-backtrace.o gcc -g -ggdb -Wall -O3 -c src/pixie-file.c -o tmp/pixie-file.o gcc -g -ggdb -Wall -O3 -c src/pixie-threads.c -o tmp/pixie-threads.o src/pixie-threads.c: In function ‘pixie_cpu_get_count’: src/pixie-threads.c:157: warning: implicit declaration of function ‘CPU_COUNT’ gcc -g -ggdb -Wall -O3 -c src/pixie-timer.c -o tmp/pixie-timer.o gcc -g -ggdb -Wall -O3 -c src/proto-arp.c -o tmp/proto-arp.o gcc -g -ggdb -Wall -O3 -c src/proto-banner1.c -o tmp/proto-banner1.o gcc -g -ggdb -Wall -O3 -c src/proto-banout.c -o tmp/proto-banout.o gcc -g -ggdb -Wall -O3 -c src/proto-dns.c -o tmp/proto-dns.o gcc -g -ggdb -Wall -O3 -c src/proto-ftp.c -o tmp/proto-ftp.o gcc -g -ggdb -Wall -O3 -c src/proto-http.c -o tmp/proto-http.o gcc -g -ggdb -Wall -O3 -c src/proto-icmp.c -o tmp/proto-icmp.o gcc -g -ggdb -Wall -O3 -c src/proto-imap4.c -o tmp/proto-imap4.o gcc -g -ggdb -Wall -O3 -c src/proto-interactive.c -o tmp/proto-interactive.o gcc -g -ggdb -Wall -O3 -c src/proto-netbios.c -o tmp/proto-netbios.o gcc -g -ggdb -Wall -O3 -c src/proto-ntp.c -o tmp/proto-ntp.o gcc -g -ggdb -Wall -O3 -c src/proto-pop3.c -o tmp/proto-pop3.o gcc -g -ggdb -Wall -O3 -c src/proto-preprocess.c -o tmp/proto-preprocess.o gcc -g -ggdb -Wall -O3 -c src/proto-sctp.c -o tmp/proto-sctp.o gcc -g -ggdb -Wall -O3 -c src/proto-smtp.c -o tmp/proto-smtp.o gcc -g -ggdb -Wall -O3 -c src/proto-snmp.c -o tmp/proto-snmp.o gcc -g -ggdb -Wall -O3 -c src/proto-ssh.c -o tmp/proto-ssh.o gcc -g -ggdb -Wall -O3 -c src/proto-ssl.c -o tmp/proto-ssl.o gcc -g -ggdb -Wall -O3 -c src/proto-ssl-test.c -o tmp/proto-ssl-test.o gcc -g -ggdb -Wall -O3 -c src/proto-tcp.c -o tmp/proto-tcp.o src/proto-tcp.c: In function ‘tcpcon_set_parameter’: src/proto-tcp.c:210: warning: dereferencing type-punned pointer will break strict-aliasing rules src/proto-tcp.c: In function ‘tcpcon_send_packet’: src/proto-tcp.c:646: warning: dereferencing type-punned pointer will break strict-aliasing rules src/proto-tcp.c: In function ‘tcp_send_RST’: src/proto-tcp.c:727: warning: dereferencing type-punned pointer will break strict-aliasing rules gcc -g -ggdb -Wall -O3 -c src/proto-tcp-telnet.c -o tmp/proto-tcp-telnet.o gcc -g -ggdb -Wall -O3 -c src/proto-udp.c -o tmp/proto-udp.o gcc -g -ggdb -Wall -O3 -c src/proto-vnc.c -o tmp/proto-vnc.o gcc -g -ggdb -Wall -O3 -c src/proto-x509.c -o tmp/proto-x509.o gcc -g -ggdb -Wall -O3 -c src/proto-zeroaccess.c -o tmp/proto-zeroaccess.o gcc -g -ggdb -Wall -O3 -c src/rand-blackrock.c -o tmp/rand-blackrock.o gcc -g -ggdb -Wall -O3 -c src/rand-lcg.c -o tmp/rand-lcg.o gcc -g -ggdb -Wall -O3 -c src/rand-primegen.c -o tmp/rand-primegen.o gcc -g -ggdb -Wall -O3 -c src/ranges.c -o tmp/ranges.o src/ranges.c: In function ‘rangelist_pick2_create’: src/ranges.c:470: warning: comparison is always false due to limited range of data type gcc -g -ggdb -Wall -O3 -c src/rawsock-arp.c -o tmp/rawsock-arp.o src/rawsock-arp.c: In function ‘arp_response’: src/rawsock-arp.c:276: warning: dereferencing type-punned pointer will break strict-aliasing rules gcc -g -ggdb -Wall -O3 -c src/rawsock.c -o tmp/rawsock.o src/rawsock.c: In function ‘rawsock_init_adapter’: src/rawsock.c:789: warning: passing argument 3 of ‘pcap_compile’ discards qualifiers from pointer target type gcc -g -ggdb -Wall -O3 -c src/rawsock-getif.c -o tmp/rawsock-getif.o gcc -g -ggdb -Wall -O3 -c src/rawsock-getip.c -o tmp/rawsock-getip.o gcc -g -ggdb -Wall -O3 -c src/rawsock-getmac.c -o tmp/rawsock-getmac.o gcc -g -ggdb -Wall -O3 -c src/rawsock-getroute.c -o tmp/rawsock-getroute.o gcc -g -ggdb -Wall -O3 -c src/rawsock-pcapfile.c -o tmp/rawsock-pcapfile.o gcc -g -ggdb -Wall -O3 -c src/rawsock-pfring.c -o tmp/rawsock-pfring.o gcc -g -ggdb -Wall -O3 -c src/rte-ring.c -o tmp/rte-ring.o src/rte-ring.c: In function ‘test_consumer_thread’: src/rte-ring.c:288: warning: dereferencing type-punned pointer will break strict-aliasing rules src/rte-ring.c:301: warning: dereferencing type-punned pointer will break strict-aliasing rules src/rte-ring.c: In function ‘test_producer_thread’: src/rte-ring.c:321: warning: value computed is not used src/rte-ring.c:331: warning: value computed is not used gcc -g -ggdb -Wall -O3 -c src/script.c -o tmp/script.o gcc -g -ggdb -Wall -O3 -c src/script-ntp-monlist.c -o tmp/script-ntp-monlist.o gcc -g -ggdb -Wall -O3 -c src/siphash24.c -o tmp/siphash24.o gcc -g -ggdb -Wall -O3 -c src/smack1.c -o tmp/smack1.o gcc -g -ggdb -Wall -O3 -c src/smackqueue.c -o tmp/smackqueue.o gcc -g -ggdb -Wall -O3 -c src/string_s.c -o tmp/string_s.o gcc -g -ggdb -Wall -O3 -c src/syn-cookie.c -o tmp/syn-cookie.o gcc -g -ggdb -Wall -O3 -c src/templ-payloads.c -o tmp/templ-payloads.o gcc -g -ggdb -Wall -O3 -c src/templ-pkt.c -o tmp/templ-pkt.o gcc -g -ggdb -Wall -O3 -c src/xring.c -o tmp/xring.o src/xring.c: In function ‘test_producer_thread’: src/xring.c:139: warning: value computed is not used src/xring.c:145: warning: value computed is not used gcc -g -ggdb -Wall -O3 -o bin/masscan tmp/crypto-base64.o tmp/crypto-blackrock2.o tmp/event-timeout.o tmp/in-binary.o tmp/logger.o tmp/main.o tmp/main-conf.o tmp/main-dedup.o tmp/main-initadapter.o tmp/main-listscan.o tmp/main-ptrace.o tmp/main-readrange.o tmp/main-src.o tmp/main-status.o tmp/main-throttle.o tmp/masscan-app.o tmp/out-binary.o tmp/out-certs.o tmp/out-grepable.o tmp/out-json.o tmp/out-null.o tmp/output.o tmp/out-redis.o tmp/out-text.o tmp/out-unicornscan.o tmp/out-xml.o tmp/pixie-backtrace.o tmp/pixie-file.o tmp/pixie-threads.o tmp/pixie-timer.o tmp/proto-arp.o tmp/proto-banner1.o tmp/proto-banout.o tmp/proto-dns.o tmp/proto-ftp.o tmp/proto-http.o tmp/proto-icmp.o tmp/proto-imap4.o tmp/proto-interactive.o tmp/proto-netbios.o tmp/proto-ntp.o tmp/proto-pop3.o tmp/proto-preprocess.o tmp/proto-sctp.o tmp/proto-smtp.o tmp/proto-snmp.o tmp/proto-ssh.o tmp/proto-ssl.o tmp/proto-ssl-test.o tmp/proto-tcp.o tmp/proto-tcp-telnet.o tmp/proto-udp.o tmp/proto-vnc.o tmp/proto-x509.o tmp/proto-zeroaccess.o tmp/rand-blackrock.o tmp/rand-lcg.o tmp/rand-primegen.o tmp/ranges.o tmp/rawsock-arp.o tmp/rawsock.o tmp/rawsock-getif.o tmp/rawsock-getip.o tmp/rawsock-getmac.o tmp/rawsock-getroute.o tmp/rawsock-pcapfile.o tmp/rawsock-pfring.o tmp/rte-ring.o tmp/script.o tmp/script-ntp-monlist.o tmp/siphash24.o tmp/smack1.o tmp/smackqueue.o tmp/string_s.o tmp/syn-cookie.o tmp/templ-payloads.o tmp/templ-pkt.o tmp/xring.o -lpcap -lm -lrt -ldl -lpthread tmp/pixie-threads.o: In function pixie_cpu_get_count': /root/mass-scan/masscan/src/pixie-threads.c:157: undefined reference toCPU_COUNT' collect2: ld returned 1 exit status make: *\ [bin/masscan] Error 1

Thank you for future support. ill be waiting!

gh0stid commented 9 years ago

anyone ... ?

caveman99 commented 9 years ago

To compile with GLIBC 2.5 based systems, use this patch

--- src/pixie-threads.c~        2014-10-02 11:32:04.000000000 +0200
+++ src/pixie-threads.c 2014-10-02 11:32:04.000000000 +0200
@@ -154,7 +154,15 @@
             perror("sched_getaffinity");
             return 1;
         } else {
+#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 6)
             return CPU_COUNT(&mask);
+#else
+            unsigned int bit;
+            int np;
+            for( np = 0, bit = 0; bit < sizeof(mask); bit++ )
+              np += (((uint8_t *)&mask)[bit / 8] >> (bit % 8)) & 1;
+            return np;
+#endif /* GLIBC */
         }
     }
 #else
gh0stid commented 9 years ago

I am deeply sorry to ask such a question.. but "about where" ( what lines ) should i add it ?

perror("sched_getaffinity"); return 1; } else { +#if GLIBC > 2 || (GLIBC == 2 && GLIBC_MINOR >= 6) return CPU_COUNT(&mask); +#else

thank you .. once again!

gh0stid commented 9 years ago

nevermind. found it. sorry for the stupid question.

it work ! Thanks a lot for the reply and the quick fix !