2015-05-13 20:09:25 +02:00
FROM thewtex/cross-compiler-base
MAINTAINER Matt McCormick "matt.mccormick@kitware.com"
2014-11-06 17:14:52 +01:00
# Enable 32 bits binaries
RUN dpkg --add-architecture i386 && \
apt-get update && \
2015-02-01 05:02:11 +01:00
apt-get install -y libstdc++6:i386 libgcc1:i386 zlib1g:i386
2014-10-12 13:21:43 +02:00
2015-05-13 20:29:49 +02:00
# The cross-compiling emulator
RUN apt-get update && apt-get install -y \
qemu-user \
qemu-user-static
2015-05-16 19:35:18 +02:00
ENV CROSS_TRIPLE arm-linux-gnueabihf
ENV CROSS_ROOT /usr/${ CROSS_TRIPLE }
2016-03-14 22:53:33 +01:00
ENV AS = /usr/bin/${ CROSS_TRIPLE } -as \
AR = /usr/bin/${ CROSS_TRIPLE } -ar \
CC = /usr/bin/${ CROSS_TRIPLE } -gcc \
CPP = /usr/bin/${ CROSS_TRIPLE } -cpp \
CXX = /usr/bin/${ CROSS_TRIPLE } -g++ \
LD = /usr/bin/${ CROSS_TRIPLE } -ld
2015-05-16 19:35:18 +02:00
2014-10-12 13:21:43 +02:00
# Raspberry Pi is ARMv6+VFP2, Debian armhf is ARMv7+VFP3
# Since this Dockerfile is targeting linux-arm from Raspberry Pi onward,
# we're sticking with it's custom built cross-compiler with hardfp support.
# We could use Debian's armel, but we'd have softfp and loose a good deal
# of performance.
# See: https://wiki.debian.org/RaspberryPi
2014-11-06 17:14:52 +01:00
# We are also using the 4.7 version of the toolchain, so that glibc=2.13
2015-05-13 20:09:25 +02:00
ENV RASPBERRYPI_TOOLS_COMMIT 9c3d7b6ac692498dd36fec2872e0b55f910baac1
2014-11-06 17:14:52 +01:00
RUN curl -L https://github.com/raspberrypi/tools/archive/${ RASPBERRYPI_TOOLS_COMMIT } .tar.gz | tar xvz --wildcards --no-anchored " *gcc-linaro- ${ CROSS_TRIPLE } -raspbian* " && \
2015-05-13 20:09:25 +02:00
rsync -av /usr/src/tools-${ RASPBERRYPI_TOOLS_COMMIT } /arm-bcm2708/gcc-linaro-${ CROSS_TRIPLE } -raspbian/ /usr/ && \
rm -rf /usr/src/tools-${ RASPBERRYPI_TOOLS_COMMIT }
2015-05-13 21:26:08 +02:00
# Allow dynamically linked executables to run with qemu-arm
2015-06-05 05:01:06 +02:00
ENV QEMU_LD_PREFIX ${ CROSS_ROOT } /libc
ENV QEMU_SET_ENV " LD_LIBRARY_PATH= ${ CROSS_ROOT } /lib: ${ CROSS_ROOT } /libc/lib/ ${ CROSS_TRIPLE } / "
2015-05-13 20:09:25 +02:00
2015-06-05 05:01:06 +02:00
COPY Toolchain.cmake ${ CROSS_ROOT } /
ENV CMAKE_TOOLCHAIN_FILE ${ CROSS_ROOT } /Toolchain.cmake