This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: misleading statement in bugs.html#known
- From: Andreas Schwab <schwab at suse dot de>
- To: Gerald Pfeifer <pfeifer at dbai dot tuwien dot ac dot at>
- Cc: Per Bothner <per at bothner dot com>, <gcc at gcc dot gnu dot org>
- Date: 06 Dec 2001 13:31:08 +0100
- Subject: Re: misleading statement in bugs.html#known
- References: <Pine.BSF.4.43.0112061238420.25049-100000@naos.dbai.tuwien.ac.at>
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> writes:
|> On 5 Dec 2001, Andreas Schwab wrote:
|> >|> The point is that glibc allows you to *assign* to stdin, so it is
|> >|> no longer constant. This is a questionable feature..
|> > No. The real reason is that using the address of a static object is a
|> > nightmare in context of maintaining binary compatibility. Platforms that
|> > use copy relocations will lose if the size of the FILE type changes.
|>
|> Would (one of) you (who knows this stuff) mind updating bugs.html?
How about this:
--- bugs.html.~1.45.~ Sun Nov 4 00:14:32 2001
+++ bugs.html Thu Dec 6 13:29:35 2001
@@ -276,10 +276,10 @@
</code></blockquote>
will not compile with GNU libc (GNU/Linux libc6), because
-<code>stdin</code> is not a constant. This was done deliberately, in
-order for there to be no limit on the number of open <code>FILE</code>
-objects. It is surprising for people used to traditional Unix C
-libraries, but it is permitted by the C standard.</p>
+<code>stdin</code> is not a constant. This was done deliberately, to make
+it easier to maintain binary compatibility when the type <code>FILE</code>
+needs to be changed. It is surprising for people used to traditional Unix
+C libraries, but it is permitted by the C standard.</p>
<p>This construct commonly occurs in code generated by old versions of
lex or yacc. We suggest you try regenerating the parser with a
Andreas.
--
Andreas Schwab "And now for something
Andreas.Schwab@suse.de completely different."
SuSE Labs, SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5