#
7c09e6c0 |
| 15-Aug-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
Initialize the eventhandlers, mutexes and sx locks.
Sponsored by: Google SoC 2006 Submitted by: rdivacky
|
#
9b44bfc5 |
| 15-Aug-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
Add the linux 2.6.x stuff (not used by default!): - TLS - complete - pid/tid mangling - complete - thread area - complete - futexes - complete with issues - clone() extension - complete with som
Add the linux 2.6.x stuff (not used by default!): - TLS - complete - pid/tid mangling - complete - thread area - complete - futexes - complete with issues - clone() extension - complete with some possible minor issues - mq*/timer*/clock* stuff - complete but untested and the mq* stuff is disabled when not build as part of the kernel with native FreeBSD mq* support (module support for this will come later)
Tested with: - linux-firefox - works, tested - linux-opera - works, tested - linux-realplay - doesnt work, issue with futexes - linux-skype - doesnt work, issue with futexes - linux-rt2-demo - works, tested - linux-acroread - doesnt work, unknown reason (coredump) and sometimes issue with futexes - various unix utilities in linux-base-gentoo3 and linux-base-fc4: everything tried worked
On amd64 not everything is supported like on i386, the catchup is planned for later when the remaining bugs in the new functions are fixed.
To test this new stuff, you have to run sysctl compat.linux.osrelease=2.6.16 to switch back use sysctl compat.linux.osrelease=2.4.2
Don't switch while running a linux program, strange things may or may not happen.
Sponsored by: Google SoC 2006 Submitted by: rdivacky Some suggestions/help by: jhb, kib, manu@NetBSD.org, netchild
show more ...
|
#
50e422f0 |
| 11-Aug-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
Add some more errno mappings (bsd -> linux) and a comment about the status..
Submitted by: "Intron" <mag@intron.ac>
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
387196bf |
| 06-May-2006 |
Doug Ambrisko <ambrisko@FreeBSD.org> |
Forgot the amd/linux32 part since sys/*/linux didn't match :-(
Pointed out by: Alexander (thanks)
|
#
aefce619 |
| 19-Mar-2006 |
Ruslan Ermilov <ru@FreeBSD.org> |
Unbreak COMPAT_LINUX32 option support on amd64.
Broken by: netchild
|
#
c85625bf |
| 18-Mar-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
regen
|
#
1f7642e0 |
| 18-Mar-2006 |
Alexander Leidinger <netchild@FreeBSD.org> |
regen after COMPAT_43 removal
|
#
900b28f9 |
| 26-Dec-2005 |
Maxim Sobolev <sobomax@FreeBSD.org> |
Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure with flags bitfield and set BI_CAN_EXEC_DYN flag for all brands that usually allow executing elf dynamic binaries (aka shared
Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure with flags bitfield and set BI_CAN_EXEC_DYN flag for all brands that usually allow executing elf dynamic binaries (aka shared libraries). When it is requested to execute ET_DYN elf image check if this flag is on after we know the elf brand allowing execution if so.
PR: kern/87615 Submitted by: Marcin Koziej <creep@desk.pl>
show more ...
|
#
410d8579 |
| 15-Dec-2005 |
John Baldwin <jhb@FreeBSD.org> |
Remove linux_mib_destroy() (which I actually added in between 5.0 and 5.1) which existed to cleanup the linux_osname mutex. Now that MTX_SYSINIT() has grown a SYSUNINIT to destroy mutexes on unload,
Remove linux_mib_destroy() (which I actually added in between 5.0 and 5.1) which existed to cleanup the linux_osname mutex. Now that MTX_SYSINIT() has grown a SYSUNINIT to destroy mutexes on unload, the extra destroy here was redundant and resulted in panics in debug kernels.
MFC after: 1 week Reported by: Goran Gajic ggajic at afrodita dot rcub dot bg dot ac dot yu
show more ...
|
Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
1471f287 |
| 02-Nov-2005 |
Paul Saab <ps@FreeBSD.org> |
Calling setrlimit from 32bit apps could potentially increase certain limits beyond what should be capiable in a 32bit process, so we must fixup the limits.
Reviewed by: jhb
|
#
728ef954 |
| 14-Oct-2005 |
John Baldwin <jhb@FreeBSD.org> |
The signal code is now an int rather than a long, so update debug printfs.
|
#
9104847f |
| 14-Oct-2005 |
David Xu <davidxu@FreeBSD.org> |
1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most changes in MD code are trivial, before this change, trapsignal and sendsig use discrete parameters, now they uses member
1. Change prototype of trapsignal and sendsig to use ksiginfo_t *, most changes in MD code are trivial, before this change, trapsignal and sendsig use discrete parameters, now they uses member fields of ksiginfo_t structure. For sendsig, this change allows us to pass POSIX realtime signal value to user code.
2. Remove cpu_thread_siginfo, it is no longer needed because we now always generate ksiginfo_t data and feed it to libpthread.
3. Add p_sigqueue to proc structure to hold shared signals which were blocked by all threads in the proc.
4. Add td_sigqueue to thread structure to hold all signals delivered to thread.
5. i386 and amd64 now return POSIX standard si_code, other arches will be fixed.
6. In this sigqueue implementation, pending signal set is kept as before, an extra siginfo list holds additional siginfo_t data for signals. kernel code uses psignal() still behavior as before, it won't be failed even under memory pressure, only exception is when deleting a signal, we should call sigqueue_delete to remove signal from sigqueue but not SIGDELSET. Current there is no kernel code will deliver a signal with additional data, so kernel should be as stable as before, a ksiginfo can carry more information, for example, allow signal to be delivered but throw away siginfo data if memory is not enough. SIGKILL and SIGSTOP have fast path in sigqueue_add, because they can not be caught or masked. The sigqueue() syscall allows user code to queue a signal to target process, if resource is unavailable, EAGAIN will be returned as specification said. Just before thread exits, signal queue memory will be freed by sigqueue_flush. Current, all signals are allowed to be queued, not only realtime signals.
Earlier patch reviewed by: jhb, deischen Tested on: i386, amd64
show more ...
|
#
2a988f7c |
| 22-Sep-2005 |
Stephan Uphoff <ups@FreeBSD.org> |
Fix the "fpudna: fpcurthread == curthread XXX times" problem.
Tested by: kris@ Reviewed by: peter@ MFC after: 3 days
|
#
813a5e14 |
| 29-Jul-2005 |
John Baldwin <jhb@FreeBSD.org> |
Move MODULE_DEPEND() statements for SYSVIPC dependencies to linux_ipc.c so that they aren't duplicated 3 times and are also in the same file as the code that depends on the SYSVIPC modules.
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
f2c7668e |
| 23-Mar-2005 |
David Schultz <das@FreeBSD.org> |
Make ps_nargvstr and ps_nenvstr unsigned. This fixes an input validation error in procfs/linprocfs that can be exploited by local users to cause a kernel panic. All versions of FreeBSD with the pat
Make ps_nargvstr and ps_nenvstr unsigned. This fixes an input validation error in procfs/linprocfs that can be exploited by local users to cause a kernel panic. All versions of FreeBSD with the patch referenced in SA-04:17.procfs have this bug, but versions without that patch have a more serious bug instead. This problem only affects systems on which procfs or linprocfs is mounted.
Found by: Coverity Prevent analysis tool Security: Local DOS
show more ...
|
#
1d15fdd9 |
| 18-Feb-2005 |
John Baldwin <jhb@FreeBSD.org> |
- Add a custom version of exec_copyin_args() to deal with the 32-bit pointers in argv and envv in userland and use that together with kern_execve() and exec_free_args() to implement linux_execve(
- Add a custom version of exec_copyin_args() to deal with the 32-bit pointers in argv and envv in userland and use that together with kern_execve() and exec_free_args() to implement linux_execve() for the amd64/linux32 ABI without using the stackgap. - Implement linux_nanosleep() using the recently added kern_nanosleep(). - Use linux_emul_convpath() instead of linux_emul_find() in exec_linux_imgact_try().
Tested by: cokane Silence on: amd64
show more ...
|
#
610ecfe0 |
| 30-Jan-2005 |
Maxim Sobolev <sobomax@FreeBSD.org> |
o Split out kernel part of execve(2) syscall into two parts: one that copies arguments into the kernel space and one that operates completely in the kernel space;
o use kernel-only version of ex
o Split out kernel part of execve(2) syscall into two parts: one that copies arguments into the kernel space and one that operates completely in the kernel space;
o use kernel-only version of execve(2) to kill another stackgap in linuxlator/i386.
Obtained from: DragonFlyBSD (partially) MFC after: 2 weeks
show more ...
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
#
6004362e |
| 27-Nov-2004 |
David Schultz <das@FreeBSD.org> |
Don't include sys/user.h merely for its side-effect of recursively including other headers.
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
ce55a234 |
| 16-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
I missed an 'IA32' in the documentation.
|
#
c680f6b1 |
| 16-Aug-2004 |
David E. O'Brien <obrien@FreeBSD.org> |
I'm not sure what tjr envisioned for turning on FreeBSD/i386 rt support, but make it COMPAT_IA32 for now. Fix the 'DEBUG' argument code to unbreak the amd64 LINT build.
|
#
ea0fabbc |
| 16-Aug-2004 |
Tim J. Robbins <tjr@FreeBSD.org> |
Add preliminary support for running 32-bit Linux binaries on amd64, enabled with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux emulations bits, but also builds on the 32-bit F
Add preliminary support for running 32-bit Linux binaries on amd64, enabled with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32 binary emulation work.
Some of this is still a little rough around the edges, and will need to be revisited before 32-bit and 64-bit Linux emulation support can coexist in the same kernel.
show more ...
|
#
a107d8aa |
| 25-Mar-2010 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Change the arguments of exec_setregs() so that it receives a pointer to the image_params struct instead of several members of that struct individually. This makes it easier to expand its arguments in
Change the arguments of exec_setregs() so that it receives a pointer to the image_params struct instead of several members of that struct individually. This makes it easier to expand its arguments in the future without touching all platforms.
Reviewed by: jhb
show more ...
|
#
841c0c7e |
| 11-Mar-2010 |
Nathan Whitehorn <nwhitehorn@FreeBSD.org> |
Provide groundwork for 32-bit binary compatibility on non-x86 platforms, for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32 option to COMPAT_FREEBSD32, removes some IA32-speci
Provide groundwork for 32-bit binary compatibility on non-x86 platforms, for upcoming 64-bit PowerPC and MIPS support. This renames the COMPAT_IA32 option to COMPAT_FREEBSD32, removes some IA32-specific code from MI parts of the kernel and enhances the freebsd32 compatibility code to support big-endian platforms.
Reviewed by: kib, jhb
show more ...
|
Revision tags: release/8.0.0_cvs, release/8.0.0 |
|
#
874108ae |
| 12-Nov-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
MFC @199204
|
#
d6e029ad |
| 27-Oct-2009 |
Konstantin Belousov <kib@FreeBSD.org> |
In r197963, a race with thread being selected for signal delivery while in kernel mode, and later changing signal mask to block the signal, was fixed for sigprocmask(2) and ptread_exit(3). The same r
In r197963, a race with thread being selected for signal delivery while in kernel mode, and later changing signal mask to block the signal, was fixed for sigprocmask(2) and ptread_exit(3). The same race exists for sigreturn(2), setcontext(2) and swapcontext(2) syscalls.
Use kern_sigprocmask() instead of direct manipulation of td_sigmask to reschedule newly blocked signals, closing the race.
Reviewed by: davidxu Tested by: pho MFC after: 1 month
show more ...
|