https://bugzilla.novell.com/show_bug.cgi?id=866669 https://bugzilla.novell.com/show_bug.cgi?id=866669#c5 --- Comment #5 from Michael Matz <matz@suse.com> 2014-03-18 12:17:34 UTC --- (In reply to comment #4)
Where is u_longlong_t defined?
I believe that's exactly the problem. It's defined nowhere in linux, and xdr_u_longlong_t takes an u_quad_t in glibc. Solaris' variant takes an u_longlong_t (and presumably defines it in rpc/types.h, can't check). The problem of course is, that the name of the function suggests it takes an argument that's compatible with "unsigned long long *" (which is what Solaris' version indeed seems to do), but in fact doesn't. On 32bit machines it will also take long long * in linux, but on 64bit machine it just takes a long * (because quad_t is defined to some 64bit type, so long is enough on 64bit). So, for Solaris compatibility it would be better to change the prototype to take an u_longlong_t (and define it to unsigned long long for all platforms). But it could change behaviour of existing programs that expect u_quad_t to work (which wouldn't be compatible with u_longlong_t if it were defined as above on 64bit machines). I don't know a good solution :-/ -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.