PelionIoT / mbed-client-cli

Command Line Interface library for device
Apache License 2.0
16 stars 13 forks source link

Compilation error with armcc 5.06 #16

Closed pan- closed 8 years ago

pan- commented 8 years ago

I have compilation error with armcc 5.06.

"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 114: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_exe_t, link) cmd_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 114: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_exe_t, link) cmd_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 114: Warning:  #77-D: this declaration has no storage class or type specifier
  typedef
S_LIST_HEAD(cmd_exe_t, link) cmd_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 114: Error:  #168: a function type is not allowed here
  typedef
S_LIST_HEAD(cmd_exe_t, link) cmd_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 115: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_history_t, link) history_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 115: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_history_t, link) history_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 115: Warning:  #77-D: this declaration has no storage class or type specifier
  typedef
S_LIST_HEAD(cmd_history_t, link) history_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 115: Error:  #168: a function type is not allowed here
  typedef
S_LIST_HEAD(cmd_history_t, link) history_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 116: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_command_t, link) command_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 116: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_command_t, link) command_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 116: Warning:  #77-D: this declaration has no storage class or type specifier
  typedef
S_LIST_HEAD(cmd_command_t, link) command_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 116: Error:  #168: a function type is not allowed here
  typedef
S_LIST_HEAD(cmd_command_t, link) command_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 117: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_alias_t, link) alias_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 117: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_alias_t, link) alias_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 117: Warning:  #77-D: this declaration has no storage class or type specifier
  typedef
S_LIST_HEAD(cmd_alias_t, link) alias_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 117: Error:  #168: a function type is not allowed here
  typedef
S_LIST_HEAD(cmd_alias_t, link) alias_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 118: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_variable_t, link) variable_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 118: Error:  #79: expected a type specifier
  typedef
S_LIST_HEAD(cmd_variable_t, link) variable_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 118: Warning:  #77-D: this declaration has no storage class or type specifier
  typedef
S_LIST_HEAD(cmd_variable_t, link) variable_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 118: Error:  #168: a function type is not allowed here
  typedef
S_LIST_HEAD(cmd_variable_t, link) variable_list_t;
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 291: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach_safe(cmd_command_t, cur_ptr, &cmd.command_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 294: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach_safe(cmd_alias_t, cur_ptr, &cmd.alias_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 297: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach_safe(cmd_variable_t, cur_ptr, &cmd.variable_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 300: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach_safe(cmd_history_t, cur_ptr, &cmd.history_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 302: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_remove(&cmd.history_list, cur_ptr);
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 382: Warning:  #223-D: function "_Static_assert" declared implicitly
                 *next_cmd =
s_list_get_next(&cmd.cmd_buffer, cmd_ptr);
                             ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 389: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_remove(&cmd.cmd_buffer, cmd_ptr);
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 458: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_add_to_end(&cmd.cmd_buffer, cmd_ptr);
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 504: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_command_t, cur_ptr, &cmd.command_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 549: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_command_t, cur_ptr, &cmd.command_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 572: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_add_to_end(&cmd.command_list, cmd_ptr);
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 583: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_remove(&cmd.command_list, cmd_ptr);
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1125: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_alias_t, cur_ptr, &cmd.alias_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1150: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_variable_t, cur_ptr, &cmd.variable_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1157: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_remove(&cmd.history_list, entry_ptr);
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1166: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_history_t, cur_ptr, &cmd.history_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1206: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_add_to_start(&cmd.history_list, entry_ptr);
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1268: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_alias_t, cur_ptr, &cmd.alias_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1286: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_alias_t, cur_ptr, &cmd.alias_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1305: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_variable_t, cur_ptr, &cmd.variable_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1321: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_variable_t, cur_ptr, &cmd.variable_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1334: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_alias_t, cur_ptr, &cmd.alias_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1343: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_variable_t, cur_ptr, &cmd.variable_list) {
      ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1367: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_add_to_end(&cmd.alias_list, alias_ptr);
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1374: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_remove(&cmd.alias_list, alias_ptr);
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1405: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_add_to_end(&cmd.variable_list, variable_ptr);
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1412: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_remove(&cmd.variable_list, variable_ptr);
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1542: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach(cmd_command_t, cur_ptr, &cmd.command_list) {
          ^
"C:/Work/me/mbed-client-cli/source/ns_cmdline.c", line 1565: Warning:  #223-D: function "_Static_assert" declared implicitly

s_list_foreach_reverse(cmd_history_t, cur_ptr, &cmd.history_list) {

It seems that the compiler tries to use the wrong NS_STATIC_ASSERT macro.

#ifdef __cplusplus
# if __cplusplus >= 201103L || __cpp_static_assert >= 200410
# define NS_STATIC_ASSERT(test, str) static_assert(test, str);
# elif defined __GXX_EXPERIMENTAL_CXX0X__  && NS_GCC_VERSION >= 40300
# define NS_STATIC_ASSERT(test, str) __extension__ static_assert(test, str);
# else
# define NS_STATIC_ASSERT(test, str)
# endif
#else /* C */
# if __STDC_VERSION__ >= 201112L
# define NS_STATIC_ASSERT(test, str) _Static_assert(test, str);
# elif defined __GNUC__ && NS_GCC_VERSION >= 40600
/* MACRO PICKED BY THE COMPILER WITH ARMCC 5.06, _Static_assert extension is not available */
# define NS_STATIC_ASSERT(test, str) __extension__ _Static_assert(test, str);
# else
# define NS_STATIC_ASSERT(test, str)
#endif
#endif
yogpan01 commented 8 years ago

This issue is already fixed and released . Here is the PR which fixed this issue https://github.com/ARMmbed/mbed-client-libservice/pull/9

pan- commented 8 years ago

It is not the same repository mbed-client-libservice != mbed-client-cli . Why files are duplicated across several repositories ? It is not very convenient if fixes or new feature are not available for all repositories using ns_* things.

Do you want me to do a PR for this repository ?

yogpan01 commented 8 years ago

I am not sure how is mbed-client-cli is using those files ? @jupe Do you know if those are duplicated ?

jupe commented 8 years ago

yes, I didn't want to link libservice module because linked list was only what is needed here, and because it was too mesh stack oriented... I clone that library to here. We have to update linked list lib here also. Actually i would like to see some cutils -module, which contains this kind of general usefull functions for ansi c.

jupe commented 8 years ago

this should be finally fixed by https://github.com/ARMmbed/mbed-client-cli/pull/24

jupe commented 8 years ago

This is no more issue I guess. I'll close now.