Skip to content

Commit 4fbc2a0

Browse files
authored
Merge pull request #470 from tock/gcc-lib-bump
Support the latest newlib, libc++ and GCC (replaces #442)
2 parents a57ef3d + a03e402 commit 4fbc2a0

File tree

6 files changed

+77
-6
lines changed

6 files changed

+77
-6
lines changed

Configuration.mk

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,10 @@ else ifeq ($(CC_rv32_version_major),12)
256256
NEWLIB_VERSION_rv32 := 4.3.0.20230120
257257
else ifeq ($(CC_rv32_version_major),13)
258258
NEWLIB_VERSION_rv32 := 4.3.0.20230120
259+
else ifeq ($(CC_rv32_version_major),14)
260+
NEWLIB_VERSION_rv32 := 4.4.0.20231231
259261
else
260-
NEWLIB_VERSION_rv32 := 4.3.0.20230120
262+
NEWLIB_VERSION_rv32 := 4.4.0.20231231
261263
endif
262264
NEWLIB_VERSION_rv32i := $(NEWLIB_VERSION_rv32)
263265
NEWLIB_VERSION_rv32imc := $(NEWLIB_VERSION_rv32)
@@ -273,8 +275,10 @@ else ifeq ($(CC_rv32_version_major),12)
273275
LIBCPP_VERSION_rv32 := 12.3.0
274276
else ifeq ($(CC_rv32_version_major),13)
275277
LIBCPP_VERSION_rv32 := 13.2.0
278+
else ifeq ($(CC_rv32_version_major),14)
279+
LIBCPP_VERSION_rv32 := 14.1.0
276280
else
277-
LIBCPP_VERSION_rv32 := 13.2.0
281+
LIBCPP_VERSION_rv32 := 14.1.0
278282
endif
279283
LIBCPP_VERSION_rv32i := $(LIBCPP_VERSION_rv32)
280284
LIBCPP_VERSION_rv32imc := $(LIBCPP_VERSION_rv32)
@@ -396,8 +400,10 @@ else ifeq ($(CC_cortex-m_version_major),12)
396400
NEWLIB_VERSION_cortex-m := 4.3.0.20230120
397401
else ifeq ($(CC_cortex-m_version_major),13)
398402
NEWLIB_VERSION_cortex-m := 4.3.0.20230120
403+
else ifeq ($(CC_cortex-m_version_major),14)
404+
NEWLIB_VERSION_cortex-m := 4.4.0.20231231
399405
else
400-
NEWLIB_VERSION_cortex-m := 4.3.0.20230120
406+
NEWLIB_VERSION_cortex-m := 4.4.0.20231231
401407
endif
402408
NEWLIB_VERSION_cortex-m0 := $(NEWLIB_VERSION_cortex-m)
403409
NEWLIB_VERSION_cortex-m3 := $(NEWLIB_VERSION_cortex-m)
@@ -414,8 +420,10 @@ else ifeq ($(CC_cortex-m_version_major),12)
414420
LIBCPP_VERSION_cortex-m := 12.3.0
415421
else ifeq ($(CC_cortex-m_version_major),13)
416422
LIBCPP_VERSION_cortex-m := 13.2.0
423+
else ifeq ($(CC_cortex-m_version_major),14)
424+
LIBCPP_VERSION_cortex-m := 14.1.0
417425
else
418-
LIBCPP_VERSION_cortex-m := 13.2.0
426+
LIBCPP_VERSION_cortex-m := 14.1.0
419427
endif
420428
LIBCPP_VERSION_cortex-m0 := $(LIBCPP_VERSION_cortex-m)
421429
LIBCPP_VERSION_cortex-m3 := $(LIBCPP_VERSION_cortex-m)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
FROM debian:trixie
2+
3+
LABEL maintainer="Tock Project Developers <[email protected]>"
4+
LABEL version="0.1"
5+
LABEL description="Dockerfile to build libtock-c libc++."
6+
7+
# Disable Prompt During Packages Installation
8+
ARG DEBIAN_FRONTEND=noninteractive
9+
# Update Ubuntu Software repository
10+
RUN apt update
11+
12+
# Install our toolchains
13+
RUN apt install -y gcc-arm-none-eabi gcc-riscv64-unknown-elf
14+
15+
# Install needed tools
16+
RUN apt install -y git build-essential wget rsync zip texinfo
17+
18+
# Install needed library
19+
RUN apt install -y libmpc-dev file
20+
21+
# Clone the libtock-c source so we can use the build scripts
22+
RUN git clone https://github.com/tock/libtock-c
23+
RUN cd libtock-c && git fetch && git checkout 26f2f52841c726a2b38d51f3de93a64f753e1a36
24+
25+
# Actually build the toolchain
26+
RUN cd libtock-c/libc++ && make GCC_VERSION=14.1.0 NEWLIB_VERSION=4.4.0.20231231 -j16
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
3+
docker build -t libtock-c-libcpp-14.1.0 .
4+
id=$(docker create libtock-c-libcpp-14.1.0)
5+
docker cp $id:/libtock-c/libc++/libtock-libc++-14.1.0.zip libtock-libc++-14.1.0.zip

newlib/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ rebuild-newlib: newlib-$(NEWLIB_VERSION)
5050
@mkdir -p libtock-newlib-$(NEWLIB_VERSION)/riscv
5151
@cp -r newlib-arm-$(NEWLIB_VERSION)-install/arm-none-eabi libtock-newlib-$(NEWLIB_VERSION)/arm
5252
@cp -r newlib-riscv-$(NEWLIB_VERSION)-install/$(TOOLCHAIN_rv32i) libtock-newlib-$(NEWLIB_VERSION)/riscv
53-
@cd libtock-newlib-$(NEWLIB_VERSION)/arm/arm-none-eabi; patch -p1 < ../../../newlib-$(NEWLIB_VERSION).patch
54-
@cd libtock-newlib-$(NEWLIB_VERSION)/riscv/$(TOOLCHAIN_rv32i); patch -p1 < ../../../newlib-$(NEWLIB_VERSION).patch
53+
@cd libtock-newlib-$(NEWLIB_VERSION)/arm/arm-none-eabi; [ -f ../../../newlib-$(NEWLIB_VERSION).patch ] && patch -p1 < ../../../newlib-$(NEWLIB_VERSION).patch || true
54+
@cd libtock-newlib-$(NEWLIB_VERSION)/riscv/$(TOOLCHAIN_rv32i); [ -f ../../../newlib-$(NEWLIB_VERSION).patch ] && patch -p1 < ../../../newlib-$(NEWLIB_VERSION).patch || true
5555
@mv newlib-arm-$(NEWLIB_VERSION)-out/build-arm.log newlib-riscv-$(NEWLIB_VERSION)-out/build-riscv.log libtock-newlib-$(NEWLIB_VERSION)
5656
@zip -r libtock-newlib-$(NEWLIB_VERSION).zip libtock-newlib-$(NEWLIB_VERSION)
5757
@echo ""
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
###
2+
### Dockerfile to build libtock-newlib-4.4.0.20231231
3+
###
4+
5+
FROM debian:trixie
6+
7+
LABEL maintainer="Tock Project Developers <[email protected]>"
8+
LABEL version="0.1"
9+
LABEL description="Dockerfile to build libtock-c newlib 4.4.0.20231231."
10+
11+
# Disable Prompt During Packages Installation
12+
ARG DEBIAN_FRONTEND=noninteractive
13+
# Update Ubuntu Software repository
14+
RUN apt update
15+
16+
# Install our toolchains
17+
RUN apt install -y gcc-arm-none-eabi gcc-riscv64-unknown-elf
18+
19+
# Install needed tools
20+
RUN apt install -y git build-essential wget rsync texinfo zip
21+
22+
# Clone the libtock-c source so we can use the build scripts
23+
RUN git clone https://github.com/tock/libtock-c
24+
RUN cd libtock-c && git fetch && git checkout 26f2f52841c726a2b38d51f3de93a64f753e1a36
25+
26+
# Actually build the toolchain
27+
RUN cd libtock-c/newlib && make NEWLIB_VERSION=4.4.0.20231231
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
3+
docker build -t libtock-c-newlib-4.4.0.20231231 .
4+
id=$(docker create libtock-c-newlib-4.4.0.20231231)
5+
docker cp $id:/libtock-c/newlib/libtock-newlib-4.4.0.20231231.zip libtock-newlib-4.4.0.20231231.zip

0 commit comments

Comments
 (0)