This is the mail archive of the cygwin-apps mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

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

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

Attachment: mingw-w32-binutils-2.20-1.cygport
Description: Text document

Attachment: mingw-w64-binutils-2.20-1.cygport
Description: Text document

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]