]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
* elf/dl-load.c: Remove support for systems without MAP_ANON.
authorUlrich Drepper <drepper@redhat.com>
Tue, 31 Mar 2009 22:03:24 +0000 (22:03 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 31 Mar 2009 22:03:24 +0000 (22:03 +0000)
* elf/dl-minimal.c: Likewise.
* elf/dl-misc.c: Likewise.
* elf/rtld.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.

ChangeLog
elf/dl-load.c
elf/dl-minimal.c
elf/dl-misc.c
elf/rtld.c
sysdeps/generic/ldsodefs.h

index 4099fffe54340144a024df6e17f37603e5f0bd81..cdc90f0e7cd91446637e8c867bcc5dc4828332b1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-03-31  Ulrich Drepper  <drepper@redhat.com>
+
+       * elf/dl-load.c: Remove support for systems without MAP_ANON.
+       * elf/dl-minimal.c: Likewise.
+       * elf/dl-misc.c: Likewise.
+       * elf/rtld.c: Likewise.
+       * sysdeps/generic/ldsodefs.h: Likewise.
+
 2009-03-30  Ulrich Drepper  <drepper@redhat.com>
 
        * elf/do-lookup.h (do_lookup_x): Minor optimization and cleanup.
index 0deb51e445d53426e0523c436129329f71ed15f6..03edbab279f769d8ef5d3ffac802ec57c870df78 100644 (file)
 
 #define STRING(x) __STRING (x)
 
-#ifdef MAP_ANON
-/* The fd is not examined when using MAP_ANON.  */
-# define ANONFD -1
-#else
-int _dl_zerofd = -1;
-# define ANONFD _dl_zerofd
-#endif
-
 /* Handle situations where we have a preferred location in memory for
    the shared objects.  */
 #ifdef ELF_PREFERRED_ADDRESS_DATA
@@ -1312,7 +1304,7 @@ cannot allocate TLS data structures for initial thread");
                caddr_t mapat;
                mapat = __mmap ((caddr_t) zeropage, zeroend - zeropage,
                                c->prot, MAP_ANON|MAP_PRIVATE|MAP_FIXED,
-                               ANONFD, 0);
+                               -1, 0);
                if (__builtin_expect (mapat == MAP_FAILED, 0))
                  {
                    errstring = N_("cannot map zero-fill pages");
index 5079c449f6bb85a1a6dbfbe88142bdc6803a2ce4..e07029326c913aa617d09c9cf2e5453b4ef3ede6 100644 (file)
@@ -1,5 +1,5 @@
 /* Minimal replacements for basic facilities used in the dynamic linker.
-   Copyright (C) 1995-1998,2000-2002,2004-2006,2007
+   Copyright (C) 1995-1998,2000-2002,2004-2006,2007,2009
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -51,16 +51,6 @@ extern unsigned long int weak_function strtoul (const char *nptr,
 void * weak_function
 __libc_memalign (size_t align, size_t n)
 {
-#ifdef MAP_ANON
-#define        _dl_zerofd (-1)
-#else
-  extern int _dl_zerofd;
-
-  if (_dl_zerofd == -1)
-    _dl_zerofd = _dl_sysdep_open_zero_fill ();
-#define MAP_ANON 0
-#endif
-
   if (alloc_end == 0)
     {
       /* Consume any unused space in the last page of our data segment.  */
@@ -87,7 +77,7 @@ __libc_memalign (size_t align, size_t n)
          nup = GLRO(dl_pagesize);
        }
       page = __mmap (0, nup, PROT_READ|PROT_WRITE,
-                    MAP_ANON|MAP_PRIVATE, _dl_zerofd, 0);
+                    MAP_ANON|MAP_PRIVATE, -1, 0);
       if (page == MAP_FAILED)
        return NULL;
       if (page != alloc_end)
index 6da1e2e4aa31d447ed10a5cec24a4be9cea792d8..7c77cd040f7b40c19277271b0cc96c3690cbb295 100644 (file)
@@ -1,5 +1,5 @@
 /* Miscellaneous support functions for dynamic linker
-   Copyright (C) 1997-2002, 2003, 2004, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1997-2004, 2006, 2009 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
 #include <stdio-common/_itoa.h>
 #include <bits/libc-lock.h>
 
-#ifndef MAP_ANON
-/* This is the only dl-sysdep.c function that is actually needed at run-time
-   by _dl_map_object.  */
-
-int
-_dl_sysdep_open_zero_fill (void)
-{
-  return __open ("/dev/zero", O_RDONLY);
-}
-#endif
-
 /* Read the whole contents of FILE into new mmap'd space with given
    protections.  *SIZEP gets the size of the file.  On error MAP_FAILED
    is returned.  */
index bfe956446361a399703f0e22f9e1cdf0d99834f3..115c6da497baf9991262be1dbbb4f41b1c02c81f 100644 (file)
@@ -24,7 +24,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <sys/mman.h>          /* Check if MAP_ANON is defined.  */
+#include <sys/mman.h>
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <ldsodefs.h>
@@ -1782,12 +1782,6 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
   for (i = main_map->l_searchlist.r_nlist; i > 0; )
     main_map->l_searchlist.r_list[--i]->l_global = 1;
 
-#ifndef MAP_ANON
-  /* We are done mapping things, so close the zero-fill descriptor.  */
-  __close (_dl_zerofd);
-  _dl_zerofd = -1;
-#endif
-
   /* Remove _dl_rtld_map from the chain.  */
   GL(dl_rtld_map).l_prev->l_next = GL(dl_rtld_map).l_next;
   if (GL(dl_rtld_map).l_next != NULL)
index 943369bb24e1a6d201e64071279b047b5a6e837b..a2dd4ac7fb19202ef3bdbb8933693f102a2f0110 100644 (file)
@@ -399,11 +399,6 @@ struct rtld_global
   /* Incremented whenever something may have been added to dl_loaded.  */
   EXTERN unsigned long long _dl_load_adds;
 
-#ifndef MAP_ANON
-  /* File descriptor referring to the zero-fill device.  */
-  EXTERN int _dl_zerofd;
-#endif
-
   /* The object to be initialized first.  */
   EXTERN struct link_map *_dl_initfirst;