From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!cs.utexas.edu!uunet!mcsun!corton!chorus!nocturne.chorus.fr!jloup From: jloup@nocturne.chorus.fr (Jean-Loup Gailly) Newsgroups: comp.lang.ada Subject: Re: Reducing size of Ada's EXE files Message-ID: <9348@chorus.fr> Date: 16 Apr 91 08:47:05 GMT References: <437@wrdis01.af.mil> <1991Apr12.235101.7245@jpl-devvax.jpl.nasa.gov> <3049@sparko.gwu.edu> Sender: jloup@chorus.fr Reply-To: jloup@nocturne.chorus.fr (Jean-Loup Gailly) Organization: Chorus systemes, Saint Quentin en Yvelines, France List-Id: In article <3049@sparko.gwu.edu>, mfeldman@seas.gwu.edu (Michael Feldman) writes: | In article <1991Apr12.235101.7245@jpl-devvax.jpl.nasa.gov> | larryc@poe.jpl.nasa.gov (Larry Carroll) writes: > Agreed, it takes a smart linker to know just what part of a package you need. > For instance, any variables global to a package which are used by the desired > subprogram will need to be linked in. Any initialization code you include at > the end of the package, & all the subprograms & global variables they use, > must be linked. And so on. But eventually such smart linkers must become > available if Ada is to compete successfully with other languages. > > Anyone know which vendors supply such linkers? | Three I am familiar with are the TeleSoft, Meridian, and Janus/Ada families. | Indeed they throw away unused subprograms. In my experience, invoking this | global optimization, as it's usually called, requires both compiling and | linking with a command-line switch set, because preparing for and doing this | optimization takes time and space, and one doesn't want to do it unnecessarily. All Alsys compilers remove unused subprograms by default, but you can set a bind time option to keep them. On the 370, we found that it was often *cheaper* to remove unused subprograms, because the bind time was dominated by the IO, and the binder had less IO to perform when unused subprograms were eliminated. Alsys does not require a compile time option. The call graph is kept systematically because it is stored in a very compact form. Jean-loup Gailly (formally within Alsys) Chorus systemes, 6 av G. Eiffel, 78182 St-Quentin-en-Yvelines-Cedex, France email: jloup@chorus.fr Tel: +33 (1) 30 64 82 79 Fax: +33 (1) 30 57 00 66