We are getting these constraint errors wherver OSAF calls like m_NCS_SEL_OBJ_ZERO(&nSelObjSet) is called in our code. This is while cross compiling using tilera compiler - tile-g++. With g++ it always compiles fine. Any pointers would be helpful.


Sample Code:
102 // initialise and set selection object set
103 m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
104 m_NCS_SEL_OBJ_SET(nMdsSelObj, &nSelObjSet);
---------------------
Error:
/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx:
"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
unknown asm constraint letter 'c'
m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
unknown asm constraint letter 'D'
m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
unknown asm constraint letter 'a'
m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 110: error:
unknown asm constraint letter 'q'
if (m_NCS_SEL_OBJ_ISSET(nMdsSelObj, &nSelObjSet))
^

4 errors detected in the compilation of "/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx".
/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/EnbCfgMgr.cxx:


Arun L.

Edited 6 Years Ago by arun_l: n/a

Does that compiler have a limit on the length of a symbol? I recall very very old C compilers had a limit of 6 characters for symbol names (this was in the days before c++).

Does that compiler have a limit on the length of a symbol? I recall very very old C compilers had a limit of 6 characters for symbol names (this was in the days before c++).

No, It can accept upto 32 letters.

m_NCS_SEL_OBJ_ZERO is a macro and it will be replaced by FD_ZERO

We are getting these constraint errors wherver OSAF calls like m_NCS_SEL_OBJ_ZERO(&nSelObjSet) is called in our code. This is while cross compiling using tilera compiler - tile-g++. With g++ it always compiles fine. Any pointers would be helpful.


Sample Code:
102 // initialise and set selection object set
103 m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
104 m_NCS_SEL_OBJ_SET(nMdsSelObj, &nSelObjSet);
---------------------
Error:
/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx:
"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
unknown asm constraint letter 'c'
m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
unknown asm constraint letter 'D'
m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 103: error:
unknown asm constraint letter 'a'
m_NCS_SEL_OBJ_ZERO(&nSelObjSet);
^

"/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx", line 110: error:
unknown asm constraint letter 'q'
if (m_NCS_SEL_OBJ_ISSET(nMdsSelObj, &nSelObjSet))
^

4 errors detected in the compilation of "/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/ConfigManagerThread.cxx".
/u/TILERA/STACK/DEV/lte/lte_enb/enb_cfgmgr/src/EnbCfgMgr.cxx:


Arun L.

cross compiler was picking up host headers for FD_ZERO so, now it is corrected to pick up target header file and compilation is going through..

This question has already been answered. Start a new discussion instead.