aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrooks Moses <bmoses@google.com>2014-03-13 16:21:31 -0700
committerBrooks Moses <bmoses@google.com>2014-03-13 16:21:31 -0700
commite2172e072db0e19e942048111881794d8444c174 (patch)
tree862fba9cbdae5bcd2e5ef0f29a77c874e30af16e
parent17c46147bc21f7e62dddfee4e03493ec484193b9 (diff)
downloadglibc-e2172e072db0e19e942048111881794d8444c174.zip
glibc-e2172e072db0e19e942048111881794d8444c174.tar.gz
glibc-e2172e072db0e19e942048111881794d8444c174.tar.bz2
For b/5732800, expose calls from malloc to mmap,munmap, etc. (Forward-ported from cl/42670015)
-rw-r--r--README.google9
-rw-r--r--malloc/malloc.c9
-rw-r--r--ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data5
-rw-r--r--sysdeps/generic/localplt.data5
-rw-r--r--sysdeps/unix/sysv/linux/i386/nptl/localplt.data5
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/localplt.data5
6 files changed, 38 insertions, 0 deletions
diff --git a/README.google b/README.google
index ded2578..5ac5b4a 100644
--- a/README.google
+++ b/README.google
@@ -278,3 +278,12 @@ sysdeps/generic/ldsodefs.h
For Google b/8315591, experimental implementation of dlopen_with_offset.
Forward-ported from cl/59286541, cl/59438930
(ppluzhnikov, google-local)
+
+malloc/malloc.c
+ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data
+sysdeps/generic/localplt.data
+sysdeps/unix/sysv/linux/i386/nptl/localplt.data
+sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/localplt.data
+ For b/5732800, expose calls from malloc to mmap, munmap, and sbrk.
+ Forward ported from cl/42670015, with changes.
+ (ppluzhnikov, google-local)
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 813e94e..b9335ea 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -398,8 +398,17 @@ __malloc_assert (const char *assertion, const char *file, unsigned int line,
/* Definition for getting more memory from the OS. */
+#if 0 /* Google-local: b/5732800: make calls go through PLT instead. */
#define MORECORE (*__morecore)
#define MORECORE_FAILURE 0
+#else
+#define __mmap mmap
+#define __munmap munmap
+#define __mremap mremap
+#define __mprotect mprotect
+#define MORECORE sbrk
+#define MORECORE_FAILURE -1
+#endif
void * __default_morecore (ptrdiff_t);
void *(*__morecore)(ptrdiff_t) = __default_morecore;
diff --git a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data
index 84af95d..396cce2 100644
--- a/ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data
+++ b/ports/sysdeps/unix/sysv/linux/aarch64/nptl/localplt.data
@@ -5,7 +5,12 @@ libc.so: calloc
libc.so: free
libc.so: malloc
libc.so: memalign
+libc.so: mmap
+libc.so: mprotect
+libc.so: mremap
+libc.so: munmap
libc.so: realloc
+libc.so: sbrk
libc.so: __signbit
libc.so: __signbitl
libm.so: matherr
diff --git a/sysdeps/generic/localplt.data b/sysdeps/generic/localplt.data
index d296519..5a2be90 100644
--- a/sysdeps/generic/localplt.data
+++ b/sysdeps/generic/localplt.data
@@ -5,5 +5,10 @@ libc.so: calloc
libc.so: free
libc.so: malloc
libc.so: memalign
+libc.so: mmap
+libc.so: mprotect
+libc.so: mremap
+libc.so: munmap
libc.so: realloc
+libc.so: sbrk
libm.so: matherr
diff --git a/sysdeps/unix/sysv/linux/i386/nptl/localplt.data b/sysdeps/unix/sysv/linux/i386/nptl/localplt.data
index 8fb56b6..6e798b3 100644
--- a/sysdeps/unix/sysv/linux/i386/nptl/localplt.data
+++ b/sysdeps/unix/sysv/linux/i386/nptl/localplt.data
@@ -3,5 +3,10 @@ libc.so: calloc
libc.so: free
libc.so: malloc
libc.so: memalign
+libc.so: mmap
+libc.so: mprotect
+libc.so: mremap
+libc.so: munmap
libc.so: realloc
+libc.so: sbrk
libm.so: matherr
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/localplt.data b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/localplt.data
index 2219aa9..67bf289 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/localplt.data
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/localplt.data
@@ -2,5 +2,10 @@ libc.so: calloc
libc.so: free
libc.so: malloc
libc.so: memalign
+libc.so: mmap
+libc.so: mprotect
+libc.so: mremap
+libc.so: munmap
libc.so: realloc
+libc.so: sbrk
libm.so: matherr