With the release of Delphi 3.0 Borland has introduced a new technology that allows to share the same compiled code for different binaries. If this new "package" support is used, executable size will decrease from 180 KB to 9 KB for a "Hello world" application and from 475 KB to 13 KB for an application using databases.
This dramatic reduction in size is achieved by "hot-linking" to the code needed at runtime. Borland has provided a set of "runtime packages" (see DEPLOY.TXT) which contain all RTL units and VCL components shipping with Delphi 3.
How then does this new technology affect bug fixing Borland's code?
If you want to use package support, but still want to fix a problem, you run into a problem: Borland explictily states in DEPLOY.TXT that "You may not modify these [Borland-supplied] packages in any way". Also, "Packages that you develop may not have the same names as Borland-supplied packages."
You can work around this restriction by creating your own set of runtime packages, which mirrors the content of each of the Borland packages. You will not be able to create completely identical copies of each of the Borland packages, as these contain a few units that are not redistributed. These units provide design time support that you will not need (see, for instance, "LibIntf" in VCLDB30.DCP).
If you follow this scheme you usually will have to repackage all units in your own packages. You will not be able to use any Borland-supplied packages. This is particularly the case where you fix a problem in a low-level unit, which are all contained in VCL30.DPL
You may wonder whether it is possible to only link the bugfixed code into your binary while getting the rest from the package. Well, it is impossible: Once you use a package, the linker leaves every unit "contained" in the package out of the compiled executable.
If you do not use package support, everything remains the same as for Delphi 1 and Delphi 2. You modify the library source code, compile it into your application, done. As before, if you are writing components you must not rely on bug fixes in other people's RTL and VCL source code.
Effectively for Delphi 3 there are two options for incorporating bug fixes to Borland code into a binary:
Comments and constructive criticism are welcome and should be addressed to Stefan Hoffmeister (Stefan.Hoffmeister@Uni-Passau.de).