uClibc has a wrong typedef in libc/sysdeps/linux/common/bits/types.h Not __t_scalar_t and __t_uscalar_t has to be defined for xtitypes. They are defined in xtitypes as __SLONGWORD_TYPE and this has to be a valid type. As a result, python for example doesn't compile with uclibc correctly. Maybe, the problem lies deeper e.g. in linux-kernel headers, but there are guys out there, which knows this much better were to search... A patch is attached. But I don't know if it works quite well, because I did the thing directly in my usr/include/bits/types.h and there it works perfectly.
Created attachment 98367 [details, diff] 05_all_uClibc-types.patch Corrects the definition of __SLONGWORD_TYPE and __ULONGWORD_TYPE for xtitypes.h and the defines of __t_scalar_t and __t_uscalar_t in there.
what is the point of defining __SLONGWORD_TYPE/__ULONGWORD_TYPE ... they arent actually used anywhere ive punted these two types already from upstream svn, so there shouldnt be any problem scrubbing them in 0.9.28
They are used in xtitypes.h, which is included by some other h-file. Just grep for __SLONGWORD_TYPE in /usr/include and you get a list of defines where they are used. Because I don't know where they exactly come from, it is perhaps a problem of powerpc(-softfloat).
yes, but what does that have to do with uClibc ? uClibc does not provide any of the XTI types or headers
And this is the point, why I mentioned, that it could come from somewhere else. This patch (or the change it does) worked for me... But it's not the perfect solution. If you have another idea how to solve this, you're welcome ;-)
I remember, when I did an equery belongs bits/types.h, the following result showed up: sys-libs/glibc-2.4-r3 (/usr/include/bits/types.h) cross-powerpc-softfloat-linux-uclibc/uclibc-0.9.28 (/usr/powerpc-softfloat-linux-uclibc/usr/include/bits/types.h) Compiling posixmodule.c in the Python-2.4.3-r4 package threw the error, because it includes bits/stropts.h and this otherwise includes xtitypes.h. Really confusing problem here...
this will be fixed in 0.9.28-r1