libgcc: avoid mmap/munmap hooks in split-stack code on GNU/Linux
* generic-morestack.c: On GNU/Linux use __mmap/__munmap rather than mmap/munmap, to avoid hooks.
This commit is contained in:
parent
bbcdf9bb3f
commit
710d54ed4e
|
@ -1,3 +1,8 @@
|
||||||
|
2020-04-03 Ian Lance Taylor <iant@golang.org>
|
||||||
|
|
||||||
|
* generic-morestack.c: On GNU/Linux use __mmap/__munmap rather
|
||||||
|
than mmap/munmap, to avoid hooks.
|
||||||
|
|
||||||
2020-04-03 Jim Johnston <jjohnst@us.ibm.com>
|
2020-04-03 Jim Johnston <jjohnst@us.ibm.com>
|
||||||
|
|
||||||
* config/s390/tpf-unwind.h (MIN_PATRANGE, MAX_PATRANGE)
|
* config/s390/tpf-unwind.h (MIN_PATRANGE, MAX_PATRANGE)
|
||||||
|
|
|
@ -53,6 +53,23 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
|
||||||
#include "generic-morestack.h"
|
#include "generic-morestack.h"
|
||||||
|
|
||||||
|
/* Some systems use LD_PRELOAD or similar tricks to add hooks to
|
||||||
|
mmap/munmap. That breaks this code, because when we call mmap
|
||||||
|
there is enough stack space for the system call but there is not,
|
||||||
|
in general, enough stack space to run a hook. At least when using
|
||||||
|
glibc on GNU/Linux we can avoid the problem by calling __mmap and
|
||||||
|
__munmap. */
|
||||||
|
|
||||||
|
#ifdef __gnu_linux__
|
||||||
|
|
||||||
|
extern void *__mmap (void *, size_t, int, int, int, off_t);
|
||||||
|
extern int __munmap (void *, size_t);
|
||||||
|
|
||||||
|
#define mmap __mmap
|
||||||
|
#define munmap __munmap
|
||||||
|
|
||||||
|
#endif /* defined(__gnu_linux__) */
|
||||||
|
|
||||||
typedef unsigned uintptr_type __attribute__ ((mode (pointer)));
|
typedef unsigned uintptr_type __attribute__ ((mode (pointer)));
|
||||||
|
|
||||||
/* This file contains subroutines that are used by code compiled with
|
/* This file contains subroutines that are used by code compiled with
|
||||||
|
|
Loading…
Reference in New Issue