未验证 提交 07ec7e68 编写于 作者: B Bernard Xiong 提交者: GitHub

Merge pull request #1754 from liangyongxiang/rt-used

add RT_USED to component init and finsh shell
...@@ -102,20 +102,20 @@ struct finsh_syscall* finsh_syscall_lookup(const char* name); ...@@ -102,20 +102,20 @@ struct finsh_syscall* finsh_syscall_lookup(const char* name);
}; };
#else #else
#define FINSH_FUNCTION_EXPORT_CMD(name, cmd, desc) \ #define FINSH_FUNCTION_EXPORT_CMD(name, cmd, desc) \
const char __fsym_##cmd##_name[] SECTION(".rodata.name") = #cmd; \ const char __fsym_##cmd##_name[] SECTION(".rodata.name") = #cmd; \
const char __fsym_##cmd##_desc[] SECTION(".rodata.name") = #desc; \ const char __fsym_##cmd##_desc[] SECTION(".rodata.name") = #desc; \
const struct finsh_syscall __fsym_##cmd SECTION("FSymTab")= \ RT_USED const struct finsh_syscall __fsym_##cmd SECTION("FSymTab")= \
{ \ { \
__fsym_##cmd##_name, \ __fsym_##cmd##_name, \
__fsym_##cmd##_desc, \ __fsym_##cmd##_desc, \
(syscall_func)&name \ (syscall_func)&name \
}; };
#define FINSH_VAR_EXPORT(name, type, desc) \ #define FINSH_VAR_EXPORT(name, type, desc) \
const char __vsym_##name##_name[] SECTION(".rodata.name") = #name; \ const char __vsym_##name##_name[] SECTION(".rodata.name") = #name; \
const char __vsym_##name##_desc[] SECTION(".rodata.name") = #desc; \ const char __vsym_##name##_desc[] SECTION(".rodata.name") = #desc; \
const struct finsh_sysvar __vsym_##name SECTION("VSymTab")= \ RT_USED const struct finsh_sysvar __vsym_##name SECTION("VSymTab")= \
{ \ { \
__vsym_##name##_name, \ __vsym_##name##_name, \
__vsym_##name##_desc, \ __vsym_##name##_desc, \
...@@ -139,10 +139,10 @@ struct finsh_syscall* finsh_syscall_lookup(const char* name); ...@@ -139,10 +139,10 @@ struct finsh_syscall* finsh_syscall_lookup(const char* name);
#define FINSH_VAR_EXPORT(name, type, desc) \ #define FINSH_VAR_EXPORT(name, type, desc) \
const char __vsym_##name##_name[] = #name; \ const char __vsym_##name##_name[] = #name; \
__declspec(allocate("VSymTab")) const struct finsh_sysvar __vsym_##name = \ __declspec(allocate("VSymTab")) const struct finsh_sysvar __vsym_##name = \
{ \ { \
__vsym_##name##_name, \ __vsym_##name##_name, \
type, \ type, \
(void*)&name \ (void*)&name \
}; };
#elif defined(__TI_COMPILER_VERSION__) #elif defined(__TI_COMPILER_VERSION__)
...@@ -159,28 +159,28 @@ struct finsh_syscall* finsh_syscall_lookup(const char* name); ...@@ -159,28 +159,28 @@ struct finsh_syscall* finsh_syscall_lookup(const char* name);
__TI_FINSH_EXPORT_VAR(__vsym_##name); \ __TI_FINSH_EXPORT_VAR(__vsym_##name); \
const char __vsym_##name##_name[] = #name; \ const char __vsym_##name##_name[] = #name; \
const struct finsh_sysvar __vsym_##name = \ const struct finsh_sysvar __vsym_##name = \
{ \ { \
__vsym_##name##_name, \ __vsym_##name##_name, \
type, \ type, \
(void*)&name \ (void*)&name \
}; };
#else #else
#define FINSH_FUNCTION_EXPORT_CMD(name, cmd, desc) \ #define FINSH_FUNCTION_EXPORT_CMD(name, cmd, desc) \
const char __fsym_##cmd##_name[] = #cmd; \ const char __fsym_##cmd##_name[] = #cmd; \
const struct finsh_syscall __fsym_##cmd SECTION("FSymTab")= \ RT_USED const struct finsh_syscall __fsym_##cmd SECTION("FSymTab")= \
{ \ { \
__fsym_##cmd##_name, \ __fsym_##cmd##_name, \
(syscall_func)&name \ (syscall_func)&name \
}; };
#define FINSH_VAR_EXPORT(name, type, desc) \ #define FINSH_VAR_EXPORT(name, type, desc) \
const char __vsym_##name##_name[] = #name; \ const char __vsym_##name##_name[] = #name; \
const struct finsh_sysvar __vsym_##name SECTION("VSymTab")= \ RT_USED const struct finsh_sysvar __vsym_##name SECTION("VSymTab")= \
{ \ { \
__vsym_##name##_name, \ __vsym_##name##_name, \
type, \ type, \
(void*)&name \ (void*)&name \
}; };
#endif #endif
......
...@@ -189,13 +189,13 @@ typedef int (*init_fn_t)(void); ...@@ -189,13 +189,13 @@ typedef int (*init_fn_t)(void);
const char* fn_name; const char* fn_name;
const init_fn_t fn; const init_fn_t fn;
}; };
#define INIT_EXPORT(fn, level) \ #define INIT_EXPORT(fn, level) \
const char __rti_##fn##_name[] = #fn; \ const char __rti_##fn##_name[] = #fn; \
const struct rt_init_desc __rt_init_desc_##fn SECTION(".rti_fn."level) = \ RT_USED const struct rt_init_desc __rt_init_desc_##fn SECTION(".rti_fn."level) = \
{ __rti_##fn##_name, fn}; { __rti_##fn##_name, fn};
#else #else
#define INIT_EXPORT(fn, level) \ #define INIT_EXPORT(fn, level) \
const init_fn_t __rt_init_##fn SECTION(".rti_fn."level) = fn RT_USED const init_fn_t __rt_init_##fn SECTION(".rti_fn."level) = fn
#endif #endif
#endif #endif
#else #else
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册