[sane-devel] Schedule for release of sane-backends 1.0.22

Julien BLACHE jb at jblache.org
Sat Jan 8 08:43:00 UTC 2011


Nicolas Martin <nicolas0martin at gmail.com> wrote:

Hi,

> What is weird here, is that the effect of overlap in memcpy does not
> seem to produce the same effect on different systems !

Using memcpy() on overlapping memory areas is undefined behaviour per
spec.

glibc has several memcpy() implementations optimized for different
hardware capabilities. A recent implementation for Atom/Core2 CPUs
performs the copy from tail to head (giving a nice 4x/5x speedup on
these CPUs), which breaks with overlapping memory areas.

Using memmove() is the correct way to handle overlapping areas, as
documented.

See <http://lwn.net/Articles/414467/> for more (links/comments).

HTH,

JB.

-- 
Julien BLACHE                                   <http://www.jblache.org> 
<jb at jblache.org>                                  GPG KeyID 0xF5D65169



More information about the sane-devel mailing list