Making LLVM happy: memmove() in the kernel

Andriy Gapon avg at icyb.net.ua
Fri Feb 27 08:05:42 PST 2009


on 27/02/2009 15:12 Roman Divacky said the following:
> On Fri, Feb 27, 2009 at 02:11:55PM +0100, Ed Schouten wrote:
>> Hi all,
>>
>> The FreeBSD+LLVM folks* noticed Clang generates calls to memmove() by
>> itself. I have yet to confirm this, but I assume this is done when
>> performing copies of structs greater than a certain size. In our kernel,
>> we don't have a memmove() function, but we do have a bcopy().
> 
> also.. quoting from
> (http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gcc/Standards.html): 
> 
> Most of the compiler support routines used by GCC are present in libgcc,
> but there are a few exceptions. GCC requires the freestanding environment
> provide memcpy, memmove, memset and memcmp.
> 
> we were just lucky to not run into this

Some people actually were not that lucky and had to use similar workarounds.

-- 
Andriy Gapon


More information about the freebsd-arch mailing list