This is the mail archive of the egcs@egcs.cygnus.com mailing list for the EGCS project. See the EGCS home page for more information.


[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

Re: multiple definitions of 'xxx keyed to...' in egcs-1.1.1



> Date: Sun, 21 Feb 1999 12:04:24 +0100 (EET)
> From: Kamil Iskra <kamil@dwd.interkom.pl>
> To: "Martin v. Loewis" <martin@mira.isdn.cs.tu-berlin.de>

> I don't get it. What's so difficult about introducing a new target
> macro that conveys precisely this information?

Nothing.  Writing bad code that is poorly design and unmaintainable is
easy.  Nothing hard about it.  Unfortunately, we try and write
maintainable and well designed code.  This is where `hardness' comes
into play.

Any feature that works on one system that obscures bugs on other
systems leads to fragile software.  It is usually good to avoid
fragile software, if possible.  When it works that same exact way on
all platforms, then we win bigger.  Winning is good.

It is a delicate balance between this type of goodness and superior
codegen strategies.  (static being superior)

I haven't voiced too much of an opinion in this thread, because I am
unsure which is better.  I like that Linux catches random bugs that
others might see on other platforms.  I like fixes that once fixed,
fixes all problems on all platforms.  Adding this special new macro,
means that we can no longer have symmetry across targets.  Testing
Linux, means testing even less of the compiler.

For example, adding a cryptgraphic checksum based upon the source code
of the translation unit is better, because then it works more often on
Liinux and it works more often on all platforms.  The more that I
think of random bits (pid, time, hostname) injected into the output of
the compiler, the more I don't like it, as then binary object
comparisons don't work and some people like comparing the output of
the compiler to verify that it is working properly.  Ask how many
people like timestamps, I think most of us hate them.  If you want a
timestamp, stat it.