Mail Archives: djgpp-workers/2001/06/27/13:58:58
> Date: Wed, 27 Jun 2001 09:27:24 +0300 (WET)
> From: Andris Pavenis <pavenis AT lanet DOT lv>
>
> 1) incompatible files with identical names simultanously visible to
> compiler. Examples:
>
> specs from djdev201.zip and one from gcc-2.8.1 in
> lib/gcc-lib/djgpp/2.81
>
> djgpp.djl from djdev20[12].zip and one from gcc-2.8.1
> (we needed that to get C++ exceptions working)
So you are saying that the different name also required to change
specs to use that new name? That is, if someone replaces their specs
file, they will lose the linker script as well?
> If I'm wrong then where exactly?
Having multiple files whose precedence rules are subtle is _the_
problem I'd like to avoid. It doesn't matter much that the names are
identical or not; what matters is that there are several incompatible
files for the same purpose.
Since the linker script needs to match both the compiler and the
linker (and also the library), we might have a situation in the
future, perhaps near future, that a new Binutils release will need to
modify the linker script, say, to prevent the linker from crashing at
link time, or to prevent programs from crashing at run time. If we
have more than one linker script lurking on users' platforms, we will
have a much harder time to get the replacement right than today.
Overwriting files when unzipping a package is indeed unfortunate, but
at least we keep one file in one, well-defined place. Any reasonable
user will DTRT when presented by the unzip utility with the time
stamps of the two files. As for unreasonable ones... they will wind
up on c.o.m.d. anyway ;-)
By keeping the linker script in one place, we can more easily fix any
situations in the future when one of the three consumers of that file
will require it to be changed.
Once again, the fact that the files' names are identical is not the
problem: the problem is that there are more than one file, and which
one will be used depends on factors that most users don't understand,
and thus will be unable to control without lots of hand-holding.
- Raw text -