W-M-R opened a new pull request, #18318: URL: https://github.com/apache/nuttx/pull/18318
*Note: Please adhere to [Contributing Guidelines](https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md).* ## Summary This patch series modernizes Clang toolchain support for ARM architectures and upgrades the compiler-rt runtime library to version 18.1.3, while fixing critical build system issues. Key improvements: Simplified Clang configuration: Removed version-specific --config parameters and hardcoded configuration files. Modern Clang (17.0+) automatically locates runtime libraries based on -march, -mcpu, and -mfpu flags, using only --target=arm-none-eabi. Upgraded compiler-rt to 18.1.3: Added architecture-specific file filtering to exclude x86 80-bit floating-point sources (divxc3.c, fixxfdi.c, floatdixf.c, etc.) on non-x86_64 platforms. Fixed build errors: Corrected list(REMOVE_ITEM) to use full paths instead of relative filenames for proper file exclusion Added missing include paths for profile library headers (compiler-rt/lib/profile) ## Impact Build System: Eliminates dependency on version-specific Clang configuration files Improves cross-version compatibility (Clang 14.0, 17.0+, 18.1.3) Fixes architecture-specific compilation with proper file filtering Resolves missing header errors in profile/coverage builds Compatibility: Works across ARMv6-M, ARMv7-M, ARMv8-M, and ARMv8.1-M architectures Supports various Cortex-M cores (M0, M3, M4, M7, M23, M33, M55, M85) Handles both FPU and non-FPU configurations Maintenance: Reduces toolchain maintenance burden by ~130 lines of version-detection code Simplified configuration makes future Clang upgrades easier ## Testing Tested configurations: Toolchains: Clang 14.0, 17.0+, 18.1.3 with ARM targets Architectures: ARMv6-M through ARMv8.1-M Build systems: Both CMake and Make Configurations: FPU/non-FPU, DSP enabled/disabled Verification steps: Clean build with various Clang versions confirmed no configuration errors Verified x86 80-bit sources excluded on ARM builds (no link errors) Confirmed bfloat16 sources properly excluded when CONFIG_LIB_COMPILER_RT_HAS_BFLOAT16 disabled Built with CONFIG_COVERAGE_MINI + Clang - no missing header errors Tested on multiple ARM development boards with different Cortex-M variants -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
