Commit Graph

1950 Commits

Author SHA1 Message Date
Josh Megnauth e39b27664f unsafe_op_in_unsafe_fn: ld_so, generic/redox-rt
There are a few functions where I allowed the lint. The lower level and
FFI nature of relibc means that there are areas with a lot of unsafe.
Some functions are basically long blocks of unsafe or contain lots of
small blocks of unsafe. unsafe_op_in_unsafe_fn doesn't add clarity to
these functions. Instead, it reduces readability by adding an indent or
small "unsafe { .. }" clutter.
2025-10-04 21:36:51 -04:00
Jeremy Soller ced734c162 Add RawCell::unsafe_set 2025-10-04 07:50:16 -06:00
Jeremy Soller 82084440ad Support nightly-2025-10-03 2025-10-03 21:51:10 -06:00
4lDO2 618b43ccae Add RawCell<T> wrapper. 2025-10-03 20:24:08 +02:00
Jeremy Soller 43b0f235ca Implement pthread_getattr_np 2025-09-30 12:49:22 -06:00
Jeremy Soller d39fe6c9fb Make sure TLS modules are aligned to 16 bytes for SSE 2025-09-29 17:08:51 -06:00
Jeremy Soller f35ddf0ec1 Merge branch 'getpeername-fix' into 'master'
Fix panic on getpeername

See merge request redox-os/relibc!728
2025-09-26 14:25:16 -06:00
Wildan M 8fa68e2927 fmt 2025-09-27 01:13:14 +07:00
Wildan M 7527de3a25 Fix panic on getpeername 2025-09-27 01:02:20 +07:00
Josh Megnauth b22f333319 Fix Linux build 2025-09-26 02:05:03 -04:00
Wildan Mubarok 7416ba6ff3 Implement posix_getdents 2025-09-23 10:57:13 -06:00
Wildan Mubarok a4aa1a30a3 Fix timespec for semaphore 2025-09-23 00:44:02 +00:00
Jeremy Soller 6110a77044 Merge branch 'cstr_strchr' into 'master'
Add safe strchr method for CStr.

See merge request redox-os/relibc!723
2025-09-21 10:35:10 -06:00
4lDO2 9aeb9abd97 Add safe strchr method for CStr. 2025-09-21 17:00:45 +02:00
Jeremy Soller 38d667a58e Merge branch 'printf-use-float-abs' into 'master'
printf: Use f64::abs

See merge request redox-os/relibc!639
2025-09-21 08:17:46 -06:00
Josh Megnauth 85c5e889fb Implement fchmodat
Capability based `fchmod`. I also implemented unit tests for chmod,
fchmod, and fchmodat.

The unit tests check Redox-specific behavior, so some of the tests are
disabled for Linux.
2025-09-21 10:04:11 -04:00
Jacob Lorentzon 9c5f11fbc8 Add Out<T> wrapper 2025-09-21 14:36:12 +02:00
Josh Megnauth 1a2c8175d4 printf: Use f64::abs 2025-09-21 06:52:59 +00:00
4lDO2 38e724ece9 Properly inherit ignored sigs across exec. 2025-09-20 11:08:41 +02:00
Jeremy Soller 9fa3eceaeb Implement getsockaddr for SO_DOMAIN and SO_TYPE 2025-09-19 14:59:47 -06:00
Wildan M b541ee43be Change PATH separator to double colon 2025-09-19 21:48:38 +07:00
Jeremy Soller f4a7bcf92d Merge branch 'shadow-h' into 'master'
Implement shadow.h and argon2 crypt

See merge request redox-os/relibc!718
2025-09-19 06:45:18 -06:00
Wildan M b8598f50ff Add argon2 crypt 2025-09-19 15:41:05 +07:00
Wildan M d3e44fa6b9 Apparently need to import FILE constant 2025-09-19 14:37:49 +07:00
Wildan M 0636af21a4 Add shadow.h support 2025-09-19 14:04:55 +07:00
auronandace 1bacd51b81 specify the type properly 2025-09-18 16:30:30 +01:00
auronandace 6607549abf add constant to fnmatch.h 2025-09-18 16:17:11 +01:00
Josh Megnauth 03c0e3024c Export fexecve
It turns out we have fexecve but it wasn't exported in unistd.h.

Related: #184
2025-09-18 02:38:15 -04:00
Josh Megnauth c555503a35 Implement readlinkat
Like readlink except capability based. Most of this patch is refactoring
fstatat into a reusable, openat-like private function.
2025-09-18 01:27:55 +00:00
Josh Megnauth c6a9a165ec Implement fdopendir and fdclosedir
`fdopendir` takes ownership of a directory file descriptor instead of
opening one with a path. `fdclosedir` is a FreeBSD extension that
transfers ownership of the file descriptor in DIR to the user.
2025-09-17 08:24:48 -04:00
elle 5613fe2cdb lib: remove unused Nightly features
Removes unused Nightly features from the library.
2025-09-16 18:37:33 +00:00
Wildan Mubarok 2f35c4a665 Fix getgrouplist len 2025-09-15 21:29:27 +00:00
Wildan Mubarok 94fbdd5159 Fix grp implementation 2025-09-15 21:14:53 +00:00
Jeremy Soller fdb7532a67 Merge branch 'null_getaddrinfo' into 'master'
Implement getaddrinfo NULL nodename, AI_PASSIVE, AI_NUMERICHOST

Closes #223

See merge request redox-os/relibc!710
2025-09-15 06:47:27 -06:00
Wildan M 726a0fb1a8 Implement getaddrinfo NULL nodename, AI_PASSIVE, AI_NUMERICHOST 2025-09-15 15:10:50 +07:00
Josh Megnauth 28901b1b62 Impl AT_SYMLINK_NOFOLLOW and AT_EMPTY_PATH
AT_SYMLINK_NOFOLLOW acts on the symlink itself rather than following it.

AT_EMPTY_PATH acts on the directory if path is empty.

Currently, this is implemented in fstatat itself but the code is general
enough to be refactored once we get the other *at functions. It could
likely just live in openat itself.
2025-09-15 06:12:10 +00:00
Jeremy Soller e1fa1ee7b7 Merge branch 'real_cpu' into 'master'
Implement reading CPU count

See merge request redox-os/relibc!709
2025-09-14 06:31:16 -06:00
Wildan M d527cf455f Implement reading CPU count 2025-09-14 18:45:38 +07:00
4lDO2 e0f44e5ff5 Correct chdir comment. 2025-09-11 13:40:11 +02:00
Jeremy Soller 7c4a87da39 Merge branch 'getens' into 'master'
Add getens and expose it to libredox

See merge request redox-os/relibc!705
2025-09-09 07:35:19 -06:00
Ibuki Omatsu b14aae168f Add getens and expose it to libredox 2025-09-09 07:35:19 -06:00
elle a5c41f77d0 ld_so: remove access dead code 2025-09-08 21:03:27 +00:00
elle 5d77f617f5 ld_so: use mutex for _r_debug
Uses a `spin::Mutex` for the global static `_r_debug` instance to remove
warning about a global mutable static.

Guarantees exclusive mutable access to the `_r_debug` variable.
2025-09-08 20:23:36 +00:00
elle a434c0ef12 cargo: add explicit editions
Adds explicit `edition` definitions to sub-crates.
2025-09-08 20:23:36 +00:00
elle 09015a218e ld_so: remove unsafe transmute in mmap_and_copy
Refactors casting the `raw` address as a byte array to use idiomatic
Rust APIs instead of the unsafe call to `transmute`.
2025-09-08 20:23:36 +00:00
Jeremy Soller 7e0c6a91e0 Merge branch 'refactor/remove-array-chunks' into 'master'
lib: remove `array_chunks` nightly feature

See merge request redox-os/relibc!703
2025-09-08 12:22:19 -06:00
elle bd13557f98 lib: remove array_chunks nightly feature
Removes the nightly `array_chunks` feature, since it is marked as
unlikely to be merged.

Usage is trivially refactored using iterators.
2025-09-08 17:08:22 +00:00
Jeremy Soller 0a13e2574f Fix sigsetjmp definition on riscv64 2025-09-07 20:04:10 -06:00
Josh Megnauth 55c2e5b8ea Fix renaming broken symbolic link
Closes: #212

The fix is simply to not follow links when opening a file to be renamed.
O_NOFOLLOW, a non-POSIX extension, does exactly that while not needing
renameat or openat.
2025-09-07 07:44:10 -04:00
Jeremy Soller 705270dba3 Merge branch 'const-init-pthread_atfork' into 'master'
Const init pthread_atfork; export in pthread.h

See merge request redox-os/relibc!698
2025-09-06 07:13:16 -06:00