Thank you for your investigation of this. Would you like to help us make sure that GlusterFS works cleanly on 64-bit SPARC? -JM ----- Original Message ----- > >> 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. > I find that same changes are needed at too many places , so I decided > to give up building 64-bit SPARC. > > Then tried building 32-bit by modifying configure.ac, configure to > remove "-m64" > $ CFLAGS="-m32 -g" ./configure > > Run gluster volume create ... got bus error again (this is SPARC), > the > problem is in hashfn.c > > libglusterfs/src$ vi hashfn.c > change > #define get16bits(d) (*((const uint16_t *) (d))) > To: > static inline uint16_t get16bits(const char *data) > { > return ((*data & 0x00ffU)|(*(data+1) & 0xff00U)); > } > > Then things look fine. > > BTW, the previous " signal ILL" was caused by openssl checking > processor capabilities, it's not a problem. $ echo "ignore ILL" > > ~/.dbxrc , solve the debugging issue. > > Regards, > Xinfeng Liu > > _______________________________________________ > Gluster-devel mailing list > Gluster-devel@xxxxxxxxxx > https://lists.nongnu.org/mailman/listinfo/gluster-devel >