Nmap Development mailing list archives
Nmap-2.54BETA30 compile fixes
From: William McVey <wam () cisco com>
Date: Wed, 31 Oct 2001 14:09:40 -0600
I decided to fix the following warnings I got when I compiled nmap-2.54BETA30 under Linux (Mandrake 8.1): snprintf.c: In function `asprintf': snprintf.c:570: warning: implicit declaration of function `vasprintf' nmap_error.c: In function `fatal': nmap_error.c:59: warning: implicit declaration of function `exit' output.c: In function `xml_convert': output.c:224: warning: unused variable `i' nmapfe_error.c: In function `fatal': nmapfe_error.c:60: warning: implicit declaration of function `exit' In investigating these errors, I also found a couple of other subtle compile errors which never ended up generating warnings (such as every conditional evaluation of HAS_UNISTD_H being broken). Anyway, attached is a patch to fix these compile errors/warnings. The patch basically does the following: - adds libiberty.h logic to nbase's autoconf and into nbase/snprintf.h - The unistd.h check was commented out of toplevel configure.in for some reason. I un-commented it back in and added definitions for HAS_UNISTD_H into config.h.in - adds conditional inclusion of <stdlib.h> in nmap_error.h to get exit(3) prototype - removes the 'unsigned int i' declaration from output.c:xml_convert() - adds .. to nmapfe's header include path so that nmapfe_error.h can include config.h, to determine if it should include <stdlib.h> - fixes a typo in utils.h The patch is attached below and, along with my other nmap patches, is linked from http://www.networkexploits.com/projects/nmap/. It should be applied from within the nmap-2.54BETA30 directory using the command 'patch -p1 < patchfile'. Since this patch fixes several of the autoconf template files, autoconf should be run from within the toplevel directory, as well as within the nbase/ and nmapfe/ subdirectories. The patch has been tested under Linux Mandrake 8.1 and Solaris 2.7. -- William
diff -Naur nmap-2.54BETA30/config.h.in nmap-2.54BETA30-compilefixes/config.h.in --- nmap-2.54BETA30/config.h.in Sat Jun 2 11:00:11 2001 +++ nmap-2.54BETA30-compilefixes/config.h.in Wed Oct 31 17:07:34 2001 @@ -17,6 +17,8 @@ #undef STDC_HEADERS +#undef HAVE_UNISTD_H + #undef HAVE_STRING_H #undef HAVE_GETOPT_H diff -Naur nmap-2.54BETA30/configure.in nmap-2.54BETA30-compilefixes/configure.in --- nmap-2.54BETA30/configure.in Sat Jun 2 11:03:17 2001 +++ nmap-2.54BETA30-compilefixes/configure.in Wed Oct 31 17:12:48 2001 @@ -218,6 +218,9 @@ AC_CHECK_HEADERS(string.h getopt.h strings.h memory.h sys/param.h sys/sockio.h netinet/if_ether.h bstring.h sys/time.h pwd.h ) AC_HEADER_TIME +dnl I do not know why these were commented out... +dnl unistd is worth knowing though (wam) +AC_CHECK_HEADERS(unistd.h) dnl AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h) dnl Checks for typedefs, structures, and compiler characteristics. diff -Naur nmap-2.54BETA30/nbase/configure.in nmap-2.54BETA30-compilefixes/nbase/configure.in --- nmap-2.54BETA30/nbase/configure.in Sat Mar 10 08:50:48 2001 +++ nmap-2.54BETA30-compilefixes/nbase/configure.in Wed Oct 31 16:34:05 2001 @@ -100,7 +100,7 @@ dnl Checks for header files. AC_HEADER_STDC -AC_CHECK_HEADERS( string.h getopt.h strings.h memory.h sys/param.h sys/time.h unistd.h bstring.h netinet/if_ether.h netinet/in.h sys/time.h sys/socket.h sys/sockio.h rpc/types.h netdb.h pwd.h arpa/inet.h sys/resource.h sys/stat.h sys/wait.h ) +AC_CHECK_HEADERS( string.h getopt.h strings.h memory.h sys/param.h sys/time.h unistd.h bstring.h netinet/if_ether.h netinet/in.h sys/time.h sys/socket.h sys/sockio.h rpc/types.h netdb.h pwd.h arpa/inet.h sys/resource.h sys/stat.h sys/wait.h libiberty.h ) AC_HEADER_TIME dnl equiv to '#define inline' to 'inline', '__inline__', '__inline' or '' diff -Naur nmap-2.54BETA30/nbase/nbase_config.h.in nmap-2.54BETA30-compilefixes/nbase/nbase_config.h.in --- nmap-2.54BETA30/nbase/nbase_config.h.in Sat Mar 10 08:50:48 2001 +++ nmap-2.54BETA30-compilefixes/nbase/nbase_config.h.in Wed Oct 31 16:33:19 2001 @@ -29,6 +29,8 @@ #undef HAVE_MEMORY_H +#undef HAVE_LIBIBERTY_H + /* both bzero() and memcpy() are used in the source */ #undef HAVE_BZERO #undef HAVE_MEMCPY diff -Naur nmap-2.54BETA30/nbase/snprintf.c nmap-2.54BETA30-compilefixes/nbase/snprintf.c --- nmap-2.54BETA30/nbase/snprintf.c Wed Nov 22 08:34:31 2000 +++ nmap-2.54BETA30-compilefixes/nbase/snprintf.c Wed Oct 31 16:38:21 2001 @@ -60,6 +60,10 @@ #include <ctype.h> #include <sys/types.h> +#if HAVE_LIBIBERTY_H +#include <libiberty.h> +#endif + #include "nbase.h" #ifndef min diff -Naur nmap-2.54BETA30/nmap_error.h nmap-2.54BETA30-compilefixes/nmap_error.h --- nmap-2.54BETA30/nmap_error.h Wed Mar 7 20:34:56 2001 +++ nmap-2.54BETA30-compilefixes/nmap_error.h Wed Oct 31 18:54:04 2001 @@ -50,6 +50,20 @@ #include "mswin32\winclude.h" #endif +#ifdef HAVE_CONFIG_H +#include "config.h" +#else +#ifdef WIN32 +#include "nmap_winconfig.h" +#endif /* WIN32 */ +#endif /* HAVE_CONFIG_H */ + +#ifdef STDC_HEADERS +#include <stdlib.h> +#endif + + + #include <stdarg.h> #include <stdio.h> diff -Naur nmap-2.54BETA30/nmapfe/Makefile.in nmap-2.54BETA30-compilefixes/nmapfe/Makefile.in --- nmap-2.54BETA30/nmapfe/Makefile.in Tue Jan 2 09:32:50 2001 +++ nmap-2.54BETA30-compilefixes/nmapfe/Makefile.in Wed Oct 31 19:01:58 2001 @@ -72,7 +72,7 @@ CONFIG_CLEAN_FILES = PROGRAMS = $(bin_PROGRAMS) -DEFS = @DEFS@ -DVERSION=\"$(VERSION)\" -DHAVE_CONFIG_H=1 -I$(srcdir) +DEFS = @DEFS@ -DVERSION=\"$(VERSION)\" -DHAVE_CONFIG_H=1 -I$(srcdir) -I.. CPPFLAGS = @CPPFLAGS@ STATIC = LDFLAGS = @LDFLAGS@ $(STATIC) diff -Naur nmap-2.54BETA30/nmapfe/nmapfe_error.h nmap-2.54BETA30-compilefixes/nmapfe/nmapfe_error.h --- nmap-2.54BETA30/nmapfe/nmapfe_error.h Wed Mar 7 20:34:57 2001 +++ nmap-2.54BETA30-compilefixes/nmapfe/nmapfe_error.h Wed Oct 31 19:02:52 2001 @@ -48,8 +48,21 @@ #ifndef NMAPFE_ERROR_H #define NMAPFE_ERROR_H +#ifdef HAVE_CONFIG_H +#include "config.h" +#else +#ifdef WIN32 +#include "nmap_winconfig.h" +#endif /* WIN32 */ +#endif /* HAVE_CONFIG_H */ + + #include <stdarg.h> #include <stdio.h> + +#ifdef STDC_HEADERS +#include <stdlib.h> +#endif #if HAVE_UNISTD_H #include <unistd.h> diff -Naur nmap-2.54BETA30/output.c nmap-2.54BETA30-compilefixes/output.c --- nmap-2.54BETA30/output.c Sun Oct 14 06:46:09 2001 +++ nmap-2.54BETA30-compilefixes/output.c Wed Oct 31 18:56:29 2001 @@ -221,7 +221,6 @@ } char* xml_convert (const char* str) { - unsigned int i; char *temp, ch, prevch = 0, *p; temp = malloc(strlen(str)*6+1); for (p = temp;(prevch = ch, ch = *str);str++) { diff -Naur nmap-2.54BETA30/utils.h nmap-2.54BETA30-compilefixes/utils.h --- nmap-2.54BETA30/utils.h Thu Aug 23 05:48:22 2001 +++ nmap-2.54BETA30-compilefixes/utils.h Wed Oct 31 19:23:30 2001 @@ -67,7 +67,7 @@ #include "config.h" #endif -#if HAVAE_UNISTD_H +#if HAVE_UNISTD_H #include <unistd.h> #endif
--------------------------------------------------------------------- For help using this (nmap-dev) mailing list, send a blank email to nmap-dev-help () insecure org . List run by ezmlm-idx (www.ezmlm.org).
Current thread:
- Nmap-2.54BETA30 compile fixes William McVey (Oct 31)
- Re: Nmap-2.54BETA30 compile fixes Fyodor (Dec 30)