<p>fixeria has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/docker-playground/+/23518">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Check in GCC 4.8.2 based cross compiler for ARM EABI target<br><br>I used this one for building old OsmocomBB branches, which do not<br>compile with modern arm-none-eabi-{gcc,binutils,newlib} toolchain.<br><br>Change-Id: Ide93843836f059a3750e92a973d0a6d9cf9a5638<br>---<br>A arm-none-eabi-gcc-4.8.2/Dockerfile<br>A arm-none-eabi-gcc-4.8.2/Makefile<br>A arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch<br>A arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch<br>A arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch<br>5 files changed, 132 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/18/23518/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/arm-none-eabi-gcc-4.8.2/Dockerfile b/arm-none-eabi-gcc-4.8.2/Dockerfile</span><br><span>new file mode 100644</span><br><span>index 0000000..8794a95</span><br><span>--- /dev/null</span><br><span>+++ b/arm-none-eabi-gcc-4.8.2/Dockerfile</span><br><span>@@ -0,0 +1,79 @@</span><br><span style="color: hsl(120, 100%, 40%);">+FROM      debian:stretch</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+MAINTAINER Vadim Yanitskiy <axilirator@gmail.com></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ENV        BINUTILS_SRC=http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2</span><br><span style="color: hsl(120, 100%, 40%);">+ENV      NEWLIB_SRC=https://sourceware.org/pub/newlib/newlib-1.19.0.tar.gz</span><br><span style="color: hsl(120, 100%, 40%);">+ENV  GCC_SRC=http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2</span><br><span style="color: hsl(120, 100%, 40%);">+ENV     PREFIX=/usr/local</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Install build tools and dependencies</span><br><span style="color: hsl(120, 100%, 40%);">+RUN        apt update && apt install -y \</span><br><span style="color: hsl(120, 100%, 40%);">+                build-essential \</span><br><span style="color: hsl(120, 100%, 40%);">+             libmpfr-dev \</span><br><span style="color: hsl(120, 100%, 40%);">+         libmpc-dev \</span><br><span style="color: hsl(120, 100%, 40%);">+          libgmp3-dev \</span><br><span style="color: hsl(120, 100%, 40%);">+         zlib1g-dev \</span><br><span style="color: hsl(120, 100%, 40%);">+          zlibc \</span><br><span style="color: hsl(120, 100%, 40%);">+               texinfo \</span><br><span style="color: hsl(120, 100%, 40%);">+             bison \</span><br><span style="color: hsl(120, 100%, 40%);">+               flex \</span><br><span style="color: hsl(120, 100%, 40%);">+                curl \</span><br><span style="color: hsl(120, 100%, 40%);">+                patch \</span><br><span style="color: hsl(120, 100%, 40%);">+               file</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Stage 0: Download and patch the source code</span><br><span style="color: hsl(120, 100%, 40%);">+RUN      curl -SL ${BINUTILS_SRC} | tar -xj -C /usr/src && \</span><br><span style="color: hsl(120, 100%, 40%);">+   curl -SL ${NEWLIB_SRC} | tar -xz -C /usr/src && \</span><br><span style="color: hsl(120, 100%, 40%);">+     curl -SL ${GCC_SRC} | tar -xj -C /usr/src</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+COPY       patches/ /usr/src/patches</span><br><span style="color: hsl(120, 100%, 40%);">+RUN  for patch in /usr/src/patches/gcc-*.patch; do \</span><br><span style="color: hsl(120, 100%, 40%);">+               patch -d /usr/src/gcc-* -p1 < $patch; \</span><br><span style="color: hsl(120, 100%, 40%);">+    done</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Stage 1: Build and install binutils</span><br><span style="color: hsl(120, 100%, 40%);">+RUN      mkdir -p /home/build/binutils && cd /home/build/binutils \</span><br><span style="color: hsl(120, 100%, 40%);">+            && /usr/src/binutils-*/configure \</span><br><span style="color: hsl(120, 100%, 40%);">+                    CFLAGS="-w" \</span><br><span style="color: hsl(120, 100%, 40%);">+                       --prefix=${PREFIX} \</span><br><span style="color: hsl(120, 100%, 40%);">+                  --disable-werror \</span><br><span style="color: hsl(120, 100%, 40%);">+                    --target=arm-none-eabi \</span><br><span style="color: hsl(120, 100%, 40%);">+                      --enable-interwork \</span><br><span style="color: hsl(120, 100%, 40%);">+                  --enable-threads=posix \</span><br><span style="color: hsl(120, 100%, 40%);">+                      --enable-multilib \</span><br><span style="color: hsl(120, 100%, 40%);">+                   --with-float=soft \</span><br><span style="color: hsl(120, 100%, 40%);">+           && make all install</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Stage 2: Build and install GCC (compiler only)</span><br><span style="color: hsl(120, 100%, 40%);">+RUN    mkdir -p /home/build/gcc && cd /home/build/gcc \</span><br><span style="color: hsl(120, 100%, 40%);">+              && HDR_PATH=$(realpath /usr/src/newlib-*/newlib/libc/include) \</span><br><span style="color: hsl(120, 100%, 40%);">+               && /usr/src/gcc-*/configure \</span><br><span style="color: hsl(120, 100%, 40%);">+                 CFLAGS="-w" \</span><br><span style="color: hsl(120, 100%, 40%);">+                       --prefix=${PREFIX} \</span><br><span style="color: hsl(120, 100%, 40%);">+                  --disable-shared \</span><br><span style="color: hsl(120, 100%, 40%);">+                    --disable-werror \</span><br><span style="color: hsl(120, 100%, 40%);">+                    --target=arm-none-eabi \</span><br><span style="color: hsl(120, 100%, 40%);">+                      --enable-interwork \</span><br><span style="color: hsl(120, 100%, 40%);">+                  --enable-multilib \</span><br><span style="color: hsl(120, 100%, 40%);">+                   --with-float=soft \</span><br><span style="color: hsl(120, 100%, 40%);">+                   --enable-languages="c,c++" \</span><br><span style="color: hsl(120, 100%, 40%);">+                        --with-newlib \</span><br><span style="color: hsl(120, 100%, 40%);">+                       --with-headers=$HDR_PATH \</span><br><span style="color: hsl(120, 100%, 40%);">+                    --with-system-zlib \</span><br><span style="color: hsl(120, 100%, 40%);">+          && make all-gcc install-gcc</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Stage 3: Build and install newlib</span><br><span style="color: hsl(120, 100%, 40%);">+RUN mkdir -p /home/build/newlib && cd /home/build/newlib \</span><br><span style="color: hsl(120, 100%, 40%);">+                && /usr/src/newlib-*/configure \</span><br><span style="color: hsl(120, 100%, 40%);">+                      CFLAGS="-w" \</span><br><span style="color: hsl(120, 100%, 40%);">+                       --prefix=${PREFIX} \</span><br><span style="color: hsl(120, 100%, 40%);">+                  --disable-werror \</span><br><span style="color: hsl(120, 100%, 40%);">+                    --target=arm-none-eabi \</span><br><span style="color: hsl(120, 100%, 40%);">+                      --enable-interwork \</span><br><span style="color: hsl(120, 100%, 40%);">+                  --enable-multilib \</span><br><span style="color: hsl(120, 100%, 40%);">+                   --with-float=soft \</span><br><span style="color: hsl(120, 100%, 40%);">+           && make all install</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# Stage 4: Build and install the rest of GCC</span><br><span style="color: hsl(120, 100%, 40%);">+RUN        cd /home/build/gcc && make all install</span><br><span>diff --git a/arm-none-eabi-gcc-4.8.2/Makefile b/arm-none-eabi-gcc-4.8.2/Makefile</span><br><span>new file mode 100644</span><br><span>index 0000000..0895788</span><br><span>--- /dev/null</span><br><span>+++ b/arm-none-eabi-gcc-4.8.2/Makefile</span><br><span>@@ -0,0 +1,2 @@</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+include ../make/Makefile</span><br><span>diff --git a/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch</span><br><span>new file mode 100644</span><br><span>index 0000000..5c4307f</span><br><span>--- /dev/null</span><br><span>+++ b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-inline.patch</span><br><span>@@ -0,0 +1,14 @@</span><br><span style="color: hsl(120, 100%, 40%);">+diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h</span><br><span style="color: hsl(120, 100%, 40%);">+index 42dd3cf..ba48bbd 100644</span><br><span style="color: hsl(120, 100%, 40%);">+--- a/gcc/cp/cfns.h</span><br><span>++++ b/gcc/cp/cfns.h</span><br><span style="color: hsl(120, 100%, 40%);">+@@ -124,9 +124,6 @@ hash (register const char *str, register unsigned int len)</span><br><span style="color: hsl(120, 100%, 40%);">+ </span><br><span style="color: hsl(120, 100%, 40%);">+ #ifdef __GNUC__</span><br><span style="color: hsl(120, 100%, 40%);">+ __inline</span><br><span style="color: hsl(120, 100%, 40%);">+-#ifdef __GNUC_STDC_INLINE__</span><br><span style="color: hsl(120, 100%, 40%);">+-__attribute__ ((__gnu_inline__))</span><br><span style="color: hsl(120, 100%, 40%);">+-#endif</span><br><span style="color: hsl(120, 100%, 40%);">+ #endif</span><br><span style="color: hsl(120, 100%, 40%);">+ const char *</span><br><span style="color: hsl(120, 100%, 40%);">+ libc_name_p (register const char *str, register unsigned int len)</span><br><span>diff --git a/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch</span><br><span>new file mode 100644</span><br><span>index 0000000..c500d08</span><br><span>--- /dev/null</span><br><span>+++ b/arm-none-eabi-gcc-4.8.2/patches/gcc-fix-texi.patch</span><br><span>@@ -0,0 +1,22 @@</span><br><span style="color: hsl(120, 100%, 40%);">+diff --git a/gcc/doc/gcc.texi b/gcc/doc/gcc.texi</span><br><span style="color: hsl(120, 100%, 40%);">+index 02b81cf..5166abf 100644</span><br><span style="color: hsl(120, 100%, 40%);">+--- a/gcc/doc/gcc.texi</span><br><span>++++ b/gcc/doc/gcc.texi</span><br><span style="color: hsl(120, 100%, 40%);">+@@ -85,9 +85,15 @@ Published by:</span><br><span style="color: hsl(120, 100%, 40%);">+ @item GNU Press</span><br><span style="color: hsl(120, 100%, 40%);">+ @tab Website: www.gnupress.org</span><br><span style="color: hsl(120, 100%, 40%);">+ @item a division of the</span><br><span style="color: hsl(120, 100%, 40%);">+-@tab General: @tex press@@gnu.org @end tex</span><br><span style="color: hsl(120, 100%, 40%);">++@tab General:</span><br><span style="color: hsl(120, 100%, 40%);">++@tex</span><br><span style="color: hsl(120, 100%, 40%);">++press@@gnu.org</span><br><span style="color: hsl(120, 100%, 40%);">++@end tex</span><br><span style="color: hsl(120, 100%, 40%);">+ @item Free Software Foundation</span><br><span style="color: hsl(120, 100%, 40%);">+-@tab Orders:  @tex sales@@gnu.org @end tex</span><br><span style="color: hsl(120, 100%, 40%);">++@tab Orders:</span><br><span style="color: hsl(120, 100%, 40%);">++@tex</span><br><span style="color: hsl(120, 100%, 40%);">++sales@@gnu.org</span><br><span style="color: hsl(120, 100%, 40%);">++@end tex</span><br><span style="color: hsl(120, 100%, 40%);">+ @item 51 Franklin Street, Fifth Floor</span><br><span style="color: hsl(120, 100%, 40%);">+ @tab Tel 617-542-5942</span><br><span style="color: hsl(120, 100%, 40%);">+ @item Boston, MA 02110-1301 USA</span><br><span>diff --git a/arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch b/arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch</span><br><span>new file mode 100644</span><br><span>index 0000000..9e27979</span><br><span>--- /dev/null</span><br><span>+++ b/arm-none-eabi-gcc-4.8.2/patches/gcc-multilib-config.patch</span><br><span>@@ -0,0 +1,15 @@</span><br><span style="color: hsl(120, 100%, 40%);">+diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf</span><br><span style="color: hsl(120, 100%, 40%);">+index 60747d3..3427939 100644</span><br><span style="color: hsl(120, 100%, 40%);">+--- a/gcc/config/arm/t-arm-elf</span><br><span>++++ b/gcc/config/arm/t-arm-elf</span><br><span style="color: hsl(120, 100%, 40%);">+@@ -56,8 +56,8 @@ MULTILIB_EXCEPTIONS    += *mthumb/*mfloat-abi=hard*</span><br><span style="color: hsl(120, 100%, 40%);">+ # MULTILIB_DIRNAMES   += fpu soft</span><br><span style="color: hsl(120, 100%, 40%);">+ # MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*</span><br><span style="color: hsl(120, 100%, 40%);">+ # </span><br><span style="color: hsl(120, 100%, 40%);">+-# MULTILIB_OPTIONS    += mno-thumb-interwork/mthumb-interwork</span><br><span style="color: hsl(120, 100%, 40%);">+-# MULTILIB_DIRNAMES   += normal interwork</span><br><span style="color: hsl(120, 100%, 40%);">++MULTILIB_OPTIONS      += mno-thumb-interwork/mthumb-interwork</span><br><span style="color: hsl(120, 100%, 40%);">++MULTILIB_DIRNAMES     += normal interwork</span><br><span style="color: hsl(120, 100%, 40%);">+ # </span><br><span style="color: hsl(120, 100%, 40%);">+ # MULTILIB_OPTIONS    += fno-leading-underscore/fleading-underscore</span><br><span style="color: hsl(120, 100%, 40%);">+ # MULTILIB_DIRNAMES   += elf under</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/docker-playground/+/23518">change 23518</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/docker-playground/+/23518"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: docker-playground </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ide93843836f059a3750e92a973d0a6d9cf9a5638 </div>
<div style="display:none"> Gerrit-Change-Number: 23518 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>