Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Feb 2009 18:05:33 +0200
From:      Andriy Gapon <avg@icyb.net.ua>
To:        Roman Divacky <rdivacky@freebsd.org>
Cc:        Ed Schouten <ed@80386.nl>, FreeBSD Arch <freebsd-arch@freebsd.org>
Subject:   Re: Making LLVM happy: memmove() in the kernel
Message-ID:  <49A80F4D.8000406@icyb.net.ua>
In-Reply-To: <20090227131221.GA60215@freebsd.org>
References:  <20090227131155.GE19161@hoeg.nl> <20090227131221.GA60215@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49A80F4D.8000406>