remove broken lib/libc/arm/string/memcpy_xscale.S

Warner Losh imp at bsdimp.com
Mon Apr 6 15:58:59 UTC 2015


> On Apr 4, 2015, at 7:52 PM, John-Mark Gurney <jmg at funkthat.com> wrote:
> 
> I would like to remove this file as it does not implement our defined
> memcpy.  Per POSIX, overlapping regions passed to memcpy is undefined
> behavior.  We have defined it to have the same symatics as memmove.
> 
> Sample test program:
> #include <stdio.h>
> #include <string.h>
> 
> char bufa[512] = "this is a test buffer that should be copied fine.";
> int
> main()
> {
> 
>        memcpy(&bufa[10], &bufa[0], strlen(&bufa[10]));
>        printf("%s\n", bufa);
> 
>        return 0;
> }
> 
> Output on amd64 HEAD:
> this is a this is a test buffer that should be co
> 
> Output on old armv4 from 9.x:
> this is a this is a thst buffethst bufhould beufh
> 
> If you just look at the file, it is clear that the implementation does
> not adjust the copy direction based upon pointers.  We imported the
> code from NetBSD, and NetBSD does apparently require memcpy's arguments
> to be non-overlapping.
> 
> I'll remove the file shortly unless someone can prove to me that all
> uses of memcpy in our tree do not depend upon our defined behavior
> per memcpy(3)'s man page.

Any chance you can fix this implementation instead?

Warner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-arm/attachments/20150406/26bc9aa8/attachment.sig>


More information about the freebsd-arm mailing list