Commit Graph

2943 Commits

Author SHA1 Message Date
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 adc8f9f3b3 Merge branch 'lstat-unlink-test' into 'master'
Add lstat test

See merge request redox-os/relibc!701
2025-09-06 07:16:59 -06: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
Josh Megnauth 639e0f2cd7 Add lstat test 2025-09-05 23:59:36 -04:00
Josh Megnauth 51bc7f7d2c Const init pthread_atfork; export in pthread.h
`pthread_atfork` should be exported in pthread.h according to the
standard. We only exported our function in unistd.h. `glibc` exports it
in both pthread.h and unistd.h whereas musl only exports it in pthread.h
(which is standards compliant).

I exported it in both headers. Cbindgen doesn't seem to reexport `pub
use` so I declared the function twice. We might have to reexamine our
`pub use` to check what's exported and what isn't.
2025-09-01 22:21:15 -04:00
Jeremy Soller c281579ca1 Merge branch 'fix_clang_bindgen_issue' into 'master'
fixing bindgen c++ [[noreturn]] issue.

See merge request redox-os/relibc!697
2025-08-30 11:30:34 -06:00
Andrzej J. Skalski 42493b88eb fixing bindgen c++ [[noreturn]] issue. 2025-08-30 11:30:34 -06:00
Jeremy Soller 3bd7f21f05 Merge branch 'sem-timedwait' into 'master'
Add sem_timedwait and sem_clockwait

See merge request redox-os/relibc!696
2025-08-28 06:24:27 -06:00
Wildan M 4c6c5da8f2 fix fmt 2025-08-28 16:13:16 +07:00
Wildan M 80ea3bc6a1 Add sem_clockwait and fix timedwait clock_id 2025-08-28 12:58:54 +07:00
Wildan M 7ab71a0ad5 Add sem_timedwait 2025-08-28 08:36:16 +07:00
Jeremy Soller 3a08d40c67 Merge branch 'add-temporary-fstatat' into 'master'
Implement fstatat

See merge request redox-os/relibc!695
2025-08-27 06:42:55 -06:00
Josh Megnauth c899feb774 Implement fstatat
Linux's variant uses the syscall as intended. Redox's variant uses fpath
to build a path to pass to fstat from the file descriptor plus the file
name. Unlike the syscall, this isn't atomic so the liminal space between
fpath/getcwd and fstat is subject to TOCTOU.

Beyond fstatat, I moved the stat test to its correct location and added
an assert since the output of the test is unchecked.

I also added AT_FDCWD which seems to be -100 across Unixes. The other
AT_* constants are unimplemented for now.
2025-08-27 08:21:41 -04:00
Jeremy Soller fd9a1c9668 Workaround clang issue with [[noreturn]] in C files 2025-08-24 18:30:13 -06:00
Jeremy Soller 92bc01247a Merge branch 'add-confstr' into 'master'
Implement confstr (unistd.h)

See merge request redox-os/relibc!694
2025-08-22 21:36:06 -06:00
Josh Megnauth 9d2f5d95dc Implement confstr (unistd.h)
The implementation for confstr is straightforward. Most of the constants
return 1 on both musl and glibc. The only constant that doesn't is
required for Fish.

I also switched an #[unsafe(no_mangle)] from my last patch back
to a #[no_mangle] because we need to bump cbindgen. #[unsafe(no_mangle)]
is required for Rust 2024.
2025-08-22 22:13:51 -04:00
Jeremy Soller 4758685217 Merge branch 'netdb-openssh' into 'master'
Implement getnameinfo and getaddrinfo loopback

See merge request redox-os/relibc!693
2025-08-20 06:59:31 -06:00
Jeremy Soller d513ba003c Merge branch 'fix-linux-sysconf' into 'master'
Improve sysconf.h on Linux

Closes #218

See merge request redox-os/relibc!691
2025-08-20 06:58:27 -06:00
Jeremy Soller f046864f10 Merge branch 'ixany-openssh' into 'master'
Add termios IXANY

See merge request redox-os/relibc!692
2025-08-20 06:54:47 -06:00
Wildan M 14bb1c87c3 Fix fmt 2025-08-20 18:40:18 +07:00
Wildan M 5334455a20 Implement getnameinfo and getaddrinfo loopback 2025-08-20 18:26:27 +07:00
Wildan Mubarok c3437b70a9 Add termios IXANY 2025-08-20 07:39:15 +00:00
Josh Megnauth 70ae45ff85 Improve sysconf.h on Linux
I copied the constants and definitions from musl which we can presume is
correct. Relibc is missing some features which affects our sysconf as
well, such as constants in limits.h or a working resources.h.
2025-08-20 02:05:05 -04:00
Jeremy Soller 8f9614920d Merge branch 'rlimit_constants_i32' into 'master'
Switch resource.h enum to c_int instead of u64

See merge request redox-os/relibc!690
2025-08-17 08:17:02 -06:00
Josh Megnauth d14ae1c148 Switch resource.h enum to c_int instead of u64
Most platforms use a c_int though glibc uses a u32. GNU defines a type,
__rlimit_resource_t, for the RLIMIT enum that is a u32.

Using a c_int is nicer for a few reasons. The first is that our
(unimplemented) functions receive a c_int for the enum - using a u32 is
technically wrong but doesn't affect anything since the constants are
turned into macros by cbindgen.

The second reason is that a c_int is nicer for libc and nix (the crate)
too since we don't need to pollute the crates with guards for Redox.
2025-08-16 23:52:03 -04:00
Jeremy Soller 89ddc82d42 Merge branch 'add-vdisable' into 'master'
Add termios constant for VDISABLE

See merge request redox-os/relibc!689
2025-08-15 06:58:42 -06:00
Josh Megnauth c3c9e3f619 Add termios constant for VDISABLE
_POSIX_VDISABLE is an extension that disables terminal special
characters.

See:
* redox-os/termios!3
* redox-os/base!27
2025-08-14 01:57:24 -04:00
Jeremy Soller f170902a29 Add u_int types for compatibility 2025-08-13 09:36:26 -06:00
Jeremy Soller f5bc50f104 Merge branch 'paths-h' into 'master'
Add paths.h for Fish

See merge request redox-os/relibc!687
2025-08-11 14:14:58 -06:00
Jeremy Soller 09b71bdbe0 Merge branch 'fix-trace' into 'master'
Fix trace feature

See merge request redox-os/relibc!686
2025-08-11 14:11:49 -06:00
Jeremy Soller 551c79c526 Merge branch 'redoxer-test' into 'master'
Enable some tests in Redox

See merge request redox-os/relibc!685
2025-08-11 14:11:16 -06:00
Darley Barreto b0aac4e8f6 Enable some tests in Redox 2025-08-11 14:11:15 -06:00
Jeremy Soller a57dbfb13f Merge branch 'test-statvfs' into 'master'
Add basic test for statvfs

See merge request redox-os/relibc!683
2025-08-11 14:10:31 -06:00
Jeremy Soller 7e1940b941 Merge branch 'printf-m-modifier' into 'master'
Add %m to printf & fix CI

See merge request redox-os/relibc!682
2025-08-11 14:09:37 -06:00
Josh Megnauth cfe00d3316 Add paths.h for Fish
Fish only requires BSHELL. The constants are implementation specific so
this header will evolve as needed.

Cbindgen doesn't emit defines for strings (even CStrs) so I only
provided what's needed for Fish in a C header for now with the ideal
implementation, in Rust, unbuilt.
2025-08-09 01:16:12 -04:00
Wildan Mubarok c7a1966a67 Fix trace feature 2025-08-08 23:41:07 +00:00
Wildan M b3b806cafd Simplify test code 2025-08-07 08:46:54 +07:00
Wildan M c7405e09bd Add statvfs tests to Makefile 2025-08-07 07:35:40 +07:00
Wildan M 0248aab7d4 Add basic test for statvfs 2025-08-07 07:19:56 +07:00
Josh Megnauth 728fb55203 Add %m to printf & fix CI
%m is a format specifier that prints an error string for errno. The
specifier is technically only for syslog, but musl and glibc implement
it for printf itself. Parsing for a single specifier in a single
function is error prone, especially when syslog itself is variadic.
2025-08-06 02:38:47 -04:00
Jeremy Soller 710911febb Merge branch 'fix-syslog-tests' into 'master'
Move syslog tests to the correct location

See merge request redox-os/relibc!681
2025-08-04 20:35:27 -06:00
Josh Megnauth 292a4b18a9 Move syslog tests to correct location 2025-08-04 22:20:17 -04:00
Jeremy Soller 4a805ea97c Add some compatibility defines for libssh 2025-08-04 19:54:45 -06:00
Jeremy Soller 311d5621b8 Merge branch 'signals-stuff' into 'master'
Fixes to improve signals for openposixtestsuite

See merge request redox-os/relibc!680
2025-08-04 07:37:14 -06:00
Ron Williams b7589a63c5 Fixes to improve signals for openposixtestsuite 2025-08-04 07:37:14 -06:00
Jeremy Soller 1105a2092f Merge branch 'syslog-expand-features' into 'master'
Better priorities & LOG_UPTO for syslog.h

See merge request redox-os/relibc!679
2025-08-02 06:52:35 -06:00
Josh Megnauth e677ad55d5 Better priorities & LOG_UPTO for syslog.h
* Fix PERROR to match musl/glibc better
* More unit tests + enabled on Linux
* Pack priority and facility into one i32 and check the bits with
  bitflags
* Add LOG_UPTO (logic is straight from musl)

Not done:
* "%m" - this could just be added to printf
* LOG_CONS
2025-08-01 23:45:26 -04:00
Jeremy Soller 1694cd3a4d fix redox stat st_blocks 2025-08-01 12:44:10 -06:00
Jeremy Soller 6dd10a1f11 Fix connect on redox 2025-08-01 10:33:55 -06:00
Jeremy Soller 4f9267be59 Merge branch 'syslog-add-linux' into 'master'
Linux support for syslog.h

See merge request redox-os/relibc!675
2025-07-26 06:56:50 -06:00