From: Mumit K. <khan@NanoTech.Wisc.EDU> - 2001-06-21 22:30:58
|
GCC 3.0-1 ALPHA RELEASE ======================= Last updated: Thu Jun 21 17:18:11 CDT 2001 I've added update 1: (1) [core] Tell GCC to use certain GAS features such .balign, .p2align (2) [core] Add missing syslimits.h to gcc include directory. (3) [c++] Add missing g++-v3 includes from -c++ package (4) [c++] Add a fix to C++ front end to emit vtables when needed. (5) [c++] More fixes to libstdc++-v3 configury (6) [f77] Added libf2c dtime/etime patch Still missing: (1) [core] -fnative-struct patch from Donn Terry. (2) [c++] Various libstdc++-v3 configury issues. Need to build numeric limits natively instead of using the default generic one. (3) [c++] libstdc++-v3 includes needs ISO C99 guards. So far only candidate is bits/std_cwctype.h, but I'm sure others are lurking. (4) ???objc, java???? The updated packages have "u1" in the names. If you start from scratch, follow all the directions below regarding installing mingw/w32api runtime and binutils. If you already have the first preview from 6/20/01, just unzip these into the same directory. =========================================================================== Last updated: Wed Jun 20 19:31:42 CDT 2001 This is a very alpha, very preliminary release of GCC 3.0 for Mingw. I'm making this available for 3 main reasons: 1. Check packaging -- can you install it anywhere and just run it? Does it run on W9x, NT and 2000? What about XP beta? 2. Check obvious bugs -- does it compile and link trivial C/C++/F77 programs? Go wild with fancy code if it does. 3. Get feedback. I suggest you send it to the Mingw developers list. Copy me if you will, but my mail filter removes all multiple copies, so it doesn't do you any good. This is not for the faint of heart; you're welcome to download and try it out, but please hold the urge to report obvious problems that others may have already reported. Please don't be surprised when you find problems, especially those dumb packaging bugs. EXPECT GLARING PROBLEMS. What's included here? ===================== 3 main binary packages: gcc-3.0-1-mingw-core.zip : GCC 3.0-1 core (C Compiler and other must haves) gcc-3.0-1-mingw-c++.zip : GCC 3.0-1 C++ compiler and runtime gcc-3.0-1-mingw-f77.zip : GCC 3.0-1 F77 compiler and runtime mingw-runtime.diff : There is a small patch to Mingw runtime -- the header files stdio.h, stdarg.h, and varargs.h are slightly modified. You shouldn't need this, unless GCC complains about incorrect use of va_arg (``first arg not a va_list''). Source + patches are also available of course. Please don't download the sources from here, just get the patches. ** NOTE NOTE NOTE **: The default runtime is MSVCRT, not CRTDLL, so you'll need the correct Mingw runtime. I believe this is the default now, so as long as you're reasonably up-to-date, you should be fine. Prerequisites: ============== I am going to assume that you have access to the latest Mingw/w32api runtime and a very recent version of binutils. Please don't ask me where to get or how to install these packages, rather visit Mingw site http://www.mingw.org/. You need an unzip program. You obviously need a computer running some flavor of Windows 32 Operating System. See "Summary of Changes" below. Who should get it? ================== This is targeted towards the more experienced users who have a large source code base to test out, but everybody is welcome of course. Please don't report about missing features (``I can't link against MSVC created object files!''), only bugs that you believe are new or bugs introduced by new features (eg., trouble building dlls using `gcc -shared'). Other than the basic tests, the features I'd really like stress-tested are the following: - New libstdc++-v3. I know that some of the locale stuff is going to buggy, and including some of the C++ headers may not work quite yet. Work in progress. - Using C++ code that makes heavy use of dllimport/dllexport. - Creating DLLs using ``gcc/c++ -shared''. Where is the pre-release alpha test version? ============================================ ftp://ftp.nanotech.wisc.edu/pub/khan/gnu-win32/mingw32/snapshots/gcc-3.0-1/ The sources are there as well (*-src.zip). Here's a listing of what's on the ftp site: FILE SIZE ======================== ======== gcc-3.0-1-mingw-core.zip 2.03 MB gcc-3.0-1-mingw-c++.zip 1.67 MB gcc-3.0-1-mingw-f77.zip 1.57 MB To install: =========== 1. Must at least get the -core package. Pick whatever other compilers you would like to test. 2. Create a installation directory: c:\> mkdir c:\gcc-3.0 You can choose any other you like, and in fact, I would prefer that you install in funny places. Try out a directory with embedded whitespace for the fun of it. 3. Change to that directory and unpack/install Mingw/w32api runtime and binutils there. 4. Change to that directory and unzip the various packages there. Some unzip programs such as WinZip will automatically create the directory for you, so you can skip 2. 5. Set your PATH, and off you go: c:\> set path=c:\gcc-3.0;%PATH% c:\> gcc -v Summary of Changes: =================== - [core] Various small configuration nits to build. Defaults to MSVCRT runtime now. - [core] Protect gcc headers with RC_INVOKED. (old) - [core] Mingw specific fixes. (old/new) - [core/c++] Add some of the DLL fixes that I had never submitted to gcc team, but have been in use in all the Cygwin/Mingw 2.95.2 releases. (old) Added patch from Danny Smith to not dllimport initialized data. (new) - [libstdc++] Various small configuration nits to build. Missing are the following: - [core] bitfield packing -fnative-struct patch yet to go in. - [libg2c] Some of the changes from 2.95.x yet to go in. Regards Mumit |
From: <dan...@ya...> - 2001-06-22 00:36:06
|
--- Mumit Khan <khan@NanoTech.Wisc.EDU> wrote: > GCC 3.0-1 ALPHA RELEASE > ======================= > > Last updated: Thu Jun 21 17:18:11 CDT 2001 > > > Still missing: > (3) [c++] libstdc++-v3 includes needs ISO C99 guards. So far only > candidate is bits/std_cwctype.h, but I'm sure others are lurking. > Also in bits/std_cwchar.h, the wide versions of memmove and friends. However, the libisocext.a static lib I provided earlier was built just for this -- it has a modified wchar.h that has this in it: ===================================================================== #ifndef __NO_ISOCEXT /* minimalist versions are in static lib libisocext.a */ extern inline int fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */ extern inline int mbsinit(const mbstate_t* ps) {return 1;} long long wcstoll(const wchar_t* __restrict__ nptr, wchar_t** __restrict__ endptr, int base); unsigned long long wcstoull(const wchar_t* __restrict__ nptr, wchar_t ** __restrict__ endptr, int base); wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n); wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n); int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n); wchar_t* wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2, size_t n); wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n); #endif /* __NO_ISOCEXT */ ================================================================= Also /* TODO */ do the IEEP-recommended-now-C99 prototypes in math.h (from float.h) need non-underscored alias? (like oldnames but put in libmsvcrt.a or ?? ) The non-underscored versions seem to be used in libstdc++ and that is how they are documented in ISO standard. Danny _____________________________________________________________________________ http://messenger.yahoo.com.au - Yahoo! Messenger - Voice chat, mail alerts, stock quotes and favourite news and lots more! |
From: Mumit K. <khan@NanoTech.Wisc.EDU> - 2001-06-22 00:46:11
|
On Fri, 22 Jun 2001, Danny Smith wrote: > Also in bits/std_cwchar.h, the wide versions of memmove and friends. > However, the libisocext.a static lib I provided earlier was built just > for this -- it has a modified wchar.h that has this in it: Yeah, all those. I'm going to wait on these, and hopefully you and others can fill in the details. > Also /* TODO */ do the IEEP-recommended-now-C99 prototypes in math.h > (from float.h) need non-underscored alias? (like oldnames but put in > libmsvcrt.a or ?? ) The non-underscored versions seem to be used in > libstdc++ and that is how they are documented in ISO standard. Yes. I remember that you had done quite a bit on this, but that's about all I remember. The DLL problem you found is quite nasty it seems. I tried the following patch, which fixes the segv, but doesn't do any good other than that. 2001-06-21 Mumit Khan <kh...@na...> * decl.c (xref_basetypes): Handle attributes between 'class' and name. Index: decl.c =================================================================== RCS file: /homes/khan/src/win32/cygwin/CVSROOT/gcc-3.0/gcc/cp/decl.c,v retrieving revision 1.2 diff -u -3 -p -r1.2 decl.c --- decl.c 2001/06/21 04:44:06 1.2 +++ decl.c 2001/06/22 00:44:36 @@ -12763,8 +12763,19 @@ xref_basetypes (code_type_node, name, re (A, X, Y, ..., Z) so we can check for duplicates. */ tree binfos; tree base; - + tree attributes = NULL_TREE; int i, len; + + /* If we are called from the parser, code_type_node will sometimes be a + TREE_LIST. This indicates that the user wrote + "class __attribute__ ((foo)) bar". Extract the attributes so that + tree_low_cst doesn't crash. */ + if (TREE_CODE (code_type_node) == TREE_LIST) + { + attributes = TREE_PURPOSE (code_type_node); + code_type_node = TREE_VALUE (code_type_node); + } + enum tag_types tag_code = (enum tag_types) tree_low_cst (code_type_node, 1); if (tag_code == union_type) After applying this, I get the following: win32-bug2.ii:31: prototype for `int DllClass::non_virtual_method() const' does not match any in class `DllClass' win32-bug2.ii:12: candidate is: int DllClass::non_virtual_method() const win32-bug2.ii:41: prototype for `int DllClass::virtual_method() const' does not match any in class `DllClass' win32-bug2.ii:13: candidate is: virtual int DllClass::virtual_method() const Need a G++ guru who really knows this stuff. Regards, Mumit |
From: <dan...@ya...> - 2001-06-22 01:55:53
|
Well here's some good news to keep morale up: Built and tested fltk and metakit as static libs -- all well. Built and tested netlib blas and lapack (static libs) with g77. Tested also with TNT a C++ linear alg template lib with interface to blas and lapack. All well. BTW, for all you other testers, the current packaging of mingw at SF puts headers and libs in <prefix>/include and <prefix>/lib. I needed put these back to where they should be-- in <prefix>/<tooldir> -- for alpha GCC3.0 to build natively and work. Danny _____________________________________________________________________________ http://messenger.yahoo.com.au - Yahoo! Messenger - Voice chat, mail alerts, stock quotes and favourite news and lots more! |
From: <dan...@ya...> - 2001-06-26 23:25:02
|
--- Danny Smith <dan...@ya...> wrote: > Well here's some good news to keep morale up: > > Built and tested fltk and metakit as static libs -- all well. Built and tested fltk-2.01 as dll --all tests work. Note fltk does *not* use the class attribute(dllexport) FLclass syntax but explicitly exports individual global and class member functions, i.e.: class FLclass{ public: attribute(dllexport) void member_fun(int); } Danny _____________________________________________________________________________ http://messenger.yahoo.com.au - Yahoo! Messenger - Voice chat, mail alerts, stock quotes and favourite news and lots more! |
From: <dan...@ya...> - 2001-06-28 03:03:08
|
--- Danny Smith <dan...@ya...> wrote: > --- Danny Smith <dan...@ya...> wrote: > Well > here's > some good news to keep morale up: > > > > Built and tested fltk and metakit as static libs -- all well. > > > Built and tested fltk-2.01 as dll --all tests work. ^^^^^ That should be 1.01, but see below for were there 2.01 comes from. > > Note fltk does *not* use the > class attribute(dllexport) FLclass > syntax > > but explicitly exports individual global and class member functions, > i.e.: > > class FLclass{ > public: > attribute(dllexport) void member_fun(int); > } > > Danny > Metakit 2.01, another C++ lib, also builds and passes regression tests as dll with GCC 3.0 IF: Don't use dllex[im]port attributes, but use export-all (with g++ -shared and Paul S's patches to export-all exclusion filter) when building dll. Note there are no exported DATA symbols (apart from typeinfo and vtable names) in export-all metakit, so dllimport attribute not critical. Danny _____________________________________________________________________________ http://messenger.yahoo.com.au - Yahoo! Messenger - Voice chat, mail alerts, stock quotes and favourite news and lots more! |
From: <dan...@ya...> - 2001-06-22 01:56:06
|
Well here's some good news to keep morale up: Built and tested fltk and metakit as static libs -- all well. Built and tested netlib blas and lapack (static libs) with g77. Tested also with TNT a C++ linear alg template lib with interface to blas and lapack. All well. BTW, for all you other testers, the current packaging of mingw at SF puts headers and libs in <prefix>/include and <prefix>/lib. I needed put these back to where they should be-- in <prefix>/<tooldir> -- for alpha GCC3.0 to build natively and work. Danny _____________________________________________________________________________ http://messenger.yahoo.com.au - Yahoo! Messenger - Voice chat, mail alerts, stock quotes and favourite news and lots more! |