OpenSolaris

Printable Version Enter a New Search
Bug ID 6686372
Synopsis ld.so.1 should use mmapobj(2)
State 10-Fix Delivered (Fix available in build)
Category:Subcategory compiler:linker
Keywords
Responsible Engineer Rod Evans
Reported Against
Duplicate Of
Introduced In solaris_2.0
Commit to Fix snv_108
Fixed In snv_108
Release Fixed solaris_nevada(snv_108)
Related Bugs 4789631 , 4839668 , 6502792 , 6678310 , 6726108 , 6797028 , 6797468 , 6798857 , 6850124 , 6861993 , 6237063
Submit Date 9-April-2008
Last Update Date 11-February-2009
Description
6502792 integrates a new mmaping system call - mmapobj(2).  See PSARC/2008/226.

This system call allows ld.so.1 to throw away all its mapping code.  All objects
will simply be opened, and the file descriptor passed to mmapobj().  The kernel
will select the appropriate location to map the file, the use of large pages,
and any other optimization that would be beneficial to the object/system.

ld.so.1's architecture has revolved around a static buffer in which the first
page of any object is mapped, and the inspection of the program header information
to deduce the number and size of mapings that are required to create the segments
of an object.  This can all be thrown away.  Yes!

The mmapobj_result_t array that is returned from mmapobj() will be used to drive
all other ld.so.1 activities - relocation, symbol lookup, etc.

Individiual mappings from the mmapobj_result_t array can be mprotected/munmaped
as required.
Work Around
N/A
Comments
N/A