Date: Sun, 1 Mar 1998 12:36:14 +0200 (IST) From: Eli Zaretskii To: "Salvador Eduardo Tropea (SET)" cc: Chris Bilson , djgpp AT delorie DOT com Subject: Re: DLL in djgpp??? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk 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.