BSD 2.11 - man page for symcompact (bsd section 1)
|Linux & Unix Commands - Search Man Pages
symcompact - string compaction for object files
symcompact [ object_name ... ]
symcompact reduces the symbol table size of an executable file. This is done by removing
unnecessary overlay transfer vectors (text symbols beginning with a tilde). In a nonover-
laid program there is no need for both the underscore (_foo) and tilde (~foo) text symbol
and only the underscore form is kept. For overlaid programs if the symbol is in the base
segment the tilde form is not needed and again only the underscore form is preserved.
Running symcompact typically reduces the kernel symbol table size by 250 or so symbols.
It is possible to run both symcompact and strcompact to achieve an even higher degree of
symbol and string table compaction. The normal sequence is to run symcompact first fol-
lowed by strcompact. If symcompact runs out of memory it will be necessary to reverse the
order and run symcompact a second time - see the BUGS note below.
The user must have write permission to the object/executable file.
symcompact writes to stderr the count of symbols removed from the symbol table.
symcompact exits 0 if successful, and >0 if an error occurred.
This program can partially negate the benefits of strcompact because multiple references
to identical strings cause additional strings to be placed in the string table. Running
strcompact again after running this program fixes this problem.
The register local symbol type is removed from the executable/object file. Since the
debugger really doesn't know how to deal with those symbols this is not much of a loss and
saves quite a bit of space both in the symbol table and the string table.
symcompact should not be run on .o files that will be passed to the linker. The linker
will need the tilde form of the symbol if an overlaid executable is being created.
3rd Berkeley Distribution January 25, 1994 symcompact(1)
All times are GMT -4. The time now is 03:34 PM.