Nmap Development mailing list archives

nbase MD5 and SHA1 break static builds


From: David Fifield <david () bamsoftware com>
Date: Tue, 5 Aug 2008 10:17:54 -0600

Hi,

I get this error after "make distclean", "./configure", and "make static":

g++ -c -Ilibdnet-stripped/include  -Inbase -Insock/include -g -O2 -Wall  -fno-strict-aliasing   -DHAVE_CONFIG_H 
-DNMAP_NAME=\"Nmap\" -DNMAP_URL=\"http://nmap.org\"; -DNMAP_PLATFORM=\"i686-pc-linux-gnu\" 
-DNMAPDATADIR=\"/usr/share/nmap\" -DNMAPLIBEXECDIR=\"/usr/libexec/nmap\" nse_hash.cc -o nse_hash.o
echo Compiling nmap
Compiling nmap
rm -f nmap
g++ -Wl,-E  -Lnbase -Lnsock/src/  -static -o nmap main.o nmap.o targets.o tcpip.o nmap_error.o utils.o idle_scan.o 
osscan.o osscan2.o output.o scan_engine.o timing.o charpool.o services.o protocols.o nmap_rpc.o portlist.o NmapOps.o 
TargetGroup.o Target.o FingerPrintResults.o service_scan.o NmapOutputTable.o MACLookup.o nmap_tty.o nmap_dns.o  
traceroute.o portreasons.o nse_main.o nse_nsock.o nse_init.o nse_fs.o nse_nmaplib.o nse_debug.o nse_pcrelib.o 
nse_binlib.o nse_hash.o  -lnbase -lnsock -lpcre -lpcap -lssl -lcrypto libdnet-stripped/src/.libs/libdnet.a -llua -ldl
/usr/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../libcrypto.a(md5_dgst.o):(.rodata+0x0): multiple definition of 
`MD5_version'
nbase/libnbase.a(nbase_md5.o):(.rodata+0x0): first defined here
/usr/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `MD5_version' 
changed from 4 in nbase/libnbase.a(nbase_md5.o) to 39 in 
/usr/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../libcrypto.a(md5_dgst.o)
/usr/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../libcrypto.a(sha1dgst.o):(.rodata+0x0): multiple definition of 
`SHA1_version'
nbase/libnbase.a(nbase_sha1.o):(.rodata+0x0): first defined here
/usr/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../i686-pc-linux-gnu/bin/ld: Warning: size of symbol `SHA1_version' 
changed from 5 in nbase/libnbase.a(nbase_sha1.o) to 40 in 
/usr/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../libcrypto.a(sha1dgst.o)
collect2: ld returned 1 exit status
make[2]: *** [nmap] Error 1
make[2]: Leaving directory `/home/david/nmap'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/david/nmap'
make: *** [static] Error 2

I see that in nbase/configure.ac I see that the MD5 and SHA1 files are
always included:

dnl We always want some of our files
...
AC_LIBOBJ([nbase_md5])
AC_LIBOBJ([nbase_sha1])

Maybe it has to be made conditional?

David Fifield

_______________________________________________
Sent through the nmap-dev mailing list
http://cgi.insecure.org/mailman/listinfo/nmap-dev
Archived at http://SecLists.Org


Current thread: