diff --git a/Dockerfile b/Dockerfile index 7f52cd61..9e835616 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,31 +1,16 @@ -FROM ubuntu:20.04 +FROM alpine:3.15 LABEL maintainer="Ben V. Brown " WORKDIR /build -# Add extra mirrors for options -RUN echo "deb mirror://mirrors.ubuntu.com/mirrors.txt focal main restricted universe multiverse" > /etc/apt/sources.list && \ - echo "deb mirror://mirrors.ubuntu.com/mirrors.txt focal-updates main restricted universe multiverse" >> /etc/apt/sources.list && \ - echo "deb mirror://mirrors.ubuntu.com/mirrors.txt focal-security main restricted universe multiverse" >> /etc/apt/sources.list && \ - DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ca-certificates -# Install dependencies to build the firmware -RUN apt-get install -y \ - make \ - bzip2 \ - git \ - python3 \ - python3-pip \ - clang-format \ - dfu-util \ - wget --no-install-recommends && \ - apt-get clean -RUN python3 -m pip install bdflib -# Download the two compilers -RUN wget -qO- "https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2" | tar -xj -# This is the same as the one from Nuclei, just mirrored on Github as their download server is horrifically slow -RUN wget -qO- "https://github.com/Ralim/nuclei-compiler/releases/download/2020.08/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2" | tar -xj +# Installing the two compilers, python3, python3 pip, clang format +# Compilders ->gcc-* newlib-* +# Python3 -> py* +# Misc -> findutils make git clang (for clang-format) +RUN apk add --no-cache gcc-riscv-none-elf gcc-arm-none-eabi python3 py3-pip make git clang newlib-riscv-none-elf newlib-arm-none-eabi findutils + +# Install Python3 packages + +RUN python3 -m pip install bdflib black -# Add compiler to the path -ENV PATH "/build/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH" -ENV PATH "/build/gcc/bin/:$PATH" COPY . /build/source COPY ./ci /build/ci diff --git a/docker-compose.yml b/docker-compose.yml index 31ded282..9a029eae 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: tty: true build: context: . - command: /bin/bash + command: /bin/sh volumes: - ./ci:/build/ci:Z - ./:/build/source:Z diff --git a/source/Makefile b/source/Makefile index 51373f1b..2a131e75 100644 --- a/source/Makefile +++ b/source/Makefile @@ -166,7 +166,7 @@ CPUFLAGS= -march=rv32imac \ -mcmodel=medany -fsigned-char -fno-builtin -fsingle-precision-constant \ -DRTOS_FREERTOS -DDOWNLOAD_MODE=DOWNLOAD_MODE_FLASHXIP -DEV_LDFLAGS= -lstdc++ -nostartfiles -Xlinker --gc-sections --specs=nosys.specs -u _isatty -u _write -u _sbrk -u _read -u _close -u _fstat -u _lseek +DEV_LDFLAGS= -lstdc++ -nostartfiles -Xlinker --gc-sections -u _isatty -u _write -u _sbrk -u _read -u _close -u _fstat -u _lseek DEV_AFLAGS= -nostartfiles -ffreestanding -fno-common -Os -flto DEV_GLOBAL_DEFS= DEV_CFLAGS= -MMD -MP -MF "$(@:%.o=%.d)" -MT "$@" @@ -221,7 +221,7 @@ ifeq ($(model),$(filter $(model),$(ALL_MINIWARE_MODELS) $(ALL_MHP30_MODELS))) COMPILER_PREFIX=arm-none-eabi endif ifeq ($(model),$(ALL_PINE_MODELS)) -COMPILER_PREFIX=riscv-nuclei-elf +COMPILER_PREFIX=riscv-none-elf endif # programs --------------------------------------------------------------------- CC=$(COMPILER_PREFIX)-gcc