|
|
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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.