Commit Graph

1687 Commits

Author SHA1 Message Date
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
4lDO2 c95d276af9 Allow POSIX's environ to be set.
Rust's libstd for example uses environ when using the `envs` builder
method for spawning processes, and therefore relibc cannot simply assume
environ will always point to the internal relibc env var Vec.
2022-07-26 21:33:01 +02:00
4lDO2 2186cd1fbd Implement fexec in userspace. 2022-07-26 21:32:56 +02:00
Jeremy Soller 0bd81aa3d4 Update llvm_asm to asm for aarch64 2022-07-26 11:46:50 -06:00
Jeremy Soller afb5094cda Add triple underscore tls_get_addr for x86 2022-07-22 19:35:59 -06:00
Jeremy Soller abe30ba884 Add i386 __restore_rt 2022-07-22 19:24:05 -06:00
Jeremy Soller ece0bd090d Fix x86 setjmp/longjmp 2022-07-22 19:23:46 -06:00
Jeremy Soller 559387cc64 Initial support for x86 32-bit 2022-07-22 16:24:45 -06:00
Jeremy Soller 7f3f2fa105 Add some messages when unimplemented PTE functions are called 2022-04-14 07:52:39 -06:00
Jeremy Soller 8576b99759 Add timeout to futex_wait calls 2022-04-04 20:23:29 -06:00
4lDO2 6d394ba4f4 Merge branch 'update-dependencies' into 'master'
Update dependencies for rust 2022-03-18.

See merge request redox-os/relibc!342
2022-03-27 09:21:22 +00:00
4lDO2 fb411c0b19 Use redox_syscall 0.2.12 from crates.io, not git 2022-03-24 17:12:05 +01:00
4lDO2 f14c95db6a Update syscall. 2022-03-24 17:12:05 +01:00
4lDO2 ebd597f748 Update dependencies for rust 2022-03-18. 2022-03-24 17:12:02 +01:00
Jeremy Soller ec0047c864 Fix redox readlink 2022-03-23 13:47:58 -06:00
Jeremy Soller f63d9cefad Add mlock and friends 2022-03-17 14:03:45 -06:00