Re: [Balloon] Emdebian toolchain woes

Top Page
Attachments:
Message as email
+ (text/plain)
+ (application/pgp-signature)
Delete this message
Reply to this message
Author: Neil Williams
Date:  
To: balloon
Subject: Re: [Balloon] Emdebian toolchain woes
On Sun, 07 Jun 2009 18:18:18 +0100
Chris Jones <> wrote:

> I've just changed my Balloon build machine. It's now a virtual machine
> running under VMWare Fusion, and it works very nicely. Except that I
> can't get a complete Emdebian armel toolchain installed.


> This happens to me every time I try to set up a new machine with the
> toolchain, in spite of the instructions in the balloonboard.org Wiki,
> some of which I even wrote.


Hector is the person to contact with the existing toolchains, this is
certainly a failure in the packages available in the repository. (CC:'d)

I tested with a lenny debootstrap which I cleaned out the old armel
toolchain. This sequence worked for my test:

$ sudo apt-get -f install
$ apt-cross -a armel -i libstdc++6
$ sudo apt-get install libstdc++6-4.3-dev-armel-cross linux-libc-dev-armel-cross libstdc++6-4.3-pic-armel-cross
$ emsetup -a armel
$ emsetup -a armel --report

That should complete the task.

(My cleanup call:)
$ sudo apt-get --purge remove libc6-dev-armel-cross gcc-4.3-arm-linux-gnueabi-base libc6-dev-i386 binutils-arm-linux-gnueabi libc6-armel-cross libstdc++6-armel-cross linux-libc-dev-armel-cross gcc-4.3-arm-linux-gnueabi-base g++-4.3-arm-linux-gnueabi

and the *actual* list of packages that matter:

binutils-arm-linux-gnueabi
cpp-4.3-arm-linux-gnueabi
g++-4.3-arm-linux-gnueabi
gcc-4.3-arm-linux-gnueabi
gcc-4.3-arm-linux-gnueabi-base
libc6-armel-cross
libc6-dev-armel-cross
libc6-dev-i386
libgcc1-armel-cross
libstdc++6-4.3-dev-armel-cross
libstdc++6-4.3-pic-armel-cross
libstdc++6-armel-cross
linux-libc-dev-armel-cross

Once all of those are installed, you will not need any packages to use
the toolchain.

> The pattern is this:
> - install debian stable (lenny, in this case) on new machine
> - aptitude install emdebian-tools
> - edit /etc/apt/sources.list.d/emdebian.sources.list to use stable branch
> - try a 'make' of balloonboard source, just out of hope
> - it fails, usually when looking to see if arm-linux-gnueabi-g++ is
> installed. apt-get install g++-4.1-arm-linux-gnueabi conks out with a
> dependency problem
> - try emsetup -a armel. Get same depedency problem. At the moment it's
> libstdc++6-4.3-dbg-armel-cross that's causing trouble.


I can't understand why that -dbg package is being requested - it is a
suggested dependency, you should be able to completely ignore it. None
of the emsetup routines require the dbg packages.

> - try emchain -a armel. Feel pleased at how quickly new machine builds
> toolchain. Final stage of its install fails like this:
>
>
> Should it always be this hard? Can I help fix it?


emsetup should be able to sort this out but, unfortunately, the
packages in the repository are broken - the message you got at the
first hurdle was (and is) entirely correct.

The above workaround is needed until the packages can be fixed. (AFAICT
the wrong version of libstdc++6-armel-cross has been included into the
Lenny repository - one that depends on a later version of
gcc-4.3-arm-linux-gnueabi-base than is actually available in Lenny.
Using apt-cross, you effectively short-circuit the repository, get the
correct version of libstdc++6 for armel from Debian Lenny (which has
the correct dependency data) and then cross it (at which point the
dependency on the Architecture:all gcc-*-base package is dropped
anyway).

Note that after installation, you will still get this message from apt:
$ sudo apt-get install libstdc++6-armel-cross
The following packages have unmet dependencies.
libstdc++6-armel-cross: Depends: gcc-4.3-arm-linux-gnueabi-base (= 4.3.3-3) but 4.3.2-1.1 is to be installed
E: Broken packages

This is because apt believes the repository and wants to try and
replace your (working) libstdc++6-armel-cross with the broken one.

Hector, can we replace the libstdc++6-armel-cross in the Lenny
toolchain repository with one that is built by using apt-cross from
Lenny sources please?

$ apt-cross -S stable -f -a armel -b libstdc++6

Can we also check the Lenny toolchains with edos-debcheck for all architectures?

$ edos-debcheck -explain -failures < /var/lib/apt/lists/www.emdebian.org_debian_dists_stable_main_binary-amd64_Packages

Passing that through ' ... 2>/dev/null|grep "NOT AVAILABLE"|wc -l'
gives 248 errors, all related to wrong versions of -base or missing
-base packages.

--


Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/