Mail Archives: djgpp/1998/03/01/05:36:22
On Fri, 27 Feb 1998, Salvador Eduardo Tropea (SET) wrote:
> DJGPP can be benefited from DLLs. Think about it:
>
> 1) Disk space, the BIN directory can be reduced if libc is a DLL.
> 2) When you compile from RHIDE it calls gcc that calls cc1plus. The three
> programs have A LOT of libc functions.
We seem to have this DLL discussion every 4 months or so. People who
never saw previous threads related to DLLs might consider searching
the DJGPP archives at http://www.delorie.com/djgpp/mail-archives/.
To recap, DLLs have some non-trivial disadvantages as well, in
particular in an environment where different binaries are built by
different people. Some of the disadvantages are:
1) People who upload binary packages tend to patch their
libraries a lot. Using DLLs, this would mean having
several incompatible versions of them around, which works
against the disk space reduction argument.
2) In a single-task OS such as DOS, DLLs only reduce memory
footprint when you run nested programs (such as Make which
calls GCC which calls cc1plus). In other cases, you don't
gain any memory. And if you run several DJGPP programs
from several DOS boxes on Windows, you probably cannot use
DLLs, since every DOS box has its own private memory space.
3) Static linking only links in those library functions which
are actually used. In contrast, a DLL includes *all* of
the functions, so it is typically much larger; this again
prevents any real run-time memory gains. Unix systems
don't suffer from this particular problem, because (1) all
the programs which run there use the same library, and
(2) a large number of programs is running at any given
time.
- Raw text -