summaryrefslogtreecommitdiff
path: root/components/libc/compilers/common
diff options
context:
space:
mode:
authorWangHuachen <[email protected]>2020-11-08 19:30:50 +0800
committerGitHub <[email protected]>2020-11-08 19:30:50 +0800
commit9756c77f0447f9ce4f00a37600298a1f1fd90cda (patch)
tree093247a1719c087dba33783be3a4ee44c1026b2d /components/libc/compilers/common
parent9545529b33cbaae137f1e389dd0e3a5233d516da (diff)
parent4b2b9a87c6f0a87b125e5c5a18bcfcf663de9fbb (diff)
Merge pull request #1 from RT-Thread/master
同步原有仓库
Diffstat (limited to 'components/libc/compilers/common')
-rw-r--r--components/libc/compilers/common/SConscript11
-rw-r--r--components/libc/compilers/common/readme.md10
-rw-r--r--components/libc/compilers/common/sys/time.h26
-rw-r--r--components/libc/compilers/common/termios.h17
-rw-r--r--components/libc/compilers/common/time.c1
-rw-r--r--components/libc/compilers/common/unistd.c26
6 files changed, 70 insertions, 21 deletions
diff --git a/components/libc/compilers/common/SConscript b/components/libc/compilers/common/SConscript
index a8d2606820..2407301405 100644
--- a/components/libc/compilers/common/SConscript
+++ b/components/libc/compilers/common/SConscript
@@ -8,12 +8,15 @@ group = []
CPPPATH = [cwd]
if GetDepend('RT_USING_LIBC'):
- src += Glob('*.c')
+ src += Glob('*.c')
else:
- if GetDepend('RT_LIBC_USING_TIME'):
+ if GetDepend('RT_LIBC_USING_TIME') and not GetDepend('RT_USING_MINILIBC'):
src += ['time.c']
-if (rtconfig.PLATFORM == 'armcc' or rtconfig.PLATFORM == 'iar') and rtconfig.ARCH != 'sim' :
- group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH)
+if GetDepend('RT_USING_POSIX') == False:
+ SrcRemove(src, ['unistd.c'])
+
+if not GetDepend('RT_USING_MINILIBC') and (GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME')):
+ group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH)
Return('group')
diff --git a/components/libc/compilers/common/readme.md b/components/libc/compilers/common/readme.md
new file mode 100644
index 0000000000..0cd56272ff
--- /dev/null
+++ b/components/libc/compilers/common/readme.md
@@ -0,0 +1,10 @@
+# Attention :
+
+1. This folder is "common" for armlibc newlibc and dlib. It's not "common" for minilibc.
+
+2. If you want to add new .c files, please do not forget to fix SConscript file too. eg:
+
+```python
+if GetDepend('RT_USING_POSIX') == False:
+ SrcRemove(src, ['unistd.c'])
+``` \ No newline at end of file
diff --git a/components/libc/compilers/common/sys/time.h b/components/libc/compilers/common/sys/time.h
index 1d68eeafa3..22f1c17f5e 100644
--- a/components/libc/compilers/common/sys/time.h
+++ b/components/libc/compilers/common/sys/time.h
@@ -5,6 +5,7 @@
*
* Change Logs:
* Date Author Notes
+ * 2020-09-07 Meco Man combine gcc armcc iccarm
*/
#ifndef _SYS_TIME_H_
#define _SYS_TIME_H_
@@ -15,6 +16,14 @@
extern "C" {
#endif
+/*
+ * Skip define timespec for IAR version over 8.10.1 where __VER__ is 8010001.
+ */
+#if defined ( __ICCARM__ ) && (__VER__ >= 8010001)
+#define _TIMESPEC_DEFINED
+#endif
+
+
#ifndef _TIMEVAL_DEFINED
#define _TIMEVAL_DEFINED
/*
@@ -27,23 +36,6 @@ struct timeval {
};
#endif /* _TIMEVAL_DEFINED */
-/*
- * Skip define timespec for IAR version over 8.10.1 where __VER__ is 8010001.
- */
-#if defined ( __ICCARM__ ) && (__VER__ >= 8010001)
-#define _TIMESPEC_DEFINED
-#endif
-
-#ifndef _TIMESPEC_DEFINED
-#define _TIMESPEC_DEFINED
-/*
- * Structure defined by POSIX.1b to be like a timeval.
- */
-struct timespec {
- time_t tv_sec; /* seconds */
- long tv_nsec; /* and nanoseconds */
-};
-#endif /* _TIMESPEC_DEFINED */
struct timezone {
int tz_minuteswest; /* minutes west of Greenwich */
diff --git a/components/libc/compilers/common/termios.h b/components/libc/compilers/common/termios.h
new file mode 100644
index 0000000000..ee2b4d5718
--- /dev/null
+++ b/components/libc/compilers/common/termios.h
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
+#ifndef _TERMIOS_H__
+#define _TERMIOS_H__
+
+#ifdef RT_USING_POSIX_TERMIOS
+#include <sys/types.h>
+#include <posix_termios.h>
+#endif
+
+#endif
diff --git a/components/libc/compilers/common/time.c b/components/libc/compilers/common/time.c
index 50a800b259..99dab71eb4 100644
--- a/components/libc/compilers/common/time.c
+++ b/components/libc/compilers/common/time.c
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2019-08-21 zhangjun copy from minilibc
+ * 2020-09-07 Meco Man combine gcc armcc iccarm
*/
#include <sys/time.h>
diff --git a/components/libc/compilers/common/unistd.c b/components/libc/compilers/common/unistd.c
new file mode 100644
index 0000000000..df970b2b59
--- /dev/null
+++ b/components/libc/compilers/common/unistd.c
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2020-09-01 Meco Man First Version
+ */
+
+#include <unistd.h>
+
+#ifdef RT_USING_POSIX_TERMIOS
+#include "termios.h"
+
+int isatty(int fd)
+{
+ struct termios ts;
+ return(tcgetattr(fd,&ts) != -1);/*true if no error (is a tty)*/
+}
+#endif
+
+char *ttyname(int fd)
+{
+ return "/dev/tty0"; /*TODO: need to add more specific*/
+}