#
e6dbc99d |
|
25-Oct-2023 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Create a Linux view of the ID registers When adding support for new hardware extensions we may not want to enable support for the FreeBSD and Linux ABIs at the same time. To support this split the Linux ID register and hwcaps so they can be configured separately. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42372
|
#
070a4ff8 |
|
25-Oct-2023 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Use the Linux sigframe to restore registers When returning from a Linux signal use the Linux sigframe to find the register values to restore. Remove the FreeBSD ucontext from the stack as it's now unneeded. Reviewed by: dchagin, emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D42360
|
#
03f5bd1e |
|
09-Oct-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Drop the outdated comment, nosys is fine since 39024a89 MFC after: 1 week
|
#
39024a89 |
|
25-Sep-2023 |
Konstantin Belousov <kib@FreeBSD.org> |
syscalls: fix missing SIGSYS for several ENOSYS errors In particular, when the syscall number is too large, or when syscall is dynamic. For that, add nosys_sysent structure to pass fake sysent to syscall top code. Reviewed by: dchagin, markj Discussed with: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D41976
|
#
027d727d |
|
11-Sep-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Cleanup includes under arm64 No functional changes. MFC after: 1 week
|
#
20845a69 |
|
05-Sep-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Validate exec_setregs on arm64 The lr register is cleared at the beginning of the _dl_start and _start, so there is no need to initialize it. Gnu libc _start takes an rtld_fini pointer in x0 which is set by ld.so for __libc_start_main, the kernel does not register any atexit pointers. While here fix whitespaces. MFC after: 1 week
|
#
3460fab5 |
|
18-Aug-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Remove sys/cdefs.h inclusion where it's not needed due to 685dc743
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
fd745e1d |
|
29-May-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Use pwd_altroot() to tell namei() about ABI root path PR: 72920 Differential Revision: https://reviews.freebsd.org/D40090 MFC after: 2 month
|
#
d957343f |
|
14-May-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Rework signal trampoline on Aarch64 To avoid clobbering of any registers by the trampoline code use Linux way to call signal handlers. I.e., we are out from the kernel right into the signal handler, put return address from the signal handler into the link register. The mysterious NOP is required for some unwinders (e.g. libc++) that unconditionally subtract one from the result of _Unwind_GetIP() in order to identify the calling function. MFC after: 1 week
|
#
5f19e18b |
|
14-May-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Get rid of linux_vdso_sigcode MFC after: 1 week
|
#
2cdeb89e |
|
14-May-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Fix stack unwinding on arm64 [2/2] To allow unwinders to go througth a previous to sigreturn frame we should properly emulate the trampoline frame record which should points to the previous frame and set the trampoline frame pointer to the emulated frame before calling signal handler. MFC after: 1 week
|
#
bf3a14b4 |
|
14-May-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Fix stack unwinding on arm64 [1/2] An Aarch64 sigreturn trampoline frame can't currently be described in a DWARF .eh_frame section, because Aarch64 does not define a register number for PC and provide no direct way to encode PC of the previous frame. Instead, unwinders (libgcc, gdb, libunwind) detect the sigreturn frame by looking for the sigreturn instruction. If a sigreturn frame is detected, unwinders restores all the gprs, SP and PC by assuming that sp points to an rt_sigframe Linux kernel struct When entering the kernel, the link register (lr) contains the return address of the previous frame, the exception link register (elr) contains the address of the next instruction after the one which generated the exception, i.e., PC. MFC after: 1 week
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
7d8c9839 |
|
22-Apr-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Deduplicate linux_copyout_auxargs() Export default MINSIGSTKSZ value for the x86 until we do not preserve AVX registers in the signal context. Differential Revision: https://reviews.freebsd.org/D39644 MFC after: 1 month
|
#
55d3e181 |
|
14-Feb-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Cleanup includes under arm64/linux Cleanup unneeded includes, sort the rest according to style(9). No functional changes. MFC after: 2 weeks
|
#
95b86034 |
|
02-Feb-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Deduplicate linux_trans_osrel(). MFC after: 1 week
|
#
6039e966 |
|
02-Feb-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Deduplicate linux_copyout_strings(). It is still present in the 32-bit Linuxulator on amd64. MFC after: 1 week
|
#
74465145 |
|
02-Feb-2023 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Microoptimize linux_elf.h for future use. In order to reduce code duplication move coredump support definitions into the appropriate header and hide private definitions. MFC after: 1 week
|
#
2555f175 |
|
31-Jan-2023 |
Konstantin Belousov <kib@FreeBSD.org> |
Move kstack_contains() and GET_STACK_USAGE() to MD machine/stack.h Reviewed by: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D38320
|
#
1da65dcb |
|
28-Oct-2022 |
Mitchell Horne <mhorne@FreeBSD.org> |
linux: populate sv_syscallnames in each sysentvec This allows the syscallname() function to give a usable result for Linux ABIs. Reported by: jrtc27 Reviewed by: jrtc27, markj, jhb MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37199
|
#
361971fb |
|
02-Jun-2022 |
Kornel Dulęba <kd@FreeBSD.org> |
Rework how shared page related data is stored Store the shared page address in struct vmspace. Also instead of storing absolute addresses of various shared page segments save their offsets with respect to the shared page address. This will be more useful when the shared page address is randomized. Approved by: mw(mentor) Sponsored by: Stormshield Obtained from: Semihalf Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D35393
|
#
109fd18a |
|
30-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Properly build argument list for the signal handler Provide arguments 2 and 3 if signal handler installed with SA_SIGINFO. MFC after: 2 weeks
|
#
eca368ec |
|
20-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Retire sv_transtrap Call translate_traps directly from sendsig(). MFC after: 2 weeks
|
#
f34a9180 |
|
20-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Retire unneeded translate_traps from arm64 MFC after: 2 weeks
|
#
390c9ea0 |
|
15-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Add AT_MINSIGSTKSZ to arm64 port MFC after: 2 weeks
|
#
c56480a8 |
|
15-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Implement signal trampoline for arm64 in a FreeBSD-way The implemenation differs from others Linuxulators. For unwinders Linux ucontext_t is stored, however native machine context is used to store/restore process state to avoid code duplication. As DWARF Aarch64 does not define a register number for PC and provides no direct way to encode the PC of the previous frame, CFI cannot describe a signal trampoline frame. So, modified the vdso linker script to discard unused sections. Extensions are not implemented. MFC after: 2 weeks
|
#
21f24617 |
|
15-May-2022 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Move sigframe definitions to separate headers The signal trampoine-related definitions are used only in the MD part of code, wherefore moved from everywhere used linux.h to separate MD headers. MFC after: 2 weeks
|
#
706f4a81 |
|
17-Jan-2022 |
Mark Johnston <markj@FreeBSD.org> |
exec: Introduce the PROC_PS_STRINGS() macro Rather than fetching the ps_strings address directly from a process' sysentvec, use this macro. With stack address randomization the ps_strings address is no longer fixed. Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33704
|
#
3fc21fdd |
|
17-Jan-2022 |
Mark Johnston <markj@FreeBSD.org> |
sysent: Add a sv_psstringssz field to struct sysentvec The size of the ps_strings structure varies between ABIs, so this is useful for computing the address of the ps_strings structure relative to the top of the stack when stack address randomization is enabled. Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33704
|
#
f04a0960 |
|
30-Dec-2021 |
Mark Johnston <markj@FreeBSD.org> |
exec: Simplify sv_copyout_strings implementations a bit Simplify control flow around handling of the execpath length and signal trampoline. Cache the sysentvec pointer in a local variable. No functional change intended. Reviewed by: kib MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D33703
|
#
a15c5918 |
|
20-Dec-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): Remove unused arm64 SDT declarations Those tracepoints have been removed somewhere in the past. Sponsored By: EPSRC
|
#
adb12675 |
|
08-Dec-2021 |
Brooks Davis <brooks@FreeBSD.org> |
syscall_args: remove MAXARGS define Use nitems instead and just use a magic `8` for the size of the args array. MAXARGS was rarely used (only in arm64 code) and is an overly generic name to polute the namespace with. Requested by: kib in D33308
|
#
a089c17d |
|
29-Nov-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): Fix "set but not used" warnings No functional changes. Sponsored By: EPSRC
|
#
0a4b664a |
|
12-Aug-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Add struct clone_args for future clone3 system call. In preparation for clone3 system call add struct clone_args and use it in clone implementation. Move all of clone related bits to the newly created linux_fork.h header. Differential revision: https://reviews.freebsd.org/D31474 MFC after: 2 weeks
|
#
ccc510b4 |
|
25-Jul-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux: implement signal delivery on arm64 Note that this still uses FreeBSD-style sigframe; this will be addressed later. Reviewed By: dchagin Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D31258
|
#
ae8330b4 |
|
20-Jul-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Add arch name to the some printfs. Reviewed by: emaste Differential revision: https://reviews.freebsd.org/D30904 MFC after: 2 weeks
|
#
09cffde9 |
|
20-Jul-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Fixup the vDSO initialization order. The vDSO initialisation order should be as follows: - native abi init via exec_sysvec_init(); - vDSO symbols queued to the linux_vdso_syms list; - linux_vdso_install(); - linux_exec_sysvec_init(); As the exec_sysvec_init() called with SI_ORDER_ANY (last) at SI_SUB_EXEC order, move linux_vdso_install() and linux_exec_sysvec_init() to the SI_SUB_EXEC+1 order. Reviewed by: trasz Differential Revision: https://reviews.freebsd.org/D30902 MFC after 2 weeks
|
#
9931033b |
|
20-Jul-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4); Almost complete the vDSO. The vDSO (virtual dynamic shared object) is a small shared library that the kernel maps R/O into the address space of all Linux processes on image activation. The vDSO is a fully formed ELF image, shared by all processes with the same ABI, has no process private data. The primary purpose of the vDSO: - non-executable stack, signal trampolines not copied to the stack; - signal trampolines unwind, mandatory for the NPTL; - to avoid contex-switch overhead frequently used system calls can be implemented in the vDSO: for now gettimeofday, clock_gettime. The first two have been implemented, so add the implementation of system calls. System calls implemenation based on a native timekeeping code with some limitations: - ifunc can't be used, as vDSO r/o mapped to the process VA and rtld can't relocate symbols; - reading HPET memory is not implemented for now (TODO). In case on any error vDSO system calls fallback to the kernel system calls. For unimplemented vDSO system calls added prototypes which call corresponding kernel system call. Tested by: trasz (arm64) Differential revision: https://reviews.freebsd.org/D30900 MFC after: 2 weeks
|
#
5fd9cd53 |
|
20-Jul-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Modify sv_onexec hook to return an error. Temporary add stubs to the Linux emulation layer which calls the existing hook. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D30911 MFC after: 2 weeks
|
#
cf98bc28 |
|
10-Jul-2021 |
David Chisnall <theraven@FreeBSD.org> |
Pass the syscall number to capsicum permission-denied signals The syscall number is stored in the same register as the syscall return on amd64 (and possibly other architectures) and so it is impossible to recover in the signal handler after the call has returned. This small tweak delivers it in the `si_value` field of the signal, which is sufficient to catch capability violations and emulate them with a call to a more-privileged process in the signal handler. This reapplies 3a522ba1bc852c3d4660a4fa32e4a94999d09a47 with a fix for the static assertion failure on i386. Approved by: markj (mentor) Reviewed by: kib, bcr (manpages) Differential Revision: https://reviews.freebsd.org/D29185
|
#
84a3963d |
|
13-Jul-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): remove unfinished vsyscall bits on arm64 The vsyscall mechanism is obsolete. Reviewed By: dchagin, emaste Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D31091
|
#
d2b55828 |
|
10-Jul-2021 |
David Chisnall <theraven@FreeBSD.org> |
Revert "Pass the syscall number to capsicum permission-denied signals" This broke the i386 build. This reverts commit 3a522ba1bc852c3d4660a4fa32e4a94999d09a47.
|
#
3a522ba1 |
|
10-Jul-2021 |
David Chisnall <theraven@FreeBSD.org> |
Pass the syscall number to capsicum permission-denied signals The syscall number is stored in the same register as the syscall return on amd64 (and possibly other architectures) and so it is impossible to recover in the signal handler after the call has returned. This small tweak delivers it in the `si_value` field of the signal, which is sufficient to catch capability violations and emulate them with a call to a more-privileged process in the signal handler. Approved by: markj (mentor) Reviewed by: kib, bcr (manpages) Differential Revision: https://reviews.freebsd.org/D29185
|
#
45d99014 |
|
03-Jul-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): implement coredumps on arm64 Previously they only worked on amd64. Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30975
|
#
93c3453f |
|
01-Jul-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): revert arm64 part of 447636e43c0 The arm64 part of the patch was incomplete and prevented linux64.ko from loading due to missing symbol. Sponsored By: EPSRC
|
#
447636e4 |
|
30-Jun-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux(4): implement coredump support Implement dumping core for Linux binaries on amd64, for both 32- and 64-bit executables. Some bits are still missing. This is based on a prototype by chuck@. Reviewed By: kib Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30019
|
#
435754a5 |
|
29-Jun-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add infrastructure required for Linux coredump support This adds `sv_elf_core_osabi`, `sv_elf_core_abi_vendor`, and `sv_elf_core_prepare_notes` fields to `struct sysentvec`, and modifies imgact_elf.c to make use of them instead of hardcoding FreeBSD-specific values. It also updates all of the ABI definitions to preserve current behaviour. This makes it possible to implement non-native ELF coredump support without unnecessary code duplication. It will be used for Linux coredumps. Reviewed By: kib Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30921
|
#
c1da89fe |
|
21-Jun-2021 |
Dmitry Chagin <dchagin@FreeBSD.org> |
linux(4): Retire linux_kplatform. Assuming we can't run on i486, i586 class cpu, retire linux_kplatform var and use hardcoded 'machine' value in linux_newuname(). I have added linux_kplatform for consistency with linux_platform which is placed in to vdso to avoid excess copyout it on stack for AT_PLATFORM at exec time. This is the first stage of Linuxulator's vdso revision. Reviewed by: trasz, imp Differential Revision: https://reviews.freebsd.org/D30774 MFC after: 2 weeks
|
#
870e197d |
|
05-Jun-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
Add quirks for Linux ABI signals handling Require queueing of the signals with default action, and disable dequeueing SIGCHLD on wait for live process. Reported and tested by: dchagin Reviewed by: dchagin, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D30675
|
#
598f6fb4 |
|
14-Jan-2021 |
Konstantin Belousov <kib@FreeBSD.org> |
linuxolator: Add compat.linux.setid_allowed knob PR: 21463 Reported by: kris Reviewed by: dchagin Tested by: trasz Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28154
|
#
b501b2ae |
|
01-Jun-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux: export AT_HWCAP and AT_HWCAP2 on aarch64 The flag values seem to be the same between Linux and FreeBSD. Comparing to a Linux VM on the same hardware, we're missing HWCAP_EVTSTRM, HWCAP_CPUID, HWCAP_DCPOP, HWCAP_USCAT, HWCAP_PACA, and HWCAP_PACG. Reviewed By: mhorne, emaste Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30540
|
#
aa462cab |
|
28-May-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
linux: fix architecture returned for uname on aarch64 Previously it would return "arm64", which was breaking build for Linux kernel. While here, reshuffle entries in the auxv vector to match real Linux. Reviewed By: emaste Sponsored By: EPSRC Differential Revision: https://reviews.freebsd.org/D30500
|
#
a2a8b582 |
|
09-Apr-2021 |
Mitchell Horne <mhorne@FreeBSD.org> |
arm64: clear debug registers after execve(2) This is both intuitive and required, as any previous breakpoint settings may not be applicable to the new process. Reported by: arichardson Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D29672
|
#
0723b409 |
|
17-Mar-2021 |
John Baldwin <jhb@FreeBSD.org> |
aarch64: Clear TLS registers during exec(). These are not stored in the trapframe so must be cleared explicitly. This is similar to one of the MIPS changes in 822d2d6ac94f. Reviewed by: andrew Obtained from: CheriBSD MFC after: 1 week Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D28711
|
#
953a7d7c |
|
09-Mar-2021 |
Alex Richardson <arichardson@FreeBSD.org> |
Arch64: Clear VFP state on execve() I noticed that many of the math-related tests were failing on AArch64. After a lot of debugging, I noticed that the floating point exception flags were not being reset when starting a new process. This change resets the VFP inside exec_setregs() to ensure no VFP register state is leaked from parent processes to children. This commit also moves the clearing of fpcr that was added in 65618fdda0f27 from fork() to execve() since that makes more sense: fork() can retain current register values, but execve() should result in a well-defined clean state. Reviewed By: andrew MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29060
|
#
0fc8a796 |
|
16-Feb-2021 |
Mark Johnston <markj@FreeBSD.org> |
linux: Unmap the VDSO page when unloading linux_shared_page_init() creates an object and grabs and maps a single page to back the VDSO. When destroying the VDSO object, we failed to destroy the mapping and free KVA. Fix this. Reviewed by: kib MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D28696
|
#
4815f175 |
|
23-Nov-2020 |
Konstantin Belousov <kib@FreeBSD.org> |
Linuxolator: Replace use of eventhandlers by sysent hooks. Reviewed by: markj Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D27309
|
#
866b1f51 |
|
26-Oct-2020 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Fix misnomer - linux_to_bsd_errno() does the exact opposite. Reported by: arichardson MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D26965
|
#
1e2521ff |
|
27-Sep-2020 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. Reviewed by: kib Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D26458
|
#
70890254 |
|
17-Sep-2020 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Get rid of sv_errtbl and SV_ABI_ERRNO(). Reviewed by: kib Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D26388
|
#
c26391f4 |
|
15-Sep-2020 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Move SV_ABI_ERRNO translation into linux-specific code, to simplify the syscall path and declutter it a bit. No functional changes intended. Reviewed by: kib (earlier version) MFC after: 2 weeks Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D26378
|
#
b24e6ac8 |
|
16-Apr-2020 |
Brooks Davis <brooks@FreeBSD.org> |
Convert canary, execpathp, and pagesizes to pointers. Use AUXARGS_ENTRY_PTR to export these pointers. This is a followup to r359987 and r359988. Reviewed by: jhb Obtained from: CheriBSD Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D24446
|
#
b5f20658 |
|
16-Dec-2019 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add compat.linux.emul_path, so it can be set to something other than "/compat/linux". Useful when you have several compat directories with different Linux versions and you don't want to clash with files installed by linux-c7 packages. Reviewed by: bcr (manpages) MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D22574
|
#
d8010b11 |
|
09-Dec-2019 |
John Baldwin <jhb@FreeBSD.org> |
Copy out aux args after the argument and environment vectors. Partially revert r354741 and r354754 and go back to allocating a fixed-size chunk of stack space for the auxiliary vector. Keep sv_copyout_auxargs but change it to accept the address at the end of the environment vector as an input stack address and no longer allocate room on the stack. It is now called at the end of copyout_strings after the argv and environment vectors have been copied out. This should fix a regression in r354754 that broke the stack alignment for newer Linux amd64 binaries (and probably broke Linux arm64 as well). Reviewed by: kib Tested on: amd64 (native, linux64 (only linux-base-c7), and i386) Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22695
|
#
0386b6c8 |
|
04-Dec-2019 |
Li-Wen Hsu <lwhsu@FreeBSD.org> |
Fix arm64 build after r355373 Sponsored by: The FreeBSD Foundation
|
#
31174518 |
|
03-Dec-2019 |
John Baldwin <jhb@FreeBSD.org> |
Use uintptr_t instead of register_t * for the stack base. - Use ustringp for the location of the argv and environment strings and allow destp to travel further down the stack for the stackgap and auxv regions. - Update the Linux copyout_strings variants to move destp down the stack as was done for the native ABIs in r263349. - Stop allocating a space for a stack gap in the Linux ABIs. This used to hold translated system call arguments, but hasn't been used since r159992. Reviewed by: kib Tested on: md64 (amd64, i386, linux64), i386 (i386, linux) Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22501
|
#
03b0d68c |
|
18-Nov-2019 |
John Baldwin <jhb@FreeBSD.org> |
Check for errors from copyout() and suword*() in sv_copyout_args/strings. Reviewed by: brooks, kib Tested on: amd64 (amd64, i386, linux64), i386 (i386, linux) Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22401
|
#
5caa67fa |
|
15-Nov-2019 |
John Baldwin <jhb@FreeBSD.org> |
Use a sv_copyout_auxargs hook in the Linux ELF ABIs. Reviewed by: emaste Tested on: amd64 (linux64 only), i386 Sponsored by: DARPA Differential Revision: https://reviews.freebsd.org/D22356
|
#
d4f55cc8 |
|
04-Nov-2019 |
Ed Maste <emaste@FreeBSD.org> |
arm64 linuxulator: default to RW stack (no X) This matches Linux's default arm64 data / stack permissions. MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
a161fba9 |
|
17-Oct-2019 |
Yuri Pankov <yuripv@FreeBSD.org> |
linux: futex_mtx should follow futex_list Move futex_mtx to linux_common.ko for amd64 and aarch64 along with respective list/mutex init/destroy. PR: 240989 Reported by: Alex S <iwtcex@gmail.com>
|
#
c5156c77 |
|
13-May-2019 |
Dmitry Chagin <dchagin@FreeBSD.org> |
Linuxulator depends on a fundamental kernel settings such as SMP. Many of them listed in opt_global.h which is not generated while building modules outside of a kernel and such modules never match real cofigured kernel. So, we should prevent our users from building obviously defective modules. Therefore, remove the root cause of the building of modules outside of a kernel - the possibility of building modules with DEBUG or KTR flags. And remove all of DEBUG printfs as it is incomplete and in threaded programms not informative, also a half of system call does not have DEBUG printf. For debuging Linux programms we have dtrace, ktr and ktrace ability. PR: 222861 Reviewed by: trasz MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D20178
|
#
1699546d |
|
01-Mar-2019 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Remove sv_pagesize, originally introduced with r100384. In all of the architectures we have today, we always use PAGE_SIZE. While in theory one could define different things, none of the current architectures do, even the ones that have transitioned from 32-bit to 64-bit like i386 and arm. Some ancient mips binaries on other systems used 8k instead of 4k, but we don't support running those and likely never will due to their age and obscurity. Reviewed by: imp (who also contributed the commit message) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D19280
|
#
628888f0 |
|
19-Dec-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
Remove iBCS2, part2: general kernel Reviewed by: kib (previous version) Sponsored by: The FreeBSD Foundation
|
#
8e5d76e6 |
|
25-Jun-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Make cpu_set_syscall_retval common between the existing FreeBSD ABI and the Linuxulator. We need to translate error values onto Linux errno values and return them to userspace when a syscall fails. We also need to preserve x1 as all registers are preserved other than the return value. Reviewed by: emaste Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D16008
|
#
3911ee2c |
|
25-Jun-2018 |
Ed Maste <emaste@FreeBSD.org> |
Initial arm64 linuxulator linux_sysvec This is sufficient to run Linux arm64 'hello world' and other simple binaries. Reviewed by: andrew Sponsored by: Turing Robotic Industries Differential Revision: https://reviews.freebsd.org/D15834
|