From: <dan...@ya...> - 2002-08-04 21:12:57
|
--- Michael Torrie <to...@cs...> wrote: > Several months ago, Isaac Sparrow sent a message to this list concerning > a problem that arises when building win32 C++ applications in a mingw > cross compiling environment. Basically winnt.h and a few other header > files do not compile useing g++. The following error results from a > simple hello world cpp file: > > In file included from > /usr/lib/gcc-lib/i386-mingw32/2.95.3/../../../../i386-mingw32/include/windef.h:225, > from > /usr/lib/gcc-lib/i386-mingw32/2.95.3/../../../../i386-mingw32/include/windows.h:48, > from test.cpp:1: > /usr/lib/gcc-lib/i386-mingw32/2.95.3/../../../../i386-mingw32/include/winnt.h:1766: > anonymous class type not used to declare any objects > > etc. > So my question is, what is different in the mingw gcc compiler in > windows vs linux? How can I make my cross compiler mingw gcc compiler > work as the windows one? Sorry about delayed reply, but a possible problem just came to me. What source are you using to build 2.95.3. Jason Merrril, Mumit Khan and others added support for anonymous union/struct to GCC trunk back in mid-1999. However, I'm not sure it ever was back-ported to 2.95 series _except_ in mingw and cygwin local sources. Here are the relevant part of Changelog in (mingw/cygwin modified sources of 2.95.2) For C++ + 1999-05-19 Jason Merrill <ja...@yo...> + + Implement anonymous structs. + * cp-tree.h (ANON_AGGR_TYPE_P): Rename from ANON_UNION_TYPE_P. + * class.c, decl.c, decl2.c, init.c, pt.c, search.c, typeck.c: Adjust. + * class.c (finish_struct_1): Remove redundant check for anon struct. + * decl.c (fixup_anonymous_aggr): Renamed from fixup_anonymous_union. + (check_tag_decl): Check for anonymous struct here. + * decl2.c (build_anon_union_vars): Catch anon struct at file scope. + * init.c (sort_member_init, emit_base_init): Handle getting fields + as well as names in current_member_init_list. + (perform_member_init): Handle getting an anon aggr. + * method.c (do_build_assign_ref): Don't descend into anon aggrs. + (do_build_copy_constructor): Likewise. and For C + Sat Jun 12 15:56:40 1999 Alastair J. Houghton <aj...@do...> + Mumit Khan <kh...@xr...> + + * c-parse.in (component_decl): Support anonymous struct/union. + (%expect): Update. + * c-parse.y: Regenerate. + * c-parse.c: Likewise. + * objc/objc-parse.y: Likewise. + * objc/objc-parse.c: Likewise. + * c-decl.c (finish_struct): Don't sort the fields. In particular, the warning "anonymous class type not used to declare any objects" was removed. If you are using official FSF sources, one solution is to get modified sources from mingw site Perhaps I need to modify the w32 headers too, to make more backward-compat. Danny > > Thanks. > > Michael > > > -- > Public key available from http://students.cs.byu.edu/~torriem > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > MinGW-users mailing list > Min...@li... > > You may change your MinGW Account Options or unsubscribe at: > https://lists.sourceforge.net/lists/listinfo/mingw-users http://digital.yahoo.com.au - Yahoo! Digital How To - Get the best out of your PC! |