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 85c2e6110c for the generic inhibit_loop_to_libcall.
This commit is contained in:
Chris Metcalf 2014-12-11 15:13:48 -05:00
parent 7f29694236
commit f627ca82fb
4 changed files with 10 additions and 3 deletions

View File

@ -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> 2014-12-11 Adhemerval Zanella <Azanella@linux.vnet.ibm.com>
* include/sys/socket.h (__sendmmsg): Add __USE_GNU guards on function * include/sys/socket.h (__sendmmsg): Add __USE_GNU guards on function

View File

@ -25,7 +25,7 @@
/* How many cache lines ahead should we prefetch? */ /* How many cache lines ahead should we prefetch? */
#define PREFETCH_LINES_AHEAD 3 #define PREFETCH_LINES_AHEAD 3
void * void * inhibit_loop_to_libcall
__memcpy (void *__restrict dstv, const void *__restrict srcv, size_t n) __memcpy (void *__restrict dstv, const void *__restrict srcv, size_t n)
{ {
char *__restrict dst1 = (char *) dstv; char *__restrict dst1 = (char *) dstv;

View File

@ -21,7 +21,7 @@
#include <stdint.h> #include <stdint.h>
#include "string-endian.h" #include "string-endian.h"
void * void * inhibit_loop_to_libcall
__memset (void *s, int c, size_t n) __memset (void *s, int c, size_t n)
{ {
uint64_t *out64; uint64_t *out64;

View File

@ -20,7 +20,7 @@
#include <stdint.h> #include <stdint.h>
#include <arch/chip.h> #include <arch/chip.h>
void * void * inhibit_loop_to_libcall
__memset (void *s, int c, size_t n) __memset (void *s, int c, size_t n)
{ {
uint32_t *out32; uint32_t *out32;