hello,
S32DS PPC Compiler and Linker manual available? from release notes I see its based on GCC v4.9.2.
Could anyone please share these document or help to get it?
My intention to have this document is optimise my code for portability. for that I want to add compiler abstraction to my code. Also want to customise my application executable - want linker manual / documentation.
Thanks
Udit
Hi Udit,
Indeed S32DS for Power is based on GCC tool chain (v4.9.x). The offline documentation is available here:
"<S32DS_Power...>\Cross_Tools\powerpc-eabivle-4_9\powerpc-eabivle\share\docs\pdf"
"<S32DS_Power...>\Cross_Tools\powerpc-eabivle-4_9\powerpc-eabivle\share\docs\pdf\gcc\"
Some useful information can be found in the gcc release notes:
"<S32DS_Power...>\Cross_Tools\powerpc-eabivle-4_9\releasenotes.pdf"
For improving code portability across different compilers you can inspire from AMMCLIB header files that contains built-in macros to distinguish between different compilers (e.g. see below the snippet from:
"<S32DS_Power...>\S32DS\AMMCLIB\MPC574xP_AMMCLIB_v1.1.9\include\SWLIBS_Defines.h" )
#if defined(__ghs__)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE inline
#endif
#elif defined(__MWERKS__) || defined(__CWCC__)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static __inline
#endif
#elif defined(__DCC__)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static __inline__
#endif
#elif defined(__CSMC__)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static @inline
#endif
#elif defined(__IAR_SYSTEMS_ICC__)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static inline
#endif
#elif defined(__GNUC__) && defined(__PPC_EABI__)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static inline
#endif
#elif defined(__GNUC__)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static __inline__
#endif
#elif defined(_MATLAB_BAM_CREATE)
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static __inline
#endif
#else
#ifndef INLINE
/*
* @violates @ref SWLIBS_Defines_h_REF_1 MISRA 2004 Required Rule 19.4, Disallowed definition for
* macro.
*/
#define INLINE static inline
#endif
#endif
Hope it helps.
Stan