Search code examples
linuxarmcross-compiling

How do I get arm-elf-as on linux


A make file I'm trying to make has arm-elf-as. I've installed binutils gcc all the stuff I assumed Id need shouldnt arm-elf-as come with that? where can I get this bad boy. I see a lot of questions on here about arm-elf-gcc eabi etc. It has something to do with gnu maybe I should just install a gnu machine on a vm. Ive also googled and came up with gas or I assume gnu as and this webpage https://manned.org/arm-elf-as/f4fae7b2 but no instructions on what arm-elf-as is in. Or how to get it. Its unbuntu, project to be made https://github.com/jeanthom/ibugger

ok I think I found what the problem is AS is in /usr/bin but

NAME ?= flasher LS = ls.x

LIBGCC = /cygdrive/c/programme/gnuarm/lib/gcc/arm-elf/4.1.1/libgcc.a <<

changed to LIBGCC = /usr/lib/gcc-cross/arm-linux-gnueabi/9/libgcc.a but no dice.


Solution

  • You can simply

    sudo apt-get -y install binutils-arm-none-eabi 
    

    and change your makefile from arm-elf-whatever to arm-none-eabi-whatever as the arm-elf builds are a thing of the past generally.

    Or you can build from sources, and I just tested this and it is okay with building arm-elf

    build_arm-elf:

    # Usage
    # sudo ./build_arm-elf
    
    # Setup vars
    export TARGET=arm-elf
    export PREFIX=/opt/gnuarmelf
    export PATH=$PATH:$PREFIX/bin
    export JN='-j 4'
    
    export BINUVER=2.37
    
    rm -rf build-*
    rm -rf binutils-*
    
    # Get archives
    wget https://ftp.gnu.org/gnu/binutils/binutils-$BINUVER.tar.gz
    
    # Extract archives
    tar xf binutils-$BINUVER.tar.gz
    
    # Build binutils
    mkdir build-binutils
    cd build-binutils
    ../binutils-$BINUVER/configure --target=$TARGET --prefix=$PREFIX
    echo "MAKEINFO = :" >> Makefile
    make $JN all
    sudo make install
    

    can change the BINUVER to some older version if so desired.

    PATH=/opt/gnuarmelf/bin:$PATH
    

    then you can use arm-elf-as or arm-elf-ld, etc.