You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by "Barto22 (via GitHub)" <gi...@apache.org> on 2026/01/13 06:45:06 UTC
[PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Barto22 opened a new pull request, #17849:
URL: https://github.com/apache/nuttx/pull/17849
This commit updates the Linux CI Docker image to the latest GNU and Clang toolchains.
## Summary
This change updates the GNU (gcc/g++) and Clang (clang/clang++) toolchains used by the Linux CI Docker image to their latest stable versions.
The motivation is to ensure CI builds track supported compilers, improve warning coverage, and detect issues earlier during development.
The update includes minor adjustments to package names and installation scripts to align with distribution changes.
## Impact
- CI builds will use newer compilers with expanded warnings and better C/C++23 support.
- No impact on downstream users unless they explicitly rely on CI-provided compiler versions.
- No functional changes to runtime behavior or board configurations.
- Improves compatibility with modern host toolchains and prevents bit-rot for newer distributions.
- No documentation changes needed.
## Testing
CI pipeline was executed across standard Linux configurations. The following was verified:
- Full NuttX build matrix completed without regressions.
- GCC and Clang builds both succeeded for representative board targets.
- `ostest` and common example applications executed successfully within CI environment (logs available in CI artifacts).
Host: GitHub Actions CI (Ubuntu Linux)
Boards tested in CI: `sim`, `nsh`, plus standard matrix defaults.
No build regressions observed.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3749931914
Hmm I am working on BSD, macOS also uses Clang. Do you mean you want to replace Clang with GCC 15.2 everywhere? There are some differences and some people prefer Clang. It would be nice to keep Clang build coverage.
Also as @raiden00pl pointed out in https://github.com/apache/nuttx/pull/17850 it is possible to pass build time parameter which toolchain to use.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704567915
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -138,59 +141,54 @@ CMD [ "/bin/bash" ]
# Base image that should be used to prepare arch build images
###############################################################################
FROM builder-base AS nuttx-toolchain-base
-
RUN mkdir -p /tools
WORKDIR /tools
###############################################################################
# Build image for tool required by ARM builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM clang toolchain prebuilt by ARM
+# ARM Clang 19.1.5
RUN mkdir -p clang-arm-none-eabi && \
- curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-17.0.1/LLVMEmbeddedToolchainForArm-17.0.1-Linux-x86_64.tar.xz" \
+ curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-19.1.5/LLVM-ET-Arm-19.1.5-Linux-x86_64.tar.xz" \
| tar -C clang-arm-none-eabi --strip-components 1 -xJ
-# Download the latest ARM GCC toolchain prebuilt by ARM
+# ARM GCC 14.3
RUN mkdir -p gcc-arm-none-eabi && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-arm-none-eabi.tar.xz" \
Review Comment:
btw are project source code changes caused by switch to gcc 14.3? are they here with 14.2?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "lupyuen (via GitHub)" <gi...@apache.org>.
lupyuen commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3775737244
@cederom Might be good to keep our Docker Image light, in case it incurs more Compile Time (which implies more GitHub Runners). I think it's good to measure the Compile Times, before and after updating the Docker Image, so we understand the potential impact on GitHub Runners.
In any case: We shouldn't change anything in the Docker Image within the next 4 weeks. [(Because of this)](https://github.com/apache/nuttx/issues/17914#issuecomment-3757443615)
@simbit18 I recall we're currently running out of Disk Space while running NuttX Builds in GitHub CI? How can we be sure that this PR won't cause problems for Disk Space? How do we check the Available Disk Space in the Docker Image for this PR? Thanks!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3776370765
Ok, what do you propose as the next steps?
I’m finishing all tests locally and everything seems to be working. There will still be some fixes needed in NuttX and NuttX apps — for example, functions returning a value even though they’re declared void, and an issue with include guard naming in NuttX apps.
How do you want to handle merging? Should I separate all build-related fixes into a dedicated PR's, and then submit another PR later with the updated Dockerfile?
Also, in my other PR where I’m updating libcxx/libcxxabi, I’m reverting from version 21 to 19 so maybe it can build with the older toolchain. I’ll update that PR shortly and test it with the current NuttX Docker image.
Let me know what you suggest, because updating the Dockerfile toolchain requires some code adjustments as well.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3776809591
Ok, so I will close this PR then and put all fixes in separate PR.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704536566
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -15,56 +15,66 @@
# License for the specific language governing permissions and limitations
# under the License.
-FROM ubuntu:22.04 AS builder-base
+FROM ubuntu:24.04 AS builder-base
# NOTE WE ARE NOT REMOVING APT CACHE.
# This should only be used for temp build images that artifacts will be copied from
+ENV DEBIAN_FRONTEND="noninteractive"
RUN apt-get update -qq && apt-get install -y -qq \
curl \
patch \
- xz-utils
+ xz-utils \
+ bzip2 \
+ git \
+ build-essential
###############################################################################
# Base image that should be used to prepare tools from nuttx-tools
###############################################################################
FROM builder-base AS nuttx-tools
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+RUN apt-get update -qq && apt-get install -y -qq \
bison \
clang \
cmake \
flex \
g++ \
gawk \
- git \
gperf \
- libncurses5-dev \
+ libncurses-dev \
make \
ninja-build \
nodejs \
npm \
unzip \
zip \
- python3
+ python3 \
+ python3-pip \
+ python3-venv
RUN mkdir -p /tools
WORKDIR /tools
+# NuttX Tools
RUN mkdir -p /tools/nuttx-tools
RUN curl -s -L https://bitbucket.org/nuttx/tools/get/9ad3e1ee75c7.tar.gz \
| tar -C nuttx-tools --strip-components=1 -xz
+# Bloaty
RUN mkdir -p /tools/bloaty \
- && git clone --depth 1 --branch v1.1 https://github.com/google/bloaty bloaty-src \
+ && git clone --depth 1 https://github.com/google/bloaty bloaty-src \
&& cd bloaty-src \
&& cmake -B build -DCMAKE_INSTALL_PREFIX=/tools/bloaty \
&& cmake --build build \
&& cmake --build build --target install \
&& cd /tools && rm -rf bloaty-src
+# Kconfig Frontends
+# Note: kconfig-frontends is sensitive to gperf versions, but generally works on 24.04
Review Comment:
How about using package? I created FreeBSD port for kconfig-fontends using the same source location as Debian thus I know package is available..? :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2690916139
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -380,30 +371,90 @@ RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get in
zip \
&& rm -rf /var/lib/apt/lists/*
-# Set GCC-12 as Default compiler
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 && \
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20 && \
- update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 && \
- update-alternatives --set cc /usr/bin/gcc && \
- update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 && \
- update-alternatives --set c++ /usr/bin/g++
+# Add LLVM repository for clang-21 (Targeting Noble)
+# Note: Clang-21 is a snapshot, ensured repo is noble
+RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
+RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | tee /etc/apt/sources.list.d/llvm.list
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ clang-21 \
+ clang++-21 \
+ clang-tidy-21 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Set Clang-21 as Default clang compiler
+RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 50 && \
+ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 50 && \
+ update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 50
+
+# Install GCC 15.2.0 from source
+# Install build dependencies
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ libgmp-dev \
+ libmpfr-dev \
+ libmpc-dev \
+ libisl-dev \
+ zlib1g-dev \
+ texinfo \
+ && rm -rf /var/lib/apt/lists/*
-# Configure out base setup for adding python packages
+# Download, build and install GCC 15.2.0
+RUN mkdir -p /tmp/gcc-build && cd /tmp/gcc-build && \
+ wget -q https://ftp.gnu.org/gnu/gcc/gcc-15.2.0/gcc-15.2.0.tar.xz && \
Review Comment:
Ugh, do we really need to compile the compiler on each CI run? This will starve us from service quotas really quickly.. which we already hit several times.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3747670421
> Question for @Barto22 and everyone:
>
>
>
> Does this bump resolve the known issues?
>
>
>
> https://github.com/apache/nuttx/issues/16896
>
>
>
> Before proceeding with the merge, I would recommend testing the new Nuttx Docker image by compiling all `<board name>:<board configuration>`.
>
>
>
> We also need to check the toolchain update for the other operating systems (macOS and Windows - MSYS2/Native) present in the CI, so that the update does not leave anyone behind.
>
>
>
> Otherwise, there is a risk that all attention will be focused on one OS at the expense of others.
>
>
>
> For example macOS issues on NuttX Mirror
>
> https://github.com/apache/nuttx/issues/17818
>
>
>
> I remind myself and everyone else:
>
>
>
> The Inviolable Principles of NuttX
>
> https://nuttx.apache.org/docs/latest/introduction/inviolables.html#all-users-matter
>
>
>
>
>
>
>
>
>
>
>
>
I will update all CI scripts according to results from tests of Docker image. But I will really appreciate tests on other platforms cause I'm mainly working on Linux.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3750142317
> Do I get this right that you want to build the whole GCC 15.2 from sources @Barto22? Is GCC package unavailable?
>
>
>
> This is a lot more work than building the NuttX itself and seems out of scope. This will drain us from CI quotas rapidly after several forced pushes. We already limited CI due to hitting build quotas several times. Also for this reason macOS is disabled :-(
>
>
>
> Would it be possible to provide time / cpu usage comparison between current CI setup and your proposition?
>
>
>
> If we are supposed to build GCC 15.2 on our own on each CI run this seems a blocker here. But it may be solved by providing system package to the build host so we could just fetch a binary package :-)
The GCC 15 is available from Ubuntu 25 so if we can use no LTS version of Ubuntu it will be possible to pull GCC 15 as package, I will check that.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3749685069
I have updated in Dockerfile all tools to most recent versions, compilers too, Ubuntu to 24.04 LTS from 22.04. GCC and G++ are in version 15.2 so after merging my PR https://github.com/apache/nuttx/pull/17826 there will be no need of using clang for SIM boards tests - but clang is also in latest stable version 21, so I will remove this PR: https://github.com/apache/nuttx/pull/17850 because there will be no need of using clang for SIM board tests with libcxx. Now I'm working on fixing the compile errors.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704581304
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -138,59 +141,54 @@ CMD [ "/bin/bash" ]
# Base image that should be used to prepare arch build images
###############################################################################
FROM builder-base AS nuttx-toolchain-base
-
RUN mkdir -p /tools
WORKDIR /tools
###############################################################################
# Build image for tool required by ARM builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM clang toolchain prebuilt by ARM
+# ARM Clang 19.1.5
RUN mkdir -p clang-arm-none-eabi && \
- curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-17.0.1/LLVMEmbeddedToolchainForArm-17.0.1-Linux-x86_64.tar.xz" \
+ curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-19.1.5/LLVM-ET-Arm-19.1.5-Linux-x86_64.tar.xz" \
| tar -C clang-arm-none-eabi --strip-components 1 -xJ
-# Download the latest ARM GCC toolchain prebuilt by ARM
+# ARM GCC 14.3
RUN mkdir -p gcc-arm-none-eabi && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-arm-none-eabi.tar.xz" \
| tar -C gcc-arm-none-eabi --strip-components 1 -xJ
###############################################################################
# Build image for tool required by ARM64 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm64
-# Download the latest ARM64 GCC toolchain prebuilt by ARM
+# ARM64 GCC 14.3
RUN mkdir gcc-aarch64-none-elf && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-elf.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-aarch64-none-elf.tar.xz" \
| tar -C gcc-aarch64-none-elf --strip-components 1 -xJ
###############################################################################
# Build image for tool required by AVR32 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-avr32
-# Download the prebuilt AVR32 GCC toolchain
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
- git
-# Clone Main Repository
RUN mkdir -p gcc-avr32-gnu && \
git clone --depth 1 https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu
###############################################################################
# Build image for tool required by Pinguino builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-pinguino
-# Download the pinguino compilers. Note this includes both 8bit and 32bit
-# toolchains and builds for multiple host systems. Only copy what is needed.
RUN mkdir -p pinguino-compilers && \
curl -s -L "https://github.com/PinguinoIDE/pinguino-compilers/archive/62db5158d7f6d41c6fadb05de81cc31dd81a1958.tar.gz" \
| tar -C pinguino-compilers --strip-components=2 --wildcards -xz */linux64
###############################################################################
# Build image for tool required by Renesas builds
+# CRITICAL: We use ubuntu:22.04 here because compiling GCC 8.3 sources
Review Comment:
ugh, no packages provided?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3768204888
Thank you @Barto22 amazing work! I left my remarks in the code :-)
* Am I correct this docker is created each time CI is launched and we should keep it as light (time) as possible or it is created one time only and then reused by all following CI invocations @lupyuen @xiaoxiang781216 @simbit18 @acassis @raiden00pl @linguini1 @michallenc @jerpelea ?
* Regarding the build tools compilation I am wondering how to offload the rest of source code build and just use pre-built packages?
* The simplest way would be to have build host packages ready (Ubuntu 24LTS) but that may not be always possible.
* How about adding missing tools to bigger projects like https://github.com/xpack-dev-tools ? :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704563954
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -138,59 +141,54 @@ CMD [ "/bin/bash" ]
# Base image that should be used to prepare arch build images
###############################################################################
FROM builder-base AS nuttx-toolchain-base
-
RUN mkdir -p /tools
WORKDIR /tools
###############################################################################
# Build image for tool required by ARM builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM clang toolchain prebuilt by ARM
+# ARM Clang 19.1.5
RUN mkdir -p clang-arm-none-eabi && \
- curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-17.0.1/LLVMEmbeddedToolchainForArm-17.0.1-Linux-x86_64.tar.xz" \
+ curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-19.1.5/LLVM-ET-Arm-19.1.5-Linux-x86_64.tar.xz" \
| tar -C clang-arm-none-eabi --strip-components 1 -xJ
-# Download the latest ARM GCC toolchain prebuilt by ARM
+# ARM GCC 14.3
RUN mkdir -p gcc-arm-none-eabi && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-arm-none-eabi.tar.xz" \
Review Comment:
👍🏻
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704618994
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -380,30 +371,64 @@ RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get in
zip \
&& rm -rf /var/lib/apt/lists/*
-# Set GCC-12 as Default compiler
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 && \
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20 && \
- update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 && \
- update-alternatives --set cc /usr/bin/gcc && \
- update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 && \
- update-alternatives --set c++ /usr/bin/g++
+# Add LLVM repository for clang-21 (Targeting Noble)
+# Note: Clang-21 is a snapshot, ensured repo is noble
+RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
+RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | tee /etc/apt/sources.list.d/llvm.list
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ clang-21 \
+ clang++-21 \
+ clang-tidy-21 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Set Clang-21 as Default clang compiler
Review Comment:
no need to `--set cc` and `--set c++` as before ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3751379393
> @Barto22: The GCC 15 is available from Ubuntu 25 so if we can use no LTS version of Ubuntu it will be possible to pull GCC 15 as package, I will check that.
We prefer LTS. Too many changes in non-lts. And its good common reference point.
Please contact Ubuntu package managers and ask for GCC 15.2 package. Without this package ready for use this change will be hard to merge as it puts too much burden on the compiler build rather than NuttX builds. If you need support / confirmation form our side let us know :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3759810524
For now Ubuntu 24.04 does not provide a package for GCC 15. Because of that, in this PR I will only update GCC (and the related toolchains) to version 14. The upcoming Ubuntu 26 LTS release on April is expected to include GCC 15 packages, so once that is available I plan to update the Dockerfile again to move the toolchains to the latest versions.
Regarding Clang/LLVM: the embedded LLVM/Clang toolchain currently has stable builds only up to version 19. Because of this, in my other PR (https://github.com/apache/nuttx/pull/17826) I will revert the libc++ and libc++abi versions to the latest stable v19 release - which will be still newer that current version v17. Version 21 (as used now) is not supported by the ARM embedded toolchain v19, so upgrading to it causes unnecessary problems for other users.
The intent of these changes is to update NuttX’s Docker environment to modern stable toolchain versions (even if not the very latest) so that we can benefit from the recent improvements while avoiding known breakage. After the Ubuntu release lands we can then move forward to GCC 15 and embedded Clang/LLVM 20 which is pre-relase for now (https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases), which should also allow us to move libc++/libc++abi forward again.
I’ll run all the builds over the weekend and push fixes for any issues introduced by the current Dockerfile changes with new upragded toolchains. I think it's worth to even update this tools now because newer compilers will have a chance to catch more bugs, as it does now.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3750110257
Do I get this right that you want to build the whole GCC 15.2 from sources @Barto22? Is GCC package unavailable?
This is a lot more work than building the NuttX itself and seems out of scope. This will drain us from CI quotas rapidly after several forced pushes. We already limited CI due to hitting build quotas several times. Also for this reason macOS is disabled :-(
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "lupyuen (via GitHub)" <gi...@apache.org>.
lupyuen commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3743909355
@Barto22: Here are the steps for building and testing an updated Dockerfile for NuttX
https://lupyuen.org/articles/pr#appendix-downloading-the-docker-image-for-nuttx-ci
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "xiaoxiang781216 (via GitHub)" <gi...@apache.org>.
xiaoxiang781216 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3776533041
> Ok, what do you propose as the next steps? I’m finishing all tests locally and everything seems to be working. There will still be some fixes needed in NuttX and NuttX apps — for example, functions returning a value even though they’re declared void, and an issue with include guard naming in NuttX apps.
>
> How do you want to handle merging? Should I separate all build-related fixes into a dedicated PR's, and then submit another PR later with the updated Dockerfile?
>
Yes, it's better to merge the nuttx/apps change first.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3747665664
> Thank you @Barto22 :-) You may want to replicate our CI build process for Linux too that could be best benchmark for comparison :-)
>
>
>
> If that works fine locally and here on github then it should be fine :-)
>
>
>
> More Linux users welcome for testing on different distros, please call for action on our dev@ mailing list :-)
Of course. I'm testing all CI builds and I will fix the errors,if anyone want to join testing I can share the docker already builded image.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3755409343
Look here https://github.com/apache/nuttx/issues/17914 @Barto22 we already run out of runners with "standard" daily PR reviews. There is absolutely no way we can build GCC on each run, we need to use the package, preferably something already offered by GitHub or Ubuntu just to make runner time as short as possible (but not shorter :-) ).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3768024530
Thank you @Barto22 :-) Yes, small reasonable steps, measurable results :-)
We are quite conservative here, not necessarily follow bleeding edge fashions, quite the opposite we prefer "unix old-school" and what works best. For instance we prefer stable 14.2 gcc as most users use it and work with C. There are not that many C++ users here so updating compilers / libstdc++ should be well justified and must not break anything for anyone else. No problem to wait for new LTS release of build host OS. There is no need to switch at the day of release unless we are sure all works as expected and there are no known growing pains. We prefer long-term self-compatibility over short-lived modernity :-)
As you can see we have many limitations, including the GH Runners quotas, that were strongly exceeded by just few GCC 15 builds plus end of year in CN that usually results in increased CI usage.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704540468
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -15,56 +15,66 @@
# License for the specific language governing permissions and limitations
# under the License.
-FROM ubuntu:22.04 AS builder-base
+FROM ubuntu:24.04 AS builder-base
# NOTE WE ARE NOT REMOVING APT CACHE.
# This should only be used for temp build images that artifacts will be copied from
+ENV DEBIAN_FRONTEND="noninteractive"
RUN apt-get update -qq && apt-get install -y -qq \
curl \
patch \
- xz-utils
+ xz-utils \
+ bzip2 \
+ git \
+ build-essential
###############################################################################
# Base image that should be used to prepare tools from nuttx-tools
###############################################################################
FROM builder-base AS nuttx-tools
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+RUN apt-get update -qq && apt-get install -y -qq \
bison \
clang \
cmake \
flex \
g++ \
gawk \
- git \
gperf \
- libncurses5-dev \
+ libncurses-dev \
make \
ninja-build \
nodejs \
npm \
unzip \
zip \
- python3
+ python3 \
+ python3-pip \
+ python3-venv
RUN mkdir -p /tools
WORKDIR /tools
+# NuttX Tools
RUN mkdir -p /tools/nuttx-tools
RUN curl -s -L https://bitbucket.org/nuttx/tools/get/9ad3e1ee75c7.tar.gz \
| tar -C nuttx-tools --strip-components=1 -xz
+# Bloaty
RUN mkdir -p /tools/bloaty \
- && git clone --depth 1 --branch v1.1 https://github.com/google/bloaty bloaty-src \
+ && git clone --depth 1 https://github.com/google/bloaty bloaty-src \
&& cd bloaty-src \
&& cmake -B build -DCMAKE_INSTALL_PREFIX=/tools/bloaty \
&& cmake --build build \
&& cmake --build build --target install \
&& cd /tools && rm -rf bloaty-src
+# Kconfig Frontends
+# Note: kconfig-frontends is sensitive to gperf versions, but generally works on 24.04
RUN cd nuttx-tools/kconfig-frontends \
&& ./configure --enable-mconf --disable-gconf --disable-qconf --enable-static --prefix=/tools/kconfig-frontends \
&& make install && cd /tools && rm -rf nuttx-tools
+# GN
Review Comment:
package?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3746672574
Thank you @Barto22 :-) You may want to replicate our CI build process for Linux too that could be best benchmark for comparison :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "lupyuen (via GitHub)" <gi...@apache.org>.
lupyuen commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3776557618
Yep I agree, we should first merge the code changes to NuttX Kernel and NuttX Apps. The Dockerfile will be merged later as one or more PRs.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704581304
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -138,59 +141,54 @@ CMD [ "/bin/bash" ]
# Base image that should be used to prepare arch build images
###############################################################################
FROM builder-base AS nuttx-toolchain-base
-
RUN mkdir -p /tools
WORKDIR /tools
###############################################################################
# Build image for tool required by ARM builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM clang toolchain prebuilt by ARM
+# ARM Clang 19.1.5
RUN mkdir -p clang-arm-none-eabi && \
- curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-17.0.1/LLVMEmbeddedToolchainForArm-17.0.1-Linux-x86_64.tar.xz" \
+ curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-19.1.5/LLVM-ET-Arm-19.1.5-Linux-x86_64.tar.xz" \
| tar -C clang-arm-none-eabi --strip-components 1 -xJ
-# Download the latest ARM GCC toolchain prebuilt by ARM
+# ARM GCC 14.3
RUN mkdir -p gcc-arm-none-eabi && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-arm-none-eabi.tar.xz" \
| tar -C gcc-arm-none-eabi --strip-components 1 -xJ
###############################################################################
# Build image for tool required by ARM64 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm64
-# Download the latest ARM64 GCC toolchain prebuilt by ARM
+# ARM64 GCC 14.3
RUN mkdir gcc-aarch64-none-elf && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-elf.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-aarch64-none-elf.tar.xz" \
| tar -C gcc-aarch64-none-elf --strip-components 1 -xJ
###############################################################################
# Build image for tool required by AVR32 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-avr32
-# Download the prebuilt AVR32 GCC toolchain
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
- git
-# Clone Main Repository
RUN mkdir -p gcc-avr32-gnu && \
git clone --depth 1 https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu
###############################################################################
# Build image for tool required by Pinguino builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-pinguino
-# Download the pinguino compilers. Note this includes both 8bit and 32bit
-# toolchains and builds for multiple host systems. Only copy what is needed.
RUN mkdir -p pinguino-compilers && \
curl -s -L "https://github.com/PinguinoIDE/pinguino-compilers/archive/62db5158d7f6d41c6fadb05de81cc31dd81a1958.tar.gz" \
| tar -C pinguino-compilers --strip-components=2 --wildcards -xz */linux64
###############################################################################
# Build image for tool required by Renesas builds
+# CRITICAL: We use ubuntu:22.04 here because compiling GCC 8.3 sources
Review Comment:
ugh, no packages provided?
can we ask renesas / ubuntu for packages?
that would save us lots of gh runners time!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704575852
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -138,59 +141,54 @@ CMD [ "/bin/bash" ]
# Base image that should be used to prepare arch build images
###############################################################################
FROM builder-base AS nuttx-toolchain-base
-
RUN mkdir -p /tools
WORKDIR /tools
###############################################################################
# Build image for tool required by ARM builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM clang toolchain prebuilt by ARM
+# ARM Clang 19.1.5
RUN mkdir -p clang-arm-none-eabi && \
- curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-17.0.1/LLVMEmbeddedToolchainForArm-17.0.1-Linux-x86_64.tar.xz" \
+ curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-19.1.5/LLVM-ET-Arm-19.1.5-Linux-x86_64.tar.xz" \
| tar -C clang-arm-none-eabi --strip-components 1 -xJ
-# Download the latest ARM GCC toolchain prebuilt by ARM
+# ARM GCC 14.3
RUN mkdir -p gcc-arm-none-eabi && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-arm-none-eabi.tar.xz" \
| tar -C gcc-arm-none-eabi --strip-components 1 -xJ
###############################################################################
# Build image for tool required by ARM64 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm64
-# Download the latest ARM64 GCC toolchain prebuilt by ARM
+# ARM64 GCC 14.3
RUN mkdir gcc-aarch64-none-elf && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-elf.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-aarch64-none-elf.tar.xz" \
| tar -C gcc-aarch64-none-elf --strip-components 1 -xJ
###############################################################################
# Build image for tool required by AVR32 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-avr32
-# Download the prebuilt AVR32 GCC toolchain
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
- git
-# Clone Main Repository
RUN mkdir -p gcc-avr32-gnu && \
git clone --depth 1 https://github.com/ramangopalan/avr32-gnu-toolchain-linux_x86 gcc-avr32-gnu
###############################################################################
# Build image for tool required by Pinguino builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-pinguino
-# Download the pinguino compilers. Note this includes both 8bit and 32bit
Review Comment:
i would leave these comments, some insight provided.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704552959
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -73,22 +83,23 @@ RUN mkdir -p /tools/gn \
&& python3 build/gen.py \
&& ninja -C out
-# Upgrade nodejs to the stable version we need before install zap
-RUN npm install -g n && n 20.10.0 node && hash -r
+# Install Zap
+# 24.04 has a recent node, but we ensure specific version management
+RUN npm install -g n && n 24.13.0 node && hash -r
Review Comment:
@lupyuen do we always need node? maybe a conditional?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704636636
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -380,30 +371,64 @@ RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get in
zip \
&& rm -rf /var/lib/apt/lists/*
-# Set GCC-12 as Default compiler
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 && \
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20 && \
- update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 && \
- update-alternatives --set cc /usr/bin/gcc && \
- update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 && \
- update-alternatives --set c++ /usr/bin/g++
+# Add LLVM repository for clang-21 (Targeting Noble)
+# Note: Clang-21 is a snapshot, ensured repo is noble
+RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
+RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | tee /etc/apt/sources.list.d/llvm.list
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ clang-21 \
+ clang++-21 \
+ clang-tidy-21 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Set Clang-21 as Default clang compiler
+RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 50 && \
+ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 50 && \
+ update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 50
-# Configure out base setup for adding python packages
+# Install GCC 14 from Ubuntu packages
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ gcc-14 \
+ g++-14 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Remove existing cpp symlinks to avoid circular reference
+RUN rm -f /lib/cpp /usr/bin/cpp /etc/alternatives/cpp
+
+# Set up update-alternatives for GCC 14 and system GCC 13
+RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 && \
+ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 50 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 50 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-14 100 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-13 50 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-14 100 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-13 50 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-14 100 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-13 50 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-14 100 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-13 50 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-14 100 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-13 50 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-14 100 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-13 50
+
+# Configure Python Environment
+# PEP 668 in Ubuntu 24.04 prevents global pip install.
+# We explicitly allow breaking system packages for this CI container.
+ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV PIP_DISABLE_PIP_VERSION_CHECK=true
-# This disables the cache with value 0. We do not want caching as it
-# increases the images size.
ENV PIP_NO_CACHE_DIR=0
-# We are using the minimal python installation from the system so include
-# setuptools and also wheel so we can use the binary releases of packages
-# instead of requiring them to be compiled.
-RUN pip3 install setuptools
-RUN pip3 install wheel
+
+RUN pip3 install --upgrade --ignore-installed pip setuptools wheel
+
+# Install Python Tools
RUN pip3 install cmake-format
-# Install CodeChecker and use it to statically analyze the code.
-# RUN pip3 install CodeChecker
-# Install cvt2utf to check for non-UTF characters.
RUN pip3 install cvt2utf
-# Install pytest
RUN pip3 install cxxfilt
RUN pip3 install construct
RUN pip3 install esptool==4.8.dev4
Review Comment:
we may want latest esptool (i.e. 4.1.0) as this is used to build images for espressif family mcu.. but we do NOT want version 5 (yet?) as it changed basic commands syntax ;-)
correct @tmedicci @fdcavalcanti ? :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2690977948
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -380,30 +371,90 @@ RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get in
zip \
&& rm -rf /var/lib/apt/lists/*
-# Set GCC-12 as Default compiler
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 && \
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20 && \
- update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 && \
- update-alternatives --set cc /usr/bin/gcc && \
- update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 && \
- update-alternatives --set c++ /usr/bin/g++
+# Add LLVM repository for clang-21 (Targeting Noble)
+# Note: Clang-21 is a snapshot, ensured repo is noble
+RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
+RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | tee /etc/apt/sources.list.d/llvm.list
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ clang-21 \
+ clang++-21 \
+ clang-tidy-21 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Set Clang-21 as Default clang compiler
+RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 50 && \
+ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 50 && \
+ update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 50
+
+# Install GCC 15.2.0 from source
+# Install build dependencies
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ libgmp-dev \
+ libmpfr-dev \
+ libmpc-dev \
+ libisl-dev \
+ zlib1g-dev \
+ texinfo \
+ && rm -rf /var/lib/apt/lists/*
-# Configure out base setup for adding python packages
+# Download, build and install GCC 15.2.0
+RUN mkdir -p /tmp/gcc-build && cd /tmp/gcc-build && \
+ wget -q https://ftp.gnu.org/gnu/gcc/gcc-15.2.0/gcc-15.2.0.tar.xz && \
Review Comment:
If we can use no LTS version of Ubuntu we can download as package GCC version 15.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704640276
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -380,30 +371,64 @@ RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get in
zip \
&& rm -rf /var/lib/apt/lists/*
-# Set GCC-12 as Default compiler
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 && \
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20 && \
- update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 && \
- update-alternatives --set cc /usr/bin/gcc && \
- update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 && \
- update-alternatives --set c++ /usr/bin/g++
+# Add LLVM repository for clang-21 (Targeting Noble)
+# Note: Clang-21 is a snapshot, ensured repo is noble
+RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
+RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | tee /etc/apt/sources.list.d/llvm.list
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ clang-21 \
+ clang++-21 \
+ clang-tidy-21 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Set Clang-21 as Default clang compiler
+RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 50 && \
+ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 50 && \
+ update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 50
-# Configure out base setup for adding python packages
+# Install GCC 14 from Ubuntu packages
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ gcc-14 \
+ g++-14 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Remove existing cpp symlinks to avoid circular reference
+RUN rm -f /lib/cpp /usr/bin/cpp /etc/alternatives/cpp
+
+# Set up update-alternatives for GCC 14 and system GCC 13
+RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 && \
+ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 50 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 50 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-14 100 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-13 50 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-14 100 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-13 50 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-14 100 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-13 50 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-14 100 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-13 50 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-14 100 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-13 50 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-14 100 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-13 50
+
+# Configure Python Environment
+# PEP 668 in Ubuntu 24.04 prevents global pip install.
+# We explicitly allow breaking system packages for this CI container.
+ENV PIP_BREAK_SYSTEM_PACKAGES=1
Review Comment:
i know we save doubled disk space.. but python became self-incompatible.. just worried if that won't break the system?
what do you think @lupyuen ? :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704562986
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -138,59 +141,54 @@ CMD [ "/bin/bash" ]
# Base image that should be used to prepare arch build images
###############################################################################
FROM builder-base AS nuttx-toolchain-base
-
RUN mkdir -p /tools
WORKDIR /tools
###############################################################################
# Build image for tool required by ARM builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM clang toolchain prebuilt by ARM
+# ARM Clang 19.1.5
Review Comment:
👍🏻
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "lupyuen (via GitHub)" <gi...@apache.org>.
lupyuen commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3775766181
@cederom This is a massive PR with changes across Code + Ubuntu OS + Python + GCC + Zig. Wonder if we should break into smaller PRs, then merge one PR per week, so we will know if something is messing up the NuttX Build or increasing the utilisation of GitHub Runners? Maybe we could upgrade Ubuntu OS as the first PR?
This PR needs plenty of monitoring, I will have to standby and watch closely for build errors + GitHub utilisation.
@simbit18 Anything else we can do to reduce the risk of this PR?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "simbit18 (via GitHub)" <gi...@apache.org>.
simbit18 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3790872687
Hi everyone, here https://github.com/NuttX/nuttx-docker-testing/actions/runs/21285480349
you can check the impact on all jobs (Linux) with the NuttX Docker image created with Dockerfile @Barto22.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3744014745
> @Barto22 Do you have Build Logs of the updated Docker Image, compiling the various NuttX Targets? Thanks!
I will test it and provide logs.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3751487992
Ok, I will let know about update for GCC 15 on Ubuntu.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "simbit18 (via GitHub)" <gi...@apache.org>.
simbit18 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3750044015
@Barto22 Why is it necessary to completely update the Dockerfile?
Wouldn't it be preferable to update it step by step?
I quickly tested only job arm-01 and found these errors.
```
====================================================================================
Configuration/Tool: spresense/camera,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2026-01-14 11:17:43
------------------------------------------------------------------------------------
Cleaning...
Configuring...
Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Building NuttX...
In file included from /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/include/nuttx/video/v4l2_cap.h:29,
from video/v4l2_cap.c:35:
video/v4l2_cap.c: In function 'start_capture':
video/v4l2_cap.c:802:3: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
802 | IMGDATA_SET_BUF(cmng->imgdata,
| ^~~~~~~~~~~~~~~
video/v4l2_cap.c: In function 'complete_capture':
video/v4l2_cap.c:2035:11: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
2035 | IMGDATA_SET_BUF(cmng->imgdata,
| ^~~~~~~~~~~~~~~
make[1]: *** [Makefile:109: v4l2_cap.o] Error 1
video/isx019.c: In function 'set_spot_position':
video/isx019.c:2621:6: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
2621 | if ((x >= w) || (y >= h))
| ^
video/isx019.c:2599:12: note: 'w' was declared here
2599 | uint16_t w;
| ^
video/isx019.c:2621:16: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
2621 | if ((x >= w) || (y >= h))
| ~~~~~~~~~^~~~~~~~~~~
video/isx019.c:2600:12: note: 'h' was declared here
2600 | uint16_t h;
| ^
In function 'restore_spot_position',
inlined from 'get_spot_position' at video/isx019.c:3343:7:
video/isx019.c:3293:13: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
3293 | ret = ret * sz / basis;
| ~~~~^~~~
video/isx019.c: In function 'get_spot_position':
video/isx019.c:3325:12: note: 'w' was declared here
3325 | uint16_t w;
| ^
In function 'restore_spot_position',
inlined from 'get_spot_position' at video/isx019.c:3345:7:
video/isx019.c:3293:13: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
3293 | ret = ret * sz / basis;
| ~~~~^~~~
video/isx019.c: In function 'get_spot_position':
video/isx019.c:3326:12: note: 'h' was declared here
3326 | uint16_t h;
| ^
cc1: all warnings being treated as errors
make[1]: *** [Makefile:109: isx019.o] Error 1
make[1]: Target 'libdrivers.a' not remade because of errors.
make: *** [tools/LibTargets.mk:107: drivers/libdrivers.a] Error 2
make: Target 'all' not remade because of errors.
/__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/tools/testbuild.sh: line 385: /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/../nuttx/nuttx.manifest: No such file or directory
[1/1] Normalize spresense/camera
====================================================================================
Configuration/Tool: spresense/example_camera,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2026-01-14 11:21:53
------------------------------------------------------------------------------------
Cleaning...
Configuring...
Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Building NuttX...
In file included from /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/include/nuttx/video/v4l2_cap.h:29,
from video/v4l2_cap.c:35:
video/v4l2_cap.c: In function 'start_capture':
video/v4l2_cap.c:802:3: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
802 | IMGDATA_SET_BUF(cmng->imgdata,
| ^~~~~~~~~~~~~~~
video/v4l2_cap.c: In function 'complete_capture':
video/v4l2_cap.c:2035:11: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
2035 | IMGDATA_SET_BUF(cmng->imgdata,
| ^~~~~~~~~~~~~~~
make[1]: *** [Makefile:109: v4l2_cap.o] Error 1
video/isx019.c: In function 'set_spot_position':
video/isx019.c:2621:6: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
2621 | if ((x >= w) || (y >= h))
| ^
video/isx019.c:2599:12: note: 'w' was declared here
2599 | uint16_t w;
| ^
video/isx019.c:2621:16: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
2621 | if ((x >= w) || (y >= h))
| ~~~~~~~~~^~~~~~~~~~~
video/isx019.c:2600:12: note: 'h' was declared here
2600 | uint16_t h;
| ^
In function 'restore_spot_position',
inlined from 'get_spot_position' at video/isx019.c:3343:7:
video/isx019.c:3293:13: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
3293 | ret = ret * sz / basis;
| ~~~~^~~~
video/isx019.c: In function 'get_spot_position':
video/isx019.c:3325:12: note: 'w' was declared here
3325 | uint16_t w;
| ^
In function 'restore_spot_position',
inlined from 'get_spot_position' at video/isx019.c:3345:7:
video/isx019.c:3293:13: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
3293 | ret = ret * sz / basis;
| ~~~~^~~~
video/isx019.c: In function 'get_spot_position':
video/isx019.c:3326:12: note: 'h' was declared here
3326 | uint16_t h;
| ^
cc1: all warnings being treated as errors
make[1]: *** [Makefile:109: isx019.o] Error 1
make[1]: Target 'libdrivers.a' not remade because of errors.
make: *** [tools/LibTargets.mk:107: drivers/libdrivers.a] Error 2
make: Target 'all' not remade because of errors.
/__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/tools/testbuild.sh: line 385: /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/../nuttx/nuttx.manifest: No such file or directory
[1/1] Normalize spresense/example_camera
====================================================================================
Configuration/Tool: spresense/mpy,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2026-01-14 11:22:37
------------------------------------------------------------------------------------
Cleaning...
Configuring...
Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
Building NuttX...
In file included from /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/include/nuttx/video/v4l2_cap.h:29,
from video/v4l2_cap.c:35:
video/v4l2_cap.c: In function 'start_capture':
video/v4l2_cap.c:802:3: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
802 | IMGDATA_SET_BUF(cmng->imgdata,
| ^~~~~~~~~~~~~~~
video/v4l2_cap.c: In function 'complete_capture':
video/v4l2_cap.c:2035:11: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
2035 | IMGDATA_SET_BUF(cmng->imgdata,
| ^~~~~~~~~~~~~~~
make[1]: *** [Makefile:109: v4l2_cap.o] Error 1
make[1]: Target 'libdrivers.a' not remade because of errors.
make: *** [tools/LibTargets.mk:107: drivers/libdrivers.a] Error 2
make: Target 'all' not remade because of errors.
/__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/tools/testbuild.sh: line 385: /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/../nuttx/nuttx.manifest: No such file or directory
[1/1] Normalize spresense/mpy
====================================================================================
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704529901
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -15,56 +15,66 @@
# License for the specific language governing permissions and limitations
# under the License.
-FROM ubuntu:22.04 AS builder-base
+FROM ubuntu:24.04 AS builder-base
# NOTE WE ARE NOT REMOVING APT CACHE.
# This should only be used for temp build images that artifacts will be copied from
+ENV DEBIAN_FRONTEND="noninteractive"
RUN apt-get update -qq && apt-get install -y -qq \
curl \
patch \
- xz-utils
+ xz-utils \
+ bzip2 \
+ git \
+ build-essential
###############################################################################
# Base image that should be used to prepare tools from nuttx-tools
###############################################################################
FROM builder-base AS nuttx-tools
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+RUN apt-get update -qq && apt-get install -y -qq \
bison \
clang \
cmake \
flex \
g++ \
gawk \
- git \
gperf \
- libncurses5-dev \
+ libncurses-dev \
make \
ninja-build \
nodejs \
npm \
unzip \
zip \
- python3
+ python3 \
+ python3-pip \
+ python3-venv
RUN mkdir -p /tools
WORKDIR /tools
+# NuttX Tools
RUN mkdir -p /tools/nuttx-tools
RUN curl -s -L https://bitbucket.org/nuttx/tools/get/9ad3e1ee75c7.tar.gz \
| tar -C nuttx-tools --strip-components=1 -xz
+# Bloaty
Review Comment:
Is package unavailable? Using package would save us precious runner time :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704610717
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -309,67 +305,62 @@ RUN mkdir -p pico-sdk && \
# Build image for tool required by Raspberry Pi picotool builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-raspberrypi-picotool
-# Download the prebuilt Raspberry Pi picotool
RUN mkdir -p picotool && \
- curl -s -L "https://github.com/raspberrypi/pico-sdk-tools/releases/download/v2.2.0-0/picotool-2.2.0-x86_64-lin.tar.gz" \
+ curl -s -L "https://github.com/raspberrypi/pico-sdk-tools/releases/download/v2.2.0-3/picotool-2.2.0-a4-x86_64-lin.tar.gz" \
| tar -C picotool --strip-components 1 -xz
###############################################################################
-# Final Docker image used for running CI system. This includes all toolchains
-# supported by the CI system.
+# Final Docker image used for running CI system.
###############################################################################
-FROM ubuntu:22.04
+FROM ubuntu:24.04
LABEL maintainer="dev@nuttx.apache.org"
-RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
- build-essential \
- curl \
- gcc \
- libssl-dev
-
-RUN mkdir -p cmake && \
- curl -s -L https://cmake.org/files/v3.26/cmake-3.26.0.tar.gz \
- | tar -C cmake --strip-components=1 -xz \
- && cd cmake && ./bootstrap && make && make install && rm -rf cmake
-
+# Enable i386 architecture
RUN dpkg --add-architecture i386
-# This is used for the final images so make sure to not store apt cache
-# Note: xtensa-esp32-elf-gdb is linked to libpython2.7
+
+# Install dependencies
Review Comment:
👍🏻
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704599769
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -248,27 +246,26 @@ RUN cd /tools/renesas-tools/build/gcc && \
# Build image for tool required by RISCV builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-riscv
-# Download the latest RISCV GCC toolchain prebuilt by xPack
+# RISCV GCC 14.3.0-1
RUN mkdir -p riscv-none-elf-gcc && \
- curl -s -L "https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v14.2.0-3/xpack-riscv-none-elf-gcc-14.2.0-3-linux-x64.tar.gz" \
+ curl -s -L "https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v14.3.0-1/xpack-riscv-none-elf-gcc-14.3.0-1-linux-x64.tar.gz" \
| tar -C riscv-none-elf-gcc --strip-components 1 -xz
###############################################################################
# Build image for tool required by SPARC builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-sparc
-# Download the SPARC GCC toolchain prebuilt by Gaisler
RUN mkdir -p sparc-gaisler-elf-gcc && \
- curl -s -L "https://www.gaisler.com/anonftp/bcc2/bin/bcc-2.1.0-gcc-linux64.tar.xz" \
+ curl -s -L "https://www.gaisler.com/anonftp/bcc2/bin/bcc-2.2.4-gcc-linux64.tar.xz" \
| tar -C sparc-gaisler-elf-gcc --strip-components 1 -xJ
###############################################################################
# Build image for tool required by ESP32 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-esp32
-# Download the latest ESP32, ESP32-S2 and ESP32-S3 GCC toolchain prebuilt by Espressif
+# ESP 14.2.0
Review Comment:
they already seem to have 15.2.. but lets stick to 14.2 for now :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704519345
##########
arch/arm/src/nrf52/nrf52_tickless_rtc.c:
##########
@@ -202,8 +202,6 @@ static void rtc_cancel_ack(void)
g_tickless_dev.alarm_set = false;
leave_critical_section(flags);
-
- return OK;
Review Comment:
Why code changes when PR is about Docker configuration update? This is out of scope and hidden change that impacts existing code. If this fixes some other issue this should be provided as separate PR.
Please give a careful read to: https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3779309995
You can keep this PR with changes related to Docker update, we will preserve discussion and history that way.
Code related changes and fixes should go to a separate PR that should be merged before this one dedicated to Docker update :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "simbit18 (via GitHub)" <gi...@apache.org>.
simbit18 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3743861547
Question for @Barto22 and everyone:
Does this bump resolve the known issues?
https://github.com/apache/nuttx/issues/16896
Before proceeding with the merge, I would recommend testing the new Nuttx Docker image by compiling all <board name>:<board configuration>.
We also need to check the toolchain update for the other operating systems (macOS and Windows - MSYS2/Native) present in the CI, so that the update does not leave anyone behind.
Otherwise, there is a risk that all attention will be focused on one OS at the expense of others.
For example macOS issues on NuttX Mirror
https://github.com/apache/nuttx/issues/17818
I remind myself and everyone else:
The Inviolable Principles of NuttX
https://nuttx.apache.org/docs/latest/introduction/inviolables.html#all-users-matter
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3746140542
> > @Barto22 Do you have Build Logs of the updated Docker Image, compiling the various NuttX Targets? Thanks!
>
> I will test it and provide logs.
Currently I'm testing builds, docker image build successfully, I will test all configurations, I see that on gcc 15 there is a problem with libcxx, my PR https://github.com/apache/nuttx/pull/17826 fix it because it switches to latest LLVM libcxx and libcxxabi but before we merge it I will try to repair it here.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3749990568
> Hmm I am working on BSD, macOS also uses Clang. Do you mean you want to replace Clang with GCC 15.2 everywhere? There are some differences and some people prefer Clang. It would be nice to keep Clang build coverage.
>
>
>
> Also as @raiden00pl pointed out in https://github.com/apache/nuttx/pull/17850 it is possible to pass build time parameter which toolchain to use.
>
>
>
> Maybe SIM build with Clang AND Gcc is possible / desired?
I mean I will not touch current test builds configurations. Of course Clang will stay, I updated it to version 21 cause I also use it mostly as GCC alternative and for build comparison and checks.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3749936887
> Hmm I am working on BSD, macOS also uses Clang. Do you mean you want to replace Clang with GCC 15.2 everywhere? There are some differences and some people prefer Clang. It would be nice to keep Clang build coverage.
>
> Also as @raiden00pl pointed out in #17850 it is possible to pass build time parameter which toolchain to use. So maybe build with Clang AND Gcc is possible / desired?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3750157266
> @Barto22 Why is it necessary to completely update the Dockerfile?
>
>
>
> Wouldn't it be preferable to update it step by step?
>
>
>
> I quickly tested only job arm-01 and found these errors.
>
>
>
> ```
>
> ====================================================================================
>
> Configuration/Tool: spresense/camera,CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> 2026-01-14 11:17:43
>
> ------------------------------------------------------------------------------------
>
> Cleaning...
>
> Configuring...
>
> Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> Building NuttX...
>
> In file included from /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/include/nuttx/video/v4l2_cap.h:29,
>
> from video/v4l2_cap.c:35:
>
> video/v4l2_cap.c: In function 'start_capture':
>
> video/v4l2_cap.c:802:3: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
>
> 802 | IMGDATA_SET_BUF(cmng->imgdata,
>
> | ^~~~~~~~~~~~~~~
>
> video/v4l2_cap.c: In function 'complete_capture':
>
> video/v4l2_cap.c:2035:11: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
>
> 2035 | IMGDATA_SET_BUF(cmng->imgdata,
>
> | ^~~~~~~~~~~~~~~
>
> make[1]: *** [Makefile:109: v4l2_cap.o] Error 1
>
> video/isx019.c: In function 'set_spot_position':
>
> video/isx019.c:2621:6: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 2621 | if ((x >= w) || (y >= h))
>
> | ^
>
> video/isx019.c:2599:12: note: 'w' was declared here
>
> 2599 | uint16_t w;
>
> | ^
>
> video/isx019.c:2621:16: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 2621 | if ((x >= w) || (y >= h))
>
> | ~~~~~~~~~^~~~~~~~~~~
>
> video/isx019.c:2600:12: note: 'h' was declared here
>
> 2600 | uint16_t h;
>
> | ^
>
> In function 'restore_spot_position',
>
> inlined from 'get_spot_position' at video/isx019.c:3343:7:
>
> video/isx019.c:3293:13: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 3293 | ret = ret * sz / basis;
>
> | ~~~~^~~~
>
> video/isx019.c: In function 'get_spot_position':
>
> video/isx019.c:3325:12: note: 'w' was declared here
>
> 3325 | uint16_t w;
>
> | ^
>
> In function 'restore_spot_position',
>
> inlined from 'get_spot_position' at video/isx019.c:3345:7:
>
> video/isx019.c:3293:13: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 3293 | ret = ret * sz / basis;
>
> | ~~~~^~~~
>
> video/isx019.c: In function 'get_spot_position':
>
> video/isx019.c:3326:12: note: 'h' was declared here
>
> 3326 | uint16_t h;
>
> | ^
>
> cc1: all warnings being treated as errors
>
> make[1]: *** [Makefile:109: isx019.o] Error 1
>
> make[1]: Target 'libdrivers.a' not remade because of errors.
>
> make: *** [tools/LibTargets.mk:107: drivers/libdrivers.a] Error 2
>
> make: Target 'all' not remade because of errors.
>
> /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/tools/testbuild.sh: line 385: /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/../nuttx/nuttx.manifest: No such file or directory
>
> [1/1] Normalize spresense/camera
>
>
>
> ====================================================================================
>
> Configuration/Tool: spresense/example_camera,CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> 2026-01-14 11:21:53
>
> ------------------------------------------------------------------------------------
>
> Cleaning...
>
> Configuring...
>
> Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> Building NuttX...
>
> In file included from /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/include/nuttx/video/v4l2_cap.h:29,
>
> from video/v4l2_cap.c:35:
>
> video/v4l2_cap.c: In function 'start_capture':
>
> video/v4l2_cap.c:802:3: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
>
> 802 | IMGDATA_SET_BUF(cmng->imgdata,
>
> | ^~~~~~~~~~~~~~~
>
> video/v4l2_cap.c: In function 'complete_capture':
>
> video/v4l2_cap.c:2035:11: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
>
> 2035 | IMGDATA_SET_BUF(cmng->imgdata,
>
> | ^~~~~~~~~~~~~~~
>
> make[1]: *** [Makefile:109: v4l2_cap.o] Error 1
>
> video/isx019.c: In function 'set_spot_position':
>
> video/isx019.c:2621:6: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 2621 | if ((x >= w) || (y >= h))
>
> | ^
>
> video/isx019.c:2599:12: note: 'w' was declared here
>
> 2599 | uint16_t w;
>
> | ^
>
> video/isx019.c:2621:16: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 2621 | if ((x >= w) || (y >= h))
>
> | ~~~~~~~~~^~~~~~~~~~~
>
> video/isx019.c:2600:12: note: 'h' was declared here
>
> 2600 | uint16_t h;
>
> | ^
>
> In function 'restore_spot_position',
>
> inlined from 'get_spot_position' at video/isx019.c:3343:7:
>
> video/isx019.c:3293:13: error: 'w' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 3293 | ret = ret * sz / basis;
>
> | ~~~~^~~~
>
> video/isx019.c: In function 'get_spot_position':
>
> video/isx019.c:3325:12: note: 'w' was declared here
>
> 3325 | uint16_t w;
>
> | ^
>
> In function 'restore_spot_position',
>
> inlined from 'get_spot_position' at video/isx019.c:3345:7:
>
> video/isx019.c:3293:13: error: 'h' may be used uninitialized [-Werror=maybe-uninitialized]
>
> 3293 | ret = ret * sz / basis;
>
> | ~~~~^~~~
>
> video/isx019.c: In function 'get_spot_position':
>
> video/isx019.c:3326:12: note: 'h' was declared here
>
> 3326 | uint16_t h;
>
> | ^
>
> cc1: all warnings being treated as errors
>
> make[1]: *** [Makefile:109: isx019.o] Error 1
>
> make[1]: Target 'libdrivers.a' not remade because of errors.
>
> make: *** [tools/LibTargets.mk:107: drivers/libdrivers.a] Error 2
>
> make: Target 'all' not remade because of errors.
>
> /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/tools/testbuild.sh: line 385: /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/../nuttx/nuttx.manifest: No such file or directory
>
> [1/1] Normalize spresense/example_camera
>
> ====================================================================================
>
> Configuration/Tool: spresense/mpy,CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> 2026-01-14 11:22:37
>
> ------------------------------------------------------------------------------------
>
> Cleaning...
>
> Configuring...
>
> Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
>
> Building NuttX...
>
> In file included from /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/include/nuttx/video/v4l2_cap.h:29,
>
> from video/v4l2_cap.c:35:
>
> video/v4l2_cap.c: In function 'start_capture':
>
> video/v4l2_cap.c:802:3: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
>
> 802 | IMGDATA_SET_BUF(cmng->imgdata,
>
> | ^~~~~~~~~~~~~~~
>
> video/v4l2_cap.c: In function 'complete_capture':
>
> video/v4l2_cap.c:2035:11: error: pointer/integer type mismatch in conditional expression [-Wint-conversion]
>
> 2035 | IMGDATA_SET_BUF(cmng->imgdata,
>
> | ^~~~~~~~~~~~~~~
>
> make[1]: *** [Makefile:109: v4l2_cap.o] Error 1
>
> make[1]: Target 'libdrivers.a' not remade because of errors.
>
> make: *** [tools/LibTargets.mk:107: drivers/libdrivers.a] Error 2
>
> make: Target 'all' not remade because of errors.
>
> /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/tools/testbuild.sh: line 385: /__w/nuttx-bump/nuttx-bump/nuttxspace/nuttx/../nuttx/nuttx.manifest: No such file or directory
>
> [1/1] Normalize spresense/mpy
>
> ====================================================================================
>
> ```
I will check that errors, I see that this are mostly some int conversion errors, I will check that. Thanks for pointing out.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704625701
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -380,30 +371,64 @@ RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get in
zip \
&& rm -rf /var/lib/apt/lists/*
-# Set GCC-12 as Default compiler
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 && \
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20 && \
- update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 && \
- update-alternatives --set cc /usr/bin/gcc && \
- update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 && \
- update-alternatives --set c++ /usr/bin/g++
+# Add LLVM repository for clang-21 (Targeting Noble)
+# Note: Clang-21 is a snapshot, ensured repo is noble
+RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
+RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | tee /etc/apt/sources.list.d/llvm.list
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ clang-21 \
+ clang++-21 \
+ clang-tidy-21 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Set Clang-21 as Default clang compiler
+RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 50 && \
+ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 50 && \
+ update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 50
-# Configure out base setup for adding python packages
+# Install GCC 14 from Ubuntu packages
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ gcc-14 \
+ g++-14 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Remove existing cpp symlinks to avoid circular reference
+RUN rm -f /lib/cpp /usr/bin/cpp /etc/alternatives/cpp
+
+# Set up update-alternatives for GCC 14 and system GCC 13
+RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 && \
+ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 50 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 50 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-14 100 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-13 50 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-14 100 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-13 50 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-14 100 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-13 50 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-14 100 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-13 50 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-14 100 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-13 50 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-14 100 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-13 50
+
+# Configure Python Environment
+# PEP 668 in Ubuntu 24.04 prevents global pip install.
+# We explicitly allow breaking system packages for this CI container.
+ENV PIP_BREAK_SYSTEM_PACKAGES=1
ENV PIP_DISABLE_PIP_VERSION_CHECK=true
-# This disables the cache with value 0. We do not want caching as it
Review Comment:
please keep the comments, gave some insight what and why :-)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704622813
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -380,30 +371,64 @@ RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" TZ=Etc/UTC apt-get in
zip \
&& rm -rf /var/lib/apt/lists/*
-# Set GCC-12 as Default compiler
-RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 20 && \
- update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 20 && \
- update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 && \
- update-alternatives --set cc /usr/bin/gcc && \
- update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 && \
- update-alternatives --set c++ /usr/bin/g++
+# Add LLVM repository for clang-21 (Targeting Noble)
+# Note: Clang-21 is a snapshot, ensured repo is noble
+RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
+RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-21 main" | tee /etc/apt/sources.list.d/llvm.list
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ clang-21 \
+ clang++-21 \
+ clang-tidy-21 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Set Clang-21 as Default clang compiler
+RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-21 50 && \
+ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-21 50 && \
+ update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-21 50
-# Configure out base setup for adding python packages
+# Install GCC 14 from Ubuntu packages
+RUN apt-get update -qq && DEBIAN_FRONTEND="noninteractive" apt-get install -y -qq \
+ gcc-14 \
+ g++-14 \
+ && rm -rf /var/lib/apt/lists/*
+
+# Remove existing cpp symlinks to avoid circular reference
+RUN rm -f /lib/cpp /usr/bin/cpp /etc/alternatives/cpp
+
+# Set up update-alternatives for GCC 14 and system GCC 13
+RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 100 && \
+ update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 50 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 100 && \
+ update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 50 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-14 100 && \
+ update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-13 50 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-14 100 && \
+ update-alternatives --install /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-13 50 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-14 100 && \
+ update-alternatives --install /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-13 50 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-14 100 && \
+ update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-13 50 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-14 100 && \
+ update-alternatives --install /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-13 50 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-14 100 && \
+ update-alternatives --install /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-13 50 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-14 100 && \
+ update-alternatives --install /usr/bin/lto-dump lto-dump /usr/bin/lto-dump-13 50
+
+# Configure Python Environment
+# PEP 668 in Ubuntu 24.04 prevents global pip install.
+# We explicitly allow breaking system packages for this CI container.
+ENV PIP_BREAK_SYSTEM_PACKAGES=1
Review Comment:
not using venv?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "cederom (via GitHub)" <gi...@apache.org>.
cederom commented on code in PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#discussion_r2704569297
##########
tools/ci/docker/linux/Dockerfile:
##########
@@ -138,59 +141,54 @@ CMD [ "/bin/bash" ]
# Base image that should be used to prepare arch build images
###############################################################################
FROM builder-base AS nuttx-toolchain-base
-
RUN mkdir -p /tools
WORKDIR /tools
###############################################################################
# Build image for tool required by ARM builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm
-# Download the latest ARM clang toolchain prebuilt by ARM
+# ARM Clang 19.1.5
RUN mkdir -p clang-arm-none-eabi && \
- curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-17.0.1/LLVMEmbeddedToolchainForArm-17.0.1-Linux-x86_64.tar.xz" \
+ curl -s -L "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-19.1.5/LLVM-ET-Arm-19.1.5-Linux-x86_64.tar.xz" \
| tar -C clang-arm-none-eabi --strip-components 1 -xJ
-# Download the latest ARM GCC toolchain prebuilt by ARM
+# ARM GCC 14.3
RUN mkdir -p gcc-arm-none-eabi && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-eabi.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-arm-none-eabi.tar.xz" \
| tar -C gcc-arm-none-eabi --strip-components 1 -xJ
###############################################################################
# Build image for tool required by ARM64 builds
###############################################################################
FROM nuttx-toolchain-base AS nuttx-toolchain-arm64
-# Download the latest ARM64 GCC toolchain prebuilt by ARM
+# ARM64 GCC 14.3
RUN mkdir gcc-aarch64-none-elf && \
- curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/13.2.Rel1/binrel/arm-gnu-toolchain-13.2.Rel1-x86_64-aarch64-none-elf.tar.xz" \
+ curl -s -L "https://developer.arm.com/-/media/Files/downloads/gnu/14.3.Rel1/binrel/arm-gnu-toolchain-14.3.Rel1-x86_64-aarch64-none-elf.tar.xz" \
Review Comment:
👍🏻
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 commented on PR #17849:
URL: https://github.com/apache/nuttx/pull/17849#issuecomment-3783000486
So here are two PR with some smaller fixes: https://github.com/apache/nuttx/pull/18092 and https://github.com/apache/nuttx/pull/18094. I will provide fixes for nuttx-apps also. I will close that one to not make mess.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Update CI Linux Docker file to use latest GNU and Clang toolchains [nuttx]
Posted by "Barto22 (via GitHub)" <gi...@apache.org>.
Barto22 closed pull request #17849: Update CI Linux Docker file to use latest GNU and Clang toolchains
URL: https://github.com/apache/nuttx/pull/17849
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org