* /From/: Bud Davis <bdavis9659 at sbcglobal dot net>
* /Date/: Sat, 11 Nov 2006 16:06:44 -0800 (PST)
it is a rare single file that takes more than 30
seconds to compile (at least with gcc3 and higher).
linking the largest executable takes about 3 minutes.
(sorry to be so long-winded getting to the topic!!)
ordinary case is i change a file and re-link. takes
less than 3.5 minutes. even if gcc was infinitely
fast, it would still be 3 minutes.
Sounds like you'd be well served by an incremental linker, like AIX
provides. But that's mostly a topic for a binutils list. The AIX tools
have some good ideas, worth adopting more widely, like recording the
sizes of functions in each object file. It basically allows each
individual function to be treated separately, the way traditional
linkers treat separate .o files. So individual functions can be replaced
during a relink, leaving the majority of the object file intact (plus or
minus relocations that moved along the way). It also somewhat blurs the
distinction between a fully linked executable file and an intermediate
relocatable object, since executables can also be incrementally
relinked. It's a real timesaver when you just need to fix one file in a
very large program.
--
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/