How do I fix a -dcv1 vs. -cross mess?
I have got into a bit of a mess with my armeb cross-compilation environment
and I think I need help now, before I make things worse with clueless tinkering.
The target is my NSLU2, running the unofficial armeb sarge from debonaras.org.
This dates from about a year ago and I have no desire to change it. At that time
I had a working cross-compilation environment on my old PC, but since then I
have replaced the PC and I'm finding it difficult to get it working on the new
The problem is that some of the dpkg-cross'd packages that I have were converted
with one version of dpkg-cross and some were converted with another, before and
after the introduction of the -dcv1 suffix. Unfortunately I can't say exactly
which packages were built with which version.
Here's a representative example: I want to compile some C++ code that uses
Boost. On the NSLU2 I already have the Boost libraries installed:
ii libboost-program-op 1.32.0-6 program options library for C++
ii libboost-thread1.32 1.32.0-6 portable C++ multi-threading
So I want to install dpkg-cross'd versions of the matching -dev packages on
my PC. I get the armeb .deb from debonaras, convert and install:
$ wget http://ftp.debonaras.org/debian/pool/main/b/boost/libboost-dev_1.32.0-6_armeb.deb
$ dpkg-cross -b -a armeb *_armeb.deb
# dpkg -i *_all.deb
Selecting previously deselected package libboost-dev-armeb-cross.
(Reading database ... 58249 files and directories currently installed.)
Unpacking libboost-dev-armeb-cross (from libboost-dev-armeb-cross_1.32.0-6_all.deb) ...
dpkg: dependency problems prevent configuration of libboost-dev-armeb-cross:
libboost-dev-armeb-cross depends on libstdc++-dev-armeb-dcv1; however:
Package libstdc++-dev-armeb-dcv1 is not installed.
dpkg: error processing libboost-dev-armeb-cross (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
So the newly-dpkg-cross'd .deb depends on libstdc++-dev-armeb-dcv1.
I don't have anything called that, but I do have this:
Status: install ok installed
Maintainer: Debian GCC Maintainers <email@example.com>
Depends: gcc-3.3-base (>= 1:3.3.6-13), libstdc++5-armeb-cross (>= 1:3.3.6-13), libc6-dev-armeb-cross (>= 2.3.2.ds1-16), g++-3.3-armeb-linux-gnu (>= 1:3.3.6-13)
Description: The GNU Standard C++ Library v3 (development files)
Note that this provides libstdc++-dev-armeb-cross, not libstdc++-dev-armeb-dcv1.
So, I could throw away my entire cross-compilation world and build it again
using the version of dpkg-cross that does -dcv1 not -cross. But this would be
very painful. I'm hoping that there is some more or less hacky way that
I can make everything "just work".
Many thanks in advance for any suggestions.