diff --git a/components/libc/Kconfig b/components/libc/Kconfig index a2b8747ef6..04d59051b8 100644 --- a/components/libc/Kconfig +++ b/components/libc/Kconfig @@ -43,6 +43,20 @@ config RT_USING_POSIX default n if RT_USING_POSIX + + config RT_USING_POSIX_POLL + bool "Enable poll()" + default n + + config RT_USING_POSIX_SELECT + bool "Enable select()" + select RT_USING_POSIX_POLL + default n + + config RT_USING_POSIX_GETLINE + bool "Enable getline()/getdelim() APIs" + default n + config RT_USING_POSIX_MMAP bool "Enable mmap() API" default n @@ -51,10 +65,6 @@ if RT_USING_POSIX bool "Enable termios APIs" default n - config RT_USING_POSIX_GETLINE - bool "Enable getline()/getdelim() APIs" - default n - config RT_USING_POSIX_AIO bool "Enable AIO" default n diff --git a/components/libc/posix/src/SConscript b/components/libc/posix/src/SConscript index 8712d671c0..384e71261a 100644 --- a/components/libc/posix/src/SConscript +++ b/components/libc/posix/src/SConscript @@ -2,10 +2,16 @@ from building import * -src = Glob('*.c') +src = ['libc.c','delay.c','unistd.c'] cwd = GetCurrentDir() CPPPATH = [cwd] +if GetDepend('RT_USING_POSIX_POLL'): + src += ['poll.c'] + +if GetDepend('RT_USING_POSIX_SELECT'): + src += ['select.c'] + group = DefineGroup('POSIX', src, depend = ['RT_USING_POSIX'], CPPPATH = CPPPATH) Return('group') diff --git a/components/net/Kconfig b/components/net/Kconfig index 4c49f4aa97..eaec96b931 100644 --- a/components/net/Kconfig +++ b/components/net/Kconfig @@ -42,6 +42,7 @@ config RT_USING_SAL bool "Enable BSD socket operated by file system API" default n select RT_LIBC_USING_FILEIO + select RT_USING_POSIX_SELECT help Let BSD socket operated by file system API, such as read/write and involveed in select/poll POSIX APIs.