Making LLVM happy: memmove() in the kernel

Alexander Kabaev kabaev at gmail.com
Fri Feb 27 10:52:13 PST 2009


On Fri, 27 Feb 2009 18:05:33 +0200
Andriy Gapon <avg at icyb.net.ua> wrote:

> 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.
> 

I think we should use this opportunity and make sure we have external
symbols for all of the above mem* functions, not just memmove. Please :)
-- 
Alexander Kabaev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20090227/cbcbfcc1/signature.pgp


More information about the freebsd-arch mailing list