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)