5

I tried to install a cross toolchain so I could build Linux kernel on amd64 (Debian testing "jessie") for my ARM system. I have this entry in sources.list:

deb http://www.emdebian.org/debian sid main

When I tried to install gcc-4.7-arm-linux-gnueabi, I got an error:

cc-4.7-arm-linux-gnueabi : Depends: libgomp1-armel-cross (>=4.7.2-5) but it is not going to be installed

libgomp1-armel-cross in turn depends on gcc-4.8-base-armel-cross which is not available anywhere.

At some point, I did manage to install these cross-build tools from the same repository, and even built a kernel that now runs on these ARM systems some weeks ago. Is there something broken in that repository? I tried a few other versions of GCC, and still get the same issue.

A not-ideal solution is cross-building in an Ubuntu 12.04 VM. The distro has the ARM cross-compiler available from its official repositories.

4

Emdebian repositories are recommended to be used in stable most of the time since there could be utilities not built in the repositories, packages that were pulled back, etc. If you want to ensure that all your libraries have the correct dependencies, I would suggest stable or testing since they are less likely to have some dependency problem or have something that got borked.

  • stable required me to enable squeeze, not wheezy as I expected. I also had to settle for gcc-4.4-arm-linux-gnueabi. – tshepang Dec 5 '13 at 1:41
  • Hope you don't need a newer version of the toolchain D:. – Braiam Dec 5 '13 at 1:45
  • Not really. This will do. – tshepang Dec 5 '13 at 1:47
  • 1
    What does borked mean in this context? – tshepang Mar 3 '14 at 9:55
  • @Tshepang damage really bad something – Braiam Mar 3 '14 at 13:40
2

Debian now includes cross-toolchains officially, though they won't be part of the next Stable release (8.0). Virtual packages are provided.

1

Stable does not help. The 4.7 - 4.8 inconsistency is still there. The inconsistency has existed for me since (around) version 4.4 of gcc.

  • 1
    Consider adding a source to confirm the existence of this inconsistency. – HalosGhost Jun 25 '14 at 6:58
0

I would suggest to do things in the "Linux way", which means for me, as less automatic configuration as possible. I would download the required toolchain from the distributor’s site, and set a .CC file in your project's working dir. Your CC file should look something like this:

export PATH=< PATH-TO-TOOLCHAIN-BIN-FOLDER>:${PATH}
export CROSS_COMPILE=< TOOLCHAIN PREFIX` i.e "arm-none-gnueabi-" (the last "-" is important)
export ARCH=< ARCHITECTURE>

After doing that, before running any compilation, issue "source .CC", and then compile as you do normally, i.e "gcc/g++/ld... ...". The compilation will automatically use the toolchain (you will see it in the output of the compilation, that the toolchain is being used)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.