Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Mar 2009 12:01:25 +0100
From:      Rui Paulo <rpaulo@FreeBSD.org>
To:        Daniel Roethlisberger <daniel@roe.ch>
Cc:        ports@freebsd.org, Peter Pentchev <roam@ringlet.net>
Subject:   Re: Dangling extern "C" in pcap.h (was: Re: nmap broken on current)
Message-ID:  <A5547991-C9FB-46DA-9374-892D9E6E0D4E@FreeBSD.org>
In-Reply-To: <20090330194725.GA10713@hobbes.ustdmz.roe.ch>
References:  <200903300223.n2U2N6mO074911@pozo.com> <20090330072620.GA928@straylight.m.ringlet.net> <20090330113215.GA4768@hobbes.ustdmz.roe.ch> <20090330194725.GA10713@hobbes.ustdmz.roe.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--Apple-Mail-2-344563865
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
Content-Transfer-Encoding: 7bit


On 30 Mar 2009, at 20:47, Daniel Roethlisberger wrote:

> Daniel Roethlisberger <daniel@roe.ch> 2009-03-30:
>> Peter Pentchev <roam@ringlet.net> 2009-03-30:
>>> On Sun, Mar 29, 2009 at 07:23:00PM -0700, Manfred Antar wrote:
>>>> the nmap port is broken on current:
>>>
>>> Shouldn't this be reported to the port's maintainer - Daniel
>>> Roethlisberger <daniel@roe.ch>? :)  I've CC'd him on this message...
>>
>> Thanks for CC:-ing me, Peter.
>>
>>>> c++ -c -I/usr/local/include/lua51 -I/usr/local/include -I/usr/ 
>>>> local/include  -I/usr/include -Inbase -Insock/include -O2 -pipe - 
>>>> fno-strict-aliasing -Wall  -fno-strict-aliasing   -DHAVE_CONFIG_H  
>>>> -DNMAP_NAME=\"Nmap\" -DNMAP_URL=\"http://nmap.org\" - 
>>>> DNMAP_PLATFORM=\"i386-portbld-freebsd8.0\" -DNMAPDATADIR=\"/usr/ 
>>>> local/share/nmap\" -DNMAPLIBEXECDIR=\"/usr/local/libexec/nmap\"  
>>>> main.cc -o main.o
>>>> c++ -c -I/usr/local/include/lua51 -I/usr/local/include -I/usr/ 
>>>> local/include  -I/usr/include -Inbase -Insock/include -O2 -pipe - 
>>>> fno-strict-aliasing -Wall  -fno-strict-aliasing   -DHAVE_CONFIG_H  
>>>> -DNMAP_NAME=\"Nmap\" -DNMAP_URL=\"http://nmap.org\" - 
>>>> DNMAP_PLATFORM=\"i386-portbld-freebsd8.0\" -DNMAPDATADIR=\"/usr/ 
>>>> local/share/nmap\" -DNMAPLIBEXECDIR=\"/usr/local/libexec/nmap\"  
>>>> nmap.cc -o nmap.o
>>>> In file included from Target.h:115,
>>>>                 from traceroute.h:101,
>>>>                 from nmap.cc:111:
>>>> tcpip.h:458: error: declaration of C function 'int resolve(char*,  
>>>> in_addr*)' conflicts with
>>>> tcpip.h:453: error: previous declaration 'int resolve(char*,  
>>>> sockaddr_storage*, size_t*, int)' here
>>>> In file included from nmap.cc:121:
>>>> utils.h:188: error: template with C linkage
>>>> nmap.h: In function 'int nmap_main(int, char**)':
>>>> nmap.h:416: error: previous declaration of 'int nmap_main(int,  
>>>> char**)' with 'C++' linkage
>>>> nmap.cc:503: error: conflicts with new declaration with 'C' linkage
>>>> nmap.cc: In function 'int nmap_main(int, char**)':
>>>> nmap.cc:1167: error: cannot convert 'sockaddr_storage*' to  
>>>> 'in_addr*' for argument '2' to 'int resolve(char*, in_addr*)'
>>>> nmap.cc:1673: error: cannot convert 'sockaddr_storage*' to  
>>>> 'in_addr*' for argument '2' to 'int resolve(char*, in_addr*)'
>>>> nmap.h: In function 'void nmap_free_mem()':
>>>> nmap.h:418: error: previous declaration of 'void nmap_free_mem()'  
>>>> with 'C++' linkage
>>>> nmap.cc:1907: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h: In function 'int gather_logfile_resumption_state(char*,  
>>>> int*, char***)':
>>>> nmap.h:438: error: previous declaration of 'int  
>>>> gather_logfile_resumption_state(char*, int*, char***)' with 'C++'  
>>>> linkage
>>>> nmap.cc:1932: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h: In function 'void nmap_free_mem()':
>>>> nmap.h:413: error: previous declaration of 'void  
>>>> init_socket(int)' with 'C++' linkage
>>>> nmap.cc:2038: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:407: error: previous declaration of 'void getpts(const  
>>>> char*, scan_lists*)' with 'C++' linkage
>>>> nmap.cc:2128: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:409: error: previous declaration of 'void  
>>>> getpts_simple(const char*, int, short unsigned int**, int*)' with  
>>>> 'C++' linkage
>>>> nmap.cc:2191: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:410: error: previous declaration of 'void  
>>>> free_scan_lists(scan_lists*)' with 'C++' linkage
>>>> nmap.cc:2400: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:402: error: previous declaration of 'void  
>>>> printinteractiveusage()' with 'C++' linkage
>>>> nmap.cc:2410: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:426: error: previous declaration of 'char*  
>>>> seqreport(seq_info*)' with 'C++' linkage
>>>> nmap.cc:2432: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:434: error: previous declaration of 'const char*  
>>>> seqidx2difficultystr(long unsigned int)' with 'C++' linkage
>>>> nmap.cc:2441: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:429: error: previous declaration of 'const char*  
>>>> ipidclass2ascii(int)' with 'C++' linkage
>>>> nmap.cc:2445: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:430: error: previous declaration of 'const char*  
>>>> tsseqclass2ascii(int)' with 'C++' linkage
>>>> nmap.cc:2466: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:423: error: previous declaration of 'const char*  
>>>> scantype2str(stype)' with 'C++' linkage
>>>> nmap.cc:2491: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:422: error: previous declaration of 'const char*  
>>>> statenum2str(int)' with 'C++' linkage
>>>> nmap.cc:2523: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:404: error: previous declaration of 'int  
>>>> ftp_anon_connect(ftpinfo*)' with 'C++' linkage
>>>> nmap.cc:2536: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:425: error: previous declaration of 'void reaper(int)'  
>>>> with 'C++' linkage
>>>> nmap.cc:2614: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h:424: error: previous declaration of 'void sigdie(int)'  
>>>> with 'C++' linkage
>>>> nmap.cc:2626: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h: In function 'int nmap_fileexistsandisreadable(const  
>>>> char*)':
>>>> nmap.h:437: error: previous declaration of 'int  
>>>> nmap_fileexistsandisreadable(const char*)' with 'C++' linkage
>>>> nmap.cc:2705: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.h: In function 'int nmap_fetchfile(char*, int, const char*)':
>>>> nmap.h:436: error: previous declaration of 'int  
>>>> nmap_fetchfile(char*, int, const char*)' with 'C++' linkage
>>>> nmap.cc:2709: error: conflicts with new declaration with 'C'  
>>>> linkage
>>>> nmap.cc: At global scope:
>>>> nmap.cc:2837: error: expected `}' at end of input
>>>> gmake[1]: *** [nmap.o] Error 1
>>>> gmake[1]: Leaving directory `/usr/ports/security/nmap/work/ 
>>>> nmap-4.76'
>>>> gmake: *** [all] Error 2
>>>> *** Error code 1
>>>>
>>>> Stop in /usr/ports/security/nmap.
>>
>> Manfred, can you file a PR and make sure to also include the date
>> of your -current sources and the content of your /etc/make.conf?
>
> Update:  This is caused by a dangling extern "C" in
> /usr/include/pcap.h, which breaks the use of libpcap from C++.
> The attached patch fixes the issue for me.
>
> I'm Cc:-ing rpaulo@ who committed the recent update to libpcap.

I'll commit this, thanks.

--
Rui Paulo


--Apple-Mail-2-344563865
content-type: application/pgp-signature; x-mac-type=70674453;
	name=PGP.sig
content-description: This is a digitally signed message part
content-disposition: inline; filename=PGP.sig
content-transfer-encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEARECAAYFAknR+AUACgkQfD8M/ASTygLSXgCeK8rNQEwQ8nDf2HY8WF7zrXgD
vjsAoIBOpZre8b89n8cvLx+5fbwW0BZQ
=PZ6+
-----END PGP SIGNATURE-----

--Apple-Mail-2-344563865--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A5547991-C9FB-46DA-9374-892D9E6E0D4E>