clamav-users August 2007 archive
Main Archive Page > Month Archives  > clamav-users archives
clamav-users: Re: [Clamav-users] Compile ClamAV 0.91.1 with gcc

Re: [Clamav-users] Compile ClamAV 0.91.1 with gcc 3.4.3 on HPUX 10.20

From: Chuck Swiger <cswiger_at_nospam>
Date: Wed Aug 08 2007 - 17:20:27 GMT
To: ClamAV users ML <>

On Aug 8, 2007, at 2:26 AM, Banny Lau wrote:
> I met the problem while I am running the "make" after finished
> "configure"
> as the following:
> ./configure CFLAGS="-D_XOPEN_SOURCE_EXTENDED" --disable-dns --
> disable-shared
> --disable-static
> gcc -D_XOPEN_SOURCE_EXTENDED -o clamscan output.o getopt.o cfgparser.o
> misc.o options.o clamscan.o others.o manager.o treewalk.o
> ../libclamav/.libs/libclamav.a -L/usr/local/lib -lz
> /usr/ccs/bin/ld: Unsatisfied symbols:
> ntohl (code)
> collect2: ld returned 1 exit status
> *** Error exit code 1

[ ... ]
> Could you help about it and how can I solve the problem?

ntohl() is part of the byteorder functions used to:

" These routines convert 16 and 32 bit quantities between network byte

      order and host byte order. On machines which have a byte order which is

      the same as the network order, routines are defined as null macros.

      These routines are most often used in conjunction with Internet addresses

      and ports as returned by gethostbyname(3) and getservent(3)."

...and should be found in libc in any POSIX compliant system. For big-endian systems, which I seem to recall that the HP PA-RISC systems are, these routines are no-ops, and you can add something like:

#define ntohl(x) (x) a common header file somewhere, or compile and add this to the link stage to resolve that symbol:

uint32_t ntohl(uint32_t netlong)

     return netlong;

...assuming you have ANSI C99 datatypes available. If you don't, replace "uint32_t" by whatever is a 32-bit unsigned int datatype on your platform. -- -Chuck _______________________________________________ Help us build a comprehensive ClamAV guide: visit