This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TMS320F28335: C2000 Compiler Version problems

Part Number: TMS320F28335

Tool/software: TI C/C++ Compiler

We've moved one of our work stations from CCS V6.0.1.00040 with compiler  C2000 TI v6.2.7 to CCS  V6.2.0.00050 and compiler c2000_15.12.3.LTS, it compiles and runs fine on the early vertsion but on the newer version we are getting compiler failure as shown below:

>> Compilation failure
source/subdir_rules.mk:91: recipe for target 'source/Phase_A_Controller.obj' failed
"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/_defs.h", line 187: warning #328-D: "inline" is not allowed
"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/_defs.h", line 188: error #66: expected a ";"
"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/math.h", line 252: warning #12-D: parsing restarts here after previous syntax error
1 error detected in the compilation of "../source/Phase_A_Controller.c".
gmake: *** [source/Phase_A_Controller.obj] Error 1
gmake: Target 'all' not remade because of errors.

looking at _defs.h, which is a TI file, the relevant code is shown below:-

187 _CODE_ACCESS __inline int __isfinitef(float f)
 188 { return __FLOAT_BIASED_EXP_IS_MAX(f) == 0; }

  I can't see anything obvious and looking through the forums I again can't find any reference to why 'inlines' are not allowed. Copying the older compiler into the compiler folder with the new CCS version and selecting this as the compiler options works, but I'm not happy about releasing this until I find out what is happening.

Best regards

Tony

  • Please show all the build options, exactly as the compiler sees them.

    Thanks and regards,

    -George

  • Hi George,

    Thanks for taking an interest, here are the compiler options set when using  compiler c2000_15.12.3.LTS:-

    -v28 -ml -mt --float_support=fpu32 --opt_for_speed=5 --fp_reassoc=off --include_path="C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include" --include_path="../include" -g --define="_DEBUG" --define="LARGE_MODEL" --display_error_number --diag_wrap=off --diag_warning=225 --asm_listing

    and the linker options are:-

    -v28 -ml -mt --float_support=fpu32 --opt_for_speed=5 --fp_reassoc=off -g --define="_DEBUG" --define="LARGE_MODEL" --display_error_number --diag_wrap=off --diag_warning=225 --asm_listing -z -m"droop.map" --stack_size=0x300 --warn_sections -i"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/lib" -i"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include" -i"C:/Users/Toshiba/workspace_V6_0/Cockle_output" --reread_libs --display_error_number --diag_wrap=off --xml_link_info="Cockle_output_linkInfo.xml" --rom_model

    This produces :-

    'Building file: ../source/Phase_A_Controller.c'
    'Invoking: C2000 Compiler'
    "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --opt_for_speed=5 --fp_reassoc=off --include_path="C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include" --include_path="../include" -g --define="_DEBUG" --define="LARGE_MODEL" --display_error_number --diag_wrap=off --diag_warning=225 --asm_listing --preproc_with_compile --preproc_dependency="source/Phase_A_Controller.d" --obj_directory="source"  "../source/Phase_A_Controller.c"

    >> Compilation failure
    source/subdir_rules.mk:91: recipe for target 'source/Phase_A_Controller.obj' failed
    "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/_defs.h", line 187: warning #328-D: "inline" is not allowed
    "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/_defs.h", line 188: error #66: expected a ";"
    "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/math.h", line 252: warning #12-D: parsing restarts here after previous syntax error
    1 error detected in the compilation of "../source/Phase_A_Controller.c".
    gmake: *** [source/Phase_A_Controller.obj] Error 1

    and an error.

    Using compiler c2000_6.2.7 we get

    -v28 -ml -mt --float_support=fpu32 --opt_for_speed=5 --fp_reassoc=off --include_path="C:/ti/ccsv6/tools/compiler/c2000_6.2.7/include" --include_path="../include" -g --define="_DEBUG" --define="LARGE_MODEL" --diag_warning=225 --display_error_number --diag_wrap=off --asm_listing

    This produces:-

    'Building file: ../source/Phase_A_Controller.c'
    'Invoking: C2000 Compiler'
    "C:/ti/ccsv6/tools/compiler/c2000_6.2.7/bin/cl2000" -v28 -ml -mt --float_support=fpu32 --opt_for_speed=5 --fp_reassoc=off --include_path="C:/ti/ccsv6/tools/compiler/c2000_6.2.7/include" --include_path="../include" -g --define="_DEBUG" --define="LARGE_MODEL" --diag_warning=225 --display_error_number --diag_wrap=off --asm_listing --preproc_with_compile --preproc_dependency="source/Phase_A_Controller.d" --obj_directory="source"  "../source/Phase_A_Controller.c"
    'Finished building: ../source/Phase_A_Controller.c'

    with no errors.

    I'd be grateful for any ideas.

    Thanks and best regards

    Tony

  • Unfortunately, I am unable to reproduce ...

    Tony Lakin said:
    "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/_defs.h", line 187: warning #328-D: "inline" is not allowed
    "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/_defs.h", line 188: error #66: expected a ";"
    "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/include/math.h", line 252: warning #12-D: parsing restarts here after previous syntax error

    The file _defs.h does not have the keyword inline on line 187, but __inline.  I wonder if your copy of _defs.h is corrupted.  Please attach it to your next post.  So the forum will accept it, add the file extension .txt.  

    Thanks and regards,

    -George

  • _defs.txt
    /*****************************************************************************/
    /* _defs.h   v15.12.3                                                        */
    /*                                                                           */
    /* Copyright (c) 2015-2016 Texas Instruments Incorporated                    */
    /* http://www.ti.com/                                                        */
    /*                                                                           */
    /*  Redistribution and  use in source  and binary forms, with  or without    */
    /*  modification,  are permitted provided  that the  following conditions    */
    /*  are met:                                                                 */
    /*                                                                           */
    /*     Redistributions  of source  code must  retain the  above copyright    */
    /*     notice, this list of conditions and the following disclaimer.         */
    /*                                                                           */
    /*     Redistributions in binary form  must reproduce the above copyright    */
    /*     notice, this  list of conditions  and the following  disclaimer in    */
    /*     the  documentation  and/or   other  materials  provided  with  the    */
    /*     distribution.                                                         */
    /*                                                                           */
    /*     Neither the  name of Texas Instruments Incorporated  nor the names    */
    /*     of its  contributors may  be used to  endorse or  promote products    */
    /*     derived  from   this  software  without   specific  prior  written    */
    /*     permission.                                                           */
    /*                                                                           */
    /*  THIS SOFTWARE  IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS    */
    /*  "AS IS"  AND ANY  EXPRESS OR IMPLIED  WARRANTIES, INCLUDING,  BUT NOT    */
    /*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR    */
    /*  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT    */
    /*  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,    */
    /*  SPECIAL,  EXEMPLARY,  OR CONSEQUENTIAL  DAMAGES  (INCLUDING, BUT  NOT    */
    /*  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,    */
    /*  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY    */
    /*  THEORY OF  LIABILITY, WHETHER IN CONTRACT, STRICT  LIABILITY, OR TORT    */
    /*  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE    */
    /*  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     */
    /*                                                                           */
    /*****************************************************************************/
    
    #ifndef _DEFS_H_
    #define _DEFS_H_
    
    #pragma diag_push
    
    #pragma CHECK_MISRA("-8.1") /* visible prototypes */
    #pragma CHECK_MISRA("-8.5") /* functions in header files */
    #pragma CHECK_MISRA("-8.11") /* use static on fns with internal linkage */
    #pragma CHECK_MISRA("-10.1") /* implicit conversion ... bool to int??? */
    #pragma CHECK_MISRA("-12.1") /* operator precedence */
    #pragma CHECK_MISRA("-12.2") /* different order of operations??? */
    #pragma CHECK_MISRA("-12.4") /* RHS of &&/|| has side effects??? */
    #pragma CHECK_MISRA("-14.7") /* single point of return */
    #pragma CHECK_MISRA("-14.9") /* only compound statement after if/else */
    #pragma CHECK_MISRA("-19.1") /* only comments and preproc before #include??? */
    #pragma CHECK_MISRA("-19.4") /* macro expands to unparenthesized */
    
    #pragma diag_suppress 1558 /* --float_operations_allowed checks */ 
    
    /* This file is included in other user header files; take care not to
       pollute the namespace */
    
    #define __INT_MAX 32767
    
    typedef unsigned long long __uint64_t;
    typedef unsigned long __uint32_t;
    
    #ifdef __cplusplus
    #define __BEGIN_DECLS extern "C" {
    #define __END_DECLS }
    #else
    #define __BEGIN_DECLS
    #define __END_DECLS
    #endif
    
    /* normalize target-specific intrinsics */
    
    #define __f64_upper_bits_as_u32(x) (__f64_bits_as_u64(x) >> 32)
    #define __f64_lower_bits_as_u32(x) (__f64_bits_as_u64(x) & 0xffffffff)
    #define __u32x2_bits_as_f64(x,y) (__u64_bits_as_f64((__uint64_t)(x) << 32 | (__uint32_t)(y)))
    
    #define __IEEE32_BIAS 0x7f
    #define __IEEE32_MANT_DIG 24
    #define __IEEE32_MAX_EXP 128u
    #define __IEEE32_MIN 0x1.0p-126
    #define __IEEE32_BIT_MASK(n) (((__uint32_t)(1) << (n)) - 1)
    #define __IEEE32_EXP_BITS_MASK ((__IEEE32_MAX_EXP * 2) - 1)
    #define __IEEE32_SGN_TEST_MASK ((__uint32_t)(1) << (32-1))
    #define __IEEE32_EXP_TEST_MASK 0x7f80u
    
    #define __IEEE32_SIGN_BIT_ZERO(f) \
        ((__f32_bits_as_u32(f) & __IEEE32_SGN_TEST_MASK) == 0)
    
    #define __IEEE32_BIASED_EXP(f) \
        (((unsigned int)(__f32_bits_as_u32(f) >> (__IEEE32_MANT_DIG-1))) & __IEEE32_EXP_BITS_MASK)
    
    #define __IEEE32_BIASED_EXP_IS_MAX(f) \
       ((((unsigned int)(__f32_bits_as_u32(f) >> 16)) & \
         __IEEE32_EXP_TEST_MASK) == __IEEE32_EXP_TEST_MASK)
    
    #define __IEEE32_FRAC_PART(f) \
       (__f32_bits_as_u32(f) & __IEEE32_BIT_MASK(__IEEE32_MANT_DIG-1))
    
    #define __IEEE32_FRAC_PART_IS_ZERO(f) (__IEEE32_FRAC_PART(f) == 0)
    
    #define __IEEE32_DISCARD_N_FRAC_BITS(v,n) \
        (__u32_bits_as_f32(__f32_bits_as_u32(v) & ~__IEEE32_BIT_MASK(n)))
    
    #define __IEEE32_DISCARD_EXP_AND_FRAC_PARTS(v) \
        (__u32_bits_as_f32(__f32_bits_as_u32(v) & __IEEE32_SGN_TEST_MASK))
    
    #define __IEEE32_UNBIASED_EXP(f) \
        (__IEEE32_BIASED_EXP(f) - __IEEE32_BIAS)
    
    #define __IEEE32_BIASED_EXP_IS_ZERO(f) (__IEEE32_BIASED_EXP(f) == 0)
    
    #define __IEEE32_IS_ZERO(f) \
        ((__f32_bits_as_u32(f) & ~__IEEE32_SGN_TEST_MASK)==0)
    
    #define __IEEE64_BIAS 1023
    #define __IEEE64_MANT_DIG 53
    #define __IEEE64_MAX_EXP 1024u
    #define __IEEE64_MIN C(0x1.0p-1022)
    #define __IEEE64_BIT_MASK(n) (((__uint64_t)(1) << (n)) - 1)
    #define __IEEE64_EXP_BITS_MASK ((__IEEE64_MAX_EXP * 2) - 1)
    #define __IEEE64_SGN_TEST_MASK ((__uint64_t)(1) << (64-1))
    #define __IEEE64_EXP_TEST_MASK 0x7ff0u
    
    #define __IEEE64_SIGN_BIT_ZERO(f) \
       ((__f64_bits_as_u64(f) & __IEEE64_SGN_TEST_MASK) == 0)
    
    #define __IEEE64_BIASED_EXP(f) \
       ((__f64_bits_as_u64(f) >> (__IEEE64_MANT_DIG-1)) & __IEEE64_EXP_BITS_MASK)
    
    #define __IEEE64_BIASED_EXP_IS_MAX(f) \
       ((((unsigned int)(__f64_bits_as_u64(f) >> 48)) &  \
         __IEEE64_EXP_TEST_MASK) == __IEEE64_EXP_TEST_MASK)
    
    #define __IEEE64_FRAC_PART(f) \
       (__f64_bits_as_u64(f) & __IEEE64_BIT_MASK(__IEEE64_MANT_DIG-1))
    
    #define __IEEE64_FRAC_PART_IS_ZERO(f) (__IEEE64_FRAC_PART(f) == 0)
    
    #define __IEEE64_DISCARD_N_FRAC_BITS(v,n) \
       (__u64_bits_as_f64(__f64_bits_as_u64(v) & ~__IEEE64_BIT_MASK(n)))
    
    #define __IEEE64_DISCARD_EXP_AND_FRAC_PARTS(v) \
       (__u64_bits_as_f64(__f64_bits_as_u64(v) & __IEEE64_SGN_TEST_MASK))
    
    #define __IEEE64_UNBIASED_EXP(f) \
       (__IEEE64_BIASED_EXP(f) - __IEEE64_BIAS)
    
    #define __IEEE64_BIASED_EXP_IS_ZERO(f) \
       (__IEEE64_BIASED_EXP(f) == 0)
    
    #define __IEEE64_IS_ZERO(f) \
       ((__f64_bits_as_u64(f) & ~__IEEE64_SGN_TEST_MASK)==0)
    
    #define __FLOAT_UNBIASED_EXP(f)            (__IEEE32_UNBIASED_EXP(f))
    #define __FLOAT_FRAC_PART_IS_ZERO(f)       (__IEEE32_FRAC_PART_IS_ZERO(f))
    #define __FLOAT_BIASED_EXP_IS_ZERO(f)      (__IEEE32_BIASED_EXP_IS_ZERO(f))
    #define __FLOAT_BIASED_EXP_IS_MAX(f)       (__IEEE32_BIASED_EXP_IS_MAX(f))
    #define __FLOAT_SIGN_BIT_ZERO(f)           (__IEEE32_SIGN_BIT_ZERO(f))
    #define __FLOAT_MANT_DIG                   (__IEEE32_MANT_DIG)
    
    #define __DOUBLE_UNBIASED_EXP(f)            (__IEEE32_UNBIASED_EXP(f))
    #define __DOUBLE_FRAC_PART_IS_ZERO(f)       (__IEEE32_FRAC_PART_IS_ZERO(f))
    #define __DOUBLE_BIASED_EXP_IS_ZERO(f)      (__IEEE32_BIASED_EXP_IS_ZERO(f))
    #define __DOUBLE_BIASED_EXP_IS_MAX(f)       (__IEEE32_BIASED_EXP_IS_MAX(f))
    #define __DOUBLE_SIGN_BIT_ZERO(f)           (__IEEE32_SIGN_BIT_ZERO(f))
    #define __DOUBLE_MANT_DIG                   (__IEEE32_MANT_DIG)
    
    #define __LDOUBLE_UNBIASED_EXP(f)            (__IEEE64_UNBIASED_EXP(f))
    #define __LDOUBLE_FRAC_PART_IS_ZERO(f)       (__IEEE64_FRAC_PART_IS_ZERO(f))
    #define __LDOUBLE_BIASED_EXP_IS_ZERO(f)      (__IEEE64_BIASED_EXP_IS_ZERO(f))
    #define __LDOUBLE_BIASED_EXP_IS_MAX(f)       (__IEEE64_BIASED_EXP_IS_MAX(f))
    #define __LDOUBLE_SIGN_BIT_ZERO(f)           (__IEEE64_SIGN_BIT_ZERO(f))
    #define __LDOUBLE_MANT_DIG                   (__IEEE64_MANT_DIG)
    
    __BEGIN_DECLS
    
    
    #include <linkage.h>
    
    /* always inline these functions so that calls to them don't appear in
       an object file and become part of the ABI. */
    
    _CODE_ACCESS __inline int __isfinite(double d)
    { return __DOUBLE_BIASED_EXP_IS_MAX(d) == 0; } 
    _CODE_ACCESS __inline int __isfinitef(float f)
    { return __FLOAT_BIASED_EXP_IS_MAX(f) == 0; }
    _CODE_ACCESS __inline int __isfinitel(long double e)
    { return __LDOUBLE_BIASED_EXP_IS_MAX(e) == 0; }
    
    _CODE_ACCESS __inline int __isnan(double d)
    { return __DOUBLE_BIASED_EXP_IS_MAX(d) &&
            (__DOUBLE_FRAC_PART_IS_ZERO(d) == 0); }
    _CODE_ACCESS __inline int __isnanf(float f)
    { return __FLOAT_BIASED_EXP_IS_MAX(f) &&
            (__FLOAT_FRAC_PART_IS_ZERO(f) == 0); }
    _CODE_ACCESS __inline int __isnanl(long double e)
    { return __LDOUBLE_BIASED_EXP_IS_MAX(e) &&
            (__LDOUBLE_FRAC_PART_IS_ZERO(e) == 0); }
    
    _CODE_ACCESS __inline int __isnormal(double d)
    { return (__DOUBLE_BIASED_EXP_IS_ZERO(d) == 0) &&
             (__DOUBLE_BIASED_EXP_IS_MAX(d) == 0); }
    
    _CODE_ACCESS __inline int __isnormalf(float f)
    { return (__FLOAT_BIASED_EXP_IS_ZERO(f) == 0) &&
             (__FLOAT_BIASED_EXP_IS_MAX(f) == 0); }
    
    _CODE_ACCESS __inline int __isnormall(long double e)
    { return (__LDOUBLE_BIASED_EXP_IS_ZERO(e) == 0) &&
             (__LDOUBLE_BIASED_EXP_IS_MAX(e) == 0); }
    
    _CODE_ACCESS __inline int __signbit(double d)
    { return __DOUBLE_SIGN_BIT_ZERO(d) == 0; }
    _CODE_ACCESS __inline int __signbitf(float f)
    { return __FLOAT_SIGN_BIT_ZERO(f) == 0; }
    _CODE_ACCESS __inline int __signbitl(long double e)
    { return __LDOUBLE_SIGN_BIT_ZERO(e) == 0; }
    
    /* FreeBSD lib/libc/gen/isinf.c says "These routines belong in libm,
       but they must remain in libc for binary compat until we can bump
       libm's major version number" */
    
    _CODE_ACCESS __inline int __isinff(float f)
    { return __FLOAT_BIASED_EXP_IS_MAX(f) && __FLOAT_FRAC_PART_IS_ZERO(f); }
    _CODE_ACCESS __inline int __isinf (double d)
    { return __DOUBLE_BIASED_EXP_IS_MAX(d) && __DOUBLE_FRAC_PART_IS_ZERO(d); }
    _CODE_ACCESS __inline int __isinfl(long double e)
    { return __LDOUBLE_BIASED_EXP_IS_MAX(e) && __LDOUBLE_FRAC_PART_IS_ZERO(e); }
    
    /* Symbolic constants to classify floating point numbers. */
    #define	__FP_INFINITE	1
    #define	__FP_NAN	2
    #define	__FP_NORMAL	(-1)
    #define	__FP_SUBNORMAL	(-2)
    #define	__FP_ZERO	0
    
    _CODE_ACCESS __inline int __fpclassifyf(float f)
    {
        if (__FLOAT_BIASED_EXP_IS_MAX(f))
        {
            if (__FLOAT_FRAC_PART_IS_ZERO(f))
                return __FP_INFINITE;
            else return __FP_NAN;
        }
        if (__FLOAT_BIASED_EXP_IS_ZERO(f))
        {
            if (__FLOAT_FRAC_PART_IS_ZERO(f))
                return __FP_ZERO;
            else return __FP_SUBNORMAL;
        }            
        return __FP_NORMAL;
    }
    
    _CODE_ACCESS __inline int __fpclassify (double d)
    {
        if (__DOUBLE_BIASED_EXP_IS_MAX(d))
        {
            if (__DOUBLE_FRAC_PART_IS_ZERO(d))
                return __FP_INFINITE;
            else return __FP_NAN;
        }
        if (__DOUBLE_BIASED_EXP_IS_ZERO(d))
        {
            if (__DOUBLE_FRAC_PART_IS_ZERO(d))
                return __FP_ZERO;
            else return __FP_SUBNORMAL;
        }            
        return __FP_NORMAL;
    }
    
    _CODE_ACCESS __inline int __fpclassifyl(long double e)
    {
        if (__LDOUBLE_BIASED_EXP_IS_MAX(e))
        {
            if (__LDOUBLE_FRAC_PART_IS_ZERO(e))
                return __FP_INFINITE;
            else return __FP_NAN;
        }
        if (__LDOUBLE_BIASED_EXP_IS_ZERO(e))
        {
            if (__LDOUBLE_FRAC_PART_IS_ZERO(e))
                return __FP_ZERO;
            else return __FP_SUBNORMAL;
        }            
        return __FP_NORMAL;
    }
    
    __END_DECLS
    
    /*
     * Relevant target macros indicating hardware float support
     *
     * all
     * 	__TI_STRICT_FP_MODE__
     * ARM
     *      __TI_VFPV3_SUPPORT__
     *      __TI_VFPV3D16_SUPPORT__
     *      __TI_FPv4SPD16_SUPPORT__
     *      __TI_VFP_SUPPORT__
     * C2000
     *      __TMS320C28XX_FPU32__
     *      __TMS320C28XX_FPU64__
     *      __TMS320C28XX_TMU__	adds div, sqrt, sin, cos, atan, atan2
     * C6000
     *      _TMS320C6700		indicates C67x or later
     */
    
    #define __TI_HAS_F32_HARDWARE \
        ((defined(__TI_ARM__) && \
          defined(__TI_VFP_SUPPORT__))  || \
         defined(__TMS320C28XX_FPU32__) || \
         defined(__TMS320C28XX_FPU64__) || \
         defined(_TMS320C6700))
    
    #define __TI_HAS_F64_HARDWARE \
        ((defined(__TI_ARM__) && \
          defined(__TI_VFP_SUPPORT__) && \
          !defined(__TI_FPv4SPD16_SUPPORT__)) || \
         defined(__TMS320C28XX_FPU64__)       || \
         defined(_TMS320C6700))
    
    #define __TI_HAS_BUILTIN_SQRT32 \
        (defined(__TI_ARM__) && \
         defined(__TI_VFP_SUPPORT__))
    
    #define __ti_builtin_sqrt32(x) __sqrtf(x)
    
    #define __TI_HAS_BUILTIN_SQRT64 \
        (defined(__TI_ARM__) && \
         defined(__TI_VFP_SUPPORT__) && \
         !defined(__TI_FPv4SPD16_SUPPORT__))
    
    #define __ti_builtin_sqrt64(x) __sqrt(x)
    
    #pragma diag_pop
    
    #endif /* _DEFS_H_ */
    
    Hi George,

    Here is the _defs.h file

    Best regards

    Tony

  • Do you have a definition of __inline somewhere in your program? Perhaps "#define__inline inline" or "-D__inline=inline"?
  • Your copy of _defs.h is fine. So that is not the problem.

    The suggestion by Archaeologist is a good one.  Another way to see the problem ... Build with --gen_acp_raw and inspect the resulting .rl file.  Search for instances of inline.  You should be able to find out whether __inline gets changed to inline, and where that occurs.

    Thanks and regards,

    -George