This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 3a2cb309371f402505630471e681510e4c38579b
Author: zhangyu117 <[email protected]>
AuthorDate: Sat Oct 31 19:58:22 2026 +0800

    arch/tricore/tc3xx: fix the TASKING build
    
    1. platform.cmake: use the full ctc path to preprocess the lsl
    
    The lsl preprocess command started ctc by bare name through PATH,
    while the lines around it already use TASKING_COMPILER_PATH found by
    find_program.  With TASKING TriCore v6.3r1 this fails:
    
      ctc F104: No license key found for product code SW160800
    
    Use TASKING_COMPILER_PATH as well.
    
    2. iLLD: make IFX_SSW_INLINE static inline
    
    With --language=+gcc ctc uses GNU89 inline rules and emits a global copy
    of every plain inline function, so the iLLD SSW helpers are defined in
    each object:
    
      ltc E108: multiple definitions of symbol "Ifx_Ssw_NOP" ...
    
    Define IFX_SSW_INLINE as static inline unconditionally, as the tc4xx
    iLLD does.
    
    Signed-off-by: zhangyu117 <[email protected]>
---
 arch/tricore/src/cmake/platform.cmake                 |  2 +-
 arch/tricore/src/illd/tc3xx/patches/change_illd.patch | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/arch/tricore/src/cmake/platform.cmake 
b/arch/tricore/src/cmake/platform.cmake
index cf7d502c2c5..e2029f07748 100644
--- a/arch/tricore/src/cmake/platform.cmake
+++ b/arch/tricore/src/cmake/platform.cmake
@@ -68,6 +68,6 @@ if(CONFIG_TRICORE_TOOLCHAIN_TASKING)
   find_program(TASKING_COMPILER_PATH ctc)
   get_filename_component(C_COMPILER_DIR ${TASKING_COMPILER_PATH} DIRECTORY)
   set(PREPROCESS
-      ${TOOLCHAIN_PREFIX}ctc ${CMAKE_C_FLAG_ARGS} -E
+      ${TASKING_COMPILER_PATH} ${CMAKE_C_FLAG_ARGS} -E
       -I${TOOLCHAIN_PREFIX}/../include.lsl -I${C_COMPILER_DIR}/../include.lsl)
 endif()
diff --git a/arch/tricore/src/illd/tc3xx/patches/change_illd.patch 
b/arch/tricore/src/illd/tc3xx/patches/change_illd.patch
index ee7ec37bf39..fec30e60ee1 100644
--- a/arch/tricore/src/illd/tc3xx/patches/change_illd.patch
+++ b/arch/tricore/src/illd/tc3xx/patches/change_illd.patch
@@ -58,3 +58,18 @@ index 0c6b0771bf0..4b68b8b4121 100644
      /* Map Bus Error trap to its handler for CPU0 */
      IfxCpu_Tsr_CallTSR(IfxCpu_Trap_busError);
      /* Map Assertion trap to its handler for CPU0 */
+diff --git 
a/arch/tricore/src/illd/tc3xx/Libraries/src/Libraries/Infra/Ssw/TC3xx/Tricore/Ifx_Ssw_CompilersTasking.h
 
b/arch/tricore/src/illd/tc3xx/Libraries/src/Libraries/Infra/Ssw/TC3xx/Tricore/Ifx_Ssw_CompilersTasking.h
+--- 
a/arch/tricore/src/illd/tc3xx/Libraries/src/Libraries/Infra/Ssw/TC3xx/Tricore/Ifx_Ssw_CompilersTasking.h
++++ 
b/arch/tricore/src/illd/tc3xx/Libraries/src/Libraries/Infra/Ssw/TC3xx/Tricore/Ifx_Ssw_CompilersTasking.h
+@@ -91,10 +91,6 @@
+ 
+ #endif /*IFX_CFG_USE_COMPILER_DEFAULT_LINKER*/
+ 
+-#ifdef __cplusplus
+-#define IFX_SSW_INLINE   static inline
+-#else
+-#define IFX_SSW_INLINE   inline
+-#endif
++#define IFX_SSW_INLINE   static inline
+ 
+ #define IFX_SSW_NULL_PTR ((void *)0x0U)

Reply via email to