Commit Graph

2840 Commits

Author SHA1 Message Date
Connor-GH 1016fdf01e fix test regression caused by !1250
MR https://gitlab.redox-os.org/redox-os/relibc/-/merge_requests/1250 was
done in order to try and patch out an `EINVAL` error, and it was
successful in doing so. Unfortunately, fixing one failure caused
another.

I will continue to do what I can to make relibc's FS layer and redoxFS
smaller, as they have way too much duplicated code.
2026-05-04 14:20:02 -05:00
Jeremy Soller 36d2efa334 Merge branch 'more-redox-pal-cleanups' into 'master'
platform/redox: migrate more functions to use their *at variants

See merge request redox-os/relibc!1261
2026-05-04 11:48:45 -06:00
Connor-GH cf65eedbaf platform/redox: migrate more functions to use their *at variants
Additionally, this adds the `SYMLOOP_MAX` constant in `limits.h` to
replace the `MAX_LEVEL` magic number used during symlink resolution.

`fstat` was kept because it is more difficult than the others to do a
drop-in replacement in terms of `fstatat` for since a naive approach
would cause mutual recursion.
2026-05-04 11:44:53 -05:00
auronandace f6f4d8f71d export struct via function 2026-05-04 15:22:19 +01:00
auronandace 2dd36566de split out timeval to reduce namespace pollution 2026-05-04 15:05:30 +01:00
Jeremy Soller 4bff41fe78 Merge branch 'epoll-event-needless-update' into 'master'
address needless_update clippy lint for epoll_event

See merge request redox-os/relibc!1259
2026-05-04 07:32:44 -06:00
Jeremy Soller a93268f247 Merge branch 'split-susecondst' into 'master'
split out suseconds_t for namespace pollution reduction preparation

See merge request redox-os/relibc!1258
2026-05-04 07:07:24 -06:00
auronandace 400448b011 address needless_update clippy lint for epoll_event 2026-05-04 14:05:41 +01:00
auronandace 1cd9d8769d split out suseconds_t for namespace pollution reduction preparation 2026-05-04 13:38:33 +01:00
auronandace 1edd7a63d7 verify time header includes 2026-05-04 09:05:32 +01:00
auronandace 8cec0c2280 import socklen_t from sys_socket instead of bits 2026-05-03 16:54:46 +01:00
auronandace 5ad5058324 fix typo 2026-05-03 14:43:34 +01:00
auronandace 05b8ffbcb7 import timespec from time rather than bits 2026-05-03 14:33:39 +01:00
Jeremy Soller 135753d0e6 Merge branch 'split-timet' into 'master'
Split timet

See merge request redox-os/relibc!1253
2026-05-03 06:20:16 -06:00
auronandace 356d2e18d2 cargo fmt and fix clippy lints in fmtmsg 2026-05-03 08:35:29 +01:00
auronandace 8d2bcee829 split out time_t to prepare for reducing namespace pollution 2026-05-03 08:30:35 +01:00
Wildan M ea667cdca1 Support disarming timer 2026-05-03 05:06:25 +07:00
Wildan M 9188a9e354 Make timer_internal_t atomic 2026-05-03 05:02:29 +07:00
Wildan M d16dfade59 Use less cloning for timespec 2026-05-03 03:21:06 +07:00
Wildan M 7b0354ca3d Use type casts for timespec conversion 2026-05-03 03:09:52 +07:00
Wildan M 64911d582f Fix types for sys/epoll 2026-05-02 15:02:41 +07:00
Connor-GH 76d801f7cd openat2: fix internal assumption causing EINVAL
Inside of `openat2`, we are assuming that if we are passed
`AT_SYMLINK_NOFOLLOW` that we are also passed a symlink. This is simply
not the case, as POSIX defines the flag to only have a noticable effect
if the resolved path is a symlink. Therefore, we cannot assume that we
have a symlink if we see `AT_SYMLINK_NOFOLLOW`. The previous behavior
caused an `EINVAL` in redoxfs because we do a consistency check to
error out if we are passed `O_SYMLINK` (which was added because
`AT_SYMLINK_NOFOLLOW` was observed) and aren't a symlink.

Hmm, maybe a special errno like `ENOTLNK` should be deployed for this? It's
specific enough that it could possibly be added to a future POSIX.
2026-05-01 17:01:39 -05:00
Jeremy Soller 19d380f198 Merge branch 'misc-clippy-fixes' into 'master'
fix some lints caught by Clippy

See merge request redox-os/relibc!1248
2026-05-01 07:04:57 -06:00
auronandace d057fdd40a add and document missing constants in fmtmsg 2026-05-01 13:39:45 +01:00
Mustafa öz 03d56f4887 Add fmtmsg 2026-05-01 06:00:11 +01:00
Connor-GH 7c8259dfd6 fix some lints caught by Clippy
Most of these changes are very simple. Among the changes made involve
taking advantage of auto-deref (`(*val).foo()` -> `val.foo()`) and
removing instances where we create a ref and immediately dereference it
(`&*val` -> `val`). There was a pretty neat case in `posix_openpt` where
some pointer verbosity was able to be reduced by using the more modern C
strings rather than the byte strings with an explicit NUL at the end.

Additionally, `exit()` now calls `unreachable!()` at the end. We
previously did `loop {}`, but clippy didn't like this. It can be up for
debate whether we want to make this `unreachable_unchecked` or similar.

There is only one change that might cause any sort of concern, and that
is the change from `.skip_while(!p).next()` -> `.find(p)`. This, like
everything else, was caught in a Clippy lint but I believe it deserves
some explanation because it isn't immediately obvious. Info about the
lint is here: https://rust-lang.github.io/rust-clippy/rust-1.89.0/index.html#skip_while_next
2026-04-30 19:02:35 -05:00
Jeremy Soller c1912066a1 Merge branch 'poll-descriptions' into 'master'
add some descriptions for items in the poll header

See merge request redox-os/relibc!1247
2026-04-30 11:11:43 -06:00
Jeremy Soller 9629d50c89 Merge branch 'open-fix' into 'master'
Fix open permission and add umask test

See merge request redox-os/relibc!1246
2026-04-30 11:11:05 -06:00
Jeremy Soller 55d5d6048c Merge branch 'verify-sysselect-includes' into 'master'
verify sys_select header includes

See merge request redox-os/relibc!1245
2026-04-30 11:10:47 -06:00
auronandace 524a9fb634 add some descriptions for items in the poll header 2026-04-30 10:29:28 +01:00
Wildan M 598d34d8a0 Fix open permission and add umask test 2026-04-30 16:08:05 +07:00
auronandace 6fafb81f02 verify sys_select header includes 2026-04-30 08:56:19 +01:00
auronandace e1b39d786f verify poll header includes 2026-04-30 08:23:05 +01:00
Connor-GH 22faf6b615 fchownat: fix behavior for uid == -1 && gid == -1
Previously, this would error with EINVAL since the conversion to
unsigned int would fail on -1. Now, we do a bitwise conversion via
an `as` cast.
2026-04-29 15:23:56 -05:00
Jeremy Soller 861bbb024a Merge branch 'split-sigset-t' into 'master'
split out sigset_t from signal header

See merge request redox-os/relibc!1242
2026-04-29 06:51:47 -06:00
Jeremy Soller 7747064459 Merge branch 'sys-utsname-tar' into 'master'
disambiguate include guards and export C strings

See merge request redox-os/relibc!1241
2026-04-29 06:51:06 -06:00
Jeremy Soller ad36f13c9a Merge branch 'mesa-strings' into 'master'
import strings header in string for mesa

See merge request redox-os/relibc!1240
2026-04-29 06:50:45 -06:00
Jeremy Soller 250d42880f Merge branch 'sys-stat-statvfs' into 'master'
disambiguate include guards for sys_stat and sys_statvfs

See merge request redox-os/relibc!1239
2026-04-29 06:46:41 -06:00
Jeremy Soller bb496ce10a Merge branch 'unistd-trailer' into 'master'
change unistd cbindgen trailer to after_includes

See merge request redox-os/relibc!1238
2026-04-29 06:40:59 -06:00
auronandace 6a490be2c6 split out sigset_t from signal header 2026-04-29 12:29:43 +01:00
auronandace 323061f51c disambiguate include guards and export C strings 2026-04-29 10:36:13 +01:00
auronandace 4dfbb97a69 import strings header in string for mesa 2026-04-29 09:57:11 +01:00
auronandace d86583c1f5 disambiguate include guards for sys_stat and sys_statvfs 2026-04-29 09:01:50 +01:00
auronandace 88ac8e3f30 change unistd cbindgen trailer to after_includes 2026-04-29 08:30:55 +01:00
auronandace 798d929254 remove unused C header 2026-04-29 08:09:37 +01:00
bjorn3 79b469f29d Remove support for _init and _fini in statically linked executables
These are legacy predecessors of .init_array/.fini_array. They were
already not supported by the dynamic linker.
2026-04-28 17:59:45 +02:00
bjorn3 e34b259822 Cleanup building of libc.so and ld.so 2026-04-28 17:16:30 +02:00
Jeremy Soller 6c2edd8efd Merge branch 'verify-sysmman-includes' into 'master'
verify sys_mman header includes

See merge request redox-os/relibc!1234
2026-04-27 12:27:28 -06:00
auronandace 31052b5ef5 verify sys_mman header includes 2026-04-27 16:06:17 +01:00
auronandace df5deb2b59 use uint32_t for n_net in netent 2026-04-27 15:09:53 +01:00