[ITP] mingw-w64

Charles Wilson cygwin@cwilson.fastmail.fm
Mon Jun 28 06:53:00 GMT 2010


On 6/27/2010 8:32 PM, JonY wrote:
> On 6/26/2010 19:59, JonY wrote:
>> Hello,
>> mingw-w64 (mingw-w64.sourceforge.net) is a toolchain to target 64bit
>> windows. It is setup as a cygwin hosted cross compiler. Currently it is
>> split into 4 packages: headers, crt, binutils and gcc. The latter 2 is
>> from FSF.

Does this version support multilib? that is, it's a cygwin hosted
compiler targeting only -m64, or also -m32?  If the latter, then...well,
it's just good to know.

>> GCC 4.6 (trunk) was chosen to avoid the ABI change from 4.5.0 biting
>> users. LTO is also enabled.
>>
>> I would admit packaging could be a bit better, I'm open to suggestions
>> for improvement.
>>
>> mingw-w64 headers:
>> <https://sourceforge.net/projects/mingw-w64/files/Cygwin%20Snapshots/dist/w64-headers/w64-headers-20100625-1.tar.bz2>

I know headers are, by definition, source, but I'm not sure if
setup.exe's tiny little brain can grok a package like this, without a
corresponding source.  Should its setup.hint have an
   "external-source: ???"
record?

I'm pretty sure all of the w64-gcc-??? language binary packages should
have one, specifying w64-gcc as their source provider.  And w64-gcc-rt
is probably misnamed.  If it contains the DLLs (like libgcc*.dll or
whatever it is named, plus the corresponding DLLs for g++ & fortran),
they should be split up into separate "libfoo" packages. This makes
representing dependency information for apps compiled using this
compiler more granular. E.g.

Consider "regular" cygwin gcc(4)'s runtime library packages:
	libgcc1
	libstdc++6
	libgfortran3

If you *really* want to prefix everything with w64 to indicate which
"compiler family" they belong to, then something like
	w64-mingw64-libgcc1
	w64-mingw64-libstdc++6
	w64-mingw64-libgfortran3
or similar would be good.  If the compiler is multilib (e.g. supports
also -m32), then the 32bit runtime libs should have their OWN separate
packages, perhaps
        w64-mingw32-libgcc1
        w64-mingw32-libstdc++6
        w64-mingw32-libgfortran3


I'm anticipating at some point we'll have a mingw.org based (32bit only)
cross compiler. We'll need it for some things, once gcc3 -mno-cygwin
dies; and IIUC mingw64 won't be directly usable for those purposes
because we'd end up with a mixture of windows headers; remember that
cygwin itself uses the mingw.org headers.  Anyway, the runtime libraries
for THAT compiler's languages would probably be something like
'mingw32-libgcc1' (or even mingw-libgcc1, but that might be a
bad/confusing choice given w64's presence).  Dave K would be the person
to chime in on that point, but AFAIK he's been AFK for over a week.


I haven't had a chance to validate the packaging (e.g.
build-from-source, etc) and probably won't until after the 4th.
So...somebody else should probably do that.

But I give it +1 for concept. (Actually, since Fedora ships the mingw64
compiler as their official windows cross compiler IIRC, we don't really
need to vote.)

--
Chuck



More information about the Cygwin-apps mailing list