Răsfoiți Sursa

[libc] remove rtlibc

Bernard Xiong 3 ani în urmă
părinte
comite
8da9f78d72

+ 2 - 1
bsp/qemu-riscv-virt64/driver/plic.c

@@ -7,7 +7,8 @@
  * Date           Author       Notes
  * 2021-05-20     bigmagic     first version
  */
-#include "rtthread.h"
+#include <rtthread.h>
+#include <stdint.h>
 #include "plic.h"
 #include <riscv_io.h>
 #include "encoding.h"

+ 2 - 2
bsp/qemu-riscv-virt64/driver/sbi.c

@@ -72,8 +72,8 @@ sbi_get_impl_version(void)
 void
 sbi_print_version(void)
 {
-    u_int major;
-    u_int minor;
+    int major;
+    int minor;
 
     /* For legacy SBI implementations. */
     if (sbi_spec_version == 0)

+ 1 - 0
bsp/qemu-riscv-virt64/driver/sbi.h

@@ -48,6 +48,7 @@
 #ifndef _MACHINE_SBI_H_
 #define _MACHINE_SBI_H_
 
+#include <stdint.h>
 #include <rtdef.h>
 
 /* SBI Specification Version */

+ 2 - 0
components/dfs/include/dfs.h

@@ -16,6 +16,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include <dirent.h>
+#include <fcntl.h>
+#include <sys/stat.h>
 #include <sys/time.h>
 #include <rtdevice.h>
 

+ 2 - 14
components/dfs/include/dfs_posix.h

@@ -16,22 +16,15 @@
 #define __DFS_POSIX_H__
 
 #include <dfs_file.h>
+#include <sys/stat.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/* directory api*/
-int mkdir(const char *path, mode_t mode);
-DIR *opendir(const char *name);
-struct dirent *readdir(DIR *d);
-long telldir(DIR *d);
-void seekdir(DIR *d, off_t offset);
-void rewinddir(DIR *d);
-int closedir(DIR *d);
 
 /* file api*/
-int open(const char *file, int flags, ...);
+
 int close(int d);
 
 #if defined(RT_USING_NEWLIB) && defined(_EXFUN)
@@ -45,11 +38,7 @@ int write(int fd, const void *buf, size_t len);
 off_t lseek(int fd, off_t offset, int whence);
 int rename(const char *from, const char *to);
 int unlink(const char *pathname);
-int stat(const char *file, struct stat *buf);
-int fstat(int fildes, struct stat *buf);
 int fsync(int fildes);
-int fcntl(int fildes, int cmd, ...);
-int ioctl(int fildes, int cmd, ...);
 int ftruncate(int fd, off_t length);
 
 /* directory api*/
@@ -62,7 +51,6 @@ int statfs(const char *path, struct statfs *buf);
 
 int access(const char *path, int amode);
 int pipe(int fildes[2]);
-int mkfifo(const char *path, mode_t mode);
 
 #ifdef __cplusplus
 }

+ 4 - 3
components/drivers/rtc/rtc.c

@@ -223,7 +223,7 @@ rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second)
 /**
  * get date and time or set (local timezone) [year month day hour min sec]
  */
-static void date(uint8_t argc, char **argv)
+static void date(int argc, char **argv)
 {
     if (argc == 1)
     {
@@ -235,8 +235,9 @@ static void date(uint8_t argc, char **argv)
     else if (argc >= 7)
     {
         /* set time and date */
-        uint16_t year;
-        uint8_t month, day, hour, min, sec;
+        rt_uint16_t year;
+        rt_uint8_t month, day, hour, min, sec;
+
         year = atoi(argv[1]);
         month = atoi(argv[2]);
         day = atoi(argv[3]);

+ 8 - 34
include/libc/libc_fcntl.h → components/libc/compilers/common/fcntl.h

@@ -5,44 +5,17 @@
  *
  * Change Logs:
  * Date           Author       Notes
- * 2018-02-07     Bernard      Add O_DIRECTORY definition in NEWLIB mode.
- * 2018-02-09     Bernard      Add O_BINARY definition
+ * 2021-09-02     Meco Man     First version
  */
+#ifndef __FCNTL_H__
+#define __FCNTL_H__
 
-#ifndef LIBC_FCNTL_H__
-#define LIBC_FCNTL_H__
-
-#if defined(RT_USING_NEWLIB) || defined(_WIN32) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
-#include <fcntl.h>
-
-#ifndef O_NONBLOCK
-#define O_NONBLOCK   0x4000
-#endif
+#include <sys/types.h>
 
 #if defined(_WIN32)
 #define O_ACCMODE   (_O_RDONLY | _O_WRONLY | _O_RDWR)
 #endif
 
-#ifndef F_GETFL
-#define F_GETFL  3
-#endif
-#ifndef F_SETFL
-#define F_SETFL  4
-#endif
-
-#ifndef O_DIRECTORY
-#define O_DIRECTORY 0x200000
-#endif
-
-#ifndef O_BINARY
-#ifdef  _O_BINARY
-#define O_BINARY _O_BINARY
-#else
-#define O_BINARY         0
-#endif
-#endif
-
-#else
 #define O_RDONLY         00
 #define O_WRONLY         01
 #define O_RDWR           02
@@ -60,7 +33,6 @@
 #define O_DIRECTORY 0200000
 #define O_NOFOLLOW  0400000
 #define O_CLOEXEC  02000000
-
 #define O_ASYNC      020000
 #define O_DIRECT     040000
 #define O_LARGEFILE 0100000
@@ -68,7 +40,6 @@
 #define O_PATH    010000000
 #define O_TMPFILE 020200000
 #define O_NDELAY O_NONBLOCK
-
 #define O_SEARCH  O_PATH
 #define O_EXEC    O_PATH
 
@@ -93,6 +64,9 @@
 #define F_GETOWN_EX 16
 
 #define F_GETOWNER_UIDS 17
-#endif
+
+int open(const char *file, int flags, ...);
+int fcntl(int fildes, int cmd, ...);
+int creat(const char *, mode_t);
 
 #endif

+ 0 - 18
components/libc/compilers/common/none-gcc/fcntl.h

@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-#ifndef FCNTL_H__
-#define FCNTL_H__
-
-#include <rtconfig.h>
-
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
-
-#endif

+ 73 - 3
components/libc/compilers/common/none-gcc/sys/stat.h

@@ -5,9 +5,79 @@
  *
  * Change Logs:
  * Date           Author       Notes
+ * 2021-09-02     Meco Man     First version
  */
 
- #ifndef __SYS_STAT_H__
- #define __SYS_STAT_H__
+#ifndef __SYS_STAT_H__
+#define __SYS_STAT_H__
 
- #endif
+#include <sys/types.h>
+#include <sys/time.h>
+
+#define S_IFMT               00170000
+#define S_IFSOCK             0140000
+#define S_IFLNK              0120000
+#define S_IFREG              0100000
+#define S_IFBLK              0060000
+#define S_IFDIR              0040000
+#define S_IFCHR              0020000
+#define S_IFIFO              0010000
+#define S_ISUID              0004000
+#define S_ISGID              0002000
+#define S_ISVTX              0001000
+
+#define S_ISLNK(m)           (((m) & S_IFMT) == S_IFLNK)
+#define S_ISREG(m)           (((m) & S_IFMT) == S_IFREG)
+#define S_ISDIR(m)           (((m) & S_IFMT) == S_IFDIR)
+#define S_ISCHR(m)           (((m) & S_IFMT) == S_IFCHR)
+#define S_ISBLK(m)           (((m) & S_IFMT) == S_IFBLK)
+#define S_ISFIFO(m)          (((m) & S_IFMT) == S_IFIFO)
+#define S_ISSOCK(m)          (((m) & S_IFMT) == S_IFSOCK)
+
+#define S_IRWXU              00700
+#define S_IRUSR              00400
+#define S_IWUSR              00200
+#define S_IXUSR              00100
+
+#define S_IRWXG              00070
+#define S_IRGRP              00040
+#define S_IWGRP              00020
+#define S_IXGRP              00010
+
+#define S_IRWXO              00007
+#define S_IROTH              00004
+#define S_IWOTH              00002
+#define S_IXOTH              00001
+
+struct stat
+{
+    struct rt_device *st_dev;
+    uint16_t  st_ino;
+    uint16_t  st_mode;
+    uint16_t  st_nlink;
+    uint16_t  st_uid;
+    uint16_t  st_gid;
+    struct rt_device *st_rdev;
+    uint32_t  st_size;
+    time_t    st_atime;
+    long      st_spare1;
+    time_t    st_mtime;
+    long      st_spare2;
+    time_t    st_ctime;
+    long      st_spare3;
+    uint32_t  st_blksize;
+    uint32_t  st_blocks;
+    long      st_spare4[2];
+};
+
+int    chmod(const char *, mode_t);
+int    fchmod(int, mode_t);
+int    fstat(int, struct stat *);
+int    lstat(const char *, struct stat *);
+int    mkdir(const char *, mode_t);
+int    mkfifo(const char *, mode_t);
+int    mknod(const char *, mode_t, dev_t);
+int    stat(const char *, struct stat *);
+mode_t umask(mode_t);
+
+#endif

+ 2 - 0
components/libc/compilers/common/sys/ioctl.h

@@ -235,4 +235,6 @@ struct winsize {
 #define SIOCDEVPRIVATE      0x89F0
 #define SIOCPROTOPRIVATE    0x89E0
 
+int ioctl(int fildes, int cmd, ...);
+
 #endif

+ 1 - 1
components/libc/compilers/dlib/libc.c

@@ -9,7 +9,7 @@
  */
 #include <stdio.h>
 #include <stdlib.h>
-
+#include <fcntl.h>
 #include <rtthread.h>
 
 #include "libc.h"

+ 1 - 1
components/libc/compilers/newlib/stdio.c

@@ -9,7 +9,7 @@
  */
 #include <stdio.h>
 #include <stdlib.h>
-
+#include <fcntl.h>
 #include <rtthread.h>
 #include "libc.h"
 

+ 1 - 6
components/libc/libdl/dlelf.h

@@ -28,12 +28,7 @@ typedef rt_int32_t	            Elf64_Sword;
 typedef rt_uint32_t	            Elf64_Word;
 typedef rt_uint64_t	            Elf64_Xword;
 typedef rt_int64_t	            Elf64_Sxword;
-typedef uint16_t                Elf64_Section;
-
-
-
-
-
+typedef rt_uint16_t             Elf64_Section;
 
 /* e_ident[] magic number */
 #define ELFMAG0                 0x7f           /* e_ident[EI_MAG0] */

+ 1 - 0
components/net/lwip-1.4.1/src/lwipopts.h

@@ -533,6 +533,7 @@
 #ifndef LWIP_SOCKET
 #define LWIP_SOCKET                     1
 #endif
+#include <fcntl.h>
 
 /*
  * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.

+ 1 - 0
components/net/lwip-2.0.2/src/lwipopts.h

@@ -572,6 +572,7 @@
 #ifndef LWIP_SOCKET
 #define LWIP_SOCKET                     1
 #endif
+#include <fcntl.h>
 
 /*
  * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.

+ 1 - 0
components/net/lwip-2.0.3/src/lwipopts.h

@@ -572,6 +572,7 @@
 #ifndef LWIP_SOCKET
 #define LWIP_SOCKET                     1
 #endif
+#include <fcntl.h>
 
 /*
  * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.

+ 1 - 0
components/net/lwip-2.1.2/src/lwipopts.h

@@ -579,6 +579,7 @@
 #ifndef LWIP_SOCKET
 #define LWIP_SOCKET                     1
 #endif
+#include <fcntl.h>
 
 /*
  * LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.

+ 1 - 1
components/net/netdev/src/netdev_ipaddr.c

@@ -7,7 +7,7 @@
  * Date           Author       Notes
  * 2018-05-18     ChenYong     First version
  */
-
+#include <stdlib.h>
 #include <rtthread.h>
 #include <netdev_ipaddr.h>
 

+ 1 - 0
components/net/sal_socket/socket/net_netdb.c

@@ -9,6 +9,7 @@
  * 2108-05-24     ChenYong     Add socket abstraction layer
  */
 
+#include <stddef.h>
 #include <rtthread.h>
 
 #include <netdb.h>

+ 0 - 110
include/libc/libc_stat.h

@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-
-#ifndef LIBC_STAT_H__
-#define LIBC_STAT_H__
-
-#include <rtconfig.h>
-
-#if defined(RT_USING_NEWLIB) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
-/* use header file of newlib */
-#include <sys/stat.h>
-
-#elif defined(_WIN32)
-#include <sys/stat.h>
-
-#define S_IRWXU              00700
-#define S_IRUSR              00400
-#define S_IWUSR              00200
-#define S_IXUSR              00100
-
-#define S_IRWXG              00070
-#define S_IRGRP              00040
-#define S_IWGRP              00020
-#define S_IXGRP              00010
-
-#define S_IRWXO              00007
-#define S_IROTH              00004
-#define S_IWOTH              00002
-#define S_IXOTH              00001
-
-#define S_IFSOCK             0140000
-#define S_IFLNK              0120000
-#define S_IFBLK              0060000
-#define S_IFIFO              0010000
-#define S_ISUID              0004000
-#define S_ISGID              0002000
-#define S_ISVTX              0001000
-
-#define S_ISDIR(m)           (((m) & S_IFMT) == S_IFDIR)
-
-#else
-#define S_IFMT               00170000
-#define S_IFSOCK             0140000
-#define S_IFLNK              0120000
-#define S_IFREG              0100000
-#define S_IFBLK              0060000
-#define S_IFDIR              0040000
-#define S_IFCHR              0020000
-#define S_IFIFO              0010000
-#define S_ISUID              0004000
-#define S_ISGID              0002000
-#define S_ISVTX              0001000
-
-#define S_ISLNK(m)           (((m) & S_IFMT) == S_IFLNK)
-#define S_ISREG(m)           (((m) & S_IFMT) == S_IFREG)
-#define S_ISDIR(m)           (((m) & S_IFMT) == S_IFDIR)
-#define S_ISCHR(m)           (((m) & S_IFMT) == S_IFCHR)
-#define S_ISBLK(m)           (((m) & S_IFMT) == S_IFBLK)
-#define S_ISFIFO(m)          (((m) & S_IFMT) == S_IFIFO)
-#define S_ISSOCK(m)          (((m) & S_IFMT) == S_IFSOCK)
-
-#define S_IRWXU              00700
-#define S_IRUSR              00400
-#define S_IWUSR              00200
-#define S_IXUSR              00100
-
-#define S_IRWXG              00070
-#define S_IRGRP              00040
-#define S_IWGRP              00020
-#define S_IXGRP              00010
-
-#define S_IRWXO              00007
-#define S_IROTH              00004
-#define S_IWOTH              00002
-#define S_IXOTH              00001
-
-/* stat structure */
-#include <stdint.h>
-#include <time.h>
-
-struct stat
-{
-    struct rt_device *st_dev;
-    uint16_t  st_ino;
-    uint16_t  st_mode;
-    uint16_t  st_nlink;
-    uint16_t  st_uid;
-    uint16_t  st_gid;
-    struct rt_device *st_rdev;
-    uint32_t  st_size;
-    time_t    st_atime;
-    long      st_spare1;
-    time_t    st_mtime;
-    long      st_spare2;
-    time_t    st_ctime;
-    long      st_spare3;
-    uint32_t  st_blksize;
-    uint32_t  st_blocks;
-    long      st_spare4[2];
-};
-
-#endif
-
-#endif

+ 0 - 3
include/rtdef.h

@@ -1146,9 +1146,6 @@ struct rt_device_graphic_ops
 /**@}*/
 #endif
 
-/* definitions for libc */
-#include "rtlibc.h"
-
 #ifdef __cplusplus
 }
 #endif

+ 0 - 31
include/rtlibc.h

@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017-01-21     Bernard      the first version
- */
-
-#ifndef RTLIBC_H__
-#define RTLIBC_H__
-
-/* definitions for libc if toolchain has no these definitions */
-#include "libc/libc_stat.h"
-#include "libc/libc_fcntl.h"
-
-#ifndef RT_USING_LIBC
-#if defined(__ARMCC_VERSION) || defined(__IAR_SYSTEMS_ICC__)
-typedef signed long off_t;
-typedef int mode_t;
-#endif
-#endif
-
-#if defined(__MINGW32__) || defined(_WIN32)
-typedef signed long off_t;
-typedef int mode_t;
-#endif
-
-#endif
-

+ 1 - 1
libcpu/mips/common/ptrace.h

@@ -63,7 +63,7 @@ struct pt_regs {
      * so it should be a part of pt_regs */
     struct mips_fpu_struct fpu;
 #endif
-} __aligned(8);
+} __attribute__((aligned(8)));
 #endif
 
 /* Note: For call stack o32 ABI has 0x8 shadowsoace Here  */

+ 1 - 1
libcpu/risc-v/virt64/cpuport.c

@@ -9,13 +9,13 @@
  * 2021-02-11     lizhirui     add gp support
  */
 
+#include <stddef.h>
 #include <rthw.h>
 #include <rtthread.h>
 
 #include "cpuport.h"
 #include "stack.h"
 
-
 /**
  * @brief from thread used interrupt context switch
  *