[libc][time] 细微调整time.c

This commit is contained in:
Meco Man 2021-04-28 13:03:43 +08:00
parent f90c522308
commit 850e1aeb52
2 changed files with 9 additions and 10 deletions

View File

@ -16,7 +16,7 @@
* 2012-12-08 Bernard <clock_time.c> fix the issue of _timevalue.tv_usec initialization, * 2012-12-08 Bernard <clock_time.c> fix the issue of _timevalue.tv_usec initialization,
* which found by Rob <rdent@iinet.net.au> * which found by Rob <rdent@iinet.net.au>
* 2021-02-12 Meco Man move all of the functions located in <clock_time.c> to this file * 2021-02-12 Meco Man move all of the functions located in <clock_time.c> to this file
* 2021-03-15 Meco Man fixed bug: https://club.rt-thread.org/ask/question/423650.html * 2021-03-15 Meco Man fixed a bug of leaking memory in asctime()
*/ */
#include <sys/time.h> #include <sys/time.h>
@ -104,7 +104,7 @@ static int get_timeval(struct timeval *tv)
} }
else else
{ {
/* LOG_W will cause a recursive printing if ulog timestamp function is turned on */ /* LOG_W will cause a recursive printing if ulog timestamp function is enabled */
rt_kprintf("Cannot find a RTC device to provide time!\r\n"); rt_kprintf("Cannot find a RTC device to provide time!\r\n");
return -1; return -1;
} }
@ -112,7 +112,7 @@ static int get_timeval(struct timeval *tv)
return (rst < 0) ? -1 : 1; return (rst < 0) ? -1 : 1;
#else #else
/* LOG_W will cause a recursive printing if ulog timestamp function is turned on */ /* LOG_W will cause a recursive printing if ulog timestamp function is enabled */
rt_kprintf("Cannot find a RTC device to provide time!\r\n"); rt_kprintf("Cannot find a RTC device to provide time!\r\n");
return -1; return -1;
#endif /* RT_USING_RTC */ #endif /* RT_USING_RTC */
@ -273,13 +273,13 @@ RTM_EXPORT(asctime);
char *ctime_r (const time_t * tim_p, char * result) char *ctime_r (const time_t * tim_p, char * result)
{ {
struct tm tm; struct tm tm;
return asctime_r (localtime_r (tim_p, &tm), result); return asctime_r(localtime_r(tim_p, &tm), result);
} }
RTM_EXPORT(ctime_r); RTM_EXPORT(ctime_r);
char* ctime(const time_t *tim_p) char* ctime(const time_t *tim_p)
{ {
return asctime (localtime (tim_p)); return asctime(localtime(tim_p));
} }
RTM_EXPORT(ctime); RTM_EXPORT(ctime);

View File

@ -4,17 +4,18 @@ Import('rtconfig')
src = [] src = []
cwd = GetCurrentDir() cwd = GetCurrentDir()
group = [] group = []
LIBS = []
CPPDEFINES = []
CPPPATH = [cwd] CPPPATH = [cwd]
if rtconfig.PLATFORM == 'gcc': if rtconfig.PLATFORM == 'gcc':
if GetDepend('RT_USING_LIBC'): if GetDepend('RT_USING_LIBC'):
CPPDEFINES = ['RT_USING_NEWLIB'] CPPDEFINES += ['RT_USING_NEWLIB']
# link with libc and libm: # link with libc and libm:
# libm is a frequently used lib. Newlib is compiled with -ffunction-sections in # libm is a frequently used lib. Newlib is compiled with -ffunction-sections in
# recent GCC tool chains. The linker would just link in the functions that have # recent GCC tool chains. The linker would just link in the functions that have
# been referenced. So setting this won't result in bigger text size. # been referenced. So setting this won't result in bigger text size.
LIBS = ['c', 'm'] LIBS += ['c', 'm']
src += Glob('*.c') src += Glob('*.c')
SrcRemove(src, ['minilib.c']) SrcRemove(src, ['minilib.c'])
@ -22,8 +23,6 @@ if rtconfig.PLATFORM == 'gcc':
SrcRemove(src, ['libc_syms.c']) SrcRemove(src, ['libc_syms.c'])
else: else:
src += ['minilib.c'] src += ['minilib.c']
CPPDEFINES = []
LIBS = []
group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS) group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)