Some troubles with packaging toolchains (was Re: Need input on packaging mingw-w64 for Cygwin)

Mon Jan 25 04:32:00 GMT 2010

On 1/25/2010 09:34, Yaakov (Cygwin/X) wrote:
> On 24/01/2010 19:03, JonY wrote:
>> While packaging new binutils for cross mingw and mingw-w64, I've
>> noticed there were some duplicate files, but I'm not sure how to handle
>> them with cygport, advice welcome.
> It's hard to give advice without seeing what you have already. How about
> showing us your .cygport files?

Oh right. Draft 32bit and 64bit targeting binutils cygport attached.

>> The duplicate files are mostly under usr/share/locale/
> Unless you can $triplet-namespace the textdomain, you might just need to
> not package those.
>  > and libiberty.a.
> Wouldn't this belong in /usr/$triplet/lib/?

no, it is built by cygwin gcc for use with cross binutils, so its
considered native.

>> We could fix this by making all cross toolchains use seperate --prefix
>> and --with-sysroot, but I don't know if its appropriate.
> That shouldn't be necessary.
>> There are also some issues for DLL'ized GCC target libs, such as
>> libstdc++-6.dll. I've decided they should be disabled for mingw and
>> mingw-w64 based 4.x toolchains for the moment, as they all wanted to be
>> installed as libstdc++-6.dll into bindir, causing potential confusion
>> for users. It can be re-enabled after its fixed in upstream GCC and
>> libtool.
> Whatever you do, the cross-compilers need to match what the target's
> native compiler would do. So if mingw's own toolchains are shipping and
> using shared GCC libraries, AFAICS you should do the same by enabling
> shared libraries and shipping the *import* libs but NOT the DLLs (which
> you only need to *execute* programs, which you're not doing because this
> is a *cross*-compile situation).

The import libs do not conflict, just the runtime dlls. When executing
the applications, we may have up to 3 libstdc++-6.dll, incompatible to
each other.

This could be changed in the upstream GCC with libw32stdc++-6 as 32bit
mingw-w64 toolchain, libw64stdc++-6 as 64bit mingw-w64, and the normal
libstdc++-6 for the toolchain. Now all 3 can live side by

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mingw-w32-binutils-2.20-1.cygport
URL: <>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mingw-w64-binutils-2.20-1.cygport
URL: <>

More information about the Cygwin-apps mailing list