Commit Graph

3183 Commits

Author SHA1 Message Date
Jeremy Soller 52ceed2f67 Merge branch 'doc-netdb-and-poll' into 'master'
Doc netdb and poll

See merge request redox-os/relibc!785
2025-12-08 06:16:57 -07: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
Jeremy Soller ff7ab99baf Merge branch 'fix-time-test' into 'master'
mark timespec_get and timespec_getres as unsafe and annotate no mangle

See merge request redox-os/relibc!784
2025-12-07 15:49:07 -07: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 d3f54836d1 Merge branch 'cleanup_exec' into 'master'
Account for nul terminator in total_args_envs_auxvpointee_size

See merge request redox-os/relibc!782
2025-12-07 11:40:27 -07:00
bjorn3 45a58f1a9e Account for nul terminator in total_args_envs_auxvpointee_size 2025-12-07 19:38:14 +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
bjorn3 6021ece539 Calculate total_args_envs_size in redox_rt::proc::fexec_impl
Calculating it earlier is a micro-optimization that doesn't seem like it
matters at all compared to all other costs of spawning a process. But at
the same time it makes things more fragile. And in fact bootstrap
actually passed the wrong value. It passed the
total_args_envs_auxvpointee_size that it computed rather than the
total_args_envs_size. While over-approximation doesn't cause UB, it
unnecessarily increases the amount of memory used after exec.

In addition pass &[&[u8]] rather than iterators for args and envs to
enable precomputing the total arg and env size. This also prevents you
from forgetting to pass a reversed iterator.
2025-12-07 18:52:47 +01:00
Jeremy Soller 6609f127be Merge branch 'doc-select-utsname' into 'master'
Doc select utsname

See merge request redox-os/relibc!780
2025-12-07 10:13:47 -07:00
auronandace bb7ad19792 only import the needed types for sys_utsname and sys_select 2025-12-07 17:04:59 +00:00
auronandace 64d688dc4e update and add spec links to sys_utsname and sys_select 2025-12-07 17:01:51 +00:00
Connor-GH 1b86d87475 printf: use None if precision given in the next argument is negative 2025-12-07 10:16:33 -06:00
Jeremy Soller 228420291e Merge branch 'dlinfo-alias' into 'master'
Fix Dl_info alias not exported

See merge request redox-os/relibc!778
2025-12-05 06:15:10 -07:00
Wildan M 8e4e43dcc4 Fix Dl_info alias not exported 2025-12-05 16:14:29 +07:00
Jeremy Soller 2a7c7c5d42 Merge branch 'impl-timespec_get' into 'master'
Implement timespec_get and timespec_getres

See merge request redox-os/relibc!777
2025-12-04 14:00:24 -07:00
Josh Megnauth 4538fdb0c9 Implement timespec_get and timespec_getres
`timespec_get` and `timespec_getres` are both C23 functions. They're
similar to the POSIX functions `clock_gettime` and `clock_getres`, but
both sets of functions define extra, exclusive features. I didn't
implement the extra features yet, partially because Redox doesn't seem
to support them yet either.
2025-12-04 20:38:35 +00:00
Jeremy Soller 14b011da84 Merge branch 'p0' into 'master'
fix(platform/redox): add missing imports

See merge request redox-os/relibc!776
2025-12-04 08:33:53 -07:00
Anhad Singh e7b6c25d72 fix(platform/redox): add missing imports
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-05 01:07:18 +11:00
Jeremy Soller ca669fc60d Merge branch 'doc-locale-and-sched' into 'master'
Doc locale and sched

See merge request redox-os/relibc!775
2025-12-04 06:20:21 -07:00
auronandace 1ce298eaa9 only import needed types in locale and sched 2025-12-04 09:11:57 +00:00
auronandace f0850889d2 update and add spec links to locale and sched 2025-12-04 09:08:14 +00:00
Jeremy Soller 1b6c0d94b9 Merge branch 'p0' into 'master'
fix(platform/redox): fstatat

See merge request redox-os/relibc!774
2025-12-03 17:53:51 -07:00
Anhad Singh 5e1036bc15 fix(platform/redox): fstatat
This commit fixes multiple issues with `fstatat` implementation for
Redox.

1. `flags` are now properly handled. The `flags` argument specifies AT_* flags
   not O_* flags.
2. Open with O_PATH to avoid actually *opening* the file which may block
   or cause permission issues.
3. Close the temporary file descriptor regardless of success of failure.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-04 11:31:24 +11:00
Jeremy Soller 9baf4d5c68 Merge branch 'doc-sysstat-and-syssocket' into 'master'
Doc sysstat and syssocket

See merge request redox-os/relibc!773
2025-12-03 07:47:14 -07:00
auronandace 1e27ad561f only import needed types in sys_socket and sys_stat 2025-12-03 14:16:19 +00:00
auronandace cae30932b3 update and add spec links in sys_socket and sys_stat 2025-12-03 14:06:55 +00:00
Jeremy Soller c24f4bdd54 Merge branch 'correct-dlfcn' into 'master'
Correct dlfcn

See merge request redox-os/relibc!772
2025-12-03 03:50:08 -07:00
auronandace 5e6c9b8868 make Dl_info_t the type and Dl_info the alias 2025-12-02 20:26:28 +00:00
auronandace a702cb9555 only imported needed types in dlfcn 2025-12-02 20:24:05 +00:00
Jeremy Soller 96c0c058f5 Merge branch 'cleanup-sys-wait' into 'master'
Cleanup sys wait

See merge request redox-os/relibc!771
2025-12-02 12:43:07 -07:00
auronandace 68b4693564 only import needed types in sys_wait 2025-12-02 19:37:16 +00:00
auronandace ec9fd09335 update header spec link, add spec links to functions 2025-12-02 19:34:32 +00:00
auronandace ccc1d0b6fe remove commented out wait3 and rusage 2025-12-02 19:30:19 +00:00
Jeremy Soller cf3aaf4e43 Merge branch 'only-needed-sys-un-uio' into 'master'
only import the needed types in sys_un and sys_uio

See merge request redox-os/relibc!770
2025-12-02 09:54:04 -07:00
auronandace 02b302253b only import the needed types in sys_un and sys_uio 2025-12-02 15:41:01 +00:00
Jeremy Soller f15163704e Merge branch 'master' into 'master'
fix(all): aarch64 compilation

See merge request redox-os/relibc!769
2025-11-30 21:16:31 -07:00
Anhad Singh 1fdddef6a0 fix(ld_so): linker script for aarch64-unknown-linux-gnu
Ignore TLS.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 15:10:50 +11:00
Anhad Singh a7d08aa37e fix(tests/getopt_long): c should be an int not a char
`getopt_long` returns an `int` not a `char`. On aarch64 `char` is
unsigned but on x86 is signed. This is why it had worked so far without
any issues.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:55:00 +11:00
Anhad Singh 6bcdac4202 fix(platform/linux): use FCHOWNAT to implement lchown(2)
`LCHOWN` syscall is not available on aarch64.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:46:08 +11:00
Anhad Singh 6d68ca9957 fix(platform/linux): use FACCESSAT to implement access(2)
`ACCESS` syscall is not available on aarch64.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:46:08 +11:00
Anhad Singh 90963fdfb9 feat(platform/linux): stub rlct_clone
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:46:07 +11:00
Anhad Singh 4f1920ab96 feat(ld_so/tcb): implement os_arch_activate for aarch64 linux
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:46:07 +11:00
Anhad Singh 6262c4ae50 fix(ld_so): getting TP on linux
`ARCH_GET_FS` is x86_64 specific. On aarch64 it is not platform
specific and just need to read out the TP from `TPIDR_EL0`

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:46:07 +11:00
Anhad Singh 35a10eb940 feat(ld_so): add linker script for aarch64-unknown-linux-gnu
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:46:07 +11:00
Anhad Singh 7f21c95503 misc(Cargo.toml): bump sc
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-01 14:46:07 +11:00