Author: kib
Date: Tue Oct  4 09:55:15 2011
New Revision: 225961
URL: http://svn.freebsd.org/changeset/base/225961

Log:
  MFC r225699:
  Restore the writing of the .bss sections of the dsos.
  Revert the optimization of using mprotect(2) to establish .bss, overlap
  the section with mmap(2).

Modified:
  stable/8/libexec/rtld-elf/map_object.c
Directory Properties:
  stable/8/libexec/rtld-elf/   (props changed)

Modified: stable/8/libexec/rtld-elf/map_object.c
==============================================================================
--- stable/8/libexec/rtld-elf/map_object.c      Tue Oct  4 06:46:12 2011        
(r225960)
+++ stable/8/libexec/rtld-elf/map_object.c      Tue Oct  4 09:55:15 2011        
(r225961)
@@ -209,8 +209,9 @@ map_object(int fd, const char *path, con
            bss_vlimit = round_page(segs[i]->p_vaddr + segs[i]->p_memsz);
            bss_addr = mapbase +  (bss_vaddr - base_vaddr);
            if (bss_vlimit > bss_vaddr) {       /* There is something to do */
-               if (mprotect(bss_addr, bss_vlimit - bss_vaddr, data_prot) == 
-1) {
-                   _rtld_error("%s: mprotect of bss failed: %s", path,
+               if (mmap(bss_addr, bss_vlimit - bss_vaddr, data_prot,
+                   data_flags | MAP_ANON, -1, 0) == (caddr_t)-1) {
+                   _rtld_error("%s: mmap of bss failed: %s", path,
                        strerror(errno));
                    return NULL;
                }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to