On Thursday, January 09, 2003 8:53 AM [GMT+0530=IST],
connie@??? (Connie Baggs) wrote:
> can anyone help me out here, im getting a multiple definition error on
> the inet_ntoa variable when compiling the host.c portion of exim. Im
> assuming it has something to do with the extra code put into version
> 4.10 of hosts.c for the gcc compiler problem. However Im not sure how
> to fix it.
inet_ntoa / inet_aton is known to be broken on irix 6.x - the fix is
generally to get a known good version of these two functions and
recompile.
Try
http://freeware.sgi.com/shared/howto.html which says there are
workarounds for these routines, in libgcc.a
<quote>
a.. gcc vs. cc
Code that runs fine when compiled with SGI cc and doesn't run when
compiled with gcc might be calling functions compiled with MIPSpro C
that get passed or return structs that are smaller than 16 bytes but not
8 bytes long. gcc and SGI cc are incompatible in the way they pass these
structs so compiling with gcc and linking with a shared library that was
compiled with the SGI cc) can cause these problems. There are very few
such library functions, but inet_ntoa, inet_lnaof, inet_netof,
inet_makeaddr and semctl are all examples. Work-arounds for these
particular routines have been built into libgcc.a, but that is not a
general fix. If you find more instances in IRIX libraries please report
them. Often a small wrapper procedure that realigns the problematic
arguments will avoid the problem.
</quote>
srs