Merge pull request #1754 from liangyongxiang/rt-used

add RT_USED to component init and finsh shell
This commit is contained in:
Bernard Xiong 2018-08-31 18:41:44 +08:00 committed by GitHub
commit 07ec7e686d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 34 deletions

View File

@ -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);
#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);
__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

View File

@ -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