Browse Source

[libc][posix] move libc.c/.h to posix folder

Meco Man 3 years ago
parent
commit
7b43cf9793

+ 2 - 8
components/libc/compilers/armlibc/SConscript

@@ -1,18 +1,12 @@
 from building import *
 Import('rtconfig')
 
-src   = Glob('*.c') + Glob('*.cpp')
-cwd   = GetCurrentDir()
+src   = Glob('*.c')
 group = []
 
-CPPPATH = [cwd]
 CPPDEFINES = ['RT_USING_ARM_LIBC']
 
-if GetDepend('RT_USING_MODULE') == False:
-    SrcRemove(src, ['libc_syms.c'])
-
 if rtconfig.PLATFORM == 'armcc' or rtconfig.PLATFORM == 'armclang':
-    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], 
-        CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPDEFINES = CPPDEFINES)
 
 Return('group')

+ 0 - 35
components/libc/compilers/armlibc/libc.c

@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/10/15     bernard      the first version
- */
-#include <rtthread.h>
-#include <fcntl.h>
-#include "libc.h"
-#ifdef RT_USING_PTHREADS
-#include <pthread.h>
-#endif
-
-int libc_system_init(void)
-{
-#ifdef RT_USING_POSIX
-    rt_device_t dev_console;
-
-    dev_console = rt_console_get_device();
-    if (dev_console)
-    {
-        libc_stdio_set_console(dev_console->parent.name, O_RDWR);
-    }
-#endif /* RT_USING_POSIX */
-
-#if defined RT_USING_PTHREADS && !defined RT_USING_COMPONENTS_INIT
-    pthread_system_init();
-#endif
-
-    return 0;
-}
-INIT_COMPONENT_EXPORT(libc_system_init);

+ 0 - 52
components/libc/compilers/armlibc/stdio.c

@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/10/15     bernard      implement stdio for armcc.
- */
-#include <rtthread.h>
-
-#ifdef RT_USING_POSIX
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "libc.h"
-
-#include <fcntl.h>
-#include <unistd.h>
-
-#define STDIO_DEVICE_NAME_MAX   32
-
-static int std_fd = -1;
-
-int libc_stdio_set_console(const char* device_name, int mode)
-{
-    int fd;
-    char name[STDIO_DEVICE_NAME_MAX];
-
-    snprintf(name, sizeof(name) - 1, "/dev/%s", device_name);
-    name[STDIO_DEVICE_NAME_MAX - 1] = '\0';
-
-    fd = open(name, mode, 0);
-    if (fd >= 0)
-    {
-        if (std_fd >= 0)
-        {
-            close(std_fd);
-        }
-        std_fd = fd;
-    }
-
-    return std_fd;
-}
-
-int libc_stdio_get_console(void)
-{
-    return std_fd;
-}
-
-#endif /* RT_USING_POSIX */

+ 5 - 4
components/libc/compilers/armlibc/syscalls.c

@@ -14,15 +14,16 @@
  * 2020-02-13     Meco Man     re-implement exit() and abort()
  * 2020-02-14     Meco Man     implement _sys_tmpnam()
  */
-#include <string.h>
-#include <rt_sys.h>
 
+#include <rt_sys.h>
 #include <rtthread.h>
-#include "libc.h"
-
+#include <string.h>
 #include <fcntl.h>
 #include <unistd.h>
 #include <sys/stat.h>
+#ifdef RT_USING_POSIX
+#include "libc.h"
+#endif
 
 #define DBG_TAG    "armlibc.syscalls"
 #define DBG_LVL    DBG_INFO

+ 3 - 3
components/libc/compilers/common/SConscript

@@ -8,14 +8,14 @@ group = []
 CPPPATH = [cwd]
 CPPDEFINES = []
 
+if rtconfig.CROSS_TOOL == 'keil':
+    CPPDEFINES += ['__CLK_TCK=RT_TICK_PER_SECOND']
+
 if GetDepend('RT_USING_LIBC'):
     src += Glob('*.c')
 elif GetDepend('RT_LIBC_USING_TIME'):
     src += ['time.c']
 
-if rtconfig.CROSS_TOOL == 'keil':
-    CPPDEFINES += ['__CLK_TCK=RT_TICK_PER_SECOND']
-
 group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
 
 list = os.listdir(cwd)

+ 1 - 6
components/libc/compilers/dlib/SConscript

@@ -1,25 +1,20 @@
 from building import *
-
 Import('rtconfig')
 
 src   = Glob('*.c')
-cwd   = GetCurrentDir()
 group = []
 
-CPPPATH    = [cwd]
 CPPDEFINES = ['RT_USING_DLIBC']
 
 if rtconfig.PLATFORM == 'iar':
-
     if GetDepend('RT_USING_POSIX'):
         from distutils.version import LooseVersion
         from iar import IARVersion
 
         CPPDEFINES = CPPDEFINES + ['_DLIB_FILE_DESCRIPTOR']
-
         if LooseVersion(IARVersion()) < LooseVersion("8.20.1"):
             CPPDEFINES = CPPDEFINES + ['_DLIB_THREAD_SUPPORT']
 
-    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPDEFINES = CPPDEFINES)
 
 Return('group')

+ 0 - 35
components/libc/compilers/dlib/libc.c

@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/10/15     bernard      the first version
- */
-#include <rtthread.h>
-#include <fcntl.h>
-#include "libc.h"
-#ifdef RT_USING_PTHREADS
-#include <pthread.h>
-#endif
-
-int libc_system_init(void)
-{
-#ifdef RT_USING_POSIX
-    rt_device_t dev_console;
-
-    dev_console = rt_console_get_device();
-    if (dev_console)
-    {
-        libc_stdio_set_console(dev_console->parent.name, O_RDWR);
-    }
-#endif /* RT_USING_POSIX */
-
-#if defined (RT_USING_PTHREADS) && !defined (RT_USING_COMPONENTS_INIT)
-    pthread_system_init();
-#endif
-
-    return 0;
-}
-INIT_COMPONENT_EXPORT(libc_system_init);

+ 0 - 28
components/libc/compilers/dlib/libc.h

@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/10/15     bernard      the first version
- */
-
-#ifndef __RTT_LIBC_H__
-#define __RTT_LIBC_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int libc_system_init(void);
-#ifdef RT_USING_POSIX
-int libc_stdio_get_console(void);
-int libc_stdio_set_console(const char* device_name, int mode);
-#endif /* RT_USING_POSIX */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 49
components/libc/compilers/dlib/stdio.c

@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/10/15     bernard      implement stdio for IAR dlib.
- */
-#include <rtthread.h>
-
-#ifdef RT_USING_POSIX
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include "libc.h"
-
-#define STDIO_DEVICE_NAME_MAX   32
-
-static int std_fd = -1;
-int libc_stdio_set_console(const char* device_name, int mode)
-{
-    int fd;
-    char name[STDIO_DEVICE_NAME_MAX];
-
-    snprintf(name, sizeof(name) - 1, "/dev/%s", device_name);
-    name[STDIO_DEVICE_NAME_MAX - 1] = '\0';
-
-    fd = open(name, mode, 0);
-    if (fd >= 0)
-    {
-        if (std_fd >= 0)
-        {
-            close(std_fd);
-        }
-        std_fd = fd;
-    }
-
-    return std_fd;
-}
-
-int libc_stdio_get_console(void) {
-    return std_fd;
-}
-
-#endif /* RT_USING_POSIX */

+ 2 - 0
components/libc/compilers/dlib/syscall_read.c

@@ -11,7 +11,9 @@
 #include <rtthread.h>
 #include <yfuns.h>
 #include <unistd.h>
+#ifdef RT_USING_POSIX
 #include "libc.h"
+#endif
 
 #define DBG_TAG    "dlib.syscall_read"
 #define DBG_LVL    DBG_INFO

+ 2 - 0
components/libc/compilers/dlib/syscall_write.c

@@ -11,7 +11,9 @@
 #include <rtthread.h>
 #include <yfuns.h>
 #include <unistd.h>
+#ifdef RT_USING_POSIX
 #include "libc.h"
+#endif
 
 #define DBG_TAG    "dlib.syscall_write"
 #define DBG_LVL    DBG_INFO

+ 2 - 9
components/libc/compilers/gcc/newlib/SConscript

@@ -4,21 +4,14 @@ Import('rtconfig')
 src = []
 cwd = GetCurrentDir()
 group = []
-LIBS = ['m']
+LIBS = ['m'] # link libm
 CPPDEFINES = ['RT_USING_NEWLIB']
 CPPPATH = [cwd]
 
 if rtconfig.PLATFORM == 'gcc':
     if GetDepend('RT_USING_LIBC'):
-        # link with libc and libm:
-        # 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
-        # been referenced. So setting this won't result in bigger text size.
-        LIBS += ['c']
-
+        LIBS += ['c'] # link libc
         src += Glob('*.c')
-        if GetDepend('RT_USING_MODULE') == False:
-            SrcRemove(src, ['libc_syms.c'])
     else:
         src += ['syscalls.c']
 

+ 0 - 39
components/libc/compilers/gcc/newlib/libc.c

@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/10/15     bernard      the first version
- */
-#include <rtthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include "libc.h"
-
-#ifdef RT_USING_PTHREADS
-#include <pthread.h>
-#endif
-
-int libc_system_init(void)
-{
-#ifdef RT_USING_POSIX
-    rt_device_t dev_console;
-
-    dev_console = rt_console_get_device();
-    if (dev_console)
-    {
-        libc_stdio_set_console(dev_console->parent.name, O_RDWR);
-    }
-#endif /* RT_USING_POSIX */
-
-#if defined RT_USING_PTHREADS && !defined RT_USING_COMPONENTS_INIT
-    pthread_system_init();
-#endif
-
-    return 0;
-}
-INIT_COMPONENT_EXPORT(libc_system_init);

+ 0 - 29
components/libc/compilers/gcc/newlib/libc.h

@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/10/15     bernard      the first version
- */
-#ifndef __RTT_LIBC_H__
-#define __RTT_LIBC_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int libc_system_init(void);
-
-#ifdef RT_USING_POSIX
-int libc_stdio_get_console(void);
-int libc_stdio_set_console(const char* device_name, int mode);
-#endif /* RT_USING_POSIX */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 2 - 0
components/libc/compilers/gcc/newlib/syscalls.c

@@ -20,7 +20,9 @@
 #include <unistd.h>
 #include <sys/errno.h>
 #include <sys/stat.h>
+#ifdef RT_USING_POSIX
 #include "libc.h"
+#endif
 #ifdef RT_USING_MODULE
 #include <dlmodule.h>
 #endif

+ 3 - 2
components/libc/posix/src/SConscript

@@ -2,9 +2,10 @@
 
 from building import *
 
-cwd     = GetCurrentDir()
 src     = Glob('*.c')
+cwd     = GetCurrentDir()
+CPPPATH = [cwd]
 
-group = DefineGroup('POSIX', src, depend = ['RT_USING_POSIX'])
+group = DefineGroup('POSIX', src, depend = ['RT_USING_POSIX'], CPPPATH = CPPPATH)
 
 Return('group')

+ 60 - 3
components/libc/compilers/gcc/newlib/stdio.c → components/libc/posix/src/libc.c

@@ -7,16 +7,45 @@
  * Date           Author       Notes
  * 2017/10/15     bernard      the first version
  */
-#include <rtconfig.h>
-#ifdef RT_USING_POSIX
+#include <rtthread.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
 #include <fcntl.h>
+#include <sys/time.h>
 #include "libc.h"
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef RT_USING_PTHREADS
+#include <pthread.h>
+#endif
+
+int libc_system_init(void)
+{
+#ifdef RT_USING_POSIX
+    rt_device_t dev_console;
+
+    dev_console = rt_console_get_device();
+    if (dev_console)
+    {
+        libc_stdio_set_console(dev_console->parent.name, O_RDWR);
+    }
+#endif /* RT_USING_POSIX */
+
+#if defined RT_USING_PTHREADS && !defined RT_USING_COMPONENTS_INIT
+    pthread_system_init();
+#endif
+
+    return 0;
+}
+INIT_COMPONENT_EXPORT(libc_system_init);
+
+#ifdef RT_USING_POSIX
 
+#if defined(RT_USING_LIBC) && defined(RT_USING_NEWLIB)
 #define STDIO_DEVICE_NAME_MAX   32
 static FILE* std_console = NULL;
-
 int libc_stdio_set_console(const char* device_name, int mode)
 {
     FILE *fp;
@@ -88,4 +117,32 @@ int libc_stdio_get_console(void)
         return -1;
 }
 
+#else
+#define STDIO_DEVICE_NAME_MAX   32
+static int std_fd = -1;
+int libc_stdio_set_console(const char* device_name, int mode)
+{
+    int fd;
+    char name[STDIO_DEVICE_NAME_MAX];
+
+    snprintf(name, sizeof(name) - 1, "/dev/%s", device_name);
+    name[STDIO_DEVICE_NAME_MAX - 1] = '\0';
+
+    fd = open(name, mode, 0);
+    if (fd >= 0)
+    {
+        if (std_fd >= 0)
+        {
+            close(std_fd);
+        }
+        std_fd = fd;
+    }
+
+    return std_fd;
+}
+
+int libc_stdio_get_console(void) {
+    return std_fd;
+}
+#endif /* defined(RT_USING_LIBC) && (defined(__GNUC__) && !defined(__ARMCC_VERSION)) */
 #endif /* RT_USING_POSIX */

+ 0 - 0
components/libc/compilers/armlibc/libc.h → components/libc/posix/src/libc.h