I am very proud to announce the release 2.0.5 of wgcc. Maybe there is some interest. It is a very much improved version compared to the previous ones. List of changes below.
Cheers, Markus wgcc is a cross-compiler tool primarily written for Microsoft's Interix. Its primary purpose is to produce native Windows binaries (internally using the Microsoft Tool chain), and to mimic the behaviour of the GNU compiler collection. This means that wgcc understands many of GCC's command line arguments, and in most cases delivers the same results as expected, sometimes manipulating the underlying tool's input and output. Even though wgcc was written for Interix only, it can be used on native Windows (without Interix), and other Systems, like Cygwin. The only restriction is that on Platforms other than Interix, only Windows style paths are understood. With the release of version 2.0.1 this changed. Now Cygwin too is able to convert paths correctly. On Interix (and now Cygwin) wgcc automatically converts UNIX style paths to Windows style ones (i.e. /wgcc to C:\SFU\wgcc). wgcc abstracts away lots of inconveniences that are introduced by building static libraries, shared libraries (DLL's) and executables with any possible combination of those three. When using wgcc both static and shared libraries behave exactly the same on Windows, and this makes tons of defines unnecessary. The only thing that still has to be done is to give all Data symbols (i.e. Variables) an import attribute (__declspec(dllimport)) when using them (i.e. in the library header files) in an executable. For a simple example take a look at the file tests/shared.test inside the wgcc distribution. This release includes some really big, heavy and *cool* new things: Instead if the very slow and memory intensive dumpbin.exe, wgcc now includes a little library (libcoff) that does all the object and library reading. This increases linking performance by about the factor three. Additionally when used in a really big link, wgcc does not anymore need up to 800 MB memory, but now uses constant low amounts like 5 to 10 MB. There was a spelling error in the default .wgccrc file. "no-import-filter" should have been "import-filter". This feature now should work again. All the warnings from dependency tracking have been move to level s3 (verbose). So Dependency tracking is quiet now. Configuration files are now loaded in a slightly different way. The old behaviour was to check a number of locations, and load each (!) file, if it was there. The new one checks the same locations, but then only loads the one (!) file that takes the highest precedence. The only exception is, that configuration files that are specified with the "-config" option get loaded over any already loaded file. Also the rules for file lookup have been changed. Now first the Environment variable WGCC_CONFIG is checked for a configuration file path, then the current directory, then the "etc" directory in the wgcc prefix, then the directory where wgcc resides. The ln utility was broken in the last release, this has been fixed. The order of include directories was fixed, and now the options from the command line take precedence over any directories from the environment. Some tools that may generate parts of the command line that is passed to wgcc may include "\r" since win32 executables are used in this processes. Wgcc now handles such things, and does not warn anymore, about being unable to match an empty option. Microsoft's compiler v8 uses 64bit time_t's by default (even on 32bit systems, wgcc does not yet support 64bit). Wgcc provides the option to revert to 32bit time_t's (which is the wgcc default) by setting the "32bit-time_t" configuration directive. The very time consuming runtime indicator checks may now be (and are by default) disabled to speed up linking in shared libraries. However if you plan to use the memory profiling feature from pxwc, you should enable this option (using the "search-indicator" configuration directive). Some simple profiling has been implemented which takes times of the main tasks. This is only available when building wgcc with gcc, not when using the native win32 build with Visual Studio. To see the output, set the debug level to s3. Future versions may include a separate debug level to only include profiling output. The "-static" option has been fixed in this release to behave like the gcc counterpart, which refuses to link in shared libraries. To continue improving wgcc and pxwc packages, we now need your help in testing them. Please download wgcc and try to compile your software using it. If something goes wrong please contact mduft or open an issue using the Sourceforge Tracker at http://sourceforge.net/tracker/?group_id=158081&atid=806404, or ask your questions at the forums at http://sourceforge.net/forum/?group_id=158081. You can browse the Subversion Repository here: http://svn.sourceforge.net/viewvc/interix-wgcc/trunks/ Documentation can be found here: http://sourceforge.net/project/showfiles.php?group_id=158081&package_id= 203917&release_id=446943 Source Packages can be found here: http://sourceforge.net/project/showfiles.php?group_id=158081&package_id= 177049&release_id=445894 The Patch for Libtool can be found here: http://sourceforge.net/project/showfiles.php?group_id=158081&package_id= 196163&release_id=446510 The PXWC library can be found here: http://sourceforge.net/project/showfiles.php?group_id=158081&package_id= 195309&release_id=449425 _______________________________________________ http://lists.gnu.org/mailman/listinfo/libtool