Skip to content

Bugfix - Issue #207 - TI Arm Clang Compiler Support#276

Merged
JonatanAntoni merged 1 commit intoARM-software:mainfrom
smmasongt:bugfix/issue-207-tiarmclang-support
Feb 11, 2026
Merged

Bugfix - Issue #207 - TI Arm Clang Compiler Support#276
JonatanAntoni merged 1 commit intoARM-software:mainfrom
smmasongt:bugfix/issue-207-tiarmclang-support

Conversation

@smmasongt
Copy link
Contributor

Addresses Issue #180 and Issue #207 which cause build failures with TI Arm Clang Compiler.

  1. It was suggested to move to the generic "cmsis_clang.h" header, which I agree would be the best long term option. Verified TI Arm Clang Compiler supports ACLE 2.00 in documentation [1] which should help reduce the number of specialized handlers for the compiler. Kept a separate section in "cmsis_compiler.h" for TI Arm Clang Compiler in case it is needed in the future, and added additional checks so preprocessor logic is not order dependent.

  2. Removed now unused header "cmsis_tiarmclang_m.h".

  3. Removed legacy TI Arm Compiler (armcl) section as header "cmsis_ccs.h" is not present in CMSIS_6.

Tested updates alongside pull request #45 on a subset of CMSIS-DSP functions which was the primary motivation for enabling TI compiler support.

Test Environment:
TI AM2434, Cortex-R5F, VFPv3-D16
TI CCS 20.4.1.4
TI Arm Clang Compiler v5.0

References:
[1] TI Arm Clang Compiler

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes TI Arm Clang (tiarmclang) build failures by routing TI’s Clang-based toolchain through the generic cmsis_clang.h path and removing legacy/unused TI-specific headers.

Changes:

  • Update compiler-detection logic to treat TI Arm Clang as __clang__ && __ti__ and include cmsis_clang.h with a minimum version check.
  • Remove legacy TI Arm Compiler (armcl) section from cmsis_compiler.h.
  • Remove unused TI Arm Clang M-profile header cmsis_tiarmclang_m.h.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
CMSIS/Core/Include/m-profile/cmsis_tiarmclang_m.h Deleted unused TI Arm Clang M-profile-specific header to rely on generic Clang header handling.
CMSIS/Core/Include/cmsis_compiler.h Adjusted TI Arm Clang detection and switched to cmsis_clang.h; removed legacy TI armcl block.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Member

@JonatanAntoni JonatanAntoni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, did you consider enhancing Core Tests and CoreValidation to run with TI Compiler? Doing so, and assuming we don't need a special license to run the compiler in GitHub Actions, this could help to seal compiler support.

PS: CoreValidation is using CMSIS-Toolbox thus we'd need a contribution to enable TI Compiler with Csolution, too.

@github-actions
Copy link

Test Results

   264 files   -   108     264 suites   - 108   0s ⏱️ - 8m 46s
    56 tests +    7      54 ✅ + 10      2 💤  -     3  0 ❌ ±0 
14 292 runs   - 3 936  12 124 ✅ +160  2 168 💤  - 4 096  0 ❌ ±0 

Results for commit 358e1da. ± Comparison against base commit 6f669f2.

This pull request removes 49 and adds 56 tests. Note that renamed tests count towards both.
CMSIS-Core.src ‑ apsr.c
CMSIS-Core.src ‑ basepri.c
CMSIS-Core.src ‑ bkpt.c
CMSIS-Core.src ‑ clrex.c
CMSIS-Core.src ‑ clz.c
CMSIS-Core.src ‑ control.c
CMSIS-Core.src ‑ cp15.c
CMSIS-Core.src ‑ cpsr.c
CMSIS-Core.src ‑ dmb.c
CMSIS-Core.src ‑ dsb.c
…
TC_CML1Cache_CleanDCacheByAddrWhileDisabled
TC_CML1Cache_EnDisableDCache
TC_CML1Cache_EnDisableICache
TC_CoreFunc_APSR
TC_CoreFunc_BASEPRI
TC_CoreFunc_Control
TC_CoreFunc_EnDisIRQ
TC_CoreFunc_EncDecIRQPrio
TC_CoreFunc_FAULTMASK
TC_CoreFunc_FPSCR
…
This pull request removes 5 skipped tests and adds 2 skipped tests. Note that renamed tests count towards both.
CMSIS-Core.src ‑ lda.c
CMSIS-Core.src ‑ ldaex.c
CMSIS-Core.src ‑ stl.c
CMSIS-Core.src ‑ stlex.c
CMSIS-Core.src ‑ systick.c
TC_CoreInstr_WFE
TC_CoreInstr_WFI

@JonatanAntoni
Copy link
Member

@smmasongt please check the Copilot comments and resolve the conversations if you are happy.

@smmasongt
Copy link
Contributor Author

LGTM, did you consider enhancing Core Tests and CoreValidation to run with TI Compiler? Doing so, and assuming we don't need a special license to run the compiler in GitHub Actions, this could help to seal compiler support.

PS: CoreValidation is using CMSIS-Toolbox thus we'd need a contribution to enable TI Compiler with Csolution, too.

Hello, I'll look into contributing to this. It may be beyond my current capabilities though.

@smmasongt
Copy link
Contributor Author

@smmasongt please check the Copilot comments and resolve the conversations if you are happy.

I resolved these as "No Change".

  1. __ti_version__ is a pre-defined macro of the compiler along with __ti__. These are documented in Section 2.6.1 of the compiler user guide. While the scenario could theoretically happen, it's so unlikely that I didn't feel the need for additional checks.
  2. I tested the proposed macros for version reporting and they didn't function correctly in the TI environment. The existing error message gives a decent hint at the issue and the compiler version is relatively easy to determine via CLI (tiarmclang --version).

@JonatanAntoni JonatanAntoni merged commit 6ad4ecb into ARM-software:main Feb 11, 2026
8 checks passed
@smmasongt smmasongt deleted the bugfix/issue-207-tiarmclang-support branch February 13, 2026 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments