Nmap Development mailing list archives

Has anyone seen nmap compile and work on Solaris lately ?


From: dev <dev () cor0 com>
Date: Tue, 16 Dec 2014 16:38:49 -0500 (EST)


Line 907 of osscan.cc causes a compile error :

   907    tests.sort(FingerTest_lessthan);

Looked harmless to me.

Tried a simple build of nmap-6.47 on Solaris 10 with the recently
released Oracle Studio 12.4 compiler tools and things went badly on
osscan.cc thus :

osscan.cc:
"./nbase/nbase.h", line 295: Warning: attribute format is unsupported
and will be skipped..
"./nbase/nbase.h", line 301: Warning: attribute format is unsupported
and will be skipped..
"./nbase/nbase.h", line 470: Warning: attribute format is unsupported
and will be skipped..
"./nbase/nbase.h", line 472: Warning: attribute format is unsupported
and will be skipped..
"./nbase/nbase.h", line 477: Warning: attribute format is unsupported
and will be skipped..
"./nsock/include/nsock.h", line 305: Warning: Identifier expected
instead of "}".
"./nsock/include/nsock.h", line 388: Warning: Identifier expected
instead of "}".
"libnetutil/ARPHeader.h", line 285: Warning: ARPHeader::print hides the
virtual function PacketElement::print(int) const.
"libnetutil/ARPHeader.h", line 285: Warning: ARPHeader::print hides the
virtual function PacketElement::print() const.
"libnetutil/EthernetHeader.h", line 196: Warning: EthernetHeader::print
hides the virtual function PacketElement::print(int) const.
"libnetutil/EthernetHeader.h", line 196: Warning: EthernetHeader::print
hides the virtual function PacketElement::print() const.
"libnetutil/ICMPv4Header.h", line 593: Warning: ICMPv4Header::print
hides the virtual function PacketElement::print(int) const.
"libnetutil/ICMPv4Header.h", line 593: Warning: ICMPv4Header::print
hides the virtual function PacketElement::print() const.
"libnetutil/ICMPv6Header.h", line 732: Warning: ICMPv6Header::print
hides the virtual function PacketElement::print(int) const.
"libnetutil/ICMPv6Header.h", line 732: Warning: ICMPv6Header::print
hides the virtual function PacketElement::print() const.
"libnetutil/IPv4Header.h", line 283: Warning: IPv4Header::print hides
the virtual function PacketElement::print(int) const.
"libnetutil/IPv4Header.h", line 283: Warning: IPv4Header::print hides
the virtual function PacketElement::print() const.
"libnetutil/IPv4Header.h", line 283: Warning: IPv4Header::getNextHeader
hides the virtual function NetworkLayerElement::getNextHeader().
"libnetutil/IPv4Header.h", line 283: Warning:
IPv4Header::getDestinationAddress hides the virtual function
NetworkLayerElement::getDestinationAddress().
"libnetutil/IPv4Header.h", line 283: Warning:
IPv4Header::getSourceAddress hides the virtual function
NetworkLayerElement::getSourceAddress().
"libnetutil/IPv4Header.h", line 283: Warning:
IPv4Header::getAddressLength hides the virtual function
NetworkLayerElement::getAddressLength().
"libnetutil/IPv6Header.h", line 235: Warning: IPv6Header::print hides
the virtual function PacketElement::print(int) const.
"libnetutil/IPv6Header.h", line 235: Warning: IPv6Header::print hides
the virtual function PacketElement::print() const.
"libnetutil/IPv6Header.h", line 235: Warning: IPv6Header::getNextHeader
hides the virtual function NetworkLayerElement::getNextHeader().
"libnetutil/IPv6Header.h", line 235: Warning:
IPv6Header::getSourceAddress hides the virtual function
NetworkLayerElement::getSourceAddress().
"libnetutil/IPv6Header.h", line 235: Warning:
IPv6Header::getDestinationAddress hides the virtual function
NetworkLayerElement::getDestinationAddress().
"libnetutil/IPv6Header.h", line 235: Warning:
IPv6Header::getAddressLength hides the virtual function
NetworkLayerElement::getAddressLength().
"libnetutil/RawData.h", line 153: Warning: RawData::print hides the
virtual function PacketElement::print(int) const.
"libnetutil/RawData.h", line 153: Warning: RawData::print hides the
virtual function PacketElement::print() const.
"libnetutil/TCPHeader.h", line 322: Warning: TCPHeader::print hides the
virtual function PacketElement::print(int) const.
"libnetutil/TCPHeader.h", line 322: Warning: TCPHeader::print hides the
virtual function PacketElement::print() const.
"libnetutil/UDPHeader.h", line 189: Warning: UDPHeader::print hides the
virtual function PacketElement::print(int) const.
"libnetutil/UDPHeader.h", line 189: Warning: UDPHeader::print hides the
virtual function PacketElement::print() const.
"libnetutil/HopByHopHeader.h", line 185: Warning: HopByHopHeader::print
hides the virtual function PacketElement::print(int) const.
"libnetutil/HopByHopHeader.h", line 185: Warning: HopByHopHeader::print
hides the virtual function PacketElement::print() const.
"libnetutil/FragmentHeader.h", line 176: Warning: FragmentHeader::print
hides the virtual function PacketElement::print(int) const.
"libnetutil/FragmentHeader.h", line 176: Warning: FragmentHeader::print
hides the virtual function PacketElement::print() const.
"libnetutil/RoutingHeader.h", line 239: Warning: RoutingHeader::print
hides the virtual function PacketElement::print(int) const.
"libnetutil/RoutingHeader.h", line 239: Warning: RoutingHeader::print
hides the virtual function PacketElement::print() const.
"portreasons.h", line 197: Warning: Identifier expected instead of "}".
"osscan.cc", line 907: Error: Could not find a match for std::list<const
FingerTest*>::sort(bool(const FingerTest*,const FingerTest*)) needed in
mergeFPs(FingerPrint**, int, bool, const sockaddr_storage*, int,
dist_calc_method, const unsigned char*, int, int, int, bool).
1 Error(s) and 40 Warning(s) detected.


To be honest I had not seen nmap compile on a recent Solaris in years
and it can't hurt to try.

What I saw was a collection of very similar errors :


"output.cc", line 823: Error: Could not find a match for
std::list<ScriptResult>::sort(bool(ScriptResult,ScriptResult)) needed in
printportoutput(Target*, PortList*).
"output.cc", line 2214: Error: Could not find a match for
std::list<ScriptResult>::sort(bool(ScriptResult,ScriptResult)) needed in
printscriptresults(std::list<ScriptResult>*, stype).
"output.cc", line 2239: Error: Could not find a match for
std::list<ScriptResult>::sort(bool(ScriptResult,ScriptResult)) needed in
printhostscriptresults(Target*).
3 Error(s) and 41 Warning(s) detected.


"service_scan.cc", line 1205: Error: The function "find" must have a
prototype.


For now I can look past the 1377 warnings :-P

mimas# grep -c "Warning"  ../nmap-6.47_SunOS5.10_sparcv9.001.build.log
1377


My real focus is on these three source files :

mimas# grep  "Error" ../nmap-6.47_SunOS5.10_sparcv9.001.build.log | grep
"line" | cut -f2 -d\" | sort -u
osscan.cc
output.cc
service_scan.cc


I am willing to bet that sort out this trivial issue at line 904 of
osscan.cc will have a ripple effect on the other two source files :

   905    /* Put the tests in the proper order and ensure that tests
with
   906     * identical names are contiguous. */
   907    tests.sort(FingerTest_lessthan);

Yes I re-wrapped the comment to be within 72-chars. Pedantic I know but
this is a Solaris user here. We can be sort of odd.

So anyone have any thoughts on what the issue is here or has seen nmap
build on recent Solaris ?

Dennis

ps: If the only answer I get is "try recent gcc" then I may scream. I'll
try it of course.
_______________________________________________
Sent through the dev mailing list
http://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/


Current thread: