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]

Reply via email to