This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[COMMITTED] tile: add inhibit_loop_to_libcall to string functions
- From: Chris Metcalf <cmetcalf at ezchip dot com>
- To: <libc-alpha at sourceware dot org>
- Date: Thu, 11 Dec 2014 15:13:48 -0500
- Subject: [COMMITTED] tile: add inhibit_loop_to_libcall to string functions
- Authentication-results: sourceware.org; auth=none
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