From f627ca82fb6c469c8cf34f04f02fe2ea006304bd Mon Sep 17 00:00:00 2001 From: Chris Metcalf Date: Thu, 11 Dec 2014 15:13:48 -0500 Subject: [PATCH] tile: add inhibit_loop_to_libcall to string functions Without this, on gcc 4.8.2 the built glibc crashes when memcpy or memset are invoked, since they call themselves recursively. See commit 85c2e6110c9a01ec for the generic inhibit_loop_to_libcall. --- ChangeLog | 7 +++++++ sysdeps/tile/tilegx/memcpy.c | 2 +- sysdeps/tile/tilegx/memset.c | 2 +- sysdeps/tile/tilepro/memset.c | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 61ac73d4b9..de2e7ccbbd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-12-11 Chris Metcalf + + * sysdeps/tile/tilegx/memset.c (__memcpy): Add + inhibit_loop_to_libcall to avoid recursive calls. + * sysdeps/tile/tilegx/memcpy.c (__memcpy): Likewise. + * sysdeps/tile/tilepro/memcpy.c (__memcpy): Likewise. + 2014-12-11 Adhemerval Zanella * include/sys/socket.h (__sendmmsg): Add __USE_GNU guards on function diff --git a/sysdeps/tile/tilegx/memcpy.c b/sysdeps/tile/tilegx/memcpy.c index 5d5df19ef3..abcaf4dc93 100644 --- a/sysdeps/tile/tilegx/memcpy.c +++ b/sysdeps/tile/tilegx/memcpy.c @@ -25,7 +25,7 @@ /* How many cache lines ahead should we prefetch? */ #define PREFETCH_LINES_AHEAD 3 -void * +void * inhibit_loop_to_libcall __memcpy (void *__restrict dstv, const void *__restrict srcv, size_t n) { char *__restrict dst1 = (char *) dstv; diff --git a/sysdeps/tile/tilegx/memset.c b/sysdeps/tile/tilegx/memset.c index d41b205a3c..b794bf21c4 100644 --- a/sysdeps/tile/tilegx/memset.c +++ b/sysdeps/tile/tilegx/memset.c @@ -21,7 +21,7 @@ #include #include "string-endian.h" -void * +void * inhibit_loop_to_libcall __memset (void *s, int c, size_t n) { uint64_t *out64; diff --git a/sysdeps/tile/tilepro/memset.c b/sysdeps/tile/tilepro/memset.c index 85d6b810ed..d24863482e 100644 --- a/sysdeps/tile/tilepro/memset.c +++ b/sysdeps/tile/tilepro/memset.c @@ -20,7 +20,7 @@ #include #include -void * +void * inhibit_loop_to_libcall __memset (void *s, int c, size_t n) { uint32_t *out32; -- 2.11.4.GIT