Commit Graph

295 Commits

Author SHA1 Message Date
Speedy_Lex 2d4ab41de5 Cargo fmt 2026-05-07 00:05:13 +02:00
Speedy_Lex eff610eac6 Fix many clippy lints 2026-05-07 00:05:07 +02: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
bjorn3 e34b259822 Cleanup building of libc.so and ld.so 2026-04-28 17:16:30 +02:00
sourceturner ef46ff8746 rename RTLDState enum members 2026-04-22 21:58:02 +02:00
auronandace b4009544a8 minor code cleanups 2026-04-03 14:39:56 +01:00
Peter Limkilde Svendsen 55f9c611b2 Fix most rustdoc warnings 2026-04-02 00:43:20 +02:00
Wildan M e41052d307 Minor ld_so init improvement 2026-03-29 07:48:37 +07:00
Wildan M 459b8da27b Implement ld_so cache backed by shm 2026-03-29 05:34:14 +07:00
auronandace 5c646e78a1 add as conversion back in for i586 2026-03-14 14:30:06 +00:00
auronandace a01313467e tackle some clippy lints in ld_so 2026-03-14 14:20:22 +00:00
auronandace 8a2bfa2ed5 tackle some lints 2026-03-10 18:20:06 +00:00
Wildan M e45ec784b7 Fix dynamic linker hitting unwrap 2026-03-05 13:02:52 +07:00
auronandace 1421463dac assorted cleanups and add some lints 2026-03-02 10:01:05 +00:00
bjorn3 599e53db89 Use consts for AT_* in static_init 2026-02-28 16:49:17 +01:00
Marsman 26dea09563 fix: improve error handling in DSO methods 2026-02-27 13:02:11 +00:00
auronandace e1e9753c65 add upper_case_acronyms clippy lint and minor cleanups 2026-02-25 13:55:01 +00:00
Anhad Singh 1c5668acd4 feat(dso): do not zero memory
The region is mapped with the `MAP_ANONYMOUS` and thus already
initialised with zeros.

According to POSIX Issue 8:

> Anonymous memory objects shall be initialized to all bits zero.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-20 16:30:49 +11:00
Jeremy Soller 940352affe Merge branch 'master' into 'master'
Revert "fix(ld.so): temporary rollback"

See merge request redox-os/relibc!1019
2026-02-19 07:22:35 -07:00
Anhad Singh 5568bb5a8a Revert "fix(ld.so): temporary rollback"
This reverts commit 5cf865189d.
2026-02-18 10:57:08 +11:00
Jeremy Soller 6c6232ad70 Merge branch 'correct-unused-imports' into 'master'
remove allowed unused imports

See merge request redox-os/relibc!1012
2026-02-17 09:42:44 -07:00
Anhad Singh 5cf865189d fix(ld.so): temporary rollback
See the "Redox OS/Support" channel. This commit temporarily fixes the
issue by rolling back the changes to preload the executable.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-18 02:36:03 +11:00
auronandace 53273c35c4 remove allowed unused imports 2026-02-17 15:35:58 +00:00
Anhad Singh e3abf808f3 misc(ld.so): remove no_mangle for stage2
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-17 00:47:36 +11:00
Anhad Singh d234e81fc9 fix(ld.so): debug build
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-17 00:15:10 +11:00
Anhad Singh f5ebd7882d misc(ld.so): minor cleanup
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-16 22:51:14 +11:00
Anhad Singh 0c3f88f462 misc(ld.so): fix logging
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-16 22:46:45 +11:00
Anhad Singh 371540d2ae fix(ld.so/i586): build
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-16 17:04:01 +11:00
Anhad Singh 0430081f4a feat(redox-rt): preload the executable
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-16 12:29:19 +11:00
Anhad Singh 8cb41ed4e2 feat(ld.so): shared library
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-15 19:14:07 +11:00
Anhad Singh f9487321c0 fix(ld.so): base_addr
Not guaranteed that the program headers immediately follow the ELF
header.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-02-15 15:47:02 +11:00
auronandace b9d956bacb try again with allow 2026-02-10 18:04:40 +00:00
auronandace 8307ba25b3 missed some 2026-02-10 17:30:29 +00:00
auronandace 4a84b2f04c tidy up lints and add zero_ptr 2026-02-07 14:58:02 +00:00
auronandace be0bc8ca11 add clippy lint ref_as_ptr 2026-02-06 21:05:29 +00:00
auronandace 028061ca0f add clippy lint ptr_as_ptr 2026-02-06 17:17:07 +00:00
auronandace 473bf0389a start adding some clippy lints to Cargo.toml 2026-02-06 14:53:59 +00:00
auronandace ac0a7e71f4 apply clippy::borrow-as-ptr lint 2026-02-03 12:02:26 +00:00
Wildan M 7b9402783d Add log crate, use it to all trace cmd 2026-01-24 22:39:05 +07:00
Jeremy Soller 3a8f64aa14 Merge branch 'namespace-improvement' into 'master'
Introduce namespace fd and related features

See merge request redox-os/relibc!797
2026-01-20 20:43:06 -07:00
Ibuki Omatsu 1bcb6dff78 Introduce namespace fd and related features 2026-01-20 20:43:05 -07:00
Jeremy Soller 4a50c8f313 Merge branch 'p12' into 'master'
fix(libc): use `ld.so`'s allocator

See merge request redox-os/relibc!882
2026-01-20 20:35:12 -07:00
sourceturner defd2ce7c3 Deny deny-unsafe_op_in_unsafe_fn on the crate level 2026-01-21 00:41:57 +01:00
Anhad Singh bbc86d8027 fix(libc): use ld.so's allocator
Previously, this was implemented incorrectly because `tcb.mspace` was
set just *before* jumping to the program's entry point. However,
`alloc_init` is called when the init functions are run for `libc.so`, so
`tcb.mspace` must be initialized *before* the init functions are
run.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-01-20 14:00:29 +11:00
Anhad Singh df647941c5 misc(pthread): remove the need for tid_mutex
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-01-09 22:55:58 +11:00
Anhad Singh 79c0df3dda fix(ld_so/dso): TPOFF with undefined symbol index
Fixes random `rustc` errors/page fault:
```
Dump of assembler code for function _RNvYNCNkNvNtNtCskfd1poFMNVt_21rustc_data_structures4sync12worker_local8REGISTRY00INtNtNtCs713rKgAoQ4g_4core3ops8function6FnOnceTINtNtB1o_6option6OptionQIB23_INtNtNtB1o_4cell4once8OnceCellNtB8_8RegistryEEEEE9call_onceBc_:
   0x0000000007651e50 <+0>:	41 56              	push   r14
   0x0000000007651e52 <+2>:	53                 	push   rbx
   0x0000000007651e53 <+3>:	50                 	push   rax
   0x0000000007651e54 <+4>:	48 8b 1d 6d 9c 46 02	mov    rbx,QWORD PTR [rip+0x2469c6d]        # 0x9abbac8
   0x0000000007651e5b <+11>:	64 48 8b 04 25 00 00 00 00	mov    rax,QWORD PTR fs:0x0
   0x0000000007651e64 <+20>:	0f b6 4c 18 08     	movzx  ecx,BYTE PTR [rax+rbx*1+0x8]
   0x0000000007651e69 <+25>:	48 01 d8           	add    rax,rbx
   0x0000000007651e6c <+28>:	83 f9 01           	cmp    ecx,0x1
   0x0000000007651e6f <+31>:	74 07              	je     0x7651e78 <_RNvYNCNkNvNtNtCskfd1poFMNVt_21rustc_data_structures4sync12worker_local8REGISTRY00INtNtNtCs713rKgAoQ4g_4core3ops8function6FnOnceTINtNtB1o_6option6OptionQIB23_INtNtNtB1o_4cell4once8OnceCellNtB8_8RegistryEEEEE9call_onceBc_+40>
   0x0000000007651e71 <+33>:	83 f9 02           	cmp    ecx,0x2
   0x0000000007651e74 <+36>:	75 0a              	jne    0x7651e80 <_RNvYNCNkNvNtNtCskfd1poFMNVt_21rustc_data_structures4sync12worker_local8REGISTRY00INtNtNtCs713rKgAoQ4g_4core3ops8function6FnOnceTINtNtB1o_6option6OptionQIB23_INtNtNtB1o_4cell4once8OnceCellNtB8_8RegistryEEEEE9call_onceBc_+48>
   0x0000000007651e76 <+38>:	31 c0              	xor    eax,eax
   0x0000000007651e78 <+40>:	48 83 c4 08        	add    rsp,0x8
   0x0000000007651e7c <+44>:	5b                 	pop    rbx
   0x0000000007651e7d <+45>:	41 5e              	pop    r14
   0x0000000007651e7f <+47>:	c3                 	ret
   0x0000000007651e80 <+48>:	48 8d 35 69 11 00 00	lea    rsi,[rip+0x1169]        # 0x7652ff0 <_RINvNtNtNtNtCs7Gz96wxcBnT_3std3sys12thread_local6native5eager7destroyINtNtNtCs713rKgAoQ4g_4core4cell4once8OnceCellNtNtNtCskfd1poFMNVt_21rustc_data_structures4sync12worker_local8RegistryEEB1U_.llvm.5183627946997663933>
   0x0000000007651e87 <+55>:	48 89 c7           	mov    rdi,rax
   0x0000000007651e8a <+58>:	49 89 c6           	mov    r14,rax
   0x0000000007651e8d <+61>:	ff 15 c5 6b 47 02  	call   QWORD PTR [rip+0x2476bc5]        # 0x9ac8a58
   0x0000000007651e93 <+67>:	4c 89 f0           	mov    rax,r14
   0x0000000007651e96 <+70>:	64 48 8b 0c 25 00 00 00 00	mov    rcx,QWORD PTR fs:0x0
    # rcx = 0x20aeb000 [FSBASE]
    # rbx = 0x2b40
   0x0000000007651e9f <+79>:	c6 44 19 08 01     	mov    BYTE PTR [rcx+rbx*1+0x8],0x1 # <--- PAGE FAULT
   0x0000000007651ea4 <+84>:	48 83 c4 08        	add    rsp,0x8
   0x0000000007651ea8 <+88>:	5b                 	pop    rbx
   0x0000000007651ea9 <+89>:	41 5e              	pop    r14
   0x0000000007651eab <+91>:	c3                 	ret
```

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2026-01-08 11:45:36 +11:00
Anhad Singh 75f6b9d64e fix(dl-tls): TLS overallocation
* `offset` is the offset in TLS to copy initial data to NOT the segment
  size
* Only zero the region which is required to be zeroed

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-29 17:13:23 +11:00
Anhad Singh 4245e9148e fix(load_objects_recursive): TLS overallocation
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-27 01:12:07 +11:00
Anhad Singh a7918b108d misc(ld_so/start): consistent log formatting
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-12-22 19:06:10 +11: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