MCS(1) User Commands MCS(1)
NAME
mcs - manipulate the comment section of an object file
SYNOPSIS
mcs [
-cdpVz] [
-a string] [
-n name]
file...
DESCRIPTION
The
mcs command is used to manipulate a section, by default the
.comment section, in an
ELF object file. It is used to add to,
delete, print, and compress the contents of a section in an
ELF object file, and print only the contents of a section in a
COFF object file.
mcs cannot add, delete, or compress the contents of a
section that is contained within a segment.
If the input file is an archive (see
ar.h(3HEAD)), the archive is
treated as a set of individual files. For example, if the
-a option
is specified, the string is appended to the comment section of each
ELF object file in the archive; if the archive member is not an
ELF object file, then it is left unchanged.
mcs must be given one or more of the options described below. It
applies, in order, each of the specified options to each file.
For operations other than delete, if the object does not already
contain a section with the specified name,
mcs will create a new
empty section with that name before performing the specified
operation.
OPTIONS
The following options are supported:
-a string Appends
string to the comment section of the
ELF object
files. If
string contains embedded blanks, it must be
enclosed in quotation marks.
-c Compresses the contents of the comment section of the
ELF object files. All duplicate entries are removed.
The ordering of the remaining entries is not disturbed.
-d Deletes the contents of the specified section from the
ELF object files. The section header for the comment
section is also removed.
-n name Specifies the name of the section to access if other
than
.comment. By default,
mcs deals with the section
named
.comment. This option can be used to specify
another section.
mcs can take multiple
-n options to
allow for specification of multiple sections.
-p Prints the contents of the comment section on the
standard output. Each section printed is tagged by the
name of the file from which it was extracted, using the
format
file[member_name]: for archive files and
file: for other files.
-V Prints on standard error the version number of
mcs.
-z Replaces any
SHT_PROGBITS sections with zeros while
retaining the original attributes of the sections.
EXAMPLES
Example 1: Printing a file's comment section
The following entry
example%
mcs -p elf.file prints the comment section of the file
elf.file.
Example 2: Appending a string to a comment section
The following entry
example%
mcs -a xyz elf.file appends string
xyz to
elf.file's comment section.
Example 3: Stripping a specified non-allocable section
Although used primarily with comment sections,
mcs can operate on any
non-allocable section. In contrast to the
strip command, which
removes a predefined selection of non-allocable sections,
mcs can be
used to delete a specific section. The following entry
example%
mcs -d -n .annotate elf.file removes the section named
.annotate from the file
elf.file.
FILES
/tmp/mcs* temporary files
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Stable |
+--------------------+-----------------+
SEE ALSO
ar(1),
as(1),
ld(1),
strip(1),
tmpnam(3C),
elf(3ELF),
ar.h(3HEAD),
a.out(5),
attributes(7)NOTES
When
mcs deletes a section using the
-d option, it tries to bind
together sections of type
SHT_REL and target sections pointed to by
the
sh_info section header field. If one is to be deleted,
mcs attempts to delete the other of the pair.
By using the
-z option, it is possible to make an object file by
removing the contents of
SHT_PROGBITS sections while retaining the
object file's original structure as an
ELF file. The need for use of
the
-z option is limited. However, the option can be used to deliver
an object file when the contents of
SHT_PROGBITS sections are not
relevant.
October 5, 2007 MCS(1)