On Mon, Dec 15, 2008 at 09:55:19PM +0000, Daniel P. Berrange wrote: > On Mon, Dec 15, 2008 at 11:05:10AM -0800, john.levon@xxxxxxx wrote: > > ++ > > ++#if defined(__sun) > > ++#include <rpc/xdr.h> > > ++#define u_quad_t uint64_t > > ++#define quad_t int64_t > > ++#define xdr_u_quad_t xdr_uint64_t > > ++#define xdr_quad_t xdr_int64_t > > ++#define IXDR_GET_LONG IXDR_GET_INT32 > > The Linux xdr.h seems to have both sets of definitions in all these > cases, so I think we can just make rpcgen_fix.pl do this subsitution > for us. Interestingly, it is already doing s/PUT_LONG/PUT_INT32/ because > of broken PUT_LONG on Linux. FYI PortableXDR's output doesn't need these macros at all. Sun's rpcgen was making some strange micro-optimization based (it appears) on the size of the structure. If the size of the struct was over some watermark, it would attempt to inline lots of code. You can see what I mean by comparing the output of these two commands: echo 'struct foo { int i0; int i1; int i2; };' | rpcgen -c - echo 'struct foo { int i0; int i1; int i2; int i3; };' | rpcgen -c - In PortableXDR I decided to leave inlining decisions to gcc. Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list