From 8f9e448b2ef6db7cd905540c21f3c5b190e7a1e7 Mon Sep 17 00:00:00 2001 From: Kacper Date: Sun, 7 Dec 2025 22:22:16 +0100 Subject: Add bin/true and bin/false implementations - Added assembly implementations for `true` and `false` commands. - Updated Kbuild files to include new binaries. - Removed unused libraries and headers. - Cleaned up makefile and unused code. --- lib/libc/unistd/Kbuild | 77 +++++++++++++++++++++++++++++++++++++++++++ lib/libc/unistd/execlp.c | 6 ++-- lib/libc/unistd/execvp.c | 3 +- lib/libc/unistd/getentropy.c | 2 ++ lib/libc/unistd/gethostname.c | 2 ++ lib/libc/unistd/getlogin_r.c | 2 ++ lib/libc/unistd/lockf.c | 3 ++ lib/libc/unistd/nice.c | 1 + lib/libc/unistd/posix_close.c | 2 +- 9 files changed, 92 insertions(+), 6 deletions(-) create mode 100644 lib/libc/unistd/Kbuild (limited to 'lib/libc/unistd') diff --git a/lib/libc/unistd/Kbuild b/lib/libc/unistd/Kbuild new file mode 100644 index 00000000..ff3f025a --- /dev/null +++ b/lib/libc/unistd/Kbuild @@ -0,0 +1,77 @@ +obj-y += _exit.o +obj-y += _Fork.o +obj-y += access.o +obj-y += alarm.o +obj-y += chdir.o +obj-y += chown.o +obj-y += close.o +obj-y += dup.o +obj-y += dup2.o +obj-y += dup3.o +obj-y += execl.o +obj-y += execlp.o +obj-y += execv.o +obj-y += execve.o +obj-y += execvp.o +obj-y += faccessat.o +obj-y += fchdir.o +obj-y += fchown.o +obj-y += fchownat.o +obj-y += fdatasync.o +obj-y += fork.o +obj-y += fsync.o +obj-y += ftruncate.o +obj-y += getcwd.o +obj-y += getegid.o +obj-y += getentropy.o +obj-y += geteuid.o +obj-y += getgid.o +obj-y += getgroups.o +obj-y += gethostid.o +obj-y += gethostname.o +obj-y += getlogin_r.o +obj-y += getlogin.o +obj-y += getopt.o +obj-y += getpgid.o +obj-y += getpid.o +obj-y += getppid.o +obj-y += getresgid.o +obj-y += getresuid.o +obj-y += getsid.o +obj-y += getuid.o +obj-y += isatty.o +obj-y += lchown.o +obj-y += link.o +obj-y += linkat.o +obj-y += lockf.o +obj-y += lseek.o +obj-y += nice.o +obj-y += pause.o +obj-y += pipe.o +obj-y += pipe2.o +obj-y += posix_close.o +obj-y += pread.o +obj-y += pwrite.o +obj-y += read.o +obj-y += readlink.o +obj-y += readlinkat.o +obj-y += rmdir.o +obj-y += setegid.o +obj-y += seteuid.o +obj-y += setgid.o +obj-y += setpgid.o +obj-y += setregid.o +obj-y += setresgid.o +obj-y += setresuid.o +obj-y += setreuid.o +obj-y += setsid.o +obj-y += setuid.o +obj-y += sleep.o +obj-y += swab.o +obj-y += symlink.o +obj-y += symlinkat.o +obj-y += sync.o +obj-y += truncate.o +obj-y += unlink.o +obj-y += unlinkat.o +obj-y += write.o diff --git a/lib/libc/unistd/execlp.c b/lib/libc/unistd/execlp.c index 4613a7ee..db044d50 100644 --- a/lib/libc/unistd/execlp.c +++ b/lib/libc/unistd/execlp.c @@ -1,8 +1,6 @@ #include -#include -#include +#include -// TODO: need to find in path and call execl int execlp(const char *path, const char *argv0, ...) { int argc; @@ -23,5 +21,5 @@ int execlp(const char *path, const char *argv0, ...) argv[argc] = NULL; va_end(ap); - return syscall(execve, path, argv, 0); + return execve(path, argv, 0); } diff --git a/lib/libc/unistd/execvp.c b/lib/libc/unistd/execvp.c index 2ce69354..ae8ecdb9 100644 --- a/lib/libc/unistd/execvp.c +++ b/lib/libc/unistd/execvp.c @@ -3,6 +3,7 @@ #include #include #include +#include extern char **environ; @@ -17,7 +18,7 @@ int execvp(const char *file, char *const argv[]) return execv(file, argv); } else { char *ptr; - char *path = NULL; // TODO: getenv + char *path = getenv("PATH"); if (path == NULL || *path == '\0') { path = "/bin"; diff --git a/lib/libc/unistd/getentropy.c b/lib/libc/unistd/getentropy.c index f55fed7a..3a651ba5 100644 --- a/lib/libc/unistd/getentropy.c +++ b/lib/libc/unistd/getentropy.c @@ -3,6 +3,8 @@ int getentropy(void *buffer, size_t length) { + (void)buffer; + (void)length; // TODO return 0; } diff --git a/lib/libc/unistd/gethostname.c b/lib/libc/unistd/gethostname.c index a20808e1..5bd303f5 100644 --- a/lib/libc/unistd/gethostname.c +++ b/lib/libc/unistd/gethostname.c @@ -3,6 +3,8 @@ int gethostname(char *name, size_t namelen) { + (void)name; + (void)namelen; // TODO return 0; } diff --git a/lib/libc/unistd/getlogin_r.c b/lib/libc/unistd/getlogin_r.c index 3dea2dff..70ae5ddd 100644 --- a/lib/libc/unistd/getlogin_r.c +++ b/lib/libc/unistd/getlogin_r.c @@ -3,6 +3,8 @@ int getlogin_r(char *name, size_t namesize) { + (void)name; + (void)namesize; // TODO return 0; } diff --git a/lib/libc/unistd/lockf.c b/lib/libc/unistd/lockf.c index 8b807c34..6f109c55 100644 --- a/lib/libc/unistd/lockf.c +++ b/lib/libc/unistd/lockf.c @@ -3,6 +3,9 @@ int lockf(int fildes, int function, off_t size) { + (void)fildes; + (void)function; + (void)size; // TODO return 0; } diff --git a/lib/libc/unistd/nice.c b/lib/libc/unistd/nice.c index 3b240c93..6da984df 100644 --- a/lib/libc/unistd/nice.c +++ b/lib/libc/unistd/nice.c @@ -3,6 +3,7 @@ int nice(int incr) { + (void)incr; // TODO: needs getpriority and setpriority from sys/resouce.h return 0; } diff --git a/lib/libc/unistd/posix_close.c b/lib/libc/unistd/posix_close.c index fe44a7b9..78ec692e 100644 --- a/lib/libc/unistd/posix_close.c +++ b/lib/libc/unistd/posix_close.c @@ -1,7 +1,7 @@ #include #include -int posix_close(int fildes, int unused flag) +int posix_close(int fildes, int __unused flag) { return syscall(close, fildes); } -- cgit v1.2.3