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 an 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.