Mapfiles provide a large degree of control over the operation of the link-editor, and the resulting output object.
Create and/or modify output segments.
Define how input sections are assigned to segments, and the relative order of those sections.
Specify symbol scope and/or versioning, creating stable backward compatible interfaces for sharable objects.
Define the versions to use from sharable object dependencies.
Set header options in the output object.
Set process stack attributes for a dynamic executable.
Set or override hardware and software capabilities.
The –M command line option is used to specify the mapfile to be used. Multiple mapfiles can be used in a single link operation. When more than one mapfile is specified, the link-editor processes each one in the order given, as if they represented a single logical mapfile. This occurs before any input objects are processed.
The system provides sample mapfiles for solving common problems in the /usr/lib/ld directory.