Bug 2873 - [3.3 only][fixinclude] Bogus fixinclude of stdio.h from glibc 2.2.3
Summary: [3.3 only][fixinclude] Bogus fixinclude of stdio.h from glibc 2.2.3
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: other (show other bugs)
Version: 3.1
: P3 normal
Target Milestone: 3.3.1
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2001-05-19 10:16 UTC by Joseph S. Myers
Modified: 2005-01-03 16:55 UTC (History)
3 users (show)

See Also:
Host: i686-pc-linux-gnu
Target: i686-pc-linux-gnu
Build: i686-pc-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joseph S. Myers 2001-05-19 10:16:00 UTC
Fixincludes makes bogus changes to <stdio.h> from glibc 2.2.3.  This
applies to both the mainline and 3.0 branch, and is a regression from
2.95.

Release:
3.1 20010519 (experimental)

Environment:
System: Linux digraph 2.2.19 #1 Wed Mar 28 16:01:38 UTC 2001 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-cvs/configure --prefix=/opt/gcc/mainline --disable-shared --enable-threads=posix --with-system-zlib

How-To-Repeat:
The following are the diffs generated.  This change is bogus; the
va_list typedef under __USE_XOPEN is for Single Unix Specification
conformance.

--- /usr/include/stdio.h	Fri Apr 27 16:17:00 2001
+++ /opt/gcc/mainline/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stdio.h	Sat May 19 15:45:40 2001
@@ -1,3 +1,12 @@
+/*  DO NOT EDIT THIS FILE.
+
+    It has been auto-edited by fixincludes from:
+
+	"/usr/include/stdio.h"
+
+    This had to be done to correct non-standard usages in the
+    original, manufacturer supplied header file.  */
+
 /* Define ISO C stdio on top of C++ iostreams.
    Copyright (C) 1991, 1994-1999, 2000, 2001 Free Software Foundation, Inc.
 
@@ -65,9 +74,9 @@
 
 #ifdef __USE_XOPEN
 # ifdef __GNUC__
-#  ifndef _VA_LIST_DEFINED
-typedef _G_va_list va_list;
-#   define _VA_LIST_DEFINED
+#  ifndef _DUMMY_VA_LIST_DEFINED
+typedef _G_va_list __not_va_list__;
+#   define _DUMMY_VA_LIST_DEFINED
 #  endif
 # else
 #  include <stdarg.h>
Comment 1 dmj+ 2001-05-19 16:42:42 UTC
From: Daniel Jacobowitz <dmj+@andrew.cmu.edu>
To: Joseph Myers <jsm28@cam.ac.uk>
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: other/2873: Bogus fixinclude of stdio.h from glibc 2.2.3
Date: Sat, 19 May 2001 16:42:42 -0700

 On Sat, May 19, 2001 at 05:10:43PM +0000, Joseph Myers wrote:
 > 
 > >Number:         2873
 > >Category:       other
 > >Synopsis:       Bogus fixinclude of stdio.h from glibc 2.2.3
 > >Confidential:   no
 > >Severity:       serious
 > >Priority:       medium
 > >Responsible:    unassigned
 > >State:          open
 > >Class:          sw-bug
 > >Submitter-Id:   net
 > >Arrival-Date:   Sat May 19 10:16:00 PDT 2001
 > >Closed-Date:
 > >Last-Modified:
 > >Originator:     Joseph S. Myers
 > >Release:        3.1 20010519 (experimental)
 > >Organization:
 > none
 > >Environment:
 > System: Linux digraph 2.2.19 #1 Wed Mar 28 16:01:38 UTC 2001 i686 unknown
 > Architecture: i686
 > 
 > 	
 > host: i686-pc-linux-gnu
 > build: i686-pc-linux-gnu
 > target: i686-pc-linux-gnu
 > configured with: ../gcc-cvs/configure --prefix=/opt/gcc/mainline --disable-shared --enable-threads=posix --with-system-zlib
 > >Description:
 > 
 > Fixincludes makes bogus changes to <stdio.h> from glibc 2.2.3.  This
 > applies to both the mainline and 3.0 branch, and is a regression from
 > 2.95.
 
 Interestingly, the fix seems to be necessary on alpha.  va-alpha.h
 will typedef va_list when included from <stdarg.h>, and va_list will be
 typedef'd in stdio.h when stdio is first included, causing a warning.
 Is the typedef in stdio.h newly (re?)-introduced ?
 
 -- 
 Daniel Jacobowitz                           Debian GNU/Linux Developer
 Monta Vista Software                              Debian Security Team

Comment 2 dmj+ 2001-05-19 18:09:13 UTC
From: Daniel Jacobowitz <dmj+@andrew.cmu.edu>
To: "Joseph S. Myers" <jsm28@cam.ac.uk>
Cc: gcc-gnats@gcc.gnu.org
Subject: Re: other/2873: Bogus fixinclude of stdio.h from glibc 2.2.3
Date: Sat, 19 May 2001 18:09:13 -0700

 On Sun, May 20, 2001 at 01:01:14AM +0100, Joseph S. Myers wrote:
 > On 19 May 2001, Daniel Jacobowitz wrote:
 > 
 > >  Interestingly, the fix seems to be necessary on alpha.  va-alpha.h
 > 
 > I thought the special va-<arch>.h headers had all gone away for 3.0 with 
 > the introduction of builtins for stdarg/varargs?
 > 
 > (Some things might still break with varargs.h - but anything still using 
 > that should probably just be considered broken.)
 
 This is actually with 2.95.3, and glibc 2.2.3.
 
 -- 
 Daniel Jacobowitz                           Debian GNU/Linux Developer
 Monta Vista Software                              Debian Security Team
Comment 3 Joseph S. Myers 2001-05-20 01:01:14 UTC
From: "Joseph S. Myers" <jsm28@cam.ac.uk>
To: Daniel Jacobowitz <dmj+@andrew.cmu.edu>
Cc: <gcc-gnats@gcc.gnu.org>
Subject: Re: other/2873: Bogus fixinclude of stdio.h from glibc 2.2.3
Date: Sun, 20 May 2001 01:01:14 +0100 (BST)

 On 19 May 2001, Daniel Jacobowitz wrote:
 
 >  Interestingly, the fix seems to be necessary on alpha.  va-alpha.h
 
 I thought the special va-<arch>.h headers had all gone away for 3.0 with 
 the introduction of builtins for stdarg/varargs?
 
 (Some things might still break with varargs.h - but anything still using 
 that should probably just be considered broken.)
 
 -- 
 Joseph S. Myers
 jsm28@cam.ac.uk
 

Comment 4 Wolfgang Bangerth 2002-12-21 09:17:47 UTC
State-Changed-From-To: open->analyzed
State-Changed-Why: Still happens with mainline of this week.
Comment 5 Zack Weinberg 2003-05-22 17:01:31 UTC
I'm going to apply a candidate patch to mainline for this bug.
We should let it sit there for awhile before applying it to the 3.3 branch,
in case it breaks something.  I'll leave this bug open until then.
Comment 6 GCC Commits 2003-07-02 06:47:10 UTC
Subject: Bug 2873

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_3-branch
Changes by:	zack@gcc.gnu.org	2003-07-02 06:47:06

Modified files:
	gcc            : ChangeLog 
	gcc/fixinc     : inclhack.def fixincl.x 

Log message:
	PR 2873
	* fixinc/inclhack.def (avoid_wchar_t_type): Add bypass
	expressions to prevent triggering on recent curses.h,
	linux/nls.h, or X11/Xlib.h.
	(stdio_va_list): Add _G_va_list to bypass pattern.
	(strict_ansi_not): Add bypass pattern for __SCO_VERSION__.
	* fixinc/fixincl.x: Regenerate.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.16114.2.630&r2=1.16114.2.631
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fixinc/inclhack.def.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.139.4.7&r2=1.139.4.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fixinc/fixincl.x.diff?cvsroot=gcc&only_with_tag=gcc-3_3-branch&r1=1.132.4.6&r2=1.132.4.7

Comment 7 Zack Weinberg 2003-07-02 07:01:16 UTC
Patch has been on mainline for over a month with no ill effects, so
I've applied it to the branch.
Comment 8 cvs-commit@developer.classpath.org 2006-10-12 12:52:03 UTC
Subject: Bug 2873

CVSROOT:	/cvsroot/classpath
Module name:	classpath
Changes by:	Roman Kennke <rabbit78>	06/10/12 12:50:44

Modified files:
	javax/swing/plaf/basic: BasicTabbedPaneUI.java 
	.              : ChangeLog 

Log message:
	2006-10-12  Roman Kennke  <kennke@aicas.com>
	
		PR 2873
		* javax/swing/plaf/basic/BasicTabbedPaneUI.java
		(TabPaneLayout.normalizeTabRuns): Replaced algorithm with
		one that avoids faulty state that could cause division by zero
		error.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/javax/swing/plaf/basic/BasicTabbedPaneUI.java?cvsroot=classpath&r1=1.56&r2=1.57
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.8669&r2=1.8670