From: Keith M. <kei...@us...> - 2014-08-12 10:41:33
|
On 11/08/14 19:46, Eli Zaretskii wrote: > Could someone please explain why the distributed binaries of GCC and > Binutils include the same programs several times? For each foo.exe, > there's bin/foo.exe, bin/mingw32-foo.exe, mingw32/bin/foo.exe, etc. > And similarly with libexec/. I agree with your implied comment, that it seems perverse, but that's the way GCC's and binutils' build systems install them, and we just bundle our distributed tarballs from a staged installation snapshot. Arguably, we could be more selective in what we bundle, but ... > Why are these multiple copies needed? Which software out there > expects to see mingw32-foo.exe, and anything else besides bin/foo.exe? GCC's build system itself appears to want the copies of the binutils executables in the mingw32/bin subtree; I don't know what else may have similar expectations ... nothing jumps to mind. FWIW and IIRC, in the gcc-4.8.2 bundles which I posted, I substituted tiny stubs in place of the myriad duplicates, leaving just one physical copy of each distinct executable, to which the stub redirects its execution. Ideally, of course, we would be able to use hard links rather than stubs, but unfortunately many (if not most) of the archive extraction tools which prevail on Windows mishandle them, creating a standalone zero sized file instead of the intended link; (besides, if a user happens to install on a FAT32 file system, such as is prevalent on USB thumb drives, for example, hard links simply aren't supported anyway). > Also, the "HOWTO Install the MinGW GCC" page at > http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite > says that one needs to download both the dev and dll packages for the > runtime support libraries (such as mpc, gmp, iconv, etc.), but it > looks like the dev packages are not required for running the compiler > and Binutils, they are only required if you want to develop your own > programs that link against those support libraries. Am I missing > something? No, I think you are right on the money; one of the perils of using a wiki as a documentation host is that misinformation can all to easily creep in, and we don't have the resources to vet every edit. Please feel free to join in, edit the page, and help to improve QOI. Another (related) issue is that sometimes the package maintainers may over-specify the dependencies, when writing the mingw-get catalogue entries for their packages. I've challenged this tendency, in the past, only to get a response along the lines of: "Isn't it better to over-specify, than to omit something critical? I'd rather not have to devote too much time to the thought process needed to identify the minimum set of true dependencies". -- Regards, Keith. |