Some troubles with packaging toolchains (was Re: Need input on packaging mingw-w64 for Cygwin)
JonY
jon_y@users.sourceforge.net
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 mingw.org toolchain. Now all 3 can live side by
side.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mingw-w32-binutils-2.20-1.cygport
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20100125/ad16a86b/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mingw-w64-binutils-2.20-1.cygport
URL: <http://cygwin.com/pipermail/cygwin-apps/attachments/20100125/ad16a86b/attachment-0001.ksh>
More information about the Cygwin-apps
mailing list