Nmap Development mailing list archives

Problems with compiling nmap 6.40 on AIX


From: mamfelt <mamfelt () gmail com>
Date: Thu, 17 Oct 2013 09:12:32 +0200

1) Yes, I was using xlc - I just read that you do not support xlC. Am very curious to understand why why only gcc is supported. I am beginning to get the feeling that GNU is trying to become it's own standards body. And if not GNU itself, then the users of GNU may succeed in this by using a feature only in a GNU product library, and then saying "we dont support international standards such as POSIX, ISO, etc.."

2) Maybe gcc supplies it own files that override /usr/include/* on AIX (bos.adt.include) - as the problem I am getting concerns macro name collision.

"/usr/include/netinet/ip_icmp.h", line 88.9: 1540-0848 (S) The macro name "icmp_pptr" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 133.9: 1540-0425 (I) "icmp_pptr" is defined on line 133 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 89.9: 1540-0848 (S) The macro name "icmp_gwaddr" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 132.9: 1540-0425 (I) "icmp_gwaddr" is defined on line 132 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 175.9: 1540-0848 (S) The macro name "ICMP_INFOTYPE" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 101.9: 1540-0425 (I) "ICMP_INFOTYPE" is defined on line 101 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 88.9: 1540-0848 (S) The macro name "icmp_pptr" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 133.9: 1540-0425 (I) "icmp_pptr" is defined on line 133 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 89.9: 1540-0848 (S) The macro name "icmp_gwaddr" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 132.9: 1540-0425 (I) "icmp_gwaddr" is defined on line 132 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 175.9: 1540-0848 (S) The macro name "ICMP_INFOTYPE" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 101.9: 1540-0425 (I) "ICMP_INFOTYPE" is defined on line 101 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 88.9: 1540-0848 (S) The macro name "icmp_pptr" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 133.9: 1540-0425 (I) "icmp_pptr" is defined on line 133 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 89.9: 1540-0848 (S) The macro name "icmp_gwaddr" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 132.9: 1540-0425 (I) "icmp_gwaddr" is defined on line 132 of "./libdnet-stripped/include/dnet/icmp.h". "/usr/include/netinet/ip_icmp.h", line 175.9: 1540-0848 (S) The macro name "ICMP_INFOTYPE" is already defined with a different definition. "./libdnet-stripped/include/dnet/icmp.h", line 101.9: 1540-0425 (I) "ICMP_INFOTYPE" is defined on line 101 of "./libdnet-stripped/include/dnet/icmp.h".
make: *** [makefile.dep] Error 1

from nmap:
/*
 *  Unreachable, source quench, redirect, time exceeded,
 *  parameter problem message data
 */
struct icmp_msg_quote {
        uint32_t        icmp_void;              /* must be zero */
#define icmp_gwaddr icmp_void /* router IP address to use */
#define icmp_pptr       icmp_void               /* ptr to bad octet field */
uint8_t icmp_ip __flexarr; /* IP hdr + 8 bytes of pkt */
};

from IBM/AIX (5.3 TL07) include files:
(excerpt)
/* @(#)52 1.10 src/bos/kernext/inet/ip_icmp.h, sockinc, bos530 12/12/00 11:16:35 */
/*
 *   COMPONENT_NAME: SYSXINET
 *
 *   FUNCTIONS: ICMP_ADVLEN
 *              ICMP_INFOTYPE
 *
 *
 *   ORIGINS: 26,27,85,127
 *
 *
 *   (C) COPYRIGHT International Business Machines Corp. 1988,1996
 *   All Rights Reserved
 *   Licensed Materials - Property of IBM
 *   US Government Users Restricted Rights - Use, duplication or
 *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 */
/icmp_pptr
        union {
                u_char ih_pptr;                 /* ICMP_PARAMPROB */
                struct in_addr ih_gwaddr;       /* ICMP_REDIRECT */
                struct ih_idseq {
                        n_short icd_id;
                        n_short icd_seq;
                } ih_idseq;
                int ih_void;
                /* ICMP_UNREACH_NEEDFRAG -- Path MTU Discovery (RFC1191) */
                struct ih_pmtu {
                        n_short ipm_void;
                        n_short ipm_nextmtu;
                } ih_pmtu;
        } icmp_hun;
#define icmp_pptr       icmp_hun.ih_pptr
#define icmp_gwaddr     icmp_hun.ih_gwaddr
#define icmp_id         icmp_hun.ih_idseq.icd_id
#define icmp_seq        icmp_hun.ih_idseq.icd_seq
#define icmp_void       icmp_hun.ih_void
#define icmp_pmvoid     icmp_hun.ih_pmtu.ipm_void
#define icmp_nextmtu    icmp_hun.ih_pmtu.ipm_nextmtu
        union {
                struct id_ts {
                        n_time its_otime;
                        n_time its_rtime;
                        n_time its_ttime;
                } id_ts;
                struct ip_extid {
===
Note: I can switch to gcc - I have a second vm setup just for that. I would rather not go that way as I have been learning that some gnu libraries, when compiled with gcc end up requiring everything to be compiled in gcc. Somewhere, no idea why, som gnu product libraries build-in compiler dependancies. Very un-portable for something that presumes to be an API.

Anyway, I would much rather find a way to port this to AIX rather than rediscover parts of it.

And, I am honestly curious why non-gnu cc support is so limited in the (or perhaps "parts of" is more accurate) "open source" community.

regards,
Michael
_______________________________________________
Sent through the dev mailing list
http://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/


Current thread: