f32f62dfc1
LibC: Implement pthread_spin_* functions
2025-04-02 12:58:39 +03:00
28392050bf
LibC: Make pthread_t pid_t
2025-04-02 12:58:39 +03:00
b9cc6063ff
LibC: Implement stdio FILE locking
2025-04-02 12:58:39 +03:00
9066e62a97
Kernel/LibC: Implement sched_yield
2025-04-02 12:58:39 +03:00
5549696c3a
Kernel/LibC: Implement pthread_self
2025-04-02 02:39:29 +03:00
691c9fe8e0
LibC: Fix bsearch
...
bsearch had unsigned integer underflow which was UB and returned false
positives
2025-04-02 00:03:50 +03:00
04463675c0
LibC: Lock file during gets
2025-04-01 23:26:13 +03:00
b9da6a4a5d
LibC: Implement getdelim and getline
2025-04-01 23:26:13 +03:00
2ba25b4c28
LibC: Add non standard types/values used by ports
2025-04-01 23:26:13 +03:00
c1618e2b5d
Kernel/LibC: Add basic support for pthread_{create,exit}
2025-04-01 23:26:13 +03:00
788f5429e1
LibC: Implement spec compliant abort()
2025-04-01 23:09:30 +03:00
d8bb0b53f8
LibImage: Fix PNG palette decoding
...
I was only loading third of the palette to wrong indices :D
2025-02-12 10:09:03 +02:00
17014bb8de
LibC: Fix strndup
...
I did not null terminate short strndup copies :D
2025-01-28 22:40:06 +02:00
48eca3d031
LibC: Make libc usable with tcc
...
tcc does not provide its own stdint.h but defines everything in
stddef.h. Also tcc does not support [[noreturn]] attribute syntax.
2025-01-28 17:27:41 +02:00
21d3cf91a0
LibC: Implement some missing signal.h functions
2025-01-28 17:27:41 +02:00
7c57d736c6
Kernel/LibC: Fix dirent functions
...
dirent functions used to fail if a directory contained more than 128
files :D
2025-01-28 17:15:11 +02:00
cbe3f2a4ac
BuildSystem: Cleanup and fix cmake files
...
I now set library SONAME so i don't have to build them in build root.
Creating font now makes sure the install directory exists. This allows
building using make files.
LibC now links agains ligcc
2025-01-28 17:11:21 +02:00
caa8c1da90
LibC: Add stub implementations for set{rlimit,priority}
2025-01-25 18:15:50 +02:00
60bffb5f49
LibC: Implement clock in terms of clock_gettime
...
This allows clock to "just work" after I update clock_gettime to support
CLOCK_PROCESS_CPUTIME_ID.
2025-01-24 19:58:44 +02:00
c6cd185cb5
DynamicLoader: Fix copy relocations
...
Weak symbols are now actually resolved to the same strong symbol between
shared objects and copy relocations now work!
2025-01-24 19:23:33 +02:00
b6455e0661
LibC: Implement stub for clock
2025-01-24 19:23:33 +02:00
15021b442c
LibC: Fix memchr and memcmp assembly implementations
...
These functions did not work with size 0 :D
2025-01-23 21:55:26 +02:00
9893c90e74
Kernel: Remove SYS_DUP and implement it using fcntl F_DUPFD
2025-01-17 19:29:47 +02:00
766b8cd62e
LibC: Fix stdio FILE operations
...
Mixing read/write/ungetc was broken. This mostly fixes everything. There
might still be some problems that have to be fixed
2025-01-16 14:57:58 +02:00
72059a9441
LibC: Redefine SEEK_* macros to match common systems
...
some ports written in assembly seem to depend on this
2025-01-14 22:52:13 +02:00
ebecbb69ec
LibC: Implement some mem* and str* functions in assembly
...
This made them a lot faster on modern cpus with optimized rep stos and
rep movs
2025-01-14 22:50:46 +02:00
14c70c5cc8
LibC: Make mem* and str* functions weak symbols
...
This allows adding architecture dependent implementations while still
providing an general implementation
2025-01-14 18:36:54 +02:00
d62a67502e
LibC: Remove global -fno-tree-loop-distribute-patterns flag
...
This is only really needed for string.cpp where mem* and str* functions
are defined
2025-01-14 18:35:33 +02:00
4b2c303873
LibC: Add weak_alias header that defines a weak_alias macro
2025-01-14 18:33:57 +02:00
8c45249c06
LibC: Remove stdint.h as toolchain provides one
...
I have no idea why i even had this written, it was just containing
compiler macros
2024-12-30 06:26:17 +02:00
581caff638
BuildSystem: Install base sysroot only once
...
Base sysroot is not only installed when creating the syroot directory
for the first time. To get it installed again, you have to either delete
the old sysroot diretory or run clean target
This makes it so its actually possible to edit files specified in the
base sysroot without random hacks.
2024-12-10 16:44:59 +02:00
51b6329c86
Kernel: Make backspace \b and delete 0x7F
...
This is what `vim` seems to expect and imo makes way more sense.
2024-12-05 17:34:37 +02:00
1903079f96
LibC: Fix popen to return correct return value instead of -1
2024-12-05 06:47:10 +02:00
b6d0950ee9
LibC: Fix strftime implementation
...
This implementation now passes every musl-libc test :)
2024-12-05 06:46:31 +02:00
c1a32a4041
LibC: Implement mktime
2024-12-05 06:43:35 +02:00
88c9f6d233
LibC: Make environ a weak alias
...
If user program defines its own global `environ` variable it will still
work :)
2024-12-03 20:29:38 +02:00
176693dd5a
LibC: Implement wcscmp and wcsncmp
2024-12-03 16:21:54 +02:00
62bee04fc0
LibC: Implement dummy utime that just checks file existance
2024-12-03 16:21:18 +02:00
bc93d238dd
LibC: Fix fread argument order in gethostname
2024-12-03 16:15:16 +02:00
79e2c5d48c
LibC: Make FILE* reading buffered
...
There was no reason to perform a syscall for every byte read
2024-12-03 16:13:48 +02:00
0fab7ad63b
Kernel: Fix SYS_FCNTL command handling :)
...
I had misunderstood how these work
2024-12-03 16:12:26 +02:00
713daf6cd3
Kernel/LibC: Add support for creating hardlinks
2024-12-03 16:12:26 +02:00
fbcf10c86d
LibC: Implement closelog and make syslog print to stddbg
2024-12-03 01:45:54 +02:00
415b20f884
LibC: Remove errno EEXISTS
...
I don't know why I had added this. It doesn't seem to be a thing on
either POSIX or linux. This was literally equivalent to EXIST
2024-12-02 20:13:38 +02:00
d58ca5f37a
Kernel/LibC: Implement symlink{,at}
2024-12-02 20:13:38 +02:00
11b6ee423e
LibC: Define timezone structure
2024-12-02 20:13:37 +02:00
a10ca47657
Kernel/LibC: Implement {,f}statvfs
2024-12-02 20:13:37 +02:00
ad1f175a39
Kernel/LibC: Implement getppid
2024-12-02 20:13:37 +02:00
fd3246113a
LibC: Implement missing execlp and cleanup exec code
2024-12-02 20:13:37 +02:00
b8013c883c
LibC: Implement getpass
2024-12-02 20:13:37 +02:00