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.

DESCRIPTION="Binutils for Win x86 targets."
HOMEPAGE="http://www.gnu.org/software/binutils/";
SRC_URI="http://ftp.gnu.org/gnu/binutils/binutils-${PV}.tar.bz2";
PKG_NAMES="${PN} ${PN}-doc"
PKG_CONTENTS[0]="usr/bin/ usr/i686-w64-mingw32/ usr/share/locale/"
PKG_CONTENTS[1]="usr/share/doc/ usr/share/info/ usr/share/man/"
SRC_DIR="binutils-${PV}"
PKG_HINTS="setup doc"

src_compile(){
        cd ${B}
        cygconf --build=i686-pc-cygwin --host=i686-pc-cygwin 
--target=i686-w64-mingw32
        cygmake
}

DESCRIPTION="Binutils for Win x64 targets."
HOMEPAGE="http://www.gnu.org/software/binutils/";
SRC_URI="http://ftp.gnu.org/gnu/binutils/binutils-${PV}.tar.bz2";
PKG_NAMES="${PN} ${PN}-doc"
PKG_CONTENTS[0]="usr/bin/ usr/x86_64-w64-mingw32/ usr/share/locale/"
PKG_CONTENTS[1]="usr/share/doc/ usr/share/info/ usr/share/man/"
SRC_DIR="binutils-${PV}"
PKG_HINTS="setup doc"

src_compile(){
        cd ${B}
        cygconf --build=i686-pc-cygwin --host=i686-pc-cygwin 
--target=x86_64-w64-mingw32
        cygmake
}

Reply via email to