[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

wgcc 2.0.5 released

From: Duft Markus
Subject: wgcc 2.0.5 released
Date: Tue, 28 Nov 2006 09:26:21 +0100

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
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, or ask your
questions at the forums at

You can browse the Subversion Repository here:

Documentation can be found here:
Source Packages can be found here:
The Patch for Libtool can be found here:
The PXWC library can be found here:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]