From 9043e2288e8f61bf36b90f5790abf549782d1957 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 4 Oct 2012 16:31:43 -0700 Subject: Name space hygeine for madvise. --- ChangeLog | 15 +++++++++++++++ include/sys/mman.h | 5 +++-- malloc/arena.c | 2 +- malloc/malloc.c | 2 +- misc/Versions | 3 +++ misc/madvise.c | 9 ++++++--- nptl/ChangeLog | 4 ++++ nptl/pthread_create.c | 2 +- sysdeps/mach/hurd/malloc-machine.h | 5 +++-- sysdeps/unix/syscalls.list | 2 +- sysdeps/unix/sysv/linux/syscalls.list | 2 -- 11 files changed, 38 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index c0726ea929..e24bcfeddf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2012-10-04 Roland McGrath + + * misc/Versions (GLIBC_PRIVATE): New set, add __madvise. + * misc/madvise.c (madvise): Renamed to __madvise. + Make madvise a weak alias. + * include/sys/mman.h: Declare __madvise. + Replace libc_hidden_proto (madvise) with libc_hidden_proto (__madvise). + * sysdeps/unix/syscalls.list + (madvise): Make __madvise the strong name, and madvise a weak alias. + * sysdeps/unix/sysv/linux/syscalls.list + (madvise, mmap): Remove redundant entries. + * malloc/arena.c (shrink_heap): Use __madvise, not madvise. + * malloc/malloc.c (mtrim): Likewise. + * sysdeps/mach/hurd/malloc-machine.h (madvise): Renamed to __madvise. + 2012-10-03 Roland McGrath * sysdeps/mach/hurd/dl-cache.c: File removed. diff --git a/include/sys/mman.h b/include/sys/mman.h index 0a0e4a6533..fd125ecb9c 100644 --- a/include/sys/mman.h +++ b/include/sys/mman.h @@ -10,11 +10,12 @@ extern void *__mmap64 (void *__addr, size_t __len, int __prot, extern int __munmap (void *__addr, size_t __len); extern int __mprotect (void *__addr, size_t __len, int __prot); +extern int __madvise (void *__addr, size_t __len, int __advice); +libc_hidden_proto (__madvise) + /* This one is Linux specific. */ extern void *__mremap (void *__addr, size_t __old_len, size_t __new_len, int __flags, ...); - -libc_hidden_proto (madvise); #endif #endif diff --git a/malloc/arena.c b/malloc/arena.c index b209e3b7cd..eb9180eb97 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -634,7 +634,7 @@ shrink_heap(heap_info *h, long diff) h->mprotect_size = new_size; } else - madvise ((char *)h + new_size, diff, MADV_DONTNEED); + __madvise ((char *)h + new_size, diff, MADV_DONTNEED); /*fprintf(stderr, "shrink %p %08lx\n", h, new_size);*/ h->size = new_size; diff --git a/malloc/malloc.c b/malloc/malloc.c index 892bc64342..3f0b6b1cd4 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -4450,7 +4450,7 @@ static int mtrim(mstate av, size_t pad) content. */ memset (paligned_mem, 0x89, size & ~psm1); #endif - madvise (paligned_mem, size & ~psm1, MADV_DONTNEED); + __madvise (paligned_mem, size & ~psm1, MADV_DONTNEED); result = 1; } diff --git a/misc/Versions b/misc/Versions index 7f525eaf5e..b2a91473da 100644 --- a/misc/Versions +++ b/misc/Versions @@ -149,4 +149,7 @@ libc { GLIBC_2.16 { __getauxval; getauxval; } + GLIBC_PRIVATE { + __madvise; + } } diff --git a/misc/madvise.c b/misc/madvise.c index 8f1c873c06..4e9681a521 100644 --- a/misc/madvise.c +++ b/misc/madvise.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1994,1995,1996,1997,2000,2007 Free Software Foundation, Inc. +/* Advise system about intentions for a memory region. Stub version. + Copyright (C) 1994-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -23,11 +24,13 @@ for the region starting at ADDR and extending LEN bytes. */ int -madvise (__ptr_t addr, size_t len, int advice) +__madvise (void *addr, size_t len, int advice) { __set_errno (ENOSYS); return -1; } -libc_hidden_def (madvise) +libc_hidden_def (__madvise) +weak_alias (__madvise, madvise) + stub_warning (madvise) #include diff --git a/nptl/ChangeLog b/nptl/ChangeLog index afcf49188a..586e282cc6 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,7 @@ +2012-10-04 Roland McGrath + + * pthread_create.c (start_thread): Use __madvise, not madvise. + 2012-10-02 H.J. Lu * sysdeps/i386/tls.h: Update copyright years. diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index 6ba9c6fe11..197dfa7855 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -399,7 +399,7 @@ start_thread (void *arg) #endif assert (freesize < pd->stackblock_size); if (freesize > PTHREAD_STACK_MIN) - madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); + __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED); /* If the thread is detached free the TCB. */ if (IS_DETACHED (pd)) diff --git a/sysdeps/mach/hurd/malloc-machine.h b/sysdeps/mach/hurd/malloc-machine.h index 4a8bd16e6c..16e054fe5d 100644 --- a/sysdeps/mach/hurd/malloc-machine.h +++ b/sysdeps/mach/hurd/malloc-machine.h @@ -66,8 +66,9 @@ __libc_tsd_define (static, void *, MALLOC) /* declaration/common definition */ #include -#undef madvise -#define madvise(addr, len, advice) ((void) (addr), (void) (len), (void) (advice)) +#undef __madvise +#define __madvise(addr, len, advice) \ + ((void) (addr), (void) (len), (void) (advice)) #include diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list index b38b03e19b..46205825ca 100644 --- a/sysdeps/unix/syscalls.list +++ b/sysdeps/unix/syscalls.list @@ -41,7 +41,7 @@ kill - kill i:ii __kill kill link - link i:ss __link link listen - listen i:ii __listen listen lseek - lseek i:iii __libc_lseek __lseek lseek -madvise - madvise i:pii madvise +madvise - madvise i:pii __madvise madvise mkdir - mkdir i:si __mkdir mkdir mmap - mmap b:aniiii __mmap mmap mprotect - mprotect i:aii __mprotect mprotect diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 63432725d2..2e6cf9c60d 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -36,11 +36,9 @@ ioperm - ioperm i:iii ioperm iopl - iopl i:i iopl klogctl EXTRA syslog i:isi klogctl lchown - lchown i:sii __lchown lchown -madvise - madvise i:pii madvise mincore - mincore i:anV mincore mlock - mlock i:bn mlock mlockall - mlockall i:i mlockall -mmap - mmap b:aniiii __mmap mmap mount EXTRA mount i:sssip __mount mount mremap EXTRA mremap b:ainip __mremap mremap munlock - munlock i:ai munlock -- cgit 1.4.1