1symcompact(1)               General Commands Manual              symcompact(1)
2
3
4

NAME

6       symcompact - string compaction for object files
7

SYNOPSIS

9       symcompact [ object_name ... ]
10

DESCRIPTION

12       symcompact  reduces  the symbol table size of an executable file.  This
13       is done by removing unnecessary overlay transfer vectors (text  symbols
14       beginning with a tilde).  In a nonoverlaid program there is no need for
15       both the underscore (_foo) and tilde (~foo) text symbol  and  only  the
16       underscore form is kept.  For overlaid programs if the symbol is in the
17       base segment the tilde form is not needed and again only the underscore
18       form  is  preserved.   Running  symcompact typically reduces the kernel
19       symbol table size by 250 or so symbols.
20
21       It is possible to run both symcompact and strcompact to achieve an even
22       higher  degree  of  symbol  and  string  table  compaction.  The normal
23       sequence is to run symcompact first followed by strcompact.  If symcom‐
24       pact  runs  out of memory it will be necessary to reverse the order and
25       run symcompact a second time - see the BUGS note below.
26
27       The user must have write permission to the object/executable file.
28
29       symcompact writes to stderr the count of symbols removed from the  sym‐
30       bol table.
31
32       symcompact exits 0 if successful, and >0 if an error occurred.
33

SEE ALSO

35       symcompact(1), symorder(1)
36

BUGS

38       This  program  can  partially negate the benefits of strcompact because
39       multiple references to identical strings cause additional strings to be
40       placed  in  the  string  table.  Running strcompact again after running
41       this program fixes this problem.
42
43       The register local symbol type is removed  from  the  executable/object
44       file.   Since  the  debugger really doesn't know how to deal with those
45       symbols this is not much of a loss and saves quite a bit of space  both
46       in the symbol table and the string table.
47
48       symcompact  should  not  be  run on .o files that will be passed to the
49       linker.  The linker will need the tilde form of the symbol if an  over‐
50       laid executable is being created.
51
52
53
543rd Berkeley Distribution      January 25, 1994                  symcompact(1)
Impressum