This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

re: comments on getting the most out of multi-core machines




    * /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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]