summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2021-09-11 20:00:39 +0800
committerGitHub <[email protected]>2021-09-11 20:00:39 +0800
commit4423b487c551e0220233bc84f290abd5a1b8c2f4 (patch)
tree0d237cb8cdb7bf80a0df677d3fbd8108b41f3e15 /components
parent8907d3216713dfeb4a65b4cd2f8ef8da0beec237 (diff)
parent51e055963127f443595e29fc493dcd22f33ac0f1 (diff)
Merge pull request #5044 from BernardXiong/libc_pr
[libc] remove rtlibc
Diffstat (limited to 'components')
-rw-r--r--components/dfs/include/dfs.h2
-rw-r--r--components/dfs/include/dfs_posix.h16
-rw-r--r--components/drivers/include/drivers/cputime.h2
-rw-r--r--components/drivers/include/drivers/pm.h1
-rw-r--r--components/drivers/phy/phy.c2
-rw-r--r--components/drivers/rtc/rtc.c7
-rw-r--r--components/libc/compilers/common/fcntl.h72
-rw-r--r--components/libc/compilers/common/none-gcc/fcntl.h18
-rw-r--r--components/libc/compilers/common/none-gcc/sys/stat.h76
-rw-r--r--components/libc/compilers/common/sys/ioctl.h2
-rw-r--r--components/libc/compilers/dlib/libc.c2
-rw-r--r--components/libc/compilers/newlib/stdio.c2
-rw-r--r--components/libc/libdl/dlelf.h113
-rw-r--r--components/net/lwip-1.4.1/src/lwipopts.h1
-rw-r--r--components/net/lwip-2.0.2/src/lwipopts.h1
-rw-r--r--components/net/lwip-2.0.3/src/lwipopts.h1
-rw-r--r--components/net/lwip-2.1.2/src/lwipopts.h1
-rw-r--r--components/net/netdev/src/netdev.c1
-rw-r--r--components/net/netdev/src/netdev_ipaddr.c2
-rw-r--r--components/net/sal_socket/socket/net_netdb.c1
-rw-r--r--components/utilities/utest/utest_assert.h4
21 files changed, 218 insertions, 109 deletions
diff --git a/components/dfs/include/dfs.h b/components/dfs/include/dfs.h
index 0fd8c2dccc..9f112f9656 100644
--- a/components/dfs/include/dfs.h
+++ b/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>
diff --git a/components/dfs/include/dfs_posix.h b/components/dfs/include/dfs_posix.h
index ec7cdc9de4..98da0f854f 100644
--- a/components/dfs/include/dfs_posix.h
+++ b/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
}
diff --git a/components/drivers/include/drivers/cputime.h b/components/drivers/include/drivers/cputime.h
index 0141f24805..26a1e40f8e 100644
--- a/components/drivers/include/drivers/cputime.h
+++ b/components/drivers/include/drivers/cputime.h
@@ -11,6 +11,8 @@
#ifndef CPUTIME_H__
#define CPUTIME_H__
+#include <stdint.h>
+
struct rt_clock_cputime_ops
{
float (*cputime_getres) (void);
diff --git a/components/drivers/include/drivers/pm.h b/components/drivers/include/drivers/pm.h
index 51bff54ebb..d38c0a4e2a 100644
--- a/components/drivers/include/drivers/pm.h
+++ b/components/drivers/include/drivers/pm.h
@@ -15,6 +15,7 @@
#ifndef __PM_H__
#define __PM_H__
+#include <stdint.h>
#include <rtthread.h>
#ifndef PM_HAS_CUSTOM_CONFIG
diff --git a/components/drivers/phy/phy.c b/components/drivers/phy/phy.c
index 6d408ce612..87152a306e 100644
--- a/components/drivers/phy/phy.c
+++ b/components/drivers/phy/phy.c
@@ -8,7 +8,7 @@
* Date Author Notes
* 2020-09-27 wangqiang first version
*/
-
+#include <stddef.h>
#include <rthw.h>
#include <rtthread.h>
#include <rtdevice.h>
diff --git a/components/drivers/rtc/rtc.c b/components/drivers/rtc/rtc.c
index 35e7ddc3c4..bc75c83e7d 100644
--- a/components/drivers/rtc/rtc.c
+++ b/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]);
diff --git a/components/libc/compilers/common/fcntl.h b/components/libc/compilers/common/fcntl.h
new file mode 100644
index 0000000000..b98f540627
--- /dev/null
+++ b/components/libc/compilers/common/fcntl.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-09-02 Meco Man First version
+ */
+#ifndef __FCNTL_H__
+#define __FCNTL_H__
+
+#include <sys/types.h>
+
+#if defined(_WIN32)
+#define O_ACCMODE (_O_RDONLY | _O_WRONLY | _O_RDWR)
+#endif
+
+#define O_RDONLY 00
+#define O_WRONLY 01
+#define O_RDWR 02
+
+#define O_CREAT 0100
+#define O_EXCL 0200
+#define O_NOCTTY 0400
+#define O_TRUNC 01000
+#define O_APPEND 02000
+#define O_NONBLOCK 04000
+#define O_DSYNC 010000
+#define O_SYNC 04010000
+#define O_RSYNC 04010000
+#define O_BINARY 0100000
+#define O_DIRECTORY 0200000
+#define O_NOFOLLOW 0400000
+#define O_CLOEXEC 02000000
+#define O_ASYNC 020000
+#define O_DIRECT 040000
+#define O_LARGEFILE 0100000
+#define O_NOATIME 01000000
+#define O_PATH 010000000
+#define O_TMPFILE 020200000
+#define O_NDELAY O_NONBLOCK
+#define O_SEARCH O_PATH
+#define O_EXEC O_PATH
+
+#define O_ACCMODE (03|O_SEARCH)
+
+#define F_DUPFD 0
+#define F_GETFD 1
+#define F_SETFD 2
+#define F_GETFL 3
+#define F_SETFL 4
+
+#define F_SETOWN 8
+#define F_GETOWN 9
+#define F_SETSIG 10
+#define F_GETSIG 11
+
+#define F_GETLK 12
+#define F_SETLK 13
+#define F_SETLKW 14
+
+#define F_SETOWN_EX 15
+#define F_GETOWN_EX 16
+
+#define F_GETOWNER_UIDS 17
+
+int open(const char *file, int flags, ...);
+int fcntl(int fildes, int cmd, ...);
+int creat(const char *, mode_t);
+
+#endif
diff --git a/components/libc/compilers/common/none-gcc/fcntl.h b/components/libc/compilers/common/none-gcc/fcntl.h
deleted file mode 100644
index f247b926e9..0000000000
--- a/components/libc/compilers/common/none-gcc/fcntl.h
+++ /dev/null
@@ -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
diff --git a/components/libc/compilers/common/none-gcc/sys/stat.h b/components/libc/compilers/common/none-gcc/sys/stat.h
index c8f65df435..107c15decf 100644
--- a/components/libc/compilers/common/none-gcc/sys/stat.h
+++ b/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
diff --git a/components/libc/compilers/common/sys/ioctl.h b/components/libc/compilers/common/sys/ioctl.h
index 51f51f2ea4..b926a71875 100644
--- a/components/libc/compilers/common/sys/ioctl.h
+++ b/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
diff --git a/components/libc/compilers/dlib/libc.c b/components/libc/compilers/dlib/libc.c
index d0dca7c5f6..097d736bfe 100644
--- a/components/libc/compilers/dlib/libc.c
+++ b/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"
diff --git a/components/libc/compilers/newlib/stdio.c b/components/libc/compilers/newlib/stdio.c
index ce5bdb75cb..baccafad87 100644
--- a/components/libc/compilers/newlib/stdio.c
+++ b/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"
diff --git a/components/libc/libdl/dlelf.h b/components/libc/libdl/dlelf.h
index 540fe2c8aa..339e172bb4 100644
--- a/components/libc/libdl/dlelf.h
+++ b/components/libc/libdl/dlelf.h
@@ -4,9 +4,9 @@
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
- * Date Author Notes
- * 2018/08/29 Bernard first version
- * 2021/04/23 chunyexixiaoyu distinguish 32-bit and 64-bit
+ * Date Author Notes
+ * 2018/08/29 Bernard first version
+ * 2021/04/23 chunyexixiaoyu distinguish 32-bit and 64-bit
*/
#ifndef DL_ELF_H__
@@ -20,20 +20,15 @@ typedef rt_int32_t Elf32_Sword; /* Signed large integer */
typedef rt_uint32_t Elf32_Word; /* Unsigned large integer */
typedef rt_uint16_t Elf32_Half; /* Unsigned medium integer */
-typedef rt_uint64_t Elf64_Addr;
-typedef rt_uint16_t Elf64_Half;
-typedef rt_int16_t Elf64_SHalf;
-typedef rt_uint64_t Elf64_Off;
-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_uint64_t Elf64_Addr;
+typedef rt_uint16_t Elf64_Half;
+typedef rt_int16_t Elf64_SHalf;
+typedef rt_uint64_t Elf64_Off;
+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 rt_uint16_t Elf64_Section;
/* e_ident[] magic number */
#define ELFMAG0 0x7f /* e_ident[EI_MAG0] */
@@ -91,24 +86,24 @@ typedef struct elfhdr
header string table" entry offset */
} Elf32_Ehdr;
-
-typedef struct elf64_hdr {
- unsigned char e_ident[EI_NIDENT]; /* ELF Identification */
- Elf64_Half e_type; /* object file type */
- Elf64_Half e_machine; /* machine */
- Elf64_Word e_version; /* object file version */
- Elf64_Addr e_entry; /* virtual entry point */
- Elf64_Off e_phoff; /* program header table offset */
- Elf64_Off e_shoff; /* section header table offset */
- Elf64_Word e_flags; /* processor-specific flags */
- Elf64_Half e_ehsize; /* ELF header size */
- Elf64_Half e_phentsize; /* program header entry size */
- Elf64_Half e_phnum; /* number of program header entries */
- Elf64_Half e_shentsize; /* section header entry size */
- Elf64_Half e_shnum; /* number of section header entries */
- Elf64_Half e_shstrndx; /* section header table's "section
+typedef struct elf64_hdr
+{
+ unsigned char e_ident[EI_NIDENT]; /* ELF Identification */
+ Elf64_Half e_type; /* object file type */
+ Elf64_Half e_machine; /* machine */
+ Elf64_Word e_version; /* object file version */
+ Elf64_Addr e_entry; /* virtual entry point */
+ Elf64_Off e_phoff; /* program header table offset */
+ Elf64_Off e_shoff; /* section header table offset */
+ Elf64_Word e_flags; /* processor-specific flags */
+ Elf64_Half e_ehsize; /* ELF header size */
+ Elf64_Half e_phentsize; /* program header entry size */
+ Elf64_Half e_phnum; /* number of program header entries */
+ Elf64_Half e_shentsize; /* section header entry size */
+ Elf64_Half e_shnum; /* number of section header entries */
+ Elf64_Half e_shstrndx; /* section header table's "section
header string table" entry offset */
-} Elf64_Ehdr;
+} Elf64_Ehdr;
/* Section Header */
typedef struct
@@ -128,19 +123,18 @@ typedef struct
typedef struct
{
- Elf64_Word sh_name; /* Section name (string tbl index) */
- Elf64_Word sh_type; /* Section type */
- Elf64_Xword sh_flags; /* Section flags */
- Elf64_Addr sh_addr; /* Section virtual addr at execution */
- Elf64_Off sh_offset; /* Section file offset */
- Elf64_Xword sh_size; /* Section size in bytes */
- Elf64_Word sh_link; /* Link to another section */
- Elf64_Word sh_info; /* Additional section information */
- Elf64_Xword sh_addralign; /* Section alignment */
- Elf64_Xword sh_entsize; /* Entry size if section holds table */
+ Elf64_Word sh_name; /* Section name (string tbl index) */
+ Elf64_Word sh_type; /* Section type */
+ Elf64_Xword sh_flags; /* Section flags */
+ Elf64_Addr sh_addr; /* Section virtual addr at execution */
+ Elf64_Off sh_offset; /* Section file offset */
+ Elf64_Xword sh_size; /* Section size in bytes */
+ Elf64_Word sh_link; /* Link to another section */
+ Elf64_Word sh_info; /* Additional section information */
+ Elf64_Xword sh_addralign; /* Section alignment */
+ Elf64_Xword sh_entsize; /* Entry size if section holds table */
} Elf64_Shdr;
-
/* Section names */
#define ELF_BSS ".bss" /* uninitialized data */
#define ELF_DATA ".data" /* initialized data */
@@ -176,19 +170,16 @@ typedef struct elf32_sym
Elf32_Half st_shndx; /* section header index */
} Elf32_Sym;
-
typedef struct
{
- Elf64_Word st_name; /* Symbol name (string tbl index) */
- unsigned char st_info; /* Symbol type and binding */
- unsigned char st_other; /* Symbol visibility */
- Elf64_Section st_shndx; /* Section index */
- Elf64_Addr st_value; /* Symbol value */
- Elf64_Xword st_size; /* Symbol size */
+ Elf64_Word st_name; /* Symbol name (string tbl index) */
+ unsigned char st_info; /* Symbol type and binding */
+ unsigned char st_other; /* Symbol visibility */
+ Elf64_Section st_shndx; /* Section index */
+ Elf64_Addr st_value; /* Symbol value */
+ Elf64_Xword st_size; /* Symbol size */
} Elf64_Sym;
-
-
#define STB_LOCAL 0 /* BIND */
#define STB_GLOBAL 1
#define STB_WEAK 2
@@ -249,8 +240,6 @@ typedef struct
#define ELF32_R_TYPE(i) ((unsigned char) (i))
#define ELF32_R_INFO(s,t) (((s) << 8) + (unsigned char)(t))
-
-
#define ELF64_R_SYM(i) ((i) >> 32)
#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
@@ -301,7 +290,6 @@ typedef struct
Elf32_Word p_align; /* memory alignment */
} Elf32_Phdr;
-
typedef struct
{
Elf64_Word p_type; /* Segment type */
@@ -314,10 +302,6 @@ typedef struct
Elf64_Xword p_align; /* Segment alignment */
} Elf64_Phdr;
-
-
-
-
/* p_type */
#define PT_NULL 0
#define PT_LOAD 1
@@ -389,10 +373,9 @@ typedef Elf64_Sym Elf_Sym;
typedef Elf64_Rela Elf_Rel;
typedef Elf64_Addr Elf_Addr;
#endif
-int dlmodule_relocate(struct rt_dlmodule *module, Elf_Rel *rel, Elf_Addr sym_val);
-rt_err_t dlmodule_load_shared_object(struct rt_dlmodule* module, void *module_ptr);
-rt_err_t dlmodule_load_relocated_object(struct rt_dlmodule* module, void *module_ptr);
-
+int dlmodule_relocate(struct rt_dlmodule *module, Elf_Rel *rel, Elf_Addr sym_val);
+rt_err_t dlmodule_load_shared_object(struct rt_dlmodule *module, void *module_ptr);
+rt_err_t dlmodule_load_relocated_object(struct rt_dlmodule *module, void *module_ptr);
#endif
diff --git a/components/net/lwip-1.4.1/src/lwipopts.h b/components/net/lwip-1.4.1/src/lwipopts.h
index 9148066d50..a5e035b53a 100644
--- a/components/net/lwip-1.4.1/src/lwipopts.h
+++ b/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.
diff --git a/components/net/lwip-2.0.2/src/lwipopts.h b/components/net/lwip-2.0.2/src/lwipopts.h
index fdfe1437b2..fe6e2fef6f 100644
--- a/components/net/lwip-2.0.2/src/lwipopts.h
+++ b/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.
diff --git a/components/net/lwip-2.0.3/src/lwipopts.h b/components/net/lwip-2.0.3/src/lwipopts.h
index fdfe1437b2..fe6e2fef6f 100644
--- a/components/net/lwip-2.0.3/src/lwipopts.h
+++ b/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.
diff --git a/components/net/lwip-2.1.2/src/lwipopts.h b/components/net/lwip-2.1.2/src/lwipopts.h
index a964ab13ac..81409a9d0a 100644
--- a/components/net/lwip-2.1.2/src/lwipopts.h
+++ b/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.
diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c
index 26451cb007..4c5d524510 100644
--- a/components/net/netdev/src/netdev.c
+++ b/components/net/netdev/src/netdev.c
@@ -10,6 +10,7 @@
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include <rtthread.h>
#include <rthw.h>
diff --git a/components/net/netdev/src/netdev_ipaddr.c b/components/net/netdev/src/netdev_ipaddr.c
index 9abb41bd14..afb6d1d962 100644
--- a/components/net/netdev/src/netdev_ipaddr.c
+++ b/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>
diff --git a/components/net/sal_socket/socket/net_netdb.c b/components/net/sal_socket/socket/net_netdb.c
index 03b995c68d..1eb84e1c32 100644
--- a/components/net/sal_socket/socket/net_netdb.c
+++ b/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>
diff --git a/components/utilities/utest/utest_assert.h b/components/utilities/utest/utest_assert.h
index 2e2007e773..ba76fc39ee 100644
--- a/components/utilities/utest/utest_assert.h
+++ b/components/utilities/utest/utest_assert.h
@@ -50,8 +50,8 @@ void utest_assert_buf(const char *a, const char *b, rt_size_t sz, rt_bool_t equa
*/
#define uassert_true(value) __utest_assert(value, "(" #value ") is false")
#define uassert_false(value) __utest_assert(!(value), "(" #value ") is true")
-#define uassert_null(value) __utest_assert((const char *)(value) == NULL, "(" #value ") is not null")
-#define uassert_not_null(value) __utest_assert((const char *)(value) != NULL, "(" #value ") is null")
+#define uassert_null(value) __utest_assert((const char *)(value) == RT_NULL, "(" #value ") is not null")
+#define uassert_not_null(value) __utest_assert((const char *)(value) != RT_NULL, "(" #value ") is null")
#define uassert_int_equal(a, b) __utest_assert((a) == (b), "(" #a ") not equal to (" #b ")")
#define uassert_int_not_equal(a, b) __utest_assert((a) != (b), "(" #a ") equal to (" #b ")")