浏览代码

remove minilibc

Meco Man 4 年之前
父节点
当前提交
b2d3317c6a

+ 0 - 8
bsp/efm32/copy_this_file_shell.c

@@ -32,14 +32,6 @@ ALIGN(RT_ALIGN_SIZE)
 static char finsh_thread_stack[FINSH_THREAD_STACK_SIZE];
 static char finsh_thread_stack[FINSH_THREAD_STACK_SIZE];
 struct finsh_shell* shell;
 struct finsh_shell* shell;
 
 
-#if !defined (RT_USING_NEWLIB) && !defined (RT_USING_MINILIBC)
-int strcmp (const char *s1, const char *s2)
-{
-	while (*s1 && *s1 == *s2) s1++, s2++;
-
-	return (*s1 - *s2);
-}
-
 #ifdef RT_USING_HEAP
 #ifdef RT_USING_HEAP
 char *strdup(const char *s)
 char *strdup(const char *s)
 {
 {

+ 0 - 4
bsp/lpc2148/rtconfig.h

@@ -80,10 +80,6 @@
 /* Using QEMU or SkyEye*/
 /* Using QEMU or SkyEye*/
 /* #define RT_USING_EMULATOR */
 /* #define RT_USING_EMULATOR */
 
 
-/* SECTION: a mini libc */
-/* Using mini libc library*/
-/* #define RT_USING_MINILIBC */
-
 /* SECTION: C++ support */
 /* SECTION: C++ support */
 /* Using C++ support*/
 /* Using C++ support*/
 /* #define RT_USING_CPLUSPLUS */
 /* #define RT_USING_CPLUSPLUS */

+ 0 - 1
bsp/microblaze/rtconfig.h

@@ -93,7 +93,6 @@
 /* SECTION: a runtime libc library */
 /* SECTION: a runtime libc library */
 /* a runtime libc library*/
 /* a runtime libc library*/
 /* #define RT_USING_NEWLIB */
 /* #define RT_USING_NEWLIB */
-#define RT_USING_MINILIBC
 
 
 /* SECTION: C++ support */
 /* SECTION: C++ support */
 /* Using C++ support*/
 /* Using C++ support*/

+ 0 - 4
bsp/sam7x/rtconfig.h

@@ -72,10 +72,6 @@
 #define FINSH_USING_SYMTAB
 #define FINSH_USING_SYMTAB
 #define FINSH_USING_DESCRIPTION
 #define FINSH_USING_DESCRIPTION
 
 
-/* SECTION: a mini libc */
-/* Using mini libc library*/
-/* #define RT_USING_MINILIBC */
-
 /* SECTION: C++ support */
 /* SECTION: C++ support */
 /* Using C++ support*/
 /* Using C++ support*/
 /* #define RT_USING_CPLUSPLUS */
 /* #define RT_USING_CPLUSPLUS */

+ 0 - 4
bsp/wh44b0/rtconfig.h

@@ -65,10 +65,6 @@
 /* Using FinSH as Shell*/
 /* Using FinSH as Shell*/
 /* #define RT_USING_FINSH */
 /* #define RT_USING_FINSH */
 
 
-/* SECTION: a mini libc */
-/* Using mini libc library*/
-/* #define RT_USING_MINILIBC */
-
 /* SECTION: C++ support */
 /* SECTION: C++ support */
 /* Using C++ support*/
 /* Using C++ support*/
 /* #define RT_USING_CPLUSPLUS */
 /* #define RT_USING_CPLUSPLUS */

+ 0 - 16
components/dfs/filesystems/nfs/rpc/types.h

@@ -47,15 +47,7 @@
 
 
 #include <string.h>
 #include <string.h>
 #include <stdint.h>
 #include <stdint.h>
-
-#ifndef RT_USING_MINILIBC
-typedef unsigned int u_int;
-typedef unsigned char u_char;
-typedef unsigned long u_long;
-#else
 #include <sys/types.h>
 #include <sys/types.h>
-#include <stdint.h>
-#endif
 
 
 typedef long long   int64_t;
 typedef long long   int64_t;
 typedef unsigned long long uint64_t;
 typedef unsigned long long uint64_t;
@@ -63,14 +55,6 @@ typedef unsigned long long uint64_t;
 typedef int bool_t;
 typedef int bool_t;
 typedef int enum_t;
 typedef int enum_t;
 
 
-#ifndef RT_USING_NEWLIB
-typedef unsigned long dev_t;
-#endif
-
-#if !defined(RT_USING_NEWLIB) && !defined(RT_USING_MINILIBC)
-typedef rt_int32_t  ssize_t;
-#endif
-
 /* This needs to be changed to uint32_t in the future */
 /* This needs to be changed to uint32_t in the future */
 typedef unsigned long rpcprog_t;
 typedef unsigned long rpcprog_t;
 typedef unsigned long rpcvers_t;
 typedef unsigned long rpcvers_t;

+ 6 - 0
components/libc/compilers/armlibc/sys/types.h

@@ -23,4 +23,10 @@ typedef long signed int  ssize_t;       /* Used for a count of bytes or an error
 #endif
 #endif
 typedef unsigned long    useconds_t;    /* microseconds (unsigned) */
 typedef unsigned long    useconds_t;    /* microseconds (unsigned) */
 
 
+typedef unsigned long    dev_t;
+
+typedef unsigned int     u_int;
+typedef unsigned char    u_char;
+typedef unsigned long    u_long;
+
 #endif
 #endif

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

@@ -10,7 +10,7 @@ CPPPATH = [cwd]
 if GetDepend('RT_USING_LIBC'):
 if GetDepend('RT_USING_LIBC'):
     src += Glob('*.c')
     src += Glob('*.c')
 else:
 else:
-    if GetDepend('RT_LIBC_USING_TIME') and not GetDepend('RT_USING_MINILIBC'):
+    if GetDepend('RT_LIBC_USING_TIME'):
         src += ['time.c']
         src += ['time.c']
 
 
 if GetDepend('RT_USING_POSIX') == False:
 if GetDepend('RT_USING_POSIX') == False:
@@ -21,7 +21,7 @@ if rtconfig.CROSS_TOOL == 'keil':
 else:
 else:
     CPPDEFINES = []
     CPPDEFINES = []
 
 
-if not GetDepend('RT_USING_MINILIBC') and (GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME')):
+if GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME'):
     group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
     group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
 
 
 Return('group')
 Return('group')

+ 6 - 0
components/libc/compilers/dlib/sys/types.h

@@ -22,4 +22,10 @@ typedef long signed int  ssize_t;       /* Used for a count of bytes or an error
 #endif
 #endif
 typedef unsigned long    useconds_t;    /* microseconds (unsigned) */
 typedef unsigned long    useconds_t;    /* microseconds (unsigned) */
 
 
+typedef unsigned long    dev_t;
+
+typedef unsigned int     u_int;
+typedef unsigned char    u_char;
+typedef unsigned long    u_long;
+
 #endif
 #endif

+ 19 - 10
components/libc/compilers/newlib/SConscript

@@ -1,21 +1,30 @@
 from building import *
 from building import *
 Import('rtconfig')
 Import('rtconfig')
 
 
-src = Glob('*.c')
+src = []
 cwd = GetCurrentDir()
 cwd = GetCurrentDir()
 group = []
 group = []
 
 
 CPPPATH = [cwd]
 CPPPATH = [cwd]
-CPPDEFINES = ['RT_USING_NEWLIB']
-
-# 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', 'm']
 
 
 if rtconfig.PLATFORM == 'gcc':
 if rtconfig.PLATFORM == 'gcc':
-    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], 
-        CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
+    if GetDepend('RT_USING_LIBC'):
+        CPPDEFINES = ['RT_USING_NEWLIB']
+        # 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', 'm']
+
+        src += Glob('*.c')
+        SrcRemove(src, ['minilib.c'])
+        if GetDepend('RT_USING_MODULE') == False:
+            SrcRemove(src, ['libc_syms.c'])
+    else:
+        src += ['minilib.c']
+        CPPDEFINES = []
+        LIBS = []
+
+    group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
 
 
 Return('group')
 Return('group')

+ 18 - 0
components/libc/compilers/newlib/minilib.c

@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-02-23     Meco Man     first version
+ */
+
+#include <reent.h>
+#include <rtthread.h>
+
+void * _sbrk_r(struct _reent *ptr, ptrdiff_t incr)
+{
+    /* no use this routine to get memory */
+    return RT_NULL;
+}

+ 1 - 1
components/net/lwip-1.4.1/src/arch/include/arch/cc.h

@@ -66,7 +66,7 @@ typedef uintptr_t mem_ptr_t;
 #endif /* __CC_ARM/__IAR_SYSTEMS_ICC__ */
 #endif /* __CC_ARM/__IAR_SYSTEMS_ICC__ */
 #endif
 #endif
 
 
-#if defined(RT_USING_LIBC) || defined(RT_USING_MINILIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
+#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
 #include <sys/time.h>
 #include <sys/time.h>
 #define LWIP_TIMEVAL_PRIVATE	   0
 #define LWIP_TIMEVAL_PRIVATE	   0
 #else
 #else

+ 1 - 1
components/net/lwip-2.0.2/src/arch/include/arch/cc.h

@@ -45,7 +45,7 @@
 #define S32_F "ld"
 #define S32_F "ld"
 #define X32_F "lx"
 #define X32_F "lx"
 
 
-#if defined(RT_USING_LIBC) || defined(RT_USING_MINILIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
+#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
 #include <sys/time.h>
 #include <sys/time.h>
 #define LWIP_TIMEVAL_PRIVATE	   0
 #define LWIP_TIMEVAL_PRIVATE	   0
 #else
 #else

+ 1 - 1
components/net/lwip-2.1.2/src/arch/include/arch/cc.h

@@ -59,7 +59,7 @@
 #endif /* __CC_ARM/__IAR_SYSTEMS_ICC__ */
 #endif /* __CC_ARM/__IAR_SYSTEMS_ICC__ */
 #endif /* RT_USING_LIBC */
 #endif /* RT_USING_LIBC */
 
 
-#if defined(RT_USING_LIBC) || defined(RT_USING_MINILIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
+#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
 #include <sys/time.h>
 #include <sys/time.h>
 #define LWIP_TIMEVAL_PRIVATE	   0
 #define LWIP_TIMEVAL_PRIVATE	   0
 #else
 #else

+ 0 - 22
src/kservice.c

@@ -1386,26 +1386,4 @@ void rt_assert_handler(const char *ex_string, const char *func, rt_size_t line)
 RTM_EXPORT(rt_assert_handler);
 RTM_EXPORT(rt_assert_handler);
 #endif /* RT_DEBUG */
 #endif /* RT_DEBUG */
 
 
-#if !defined (RT_USING_NEWLIB) && defined (RT_USING_MINILIBC) && defined (__GNUC__)
-#include <sys/types.h>
-void *memcpy(void *dest, const void *src, size_t n) __attribute__((weak, alias("rt_memcpy")));
-void *memset(void *s, int c, size_t n) __attribute__((weak, alias("rt_memset")));
-void *memmove(void *dest, const void *src, size_t n) __attribute__((weak, alias("rt_memmove")));
-int   memcmp(const void *s1, const void *s2, size_t n) __attribute__((weak, alias("rt_memcmp")));
-
-size_t strlen(const char *s) __attribute__((weak, alias("rt_strlen")));
-char *strstr(const char *s1, const char *s2) __attribute__((weak, alias("rt_strstr")));
-int strcasecmp(const char *a, const char *b) __attribute__((weak, alias("rt_strcasecmp")));
-char *strncpy(char *dest, const char *src, size_t n) __attribute__((weak, alias("rt_strncpy")));
-int strncmp(const char *cs, const char *ct, size_t count) __attribute__((weak, alias("rt_strncmp")));
-#ifdef RT_USING_HEAP
-char *strdup(const char *s) __attribute__((weak, alias("rt_strdup")));
-#endif
-
-int sprintf(char *buf, const char *format, ...) __attribute__((weak, alias("rt_sprintf")));
-int snprintf(char *buf, rt_size_t size, const char *fmt, ...) __attribute__((weak, alias("rt_snprintf")));
-int vsprintf(char *buf, const char *format, va_list arg_ptr) __attribute__((weak, alias("rt_vsprintf")));
-
-#endif
-
 /**@}*/
 /**@}*/