On 07/10/2012 07:35 AM, XinFeng Liu wrote:
I looked at the source code, it seems "dict_get_str (dict, "volname",
&volname)" did not succeed. Any hint about it?
I found the reason:
$ vi ./cli/src/cli-rpc-ops.c
ret = dict_allocate_and_serialize (dict,
&req.dict.dict_val,
(size_t *)&req.dict.dict_len);
size_t is ulong_t, while dict_len's type is uint_t, on 64-bit
Big-Endian system like SPARC, it causes the wrong result: dict_len
becomes 0.
My 2¢: the source is not 64-bit clean. It happens to work on LE
hardware, but that's just a lucky side effect of LE.
I find that same changes are needed at too many places , so I decided
to give up building 64-bit SPARC.
These are all legitimate bugs and should be fixed.
--
Kaleb