-
-
Notifications
You must be signed in to change notification settings - Fork 178
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update GCC to 14.2.rel1 #3061
base: main
Are you sure you want to change the base?
Update GCC to 14.2.rel1 #3061
Conversation
WalkthroughThis pull request involves updating the development container Dockerfiles and related scripts across multiple projects. The changes primarily focus on upgrading the base images and the GCC toolchain version from 13.3.rel1 to 14.2.rel1. These updates span various development environments including All, AzureRTOS, ChibiOS, FreeRTOS-NXP, TI, and the associated Azure Pipelines template and installation script. Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
.devcontainer/All/Dockerfile.All.SRC (1)
12-12
: Verify build system integrationThe GCC toolchain update is properly integrated:
- Using HTTPS for secure downloads
- Downloading from the official ARM source
- Version is consistent across all container variants
Consider implementing version pinning through a central configuration to ensure consistency when updating toolchain versions in the future.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (12)
.devcontainer/All/Dockerfile.All
(1 hunks).devcontainer/All/Dockerfile.All.SRC
(1 hunks).devcontainer/AzureRTOS/Dockerfile.AzureRTOS
(1 hunks).devcontainer/AzureRTOS/Dockerfile.AzureRTOS.SRC
(1 hunks).devcontainer/ChibiOS/Dockerfile.ChibiOS
(1 hunks).devcontainer/ChibiOS/Dockerfile.ChibiOS.SRC
(1 hunks).devcontainer/FreeRTOS-NXP/Dockerfile.FreeRTOS-NXP
(1 hunks).devcontainer/FreeRTOS-NXP/Dockerfile.FreeRTOS-NXP.SRC
(1 hunks).devcontainer/TI/Dockerfile.TI
(1 hunks).devcontainer/TI/Dockerfile.TI.SRC
(1 hunks)azure-pipelines-templates/download-install-arm-gcc-toolchain.yml
(1 hunks)install-scripts/install-arm-gcc-toolchain.ps1
(3 hunks)
✅ Files skipped from review due to trivial changes (5)
- .devcontainer/All/Dockerfile.All
- .devcontainer/ChibiOS/Dockerfile.ChibiOS
- .devcontainer/TI/Dockerfile.TI
- .devcontainer/FreeRTOS-NXP/Dockerfile.FreeRTOS-NXP
- .devcontainer/AzureRTOS/Dockerfile.AzureRTOS
🔇 Additional comments (8)
install-scripts/install-arm-gcc-toolchain.ps1 (1)
15-15
: Well-aligned toolchain version update.Updating the default version to 14.2.rel1 aligns with the rest of the changes in this PR. Ensures consistent installations across environments.
azure-pipelines-templates/download-install-arm-gcc-toolchain.yml (2)
7-7
: Default version bump is consistent.Switching from 13.3.rel1 to 14.2.rel1 is a good improvement, ensuring the pipeline consistently uses the new GCC version.
14-14
: Validate cache key correctness.Updating the cache key to "gcc-14_2_rel1" is appropriate. Confirm that other scripts or workflows using the old cache key have been updated or deprecated.
.devcontainer/FreeRTOS-NXP/Dockerfile.FreeRTOS-NXP.SRC (1)
12-12
: Toolchain version alignment.The ARG version update to 14.2.rel1 here matches the rest of the PR. This keeps the FreeRTOS-NXP dev environment aligned with the new GCC toolchain release.
.devcontainer/TI/Dockerfile.TI.SRC (1)
12-12
: Consistent TI toolchain update.Upgrading the TI environment to 14.2.rel1 fosters consistency. Confirm that any TI-specific tooling remains compatible with the newer GCC release.
.devcontainer/ChibiOS/Dockerfile.ChibiOS.SRC (1)
12-12
: Verify compatibility with GCC 14.2.rel1The upgrade from GCC 13.3.rel1 to 14.2.rel1 represents a major version bump that could introduce breaking changes. Please ensure:
- The new version is compatible with the existing build system
- All compiler flags and options remain valid
- No regressions in the build process
✅ Verification successful
GCC 14.2.rel1 upgrade appears safe for ChibiOS build system
The analysis of the build system shows that:
- The toolchain configuration is version-agnostic and relies on standard GCC ARM compiler flags
- All compiler flags used are standard and well-established (-mthumb, -mcpu, -mfpu, etc.)
- The build system uses CMake's compiler test (CMAKE_TRY_COMPILE_TARGET_TYPE) to validate toolchain compatibility
- No version-specific GCC features or flags are being used
- The C/C++ standards are set to C17/C++17 which are well supported by GCC 14
The upgrade from GCC 13.3 to 14.2 should be compatible as the build system:
- Uses standard ARM architecture flags
- Doesn't rely on version-specific features
- Implements proper toolchain validation
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Check for any GCC-specific compiler flags or options in the build system rg -l "gcc|g\+\+|\-f|\-W|\-m" | grep -i "cmake\|makefile" # Look for any GCC version checks or dependencies rg -l "gcc.*version|gcc.*\d+\.\d+|toolchain.*version" | grep -i "cmake\|makefile"Length of output: 2977
Script:
#!/bin/bash # Check GCC-specific configurations in toolchain files cat CMake/toolchain.arm-none-eabi.cmake # Check GCC options in ChibiOS specific files cat CMake/Modules/CHIBIOS_STM32F7xx_GCC_options.cmake cat CMake/Modules/CHIBIOS_STM32F4xx_GCC_options.cmake # Check if there are any version-specific compiler flags rg -A 5 "CMAKE_C_COMPILER|CMAKE_CXX_COMPILER" CMake/toolchain.arm-none-eabi.cmakeLength of output: 9998
.devcontainer/AzureRTOS/Dockerfile.AzureRTOS.SRC (1)
12-12
: Consistent toolchain version across configurationsThe GCC version update to 14.2.rel1 aligns with other development container configurations, maintaining consistency across the build environment.
.devcontainer/All/Dockerfile.All.SRC (1)
Line range hint
13-17
: Security considerations for toolchain downloadsThe implementation follows security best practices:
- Uses HTTPS for downloading the toolchain
- Downloads directly from the official ARM source
- Performs cleanup of temporary files and documentation
Description
Motivation and Context
How Has This Been Tested?
Screenshots
Types of changes
Checklist
Summary by CodeRabbit