diff --git a/include/rtthread.h b/include/rtthread.h index 90426902128079762db886a737b6fee27bae1179..86a1664f8399d236a50f822b7f0f3dcd1b6d47a4 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -549,6 +549,10 @@ rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_ubase_t count); rt_int32_t rt_strcmp(const char *cs, const char *ct); rt_size_t rt_strlen(const char *src); char *rt_strdup(const char *s); +#ifdef __CC_ARM +/* leak strdup interface */ +char* strdup(const char* str); +#endif char *rt_strstr(const char *str1, const char *str2); rt_int32_t rt_sscanf(const char *buf, const char *fmt, ...); diff --git a/src/kservice.c b/src/kservice.c index e3ddf3eb6651e259afa22aa1ced0e8380c511a68..fa82ccdd806cbef48e00377662928c4859e4aebc 100644 --- a/src/kservice.c +++ b/src/kservice.c @@ -531,6 +531,9 @@ char *rt_strdup(const char *s) return tmp; } RTM_EXPORT(rt_strdup); +#ifdef __CC_ARM +char *strdup(const char *s) __attribute__((alias("rt_strdup"))); +#endif #endif /**