[Spread-users] Portability bug on SOLARIS 8, sparcv9 (64-bit)

Theo Schlossnagle jesus at omniti.com
Thu Nov 7 10:48:38 EST 2002


I did the original port to Alpha/Linux on a 64 bit machine and I had it  
running on Solaris 8 (64-bit).  It is possible that the autoconf  
changes I made backed out some of the 64bit changes.  I don't remember  
changing the iovec -- perhaps on linux that is not a size_t....  The  
biggest issue with 64bit was that the sp_time structure used {int int}  
instead of {long long}.

Luckily, determining this sort of thing at compile time is _super_ easy  
with autoconf.  So a solid, portable fix should be easy.

On Thursday, Nov 7, 2002, at 05:10 US/Eastern, James Rauser wrote:

> Hello,
>
> I just ran into a problem compiling spread on 64-bit Solaris 8  
> (sparcv9).
> In scatter.h, the structure "scat_element" is defined as:
>
> 	/* scat_element is EXACTLY as defined in iovec */
> 	typedef struct dummy_scat_element{
> 		char	*buf;
> 		int	len;
> 	} scat_element;
>
> The comment is important pointers to arrays of scat_element are cast
> to (struct iovec *) and plugged into the msg.msg_iov pointer
> (struct msghdr) in DL_send().
>
> But: on Solaris, struct iovec uses "size_t" for the length field, and
> on sparcv9, int is 32 bits and size_t is 64.  Ooops...  This causes
> the sendmsg() calls in DL_send to fail with EMSGSIZE, with the result
> that clients don't get any messages.
>
> This happens in both 3.16.2 and 3.17.0.
>
> I changed the len field to use "size_t" and the daemon appears to work
> normally after a few basic tests.
>
> I was surprised by this because a search through the mailing list
> archives turns up several messages which claim to have spread running
> on 64-bit sparc and Linux Alpha without problems.  Is spread  
> "officially"
> tested on 64-bit architectures?
>
> Greetings, Jim
>
> --  
> ----------------------------------------------------------------------- 
> -
> Jim Rauser                                          Science Factory  
> GmbH
> mailto:j.rauser at science-factory.com                       Unter Käster  
> 1
> Tel: +49 221 277 399 204                          50667 Cologne,  
> Germany
>
> _______________________________________________
> Spread-users mailing list
> Spread-users at lists.spread.org
> http://lists.spread.org/mailman/listinfo/spread-users





More information about the Spread-users mailing list