[1/3] Mark ld.so internel mmap functions hidden

Message ID 1445189141-18068-1-git-send-email-hjl.tools@gmail.com
State New, archived
Headers

Commit Message

H.J. Lu Oct. 18, 2015, 5:25 p.m. UTC
  Since ld.so internel mmap functions are only used internally in ld.so,
they can be made hidden.

	 [BZ #19122]
	 * include/sys/mman.h [IS_IN (rtld)] (__mmap): Add
	 attribute_hidden if not compiling for Hurd.
	 [IS_IN (rtld)] (__mprotect): Add attribute_hidden.
	 [IS_IN (rtld)] (__munmap): Likewise.
---
 include/sys/mman.h | 10 ++++++++++
 1 file changed, 10 insertions(+)
  

Comments

Roland McGrath Oct. 19, 2015, 6:31 p.m. UTC | #1
NAK to #ifdef in generic code.
  
Andreas Schwab Oct. 19, 2015, 8:45 p.m. UTC | #2
s/internel/internal/

Andreas.
  

Patch

diff --git a/include/sys/mman.h b/include/sys/mman.h
index fd125ec..65fe3ff 100644
--- a/include/sys/mman.h
+++ b/include/sys/mman.h
@@ -16,6 +16,16 @@  libc_hidden_proto (__madvise)
 /* This one is Linux specific.  */
 extern void *__mremap (void *__addr, size_t __old_len,
 		       size_t __new_len, int __flags, ...);
+
+# if IS_IN (rtld)
+#  ifndef __gnu_hurd__
+/* On Hurd, __mmap in ld.so will be preempted by the one in libc.so after
+   bootstrap.  */
+extern __typeof (__mmap) __mmap attribute_hidden;
+#  endif
+extern __typeof (__mprotect) __mprotect attribute_hidden;
+extern __typeof (__munmap) __munmap attribute_hidden;
+# endif
 #endif
 
 #endif