Commit Graph

1702 Commits

Author SHA1 Message Date
Jeremy Soller c96b3114ab More fixes for x86 2022-08-20 20:56:42 -06:00
Jeremy Soller 8b629a562b Syntax error 2022-08-20 20:52:19 -06:00
Jeremy Soller a1d0b8fc35 More x86 fixes 2022-08-20 20:51:01 -06:00
Jeremy Soller c1b20cdeab Add x86 _start 2022-08-20 20:43:41 -06:00
Jeremy Soller 619245024a Use 32-bit program headers too 2022-08-20 20:10:15 -06:00
Jeremy Soller 791460d5d1 Use 32-bit elf headers on 32-bit redox 2022-08-20 19:48:47 -06:00
Jeremy Soller 5526528364 Partial aarch64 implementation of relibc internal functions 2022-08-20 14:19:29 -06:00
Jeremy Soller 70a8fca3c1 Use target binutils for renamesyms 2022-08-19 13:16:25 -06:00
Jeremy Soller de29da4099 Rename __rg_oom 2022-08-19 12:54:18 -06:00
Jeremy Soller 60a4b59194 Fix push/pop of preserved registers on x86 2022-08-18 08:09:11 -06:00
Jeremy Soller 32770ed976 Improvements to x86 assembly in redox-exec 2022-08-18 08:01:14 -06:00
Jeremy Soller ebb0507f59 Impelement relibc_internal_fork_wrapper for x86 32-bit 2022-08-17 14:21:00 -06:00
Jeremy Soller 1315171a70 Merge branch 'relibc_cwd' into 'master'
Move processes' cwd state into relibc

See merge request redox-os/relibc!346
2022-08-15 21:07:54 +00:00
4lDO2 c26ce37620 Also fail if cwd could not be written to escalated. 2022-08-13 19:16:48 +02:00
4lDO2 5e74d173ab Fix ld.so access function on Redox. 2022-08-13 19:16:48 +02:00
4lDO2 36775eeb1b Implement EXDEV symlink resolution. 2022-08-13 19:16:48 +02:00
4lDO2 54b3f873f8 Move cwd from kernel to relibc. 2022-08-13 19:16:45 +02:00
Jeremy Soller 4b90afeb2a Merge branch 'hstrerror' into 'master'
Implement hstrerror

See merge request redox-os/relibc!341
2022-08-12 12:18:08 +00:00
Jeremy Soller 3eb52eabf5 Fix missing NUL for setenv 2022-08-04 08:55:01 -06:00
Jeremy Soller 2f271268af Add MSG_DONTWAIT 2022-08-01 10:09:31 -06:00
Jeremy Soller 9e2cbcc407 redox-exec: Add aarch64 stubs 2022-07-29 10:06:54 -06:00
Jeremy Soller 13e58007bc Add stubs for new asm functions on x86 2022-07-28 08:16:28 -06:00
Jeremy Soller 05e3a5ac8b redox-exec: Move x86_64 specific things to arch module 2022-07-28 08:08:01 -06:00
Jeremy Soller 1fe13b760e Merge branch 'redox-exec' into 'master'
Move fork implementation to redox-exec

See merge request redox-os/relibc!345
2022-07-28 13:38:34 +00:00
4lDO2 16d0f96d64 Move fork implementation to redox-exec 2022-07-28 14:19:31 +02:00
Jeremy Soller fc258e8b4f Merge branch 'fix-float-parser' into 'master'
strtof, strtod: Fix parsing floats with exponents

See merge request redox-os/relibc!344
2022-07-28 01:08:41 +00:00
Nagy Tibor 5b2a12ca6d strtof, strtod: Fix parsing floats with exponents 2022-07-28 01:11:55 +02:00
Jeremy Soller dc865148fc Get Linux to compile again 2022-07-27 10:10:41 -06:00
Jeremy Soller aa2397ce29 Merge branch 'userspace_fexec' into 'master'
Userspace fexec

See merge request redox-os/relibc!343
2022-07-27 15:39:33 +00:00
4lDO2 f438a4259a Use redox_syscall 0.3 from crates.io 2022-07-27 17:38:12 +02:00
4lDO2 13cbac293b Fix write to mmap-min-addr 2022-07-26 21:35:25 +02:00
4lDO2 985b2a59a9 Use better interfaces in exec/clone 2022-07-26 21:35:24 +02:00
4lDO2 d32dd52d3b Use 2021 edition in redox-exec 2022-07-26 21:34:48 +02:00
4lDO2 ed196516a2 Only inherit environ from ldso if previously NULL. 2022-07-26 21:34:48 +02:00
4lDO2 b58ad5bf13 In clone, use better asm function names and align. 2022-07-26 21:34:48 +02:00
4lDO2 4e5ccbffd1 Allow constructors to access env vars. 2022-07-26 21:34:48 +02:00
4lDO2 049a5156d7 Implement PT_INTERP, and thus dynamic linking.
With this change, gcc can now successfully compile a tiny program that
printfs an integer returned from a function, from a dynamically linked
library that it compiled as well.

Rustc however, is orders of magnitude more complex, and the next step is
to fix constructors which require access to `environ`, in ld.so
2022-07-26 21:34:48 +02:00
4lDO2 db16393fd7 Manually init FPU context in pte_clone. 2022-07-26 21:34:48 +02:00
4lDO2 24ecd6ee16 Fix waitpid deadlock. 2022-07-26 21:34:48 +02:00
4lDO2 8ac0626be7 Handle sigactions properly in execve and fork. 2022-07-26 21:34:48 +02:00
4lDO2 b930cc98d0 Correctly preserve and set MXCSR and FCW. 2022-07-26 21:34:47 +02:00
4lDO2 3701ea3be7 Conflict-proof #[global_allocator] symbols too.
The #[global_allocator] used by relibc is only relibc's business.
Symbols should therefore not leak if another applications for example
wants to override the system allocator (and for bootstrap, which links
to relibc but uses its own #[global_allocator] based on libc functions).
2022-07-26 21:34:47 +02:00
4lDO2 05446070ec Use same rust-toolchain version as elsewhere. 2022-07-26 21:34:47 +02:00
4lDO2 bac2509ccd Fix leaks for setuid/setgid too. 2022-07-26 21:34:47 +02:00
4lDO2 1476cdeb8f Split fexec_impl into crate, used by escalated. 2022-07-26 21:34:46 +02:00
4lDO2 df8e2deddc Fix file descriptor leak in fork(). 2022-07-26 21:34:12 +02:00
4lDO2 777a82b50f Refactor out clone, fix some fd leaks. 2022-07-26 21:34:12 +02:00
4lDO2 bb45466a4e Implement clone in userspace. 2022-07-26 21:34:11 +02:00
4lDO2 a7c817d81a WIP: Support setuid/setgid 2022-07-26 21:33:01 +02:00
4lDO2 37cc4e5383 WIP: Add setuid/setgid support. 2022-07-26 21:33:01 +02:00