[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #22 from dannysmith at users dot sourceforge dot net 2007-12-13 08:53 --- (In reply to comment #15) It seems fixincl isn't supported for mingw at all, from what Danny Smith mailed me privately. Sorry for breaking this thread with an inadvertent private mail. For the record here is a post about the mingw vs fixinclude logic: http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01044.html Thank you Jakub for the documentation patch. Danny -- dannysmith at users dot sourceforge dot net changed: What|Removed |Added Version|4.3.0 |2.95 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #20 from jakub at gcc dot gnu dot org 2007-12-12 20:54 --- Subject: Bug 30589 Author: jakub Date: Wed Dec 12 20:54:10 2007 New Revision: 130794 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=130794 Log: PR bootstrap/30589 * doc/install.texi: Document that for MinGW only runtime 3.12 and later is supported. Modified: trunk/gcc/ChangeLog trunk/gcc/doc/install.texi -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #21 from jakub at gcc dot gnu dot org 2007-12-12 20:55 --- The 3.12+ requirement documented, marking as fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #17 from jakub at gcc dot gnu dot org 2007-12-11 11:35 --- If fixincludes can't (at least easily) work on mingw, could we solve this PR by just documenting that for GCC 4.3 the oldest supported mingw version is 3.12? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #18 from rguenth at gcc dot gnu dot org 2007-12-11 12:15 --- I guess that's sensible. We at least don't specify a version for the secondary platform specifier i686-mingw32. Let's downgrade this to P2 as soon as a documentation patch is provided. (we should probably move all of gcc.gnu.org/install/* to a version-specific places) Mark? -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||mmitchel at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #19 from mmitchel at gcc dot gnu dot org 2007-12-11 16:06 --- I agree. Given that the intent with MinGW is to avoid fixincludes, I guess it's up to MinGW to provide headers that work. So, I agree that once we document this in our release notes, we should close this bug. (I think we can go farther than downgrading it to P2 as it doesn't sound like this is really a GCC bug.) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
-- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|jakub at gcc dot gnu dot org|unassigned at gcc dot gnu ||dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #15 from jakub at gcc dot gnu dot org 2007-11-18 22:55 --- It seems fixincl isn't supported for mingw at all, from what Danny Smith mailed me privately. 1) mkfixinc.sh makes fixincludes a nop on several targets including mingw 2) there seems to be either directory separator issues or something else related to freopen: FS error 2 (No such file or directory) reopening 'ddk/ndis.h' as stdin FS error 2 (No such file or directory) reopening 'ddk/usb.h' as stdin FS error 2 (No such file or directory) reopening 'GL/gl.h' as stdin FS error 2 (No such file or directory) reopening 'lmcons.h' as stdin The filename, directory name, or volume label syntax is incorrect. -- jakub at gcc dot gnu dot org changed: What|Removed |Added CC||dannysmith at gcc dot gnu ||dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #16 from jakub at gcc dot gnu dot org 2007-11-18 22:57 --- Created an attachment (id=14576) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14576action=view) gcc43-pr30589.patch Updated patch with wild guesses what to do about the dir separators. I can't test it though and perhaps it is something completely different anyway. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Attachment #14470|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #14 from jakub at gcc dot gnu dot org 2007-11-02 15:23 --- Created an attachment (id=14470) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14470action=view) gcc43-pr30589.patch Updated patch that could (from eyeballing mingw-runtime-3.*.tar.gz tarballs) fix this for mingw-runtime-3.2 and above (so roughly Oct 2003ish or newer). Can anybody with actual access to this target test it (ideally one test with mignw-runtime = 3.10, one with 3.11 (which has the __gnu__inline instead of __gnu_inline__ attribute) and one with 3.12 or newer (which does not need fixincluding)? Thanks. -- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|NEW |ASSIGNED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #12 from pinskia at gcc dot gnu dot org 2007-08-06 14:57 --- Has this been fixed now? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #13 from fxcoudert at gcc dot gnu dot org 2007-08-06 16:16 --- Not that I know. For my purposes, I use a hand-modified version of the _mingw.h header; maybe more recent versions of mingw have been fixed. Still, current trunk doesn't work with older mingw (more than a few months back). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #10 from brooks at gcc dot gnu dot org 2007-03-09 04:50 --- See http://gcc.gnu.org/ml/fortran/2007-03/msg00155.html for a proposed patch. I'll attach it here, as well. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #11 from brooks at gcc dot gnu dot org 2007-03-09 04:51 --- Created an attachment (id=13175) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13175action=view) Fixincludes patch to fix _mingw.h. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #9 from tkoenig at gcc dot gnu dot org 2007-03-05 20:58 --- This is really important. We need to be able to support mingw for gfortran, at least. Setting priority. -- tkoenig at gcc dot gnu dot org changed: What|Removed |Added CC||tkoenig at gcc dot gnu dot ||org Priority|P3 |P1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #7 from fxcoudert at gcc dot gnu dot org 2007-01-30 13:45 --- (In reply to comment #5) CVS mingw runtime header _mingw.h has this, which avoids the problem: # if ( __MINGW_GNUC_PREREQ(4, 3) __STDC_VERSION__ = 199901L) # define __CRT_INLINE extern inline __attribute__((__gnu_inline__)) # else # define __CRT_INLINE extern __inline__ # endif Hum, here's what I don't understand. I installed the w32api-3.8, that includes the above, and I still get a failure (this is on a cross from i386-linux): $ ./bin/i386-pc-mingw32-gcc a.c b.c -std=c99 /tmp/ccR36DmT.o:b.c:(.text+0x0): multiple definition of `___fpclassifyl' /tmp/cc03idRc.o:a.c:(.text+0x0): first defined here [... more of those ...] So I look into the preprocessed files, and ___fpclassifyl is declared as: extern __attribute__((__gnu__inline__)) inline int __attribute__((__cdecl__)) __fpclassifyl (long double x){ unsigned short sw; __asm__ (fxam; fstsw %%ax; : =a (sw): t (x)); return sw (0x0100 | 0x0400 | 0x4000 ); } so I reproduce it on a minimal testcase: $ cat u1.c extern __attribute__((__gnu__inline__)) inline void __attribute__((__cdecl__)) __fpclassifyl (){ ; } void foo() { ; } $ cat u2.c extern __attribute__((__gnu__inline__)) inline void __attribute__((__cdecl__)) __fpclassifyl (){ ; } void bar() { ; } $ ./bin/i386-pc-mingw32-gcc -std=c99 u1.c u2.c u1.c:1: warning: __gnu__inline__ attribute directive ignored u2.c:1: warning: __gnu__inline__ attribute directive ignored /tmp/ccni42ym.o:u2.c:(.text+0x0): multiple definition of `___fpclassifyl' /tmp/cc2aaPle.o:u1.c:(.text+0x0): first defined here /home/fxcoudert/cross_nightbuild/tmp/install-gcc/lib/gcc/i386-pc-mingw32/4.3.0/../../../../i386-pc-mingw32/lib/libmingw32.a(main.o):main.c:(.text+0x106): undefined reference to [EMAIL PROTECTED]' collect2: ld returned 1 exit status PS: all this is with mainline rev. 121280, Last Changed Date: 2007-01-29 06:53:40 +0100 (Mon, 29 Jan 2007). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #8 from fxcoudert at gcc dot gnu dot org 2007-01-30 15:04 --- (In reply to comment #5) CVS mingw runtime header _mingw.h has this, which avoids the problem: OK, now I see why this is failing :( _mingw.h from mingw-runtime-3.11 has define __CRT_INLINE extern __attribute__((__gnu__inline__)) inline insted of define __CRT_INLINE extern __attribute__((__gnu_inline__)) inline i.e. an extra underscore in __gnu_inline__. I see you corrected the typo in CVS, but it was not yet released. So we're back to square one: CVS mingw is OK, but we still need a fix for older mingw. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Last reconfirmed|2007-01-26 13:11:11 |2007-01-30 15:04:19 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #6 from fxcoudert at gcc dot gnu dot org 2007-01-26 13:11 --- So maybe a right fixinclude change could be to look into _mingw.h for #define __CRT_INLINE extern __inline__ and change it (for mainline) to # if __STDC_VERSION__ = 199901L # define __CRT_INLINE extern inline __attribute__((__gnu_inline__)) # else # define __CRT_INLINE extern __inline__ # endif I don't know how fixinclude works, but that sounds like a simple and contained hack. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2007-01-26 13:11:11 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #1 from fxcoudert at gcc dot gnu dot org 2007-01-25 17:01 --- Sorry I have CCed the wrong person. -- fxcoudert at gcc dot gnu dot org changed: What|Removed |Added CC|echristo at gcc dot gnu dot |geoffk at gcc dot gnu dot |org |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #2 from fxcoudert at gcc dot gnu dot org 2007-01-25 17:02 --- Created an attachment (id=12954) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12954action=view) Preprocessed source file for a.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #3 from fxcoudert at gcc dot gnu dot org 2007-01-25 17:03 --- Created an attachment (id=12955) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12955action=view) Preprocessed source file for b.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Severity|critical|blocker Target Milestone|--- |4.3.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #4 from geoffk at gcc dot gnu dot org 2007-01-26 00:23 --- This is probably because the mingw math.h header does not support C99. Francois, where does this header come from? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589
[Bug bootstrap/30589] [4.3 regression] C99 extern inline patch broke bootstrap on i386-pc-mingw32
--- Comment #5 from dannysmith at users dot sourceforge dot net 2007-01-26 00:24 --- CVS mingw runtime header _mingw.h has this, which avoids the problem: # if ( __MINGW_GNUC_PREREQ(4, 3) __STDC_VERSION__ = 199901L) # define __CRT_INLINE extern inline __attribute__((__gnu_inline__)) # else # define __CRT_INLINE extern __inline__ # endif -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30589