problems building cross compiler on x86 host for arm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





I try to build a cross gcc compiler for an older ARM platform.
Installing binutils was successful but gcc fails.

Host platform linux x86_64 binutils version to cross build:2.42 gcc
version to cross build: 14.1.0

What I did ( sorry, very detailed, maybe I did something totally stupid... )

First, I created a docker image with the following Dockerfile to get a
root filesystem:

Dockerfile:
#########
FROM debian:8 as base
# Needed for old Debians
RUN printf "deb [trusted=yes] http://archive.debian.org/debian jessie
main\ndeb [trusted=yes] http://archive.debian.org/debian-security
jessie/updates main" > /etc/apt/sources.list

# Install dependencies available in the Debian repos
RUN apt-get update && \
    apt-get install -y \
        build-essential automake libtool cmake wget \
        libsnmp-dev libdb-dev \
        libssl-dev \
        libopus-dev libasound2-dev vim
#############

> podman build . --arch=arm

and export the file system to my host filesystem:

> podman image mount

and copied the root filesystem simply with cp -pr <path>/*
<some/place/at/my/host>

I now used a simple Makefile for installing binutils:

#########
# cross compile binutils
BINUTILS_VERSION=2.42
GCC_VERSION=14.1.0

#http://ftp.fu-berlin.de/gnu/binutils/ binutils-2.42.tar.xz
binutils_cross:
        wget -nc
http://ftp.fu-berlin.de/gnu/binutils/binutils-$(BINUTILS_VERSION).tar.xz
        tar xf binutils-$(BINUTILS_VERSION).tar.xz
        (\
                cd binutils-$(BINUTILS_VERSION); \
                mkdir build_armv7 ; \
                cd build_armv7; \
                ../configure --prefix=/opt/armv7_$(GCC_VERSION)
--with-sysroot=/opt/podman_debian8/merged --enable-multiarch
--with-fpu=vfpv3-d16 --with-mode=thumb --with-arch=armv7-a
--target=arm-linux-gnueabihf ; \
                make; \
                sudo make install; \
                )
##############

binutils installation works without any error messages.

Now I tried to install gcc with this part of the install Makefile:

#########
gcc_cross:
        wget -nc
http://ftp.fu-berlin.de/gnu/gcc/gcc-$(GCC_VERSION)/gcc-$(GCC_VERSION).tar.xz
        tar xf gcc-$(GCC_VERSION).tar.xz
        ( \
                cd gcc-$(GCC_VERSION); \
                ./contrib/download_prerequisites; \
                mkdir build_armv7;\
                cd build_armv7;\
                ../configure --prefix=/opt/armv7_$(GCC_VERSION)
--enable-languages=c,c++ --with-sysroot=/opt/podman_debian8/merged
--enable-multiarch --with-fpu=vfpv3-d16 --with-mode=thumb
--with-arch=armv7-a --target=arm-linux-gnueabihf --disable-multilib; \
                make -j6;\
                sudo make install;\
                )
###########


make[3]: *** [Makefile:2998: build/gengenrtl.o] Error 1
make[3]: *** Waiting for unfinished jobs....
yes
checking how to run the C preprocessor...
/opt/armv7_14.1.0/arm-linux-gnueabihf/bin/as: unrecognized option '--64'
make[3]: *** [Makefile:2998: build/genhooks.o] Error 1
/opt/armv7_14.1.0/arm-linux-gnueabihf/bin/as: unrecognized option '--64'
make[3]: *** [Makefile:2998: build/sort.o] Error 1
gcc -E
/opt/armv7_14.1.0/arm-linux-gnueabihf/bin/as: unrecognized option '--64'
make[3]: *** [Makefile:2998: build/genchecksum.o] Error 1
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
/bin/sh ../../gcc/../move-if-change tmp-optionlist optionlist
checking for stdlib.h... echo timestamp > s-options
make[3]: Leaving directory
'/home/krud/compiler_install/gcc-14.1.0/build_armv7/gcc'
make[2]: *** [Makefile:4714: all-gcc] Error 2


I  wonder why I see the "unrecognized option '--64'" message, as I try
to cross build for arm32.

Did I use some wrong configure options or have missed some? Maybe
already in the first step while installing binutils?

Thanks
 Klaus




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux