DragonFly BSD
DragonFly commits List (threaded) for 2004-11
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

cvs commit: src/libexec/rtld-elf


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 18 Nov 2004 02:01:47 -0800 (PST)

dillon      2004/11/18 02:01:47 PST

DragonFly src repository

  Modified files:
    libexec/rtld-elf     map_object.c rtld.c 
  Log:
  Clear the NOCORE flag on any text mappings that the RTLD modifies due to
  text relocations or compacted BSS areas.  Otherwise the checkpt code will
  not write out the modified areas.
  
  Also note that if you mmap() a file MAP_PRIVATE, then modify portions of it
  so the mapping is changed from OBJT_VNODE to OBJT_DEFAULT->OBJT_VNODE,
  the current ELF coredump code will *NOT* write out a file handle record for
  the backing vnode.  This means that the entire vm_map_entry containing
  the modified portions must be marked as COREable if it was previously mapped
  NOCORE.
  
  In the case of the RTLD code the text area is mapped read-only.  The text
  area is temporarily remapped read-write for the relocation pass and so
  the whole area is still represented by a single vm_map_entry and thus the
  whole area must be marked COREable.  For the BSS fixup only the last page
  is remapped read-write and so it gets its own private vm_map_entry and
  thus only the last page must be marked COREable.
  
  The DEFAULT->VNODE backing issue is actually a bug in the elf coredump code,
  but even if it were fixed core dump sizes would not get much smaller because
  relocations tend to be all over the map.
  
  Checkpt-Nonworking-Bug-Reported-by: Michael Neumann <mneumann@xxxxxxxx>
  
  Revision  Changes    Path
  1.4       +11 -5     src/libexec/rtld-elf/map_object.c
  1.8       +15 -1     src/libexec/rtld-elf/rtld.c


http://www.dragonflybsd.org/cvsweb/src/libexec/rtld-elf/map_object.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/libexec/rtld-elf/rtld.c.diff?r1=1.7&r2=1.8&f=u



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]