Tag Archives: linaro

Linaro on Arch Linux

In order to use the Linaro ARM cross-toolchain on Arch Linux, some 32-Bit Libraries need to be available. Arch Linux supports multiarch too, just enable the packages in your /etc/pacman.conf:

[multilib]
Include = /etc/pacman.d/mirrorlist

Update your packages

pacman -Sy
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib 104.5 KiB 148K/s 00:01 [##################################] 100%

Unlike in Debian based distribution the GNU C Library package is called lib32-glibc. Additionally needed libraries by GCC (such as libstdc++6) are included in the package lib32-gcc-libs.

pacman -S lib32-glibc lib32-gcc-libs lib32-zlib

Linaro embedded toolchain on Ubuntu 64-Bit

Linaro provides a specialized toolchain for embedded (bare metal) development. But after installing, I could not execute the binary:

$ gcc-arm-none-eabi-4_7-2012q4/bin/arm-none-eabi-gcc
-bash: gcc-arm-none-eabi-4_7-2012q4/bin/arm-none-eabi-gcc: No such file or directory

Also ldd claims its not dynamically linked:

$ ldd gcc-arm-none-eabi-4_7-2012q4/bin/arm-none-eabi-gcc
 not a dynamic executable

The truth is: it is dynamically linked, but against 32-Bit libraries. And since I have not yet installed any 32-Bit library, ldd doesn’t work properly. According to the readme, you should install the 32-Bit variant of libc and libncurses. Since Ubuntu is Multi-Arch, you can easily install those libs:

sudo apt-get install libc6:i386 libncurses5:i386

Now you should be able to run the Linaro toolchain on 64-Bit variants of Ubuntu.