This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[COMMITTED] 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 61ac73d..de2e7cc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-12-11  Chris Metcalf  <cmetcalf@ezchip.com>
+
+	* 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  <Azanella@linux.vnet.ibm.com>
 
 	* 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 5d5df19..abcaf4d 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 d41b205..b794bf2 100644
--- a/sysdeps/tile/tilegx/memset.c
+++ b/sysdeps/tile/tilegx/memset.c
@@ -21,7 +21,7 @@
 #include <stdint.h>
 #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 85d6b81..d248634 100644
--- a/sysdeps/tile/tilepro/memset.c
+++ b/sysdeps/tile/tilepro/memset.c
@@ -20,7 +20,7 @@
 #include <stdint.h>
 #include <arch/chip.h>
 
-void *
+void * inhibit_loop_to_libcall
 __memset (void *s, int c, size_t n)
 {
   uint32_t *out32;
-- 
1.7.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]