[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cross-compiling Debian packages



Nikita V. Youshchenko wrote:

I think I know now what the problem is, see below...

On Thu, Mar 16, 2006 at 07:35:41PM +0300, Nikita V. Youshchenko wrote:
As you see, I get depends with -dcv1 suffix as well as -cross
suffix.
Yes, it's exactly what it should do.
Each package xxx-arm-cross package created with dpkg-cross >= 1.26
will Provide: xxx-arm-dcv1. In your case, this will not allow
libc6-arm-cross created by older dpkg-cross to satisfy dependency -
while libc6-arm-cross created by dpkg-cross >= 1.26 will satisfy it.

And that's correct, because previously dpkg-cross installed files
info /usr/arm-linux/, and now it will install files to
/usr/arm-linux-gnu/ - so libc6-arm-cross created by older dpkg-cross
can't satisfy the dependency.
 Yes, I could guess all of this. However, why do I get -dcv1 as well
as -cross?

-arch-cross provides -arch-dcvX

Also, a quick grep in my old sources for dpkg-cross-1.25 reveals that already that version had -gnu
stuff in...

No, I changed paths in 1.26 (first release after paths in debian toolchain changed).

 When I try to install generated -cross package I get unresolved
dependencies for libgcc1-arm-dcv1. This package is really called
libgcc1-arm-cross and is originated in the gcc source package, and
thus is not coming from dpkg-cross.

You have too old version of libgcc1-arm-cross, that does not provide libgcc1-arm-dcv1 (and, btw, installs to /usr/arm-linux/)

 No, that's not true. It does install into /usr/arm-linux-gnu.
I got this one from the latest gcc sources
(4.0.2-9). And it still does not provide libgcc1-arm-dcv1. I always
compile stuff from sources BTW, so that should have produced correct
cross package...

I've updated gcc-4.0 source package to build -arch-cross packages with proper provides, but still could not find time for 3.4/3.3. Help on that is welcomed.
 OK. Can you re-post the patch? Or did you just change gcc source
package locally and posted build packages? I really would like to see
this change integrated, given that dpkg-cross in unstable is already
doing this -dcv thing...

Some prebuilt packages are at http://zigzag.lvk.cs.msu.su/~nikita/debian/sid/

 The need for versioning does not justify IMHO the uglyness of
-dcv1 when compared to -cross. And it just "feels" wrong, since it
is not the type or instances of the files in the package that
changed, but the "packaging" of these files... Why couldn't you
solve that with version strings?
I don't see how version string can be safely used here - because
version strings from original debs are already used to handle
dependences. There are two different dependency requirements - one
that original packages should have version not less than ..., and
other - that dpkg-cross should be fresh enough to place files inside
new tree. I don't see way to use single version strings to handle both
things.
 Maybe embed a -dcvX in the version string?

No, because 1.2.4 will be greater than 1.2.3-dcvX

Nikita



Reply to: