mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 00:14:22 +08:00
libc: Avoid the compiler generate code call self(memcpy/memmove/memset/memcmp) recursively
please reference the similar change done by other libc implementation: https://reviews.llvm.org/D68028?id=224286 https://github.com/bminor/glibc/commit/85c2e6110c9a01ec817c30f1b7e20549d7229987 https://github.com/bminor/musl/commit/4a1f55e92fa74ee382909baa96302231f566b5e1 https://github.com/bminor/newlib/commit/82dfae9ab0734b9946321590162dc6021057fec1 Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
committed by
Petro Karashchenko
parent
34e17ba0ce
commit
ae6bfdc9b9
@@ -32,6 +32,7 @@
|
||||
|
||||
#ifndef CONFIG_LIBC_ARCH_MEMCMP
|
||||
#undef memcmp /* See mm/README.txt */
|
||||
no_builtin("memcmp")
|
||||
int memcmp(FAR const void *s1, FAR const void *s2, size_t n)
|
||||
{
|
||||
unsigned char *p1 = (unsigned char *)s1;
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
|
||||
#ifndef CONFIG_LIBC_ARCH_MEMCPY
|
||||
#undef memcpy /* See mm/README.txt */
|
||||
no_builtin("memcpy")
|
||||
FAR void *memcpy(FAR void *dest, FAR const void *src, size_t n)
|
||||
{
|
||||
FAR unsigned char *pout = (FAR unsigned char *)dest;
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
#ifndef CONFIG_LIBC_ARCH_MEMMOVE
|
||||
#undef memmove /* See mm/README.txt */
|
||||
no_builtin("memmove")
|
||||
FAR void *memmove(FAR void *dest, FAR const void *src, size_t count)
|
||||
{
|
||||
FAR char *tmp;
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
|
||||
#ifndef CONFIG_LIBC_ARCH_MEMSET
|
||||
#undef memset /* See mm/README.txt */
|
||||
no_builtin("memset")
|
||||
FAR void *memset(FAR void *s, int c, size_t n)
|
||||
{
|
||||
#ifdef CONFIG_MEMSET_OPTSPEED
|
||||
|
||||
@@ -305,6 +305,7 @@ typedef uint32_t uintn;
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
no_builtin("memcpy")
|
||||
FAR void *memcpy(FAR void *dest, FAR const void *src, size_t count)
|
||||
{
|
||||
FAR uint8_t *dst8 = (FAR uint8_t *)dest;
|
||||
|
||||
Reference in New Issue
Block a user