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)

...in 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 http://wiki.clamav.net
http://lurker.clamav.net/list/clamav-users.html

Reply via email to