Read ubus sock always return zero length

I wanna port ubus to my platform that soc is arm bcm947xx and toolchain provided by vendor named arm-brcm-linux-uclibcgnueabi- , kernel version is 2.6.36 and uclibc version is 4.5.3.
The source code git clone ubus and libubox master branch from openwrt official git, and use json-c 0.12.1.
After everything cross compile successfully, run 'ubusd' on my platform and run 'ubus list', I always get the message 'Failed to connect to ubus'.
I trace the code, ubus_reconnect return failed because read usock header return 0, like below

if (read(ctx->sock.fd, &hdr, sizeof(hdr)) != sizeof(hdr))
goto out_close;

But I took the same source to compile by x86 gcc on ubuntu-12.04, or other platform like qca ipq806x(kernel is 3.14), it works fine.

How do I resolve the problem? Thanks.