> So... you are choosing to lose extremely valuable optimizations because> of a few prototype warnings? This logic seems bogus to me... it also

OK, the problem is that gcc expects size_t to be an unsigned int. We useunsigned long for size_t in the kernel because we want it to be 64 bits on64-bit PPCs (like it is on the other 64-bit platforms). Gcc doesn't like aprototype for memcpy which has an unsigned long for the 3rd argument(unless you use -fno-builtin).

The only optimization we lose with -fno-builtin (that I can see) is thatthe compiler won't turn explicit calls to memcpy with a small constant 3rdargument (<= 32) into a sequence of inline loads and stores. (It stilldoes small struct copies with inline loads and stores even with-fno-builtin.)