Annotation of 43BSDTahoe/new/help/src/f77/biglibs, revision 1.1.1.1

1.1       root        1: .TI F77/BIGLIBS "Sep. 15, 1984"
                      2: Techniques for Creating Large User Libraries
                      3: 
                      4: If you have a large library, it saves space to strip the object files
                      5: of local symbols before putting them in the library.
                      6: The following
                      7: C shell commands strip all the '.o' files in the current directory
                      8: and create a new random library, mylib.a, from them.
                      9: Do this only with debugged files as the source level debuger,
                     10: dbx, can not be used with stripped object files.
                     11: 
                     12: .nf
                     13:        foreach i (*.o)
                     14:           ld -r -x $i
                     15:           /bin/mv a.out $i
                     16:        end
                     17:        /bin/rm -f mylib.a
                     18:        ar qv mylib.a *.o
                     19:        ranlib mylib.a
                     20: .fi
                     21: 
                     22: The /bin/rm -f will remove an existing version of the library without
                     23: prompting if it exists and without error comment if none exists.
                     24: \&'Ar q' is faster than 'ar r' or 'ar u' when creating libraries, especially
                     25: when creating an archive piece-by-piece.  'q' cannot be used when
                     26: updating an archive.  The 'v' option causes the names of the files
                     27: being added to be typed on standard output.
                     28: 
                     29: With large archives, loading time often is improved if the files
                     30: in the archive are ordered so that the loader will make only one
                     31: pass through the archive.  To do this, replace the ar by:
                     32: 
                     33: .nf
                     34:        ar qv mylib.a `lorder *.o | tsort`
                     35: .fi
                     36: 
                     37: If you are creating a archive with over 500 object files, 'lorder *.o'
                     38: may cause the error: "Arguments too long".
                     39: This can be overcome by a sequence such as:
                     40: 
                     41: .nf
                     42:        ar q tmp.a [a-d]*.o
                     43:        ar q tmp.a [e-n]*.o
                     44:        ar q tmp.a [o-z]*.o
                     45:        lorder tmp.a | tsort | split -100 - XXlists
                     46:        /bin/rm tmp.a
                     47:        foreach i ( XXlists* )
                     48:                ar qv mylib.a `cat $i`
                     49:        end
                     50:        /bin/rm -f XXlists*
                     51: .fi

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.