Re: Unmet dependencies problem in CrossToolchains

John Morris <[email protected]> Fri, 06 Mar 2015 02:53:07 -0600
Newsgroups gmane.linux.debian.devel.embedded
Message-ID <[email protected]>
On 01/16/2015 01:18 PM, Wookey wrote:
> +++ Oleg Popkov [2015-01-15 23:16 +0100]:
[...]
>>     curl [3]http://emdebian.org/tools/debian/emdebian-toolchain-archive.key
>>     |apt-key add -
>>     dpkg --add-architecture powerpc
>>     dpkg --add-architecture armel
>>     sudo apt-get update
>>
>>     Everything goes fine untill the moment I want to install
>>     crossbuild-essential-armhf package, the command
>>     apt-get install crossbuild-essential-armhf
>
> OK. In a jessie chroot this works fine for powerpc and armel, except for one
> detail. dpkg-cross has been removed from jessie due to RC bugs, so
> crossbuild-essential-* is uninstallable. You have to do
> sudo apt-get install libc6-dev:armel gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
> or
> sudo apt-get install libc6-dev:powerpc gcc-powerpc-linux-gnu  g++-powerpc-linux-gnu
> instead.
>
> I forgot that we still needed dpkg-cross in jessie for this. I'll see
> if it can be fixed/re-instated. If not it'll have to live in the
> emdebian repo to make things work.
>
> OK. I've uploaded dpkg-cross_2.6.11~emdeb8 to the emdebian repo to fix
> this problem for now. That can go away again if we get a better
> soution.
>
> So now
> sudo apt-get install crossbuild-essential-powerpc
> or
> sudo apt-get install crossbuild-essential-armel
> works fine.
[...]

I'm looking to do some x86_64 cross ARM builds in Jessie, and came 
across the [same instructions] as the OP.

[same instructions]: https://wiki.debian.org/CrossToolchains

Setting up the repo as described and running `apt-get install 
crossbuild-essential-armhf` fails with the error message:

     The following packages have unmet dependencies:
      crossbuild-essential-armhf : Depends: g++-arm-linux-gnueabihf
       (>= 4.9.1-1) but it is not going to be installed

The dependency problem can be traced to the emdebian.org g++ 
cross-compiler package requiring a version+release-identical libstdc++ 
package, which doesn't match the current mainline package:

     # apt-cache show g++-4.9-arm-linux-gnueabihf | grep Depends:
     Depends:  cpp-4.9-arm-linux-gnueabihf (>= 4.9.1-19),
      gcc-4.9-arm-linux-gnueabihf (= 4.9.1-19), libstdc++-4.9-dev:armhf
      (= 4.9.1-19), libc6 (>= 2.14), libcloog-isl4 (>= 0.17),
      libgmp10 (>= 2:5.0.1~), libisl10 (>= 0.10), libmpc3, libmpfr4
      (>= 3.1.2), zlib1g (>= 1:1.1.4)
     # apt-cache policy libstdc++-4.9-dev:armhf
     libstdc++-4.9-dev:armhf:
       Installed: 4.9.2-10
       Candidate: 4.9.2-10
       Version table:
      *** 4.9.2-10 0
         500 http://http.debian.net/debian/ jessie/main armhf Packages
         100 /var/lib/dpkg/status

Unstable has been on g++ v. 4.9.2 since November, but the above quote 
indicates that the emdebian.org packages worked in January, aside from a 
known complication that doesn't look like the same problem and sounds 
fixed anyway.

What am I missing?  Thanks-

	John