Bananymous
2dd8b76289
BuildSystem: Automatically delete libtool files
...
Half of the ports had a manual post_install step to delete libtool files
this is now done automatically and there is no need for it!
Libtool files have to be deleted as libtool doesn't work while
cross-compiling (at least out of the box)
2025-11-17 05:26:07 +02:00
Bananymous
2bf7c67767
LibC: Add backtrace signal handlers for SIG{FPE,ILL,BUS,SEGV}
...
This allows programs to dump better backtraces on crashes compared to
what kernel can as libc can resolve symbols and libraries' dynamic bases
2025-11-17 05:26:07 +02:00
Bananymous
dd636ffcb2
Kernel: Add support for SA_SIGINFO
2025-11-17 05:26:07 +02:00
Bananymous
a44c45ff9e
LibC: Cleanup signal.h
...
Make sa_handler and sa_sigaction be part of an union
Add definitions of SIGIO TRAP_BRKPT TRAP_TRACE
2025-11-17 05:26:07 +02:00
Bananymous
dc2a455395
Kernel: Optimize processes' memory management
...
Memory regions are now stored in a sorted array. This allows O(nlogn)
lookup for address validation instead of the old linear lookup.
Now inserting new regions is also O(nlogn) instead of the old constant
time, but lookups are **much** more frequent
2025-11-17 05:26:07 +02:00
Bananymous
c700d9f714
Kernel: Implement connect for UDP socket
2025-11-17 05:26:07 +02:00
Bananymous
59cfc339b0
Kernel: Ignore MSG_NOSIGNAL and invalid flags
2025-11-17 05:26:07 +02:00
Bananymous
e06c07ca89
ports: Update binutils 2.44->2.45
...
Now we don't have to keep patches for both versions around :D
2025-11-17 05:26:07 +02:00
Bananymous
6facd54a7e
LibC: Add ru_maxrss to struct rusage
...
This is not required by posix but some ports use it
2025-11-17 05:26:07 +02:00
Bananymous
6f8d850726
BuildSystem: Cleanup port building script
...
All dependencies are now installed only ones. If a port depends on for
examle zlib and one of its other dependencies depends on zlib, zlib will
now get installe only once.
Accept .tgz archives as the main download file
2025-11-17 05:26:07 +02:00
Bananymous
f3beee9874
Kernel: Cleanup userspace pointer validation
2025-11-17 02:33:00 +02:00
Bananymous
35e063bdaf
Kernel: Dump r8-r15 on x86_64 exceptions
2025-11-17 02:33:00 +02:00
Bananymous
09175d1799
Kernel: Fix 32 bit target
...
Rewrite some assembly and add some required casts
2025-11-17 02:33:00 +02:00
Bananymous
46f9a9053f
DynamicLoader: Use canonical path for the main executable
2025-11-13 04:20:53 +02:00
Bananymous
bb86520094
Kernel: Set message flags in UDP and TCP recvmsg
2025-11-13 04:20:53 +02:00
Bananymous
c1e2c660bf
LibC: Define caddr_t
...
This is used by some ports
2025-11-13 04:20:53 +02:00
Bananymous
89c0ff1a9d
Kernel/LibC: Replace SYS_{GET,SET}_TLS with SYS_{SET,GET}_{FS,GS}BASE
...
This allows userspace to use both registers
2025-11-13 04:20:53 +02:00
Bananymous
7a68ce7e94
DynamicLoader: Fix testing for possible base address
...
Replace MAP_FIXED with MAP_FIXED_NOREPLACE and only attempt to map
program headers with PT_LOAD
2025-11-13 04:20:53 +02:00
Bananymous
9537922acc
Kernel: Implement proper memory region splitting
...
Memory regions are now splitted when they get munmapped, mprotected, or
mmapped with MAP_FIXED. This is used by couple of ports, and without
this we were just leaking up memory or straight up crashing programs.
2025-11-13 04:20:53 +02:00
Bananymous
a39aa73e21
Kernel: Allow munmap on non-page aligned address
2025-11-12 00:06:36 +02:00
Bananymous
f1d12c330e
Kernel/LibC: Implement MMAP_FIXED_NOREPLACE
...
This is a handy thing from linux
Also fix MMAP_FIXED validation and error reporting
2025-11-12 00:06:36 +02:00
Bananymous
82c8eeb4be
ports/openssh: Update to 10.2p1 and enable fd passing
2025-11-12 00:06:36 +02:00
Bananymous
3a951f4830
LibC: Define IN_LOOPBACKNET
...
some ports expect this to exist
2025-11-12 00:06:36 +02:00
Bananymous
998ea25fb9
LibC: Add netinet/in_systm.h compatibility header
2025-11-12 00:06:36 +02:00
Bananymous
7b580b8f56
Kernel: Implement fd passing with SCM_RIGTHS
2025-11-12 00:06:36 +02:00
Bananymous
641ccfdd47
LibC: Add BSD compatibility defines S_I{READ,WRITE,EXEC}
...
These just map to S_I{R,W,X}USR respectively
2025-11-10 01:40:33 +02:00
Bananymous
4288f70d04
LibC: Make poll and epoll macros match with each other
...
This was an assertion in one of my ports and I couldn't be bothered to
write a patch for it :D
2025-11-10 01:40:33 +02:00
Bananymous
95fda5dfb7
LibC: Add definitions for IPPROTO_ICMPV6 and IP_TOS
2025-11-10 01:40:33 +02:00
Bananymous
1903c5e0c6
Kernel: Use user given address hint in mmap if possible
2025-11-10 01:40:33 +02:00
Bananymous
362501a097
LibC: Make x86_64 crt0 PIE compatible
...
Instead of pushing addresses of functions directly, use rip relative
addressing
2025-11-10 01:40:33 +02:00
Bananymous
72982e3c2b
Kernel/LibC: Take fcntl extra field as uintptr_t
...
This allows passing pointers to fcntl
2025-11-10 01:40:33 +02:00
Bananymous
04d24bce70
Kernel/LibC: Implement {recv,send}msg as syscalls
...
This also removes the now old recvfrom and sendto syscalls. These are
now implemented as wrappers around recvmsg and sendmsg.
Also replace unnecessary spinlocks from unix socket with mutexes
2025-11-10 01:40:33 +02:00
Bananymous
2f38306c6b
LibC: Implement simple posix_spawn{,p}
...
This does not support file_actions or attributes
2025-11-10 01:40:33 +02:00
Bananymous
4b36e5197d
LibC: Implement execvpe
...
This is not part of posix but it seems handy
2025-11-09 16:12:29 +02:00
Bananymous
b755cf3e42
LibC: Add sockatmark stub
2025-11-07 14:57:00 +02:00
Bananymous
3acad7c911
LibC: Add ifreq.ifr_{flags,mtu} and fix defines
...
compatibility defines for ifr_{netmask,gwaddr,hwaddr} were wrong
2025-11-07 14:55:30 +02:00
Bananymous
f3319016c4
LibC: Implement if_{,free}nameindex
2025-11-07 14:54:53 +02:00
Bananymous
4e14f7d483
LibC: Implement {,l,ll}{abs,div}
2025-11-06 23:20:35 +02:00
Bananymous
979059c804
Kernel: Implement ext2 symlinks with >= 60 byte target
2025-11-06 17:21:36 +02:00
Bananymous
bdf4423512
ports/freetype: Add missing dependencies
2025-11-04 23:06:13 +02:00
Bananymous
c6ef4b5840
userspace: Implement kill utility
2025-11-04 19:19:46 +02:00
Bananymous
acd792d8b4
userspace: Implement pwd utility
2025-11-04 18:46:13 +02:00
Bananymous
fc730679ed
userspace: Implement uname utility
2025-11-04 18:45:20 +02:00
Bananymous
00e5749e20
ports: Add SuperTux port
2025-11-02 22:47:02 +02:00
Bananymous
7b4d349574
ports: Add glm port
2025-11-02 22:47:02 +02:00
Bananymous
dc0cccfb6c
ports: Add physfs port
2025-11-02 22:47:02 +02:00
Bananymous
fdc1daefb6
ports: Add libvorbis port
2025-11-02 22:47:02 +02:00
Bananymous
c9159b81c8
ports: Add libogg port
2025-11-02 22:47:02 +02:00
Bananymous
9233049356
ports: Add openal-soft port
2025-11-02 22:47:02 +02:00
Bananymous
bd9015e474
ports: Add libsndfile port
2025-11-02 22:47:02 +02:00
Bananymous
3a79540d2d
ports: Add SDL2_image port
2025-11-02 22:47:02 +02:00
Bananymous
9e500dc387
ports: Add boost port
2025-11-02 22:47:02 +02:00
Bananymous
e05a735589
DynamicLoader: Honour STB_LOCAL binding
2025-11-02 22:47:02 +02:00
Bananymous
0be18c4a53
DynamicLoader: Make everything thread safe
...
This is kinda dumb implementation, but it works. We grap a global lock
on functions :)
2025-11-02 22:47:02 +02:00
Bananymous
e258fde25a
LibC: Implement unnamed semaphores
2025-11-02 21:11:16 +02:00
Bananymous
7367672570
Kernel: Default initialize flock as unlocked
...
This caused unlocked flock's to hang on lock
2025-11-02 21:10:13 +02:00
Bananymous
b822d42889
LibC: Define ESHUTDOWN
...
This is not used but some ports expect it to exist
2025-11-02 21:09:48 +02:00
Bananymous
10084ff1bb
LibC: Define FIONBIO
...
This doesn't do anything but some ports expect it to exist
2025-11-02 21:07:26 +02:00
Bananymous
c3c69ac727
LibC: Update _POSIX_* definitions and extern environ
...
environ is externed by other operating systems so some ports expect it
to be there
2025-10-30 16:49:12 +02:00
Bananymous
0cfda6f6a7
LibC: Add posix_fadvise as no-op
2025-10-30 16:34:03 +02:00
Bananymous
dc51ce9e92
LibC: Implement readdir_r and fix memory leak
2025-10-30 16:33:17 +02:00
Bananymous
aa0de2b00e
LibC: Fix stack_t::ss_sp type from void** -> void*
2025-10-30 15:43:25 +02:00
Bananymous
5f61581e1d
Kernel: Show QR code with panic logs on kernel panic
...
This makes debugging on real hardware easier!
2025-10-28 05:50:19 +02:00
Bananymous
f519cb2cc0
Kernel: Expose boot framebuffer device
2025-10-28 05:50:19 +02:00
Bananymous
37aef630d2
BAN: Fix Array and Vector span constness
2025-10-28 05:50:19 +02:00
Bananymous
d93fcff5db
userspace: Add LibQR
...
This library can be used to generate QR codes
2025-10-28 05:50:19 +02:00
Bananymous
4952a82af5
LibImage: Use LibDEFLATE instead of builtin DEFLATE decompressor
2025-10-28 05:50:19 +02:00
Bananymous
fecda6a034
userspace: Add LibDEFLATE
...
This can be used to compress and decompress DEFLATE data either in raw
or zlib format
2025-10-28 05:50:19 +02:00
Bananymous
9f0addbd8b
BAN: Implement simple priority queue
...
This is just a wrapper around BAN::Vector and heap functions
2025-10-26 00:32:00 +03:00
Bananymous
7f8ea6b8e0
BAN: Move heap functions to Heap.h
...
This also adds push_heap and pop_heap, similar to what C++ standard
library provides
2025-10-26 00:31:06 +03:00
Bananymous
9d3ea6fed7
BAN: Use new it_value_type_t in sorting functions
2025-10-26 00:30:51 +03:00
Bananymous
703b3eda56
BAN: Add it_value_type_t
...
This is a template that resolves into T for pointers to T and T::value_type otherwise. It allows using the underlaying type of an iterator or pointer for range based algorithms
2025-10-26 00:22:35 +03:00
Bananymous
84006e1e77
BuildSystem: Don't set symlink mode
...
Only call chmod if the file is not a symlink. Older versions of chmod
(shipped with ubuntu) don't support the -h flag.
2025-10-02 17:05:20 +03:00
Bananymous
73fb085a41
LibC: Add inet_pton for IPv4 addresses
2025-10-02 16:19:49 +03:00
Bananymous
c89780178f
LibC: Add sys/polls.h as wrapper for poll.h
...
some ports require this
2025-10-02 16:02:07 +03:00
Bananymous
2ac3976924
ports/libiconv: Fix download url
...
remove /pub/ part of url as mirrors don't seem to accept it
2025-10-02 15:54:55 +03:00
Bananymous
ac9dbd24e4
ports/vim: Fix compilation on new toolchain
2025-09-30 16:15:05 +03:00
Bananymous
3af9830a2e
ports/tuxraces: Cleanup cflag passing
2025-09-30 16:14:40 +03:00
Bananymous
da6b8eb2ab
BuildSystem: Use ftpmirror.gnu.org for downloads
...
ftp.gnu.org is really slow :(
2025-09-30 16:13:38 +03:00
Bananymous
da39e98adf
Kernel: Make F11 drop disk cache
...
This can be useful to detect memory leaks or something
2025-08-31 00:36:59 +03:00
Bananymous
791a541381
Kernel: Implement process stopping and continuing
2025-08-31 00:34:52 +03:00
Bananymous
56684e753b
Kernel: Fix PS/2 legacy controller detection
...
This was wrong for devices without FADT or pre revision 3 FADT
2025-08-29 21:07:33 +03:00
Bananymous
c7298edf65
Kernel: Clone executable path on fork
...
Before this forked processes had empty executables
2025-08-29 01:41:18 +03:00
Bananymous
30215963b2
Kernel: Fix /proc/<pid>/exe permissions
2025-08-29 01:40:56 +03:00
Bananymous
f15f88ebd6
TaskBar: Don't leak fds when reading battery info
2025-08-28 15:57:10 +03:00
Bananymous
391fc0c4c2
Kernel: Don't crash if Ext2 filesystem doing too many fileops
...
I had a hardlimit of 10 block buffers and if they ran out, the kernel
would crash. this patchs increases the number of buffers to 16 and
removes the crash condition when they run out :D
2025-08-28 15:55:40 +03:00
Bananymous
948ef2c820
Kernel: Fix race condition when destroying threads
2025-08-28 15:55:40 +03:00
Bananymous
c1b6b6b76a
Kernel: Fix string validation in unlink syscall
2025-08-28 15:55:40 +03:00
Bananymous
a8bb07052e
Kernel: Rewrite SMP message code
...
Remove locks and map smp buffer as uncached
2025-08-28 15:55:40 +03:00
Bananymous
6976a2dae7
Kernel: Add hardlink support to USTAR
...
Also handle file types L and K for long file names and link names
2025-08-28 15:55:40 +03:00
Bananymous
51cd951b4c
Kernel: Add hardlink support to tmpfs
2025-08-28 15:55:40 +03:00
Bananymous
16a5a234c1
Kernel: Cleanup hardlink creation
2025-08-28 15:55:40 +03:00
Bananymous
f994210927
LibC: Fix sigsetjmp (again)
...
I was using a wrong register for signal mask storage...
2025-08-28 15:55:40 +03:00
Bananymous
aaa8760d09
Kernel: Don't wait for ps2 timeout when flushing buffer
...
This speeds up boot time by a second :dd:
2025-08-28 15:55:40 +03:00
Bananymous
cea19ecc31
Kernel: Fix possible crash during exec
2025-08-28 15:55:40 +03:00
Bananymous
706cfeb443
Kernel: Allow file backed mapping be larger than inode size
...
This is only allowed if the mapping does **not** exceed a page boundary.
Some port was doing an exactly two-page-mapping on a file that was one
and a half page long
2025-08-28 15:55:40 +03:00
Bananymous
d9c91589f0
Kernel: Don't limit /tmp max size
2025-08-28 15:55:40 +03:00
Bananymous
9854691265
LibC: Don't leak fds on rename
2025-08-28 15:55:40 +03:00
Bananymous
32afa33a06
LibC: Make sure FILE's buffer does not get overflown
2025-08-28 15:55:40 +03:00
Bananymous
c6946d0145
LibC: Use pthread_mutex on FILE instead of atomics
2025-08-28 15:55:40 +03:00