Commit Graph

2094 Commits

Author SHA1 Message Date
Wildan M e2f8eb43a6 Reduce logs on openlibm and warning on time.h 2025-12-19 15:06:20 +07:00
Jeremy Soller 2c8c15aa45 Merge branch 'master' into 'master'
fix(sync/futex_wait): handle `EINTR`

See merge request redox-os/relibc!819
2025-12-18 20:15:05 -07:00
Anhad Singh 415d0f9edc fix(sync/futex_wait): handle EINTR
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-19 14:10:55 +11:00
Ibuki Omatsu efa5b73015 refactor: Replace unlink and rmdir with unlinkat. Improve fork using ForkScratchPad. 2025-12-17 18:32:07 -07:00
bjorn3 22f5f23642 Support dumb buffer drm ioctls 2025-12-17 22:56:11 +01:00
bjorn3 2199c0fa10 Remove unused method from drm::Dev 2025-12-17 22:14:32 +01:00
Bendeguz Pisch 89d7ed0120 Allow NULL as longindex parameter on getopt_long 2025-12-17 18:34:28 +01:00
auronandace 0392c0b736 fix strlcat and strlcpy bytes amount 2025-12-17 14:56:59 +00:00
Jeremy Soller 3ebd43b4ce Merge branch 'drm' into 'master'
Implement DRM ioctls for Redox

See merge request redox-os/relibc!801
2025-12-16 12:56:22 -07:00
bjorn3 61dc527156 Move drm ioctl (de)serialization into a new redox-ioctl crate
This will make it easier to share this code with gpu drivers in the base
repo.
2025-12-16 20:38:05 +01:00
auronandace 95f7a12b8b only import needed types 2025-12-16 16:46:05 +00:00
auronandace 887a53c1b2 update and add spec links 2025-12-16 16:42:08 +00:00
auronandace e913e2447b fix fmt 2025-12-16 11:20:37 +00:00
auronandace 59295af7d8 mark 2 functions as unsafe 2025-12-16 11:14:02 +00:00
auronandace e041d5b552 only import needed types 2025-12-16 11:10:55 +00:00
auronandace 973b96a727 update and add spec links 2025-12-16 10:59:38 +00:00
bjorn3 c4ffcedbd0 Port remaining drm ioctls to the new infrastructure 2025-12-15 23:34:44 +01:00
bjorn3 cf90f89b42 Introduce infrastructure for serializing ioctls
And use it for a couple of drm interfaces
2025-12-15 22:26:52 +01:00
auronandace 6c62e7e401 fix strlcpy and strlcat 2025-12-15 07:58:44 +00:00
bjorn3 93f9401cf0 Use drm-sys for DRM types and consts 2025-12-14 22:32:43 +01:00
bjorn3 d70e2dc610 drm: Use new VERSION, GET_CAP and SET_CLIENT_CAP driver commands 2025-12-14 20:47:41 +01:00
bjorn3 395c686f8d Rustfmt 2025-12-14 20:46:36 +01:00
bjorn3 6bce162b92 Fix read-only and write-only ioctls
Read-only ioctls write data to userspace, while write-only ioctls read
data from userspace. This matches the read and write syscalls.
2025-12-14 20:45:26 +01:00
Jeremy Soller 105b24a21f Implement DRM ioctls for Redox 2025-12-14 08:39:00 -07:00
auronandace d2429a1164 only import the needed types 2025-12-13 21:10:51 +00:00
auronandace 59e028d96d Update and add spec links 2025-12-13 20:56:02 +00:00
auronandace eff0a795bc update and add spec links and only import needed types for sys_times and termios 2025-12-13 08:56:43 +00:00
auronandace db82136fe4 only import needed types in regex 2025-12-12 21:08:31 +00:00
auronandace 2b4c2f9ddf update and add spec links to regex 2025-12-12 21:06:15 +00:00
auronandace 329c7c42f8 only import needed types 2025-12-11 15:10:03 +00:00
auronandace a1b23a3dbf update and add spec links to grp 2025-12-11 15:06:57 +00:00
Wildan Mubarok d6eaa0dbf9 Fix missing symbols for ARM dynamic linking 2025-12-10 06:16:16 -07:00
Anhad Singh aa86e9e027 fix(riscv64/x86): build
Stub `__tlsdesc_dynamic` for riscv64/x86 for now.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-10 13:52:37 +11:00
Anhad Singh 64d3793190 fix(ld_so): page faulting when library not found
The error handling was already in place. The reason it was page faulting
is that, on failure, the function exits as soon as it encounters an
`Err` variant. When that happens, the DSO object for which the
dependency was being loaded is dropped. Dropping it calls `munmap` to
unload the executable and also runs the functions in `.fini`. However,
`run_fini` should only be called if the `DSO` is being unloaded after it
has been successfully loaded (i.e. all dependencies were satisfied and
all init functions had run).

Closes #1599

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-10 13:24:53 +11:00
bjorn3 dc77995b57 redox-rt: Remove unnecessary image_file field from FexecResult::Interp 2025-12-09 22:22:09 +01:00
bjorn3 0158b111e0 redox-rt: Use non-fixed and anonymous remote mmap 2025-12-09 21:04:40 +01:00
Anhad Singh 8572c855fc feat(ld_so/dso): TLSDESC
The dynamic linker now works on aarch64. You can also try it on Linux by
setting `TEST_RUNNER` to `qemu-aarch64` when running `make test
TARGET=aarch64-unknown-linux-gnu`

Co-authored-by: @willnode
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-09 22:28:39 +11:00
Jeremy Soller 7fcab3a43a Merge branch 'master' into 'master'
fix(ci): make it green

See merge request redox-os/relibc!786
2025-12-08 16:50:39 -07:00
Jeremy Soller ee9040873a Merge branch 'cleanup_exec3' into 'master'
Move cloexec handling to happen right before the final exec

Closes #234

See merge request redox-os/relibc!787
2025-12-08 16:48:24 -07:00
bjorn3 1ede79fe88 Move cloexec and deactivate_tcb handling into redox-rt 2025-12-08 22:19:57 +01:00
bjorn3 b607877c07 Move cloexec handling to happen right before the final exec
This way if the target can't be executed, cloexec fds remain open as
expected.
2025-12-08 20:39:55 +01:00
Anhad Singh eb4ce618e2 fix(header/time): define TIME_UTC
Workaround for a bug inside `cbindgen`. For some reason it does not like
us exporting constants that depend on other constants that are *not*
defined as a part of the same module.
2025-12-09 01:13:22 +11:00
auronandace 1ed1096e60 add clippy annotation to netdb thanks to safety note 2025-12-08 08:41:00 +00:00
auronandace 651768ad54 only import the needed types in netdb and poll 2025-12-08 08:34:38 +00:00
auronandace e45c7de6f6 update and add spec links for netdb and poll 2025-12-08 08:30:17 +00:00
auronandace 27bd869119 mark timespec_get and timespec_getres as unsafe and annotate no mangle 2025-12-07 21:07:49 +00:00
Jeremy Soller fe5273890a Merge branch 'cleanup_exec2' into 'master'
Hard code the default scheme to file

See merge request redox-os/relibc!783
2025-12-07 12:37:08 -07:00
bjorn3 4dae665cbf Hard code the default scheme to file
Init no longer changes the default scheme to initfs at any point in
time. And for sandboxing you would be switching scheme namespace, not
default scheme.

It should be possible to mix and match relibc version from before and
after this change without breaking exec, though I haven't tested it.
2025-12-07 19:51:45 +01:00
Jeremy Soller 8f38bbe511 Merge branch 'cleanup_exec' into 'master'
Calculate total_args_envs_size in redox_rt::proc::fexec_impl

See merge request redox-os/relibc!781
2025-12-07 11:31:56 -07:00
Jeremy Soller 9ace82b9e1 Merge branch 'printf-negative-precision-fix' into 'master'
printf: use None if precision given in the next argument is negative

See merge request redox-os/relibc!779
2025-12-07 11:29:01 -07:00