aerostr@bullet.ecf.toronto.edu (W. Graham Elliott) (05/01/91)
We have recently noticed a big difference in the size of files
created with the ld or bind commands. For a simple Fortran program,
which we used for testing, the Aegis bind command produced an
executable file about 1.5 kB in size. The corresponding ld command
produced a 22kB file. For a much larger program the difference was
850 kB vs. 7,500 kB!
What is in the reason for the difference in the file sizes?
Does it have something to do with the shared libraries?
Are we missing something with ld?
Some specifics: Domain OS SR 10.2, Aegis & BSD 4.3
Sequence: Aegis BSD
ftn foo.ftn -b foo.bin f77 foo.ftn -c -b foo.o
bind foo.bin -b foo f77 foo.bin -o foo
Incidentally, it is irrelevent whether the source is compiled
with ftn or f77. Also, both executables created by bind and
ld function correctly.
Thank-you, in advance.
Graham.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Graham Elliott aerostr@bullet.ecf.utoronto.ca
Institute for Aerospace Studies graham.elliott@canrem.UUCP
University of Toronto, Canadawa115@sdcc12.ucsd.edu (Russell ) (05/02/91)
In article <1991May1.035524.7904@bullet.ecf.toronto.edu> aerostr@bullet.ecf.toronto.edu (W. Graham Elliott) writes: >We have recently noticed a big difference in the size of files >created with the ld or bind commands. For a simple Fortran program, >which we used for testing, the Aegis bind command produced an >executable file about 1.5 kB in size. The corresponding ld command >produced a 22kB file. For a much larger program the difference was >850 kB vs. 7,500 kB! > >What is in the reason for the difference in the file sizes? >Does it have something to do with the shared libraries? I'd guess that the apollo bind program is taking advantage of Aegis' dynamic binding scheme and not binding the standard libraries in with the executable. The UNIX ld, on the other hand, is including the library object in the final coff file. That would account for the large size difference in the two files. -------------------------------------------------------------------- Russell Shanks wa115@sdcc12.ucsd.edu
hanche@imf.unit.no (Harald Hanche-Olsen) (05/02/91)
In article <18894@sdcc6.ucsd.edu> wa115@sdcc12.ucsd.edu (Russell ) writes: In article <1991May1.035524.7904@bullet.ecf.toronto.edu> aerostr@bullet.ecf.toronto.edu (W. Graham Elliott) writes: [... explaining how ld creates much larger files than bind ...] I'd guess that the apollo bind program is taking advantage of Aegis' dynamic binding scheme and not binding the standard libraries in with the executable. The UNIX ld, on the other hand, is including the library object in the final coff file. No it doesn't, does it? Are you serious about this?? (Run nm on the linked file and watch all the "U" (for undefined) entries...) That would account for the large size difference in the two files. Hmm, I wonder how the size differences were measured? The files generated by ld might have holes in them that could confuse the output of ls -l. With ls -s you get the disk space used. This has has me fooled more than once. - Harald Hanche-Olsen <hanche@imf.unit.no> Division of Mathematical Sciences The Norwegian Institute of Technology N-7034 Trondheim, NORWAY