History log of /freebsd-10-stable/sys/amd64/linux/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
326814 12-Dec-2017 pfg

MFC r326282: (by fsu)

Remap ENOATTR to ENODATA in the linuxulator.
In the linux ENOADATA is frequently #defined as ENOATTR. The change is
required for an xattrs support implementation.

321026 15-Jul-2017 dchagin

MFC r305994 (by emaste@):

Catch up to sys/capability.h rename to sys/capsicum.h in r263232

321024 15-Jul-2017 dchagin

MFC r297597 (by bapt@):

Add kern.features flags for linux and linux64 modules

kern.features.linux: 1 meaning linux 32 bits binaries are supported
kern.features.linux64: 1 meaning linux 64 bits binaries are supported

The goal here is to help 3rd party applications (including ports) to determine
if the host do support linux emulation

Relnotes: yes

321014 15-Jul-2017 dchagin

MFC r293908:

Regen after get_robust_list fix.

321013 15-Jul-2017 dchagin

MFC r293907 (glebius@) partially:

Change linux get_robust_list system call to match actual linux one.
This is the forgotten part of r293897.

318164 10-May-2017 jhb

MFC 313564:
Drop the "created from" line from files generated by makesyscalls.sh.

This information is less useful when the generated files are included in
source control along with the source. If needed it can be reconstructed
from the $FreeBSD$ tag in the generated file. Removing this information
from the generated output permits committing the generated files along
with the change to the system call master list without having inconsistent
metadata in the generated files.

Regenerate the affected files along with the MFC.

315063 11-Mar-2017 dchagin

MFC r303464 (by brooks@):

Don't create pointless backups of generated files in "make sysent".

Any sensible workflow will include a revision control system from which
to restore the old files if required. In normal usage, developers just
have to clean up the mess.

312873 27-Jan-2017 tijl

MFC r312699:

Apply r210555 to 64 bit linux support:

The interpreter name should no longer be treated as a buffer that can be
overwritten.

PR: 216346

302964 17-Jul-2016 dchagin

MFC r302517:

Fix a copy/paste bug introduced during X86_64 Linuxulator work.
FreeBSD support NX bit on X86_64 processors out of the box, for i386 emulation
use READ_IMPLIES_EXEC flag, introduced in r302515.

While here move common part of mmap() and mprotect() code to the files in compat/linux
to reduce code dupcliation between Linuxulator's.

MFC r302518, r302626:

Add linux_mmap.c to the appropriate conf/files.

302963 17-Jul-2016 dchagin

Regen for r302962 (Linux personality), record mergeinfo for r320516.

302962 17-Jul-2016 dchagin

MFC r302515:

Implement Linux personality() system call mainly due to READ_IMPLIES_EXEC flag.
In Linux if this flag is set, PROT_READ implies PROT_EXEC for mmap().
Linux/i386 set this flag automatically if the binary requires executable stack.

READ_IMPLIES_EXEC flag will be used in the next Linux mmap() commit.

301422 05-Jun-2016 dchagin

MFC r300359, r300360:

Correct an argument param of linux_sched_* system calls as a struct l_sched_param
does not defined due to it's nature.

300467 23-May-2016 dchagin

MFC r299249:

Add a forgotten in r283424 .eh_frame section with CFI & FDE records to allow
stack unwinding through signal handler.

298653 26-Apr-2016 pfg

MFC r298482:
Cleanup redundant parenthesis from existing howmany()/roundup() macro uses.

Requested by: dchagin

294901 27-Jan-2016 delphij

MFC r294900:

Implement AT_SECURE properly.

AT_SECURE auxv entry has been added to the Linux 2.5 kernel to pass a
boolean flag indicating whether secure mode should be enabled. 1 means
that the program has changes its credentials during the execution.
Being exported AT_SECURE used by glibc issetugid() call.

Submitted by: imp, dchagin
Security: FreeBSD-SA-16:10.linux
Security: CVE-2016-1883

294764 26-Jan-2016 dchagin

MFC r294620:

Fix a typo.

MFC r294621:

Remove obsolete comment.

294369 20-Jan-2016 jhb

Regen for r294368.

294368 20-Jan-2016 jhb

MFC 289769,289822,290143,290144:
Rename remaining linux32 symbols from linux_* to linux32_*.

289769:
Rename remaining linux32 symbols such as linux_sysent[] and
linux_syscallnames[] from linux_* to linux32_* to avoid conflicts with
linux64.ko. While here, add support for linux64 binaries to systrace.
- Update NOPROTO entries in amd64/linux/syscalls.master to match the
main table to fix systrace build.
- Add a special case for union l_semun arguments to the systrace
generation.
- The systrace_linux32 module now only builds the systrace_linux32.ko.
module on amd64.
- Add a new systrace_linux module that builds on both i386 and amd64.
For i386 it builds the existing systrace_linux.ko. For amd64 it
builds a systrace_linux.ko for 64-bit binaries.

289822:
Fix build for the KTR-enabled kernels.

290143:
Fix build with DEBUG defined.

290144:
Update for LINUX32 rename. The assembler didn't complain about undefined
symbols but just used 0 after the rename.

294136 16-Jan-2016 dchagin

MFC r293613:

Implement vsyscall hack. Prior to 2.13 glibc uses vsyscall
instead of vdso. An upcoming linux_base-c6 needs it.

293609 09-Jan-2016 dchagin

MFC r289055 (by mjg@):

linux: fix handling of out-of-bounds syscall attempts

Due to an off by one the code would read an entry past the table, as
opposed to the last entry which contains the nosys handler.

This fixes my fault.

MFC r289058 (by cem@):

Fix missing semi-colon from r289055.

MFC r289768 (by jhb@):

Merge r289055 to amd64/linux32:

linux: fix handling of out-of-bounds syscall attempts

Due to an off by one the code would read an entry past the table, as
opposed to the last entry which contains the nosys handler.

293604 09-Jan-2016 dchagin

MFC r284159:

Futex is an aligned 32-bit integer. Use the proper instruction and
operand when dereferencing futex pointer.

293593 09-Jan-2016 dchagin

Regen for r293592.

293592 09-Jan-2016 dchagin

MFC r283492:

Implement Linux specific syncfs() system call.

293589 09-Jan-2016 dchagin

Regen for r293588.

293588 09-Jan-2016 dchagin

MFC r283488:

Implement recvmmsg() and sendmmsg() system calls.

293587 09-Jan-2016 dchagin

MFC r283487:

Reduce duplication between MD Linux code by moving msg related
struct definitions out into the compat/linux/linux_socket.h

293585 09-Jan-2016 dchagin

MFC r283484:

Implement epoll_pwait() system call.

293583 09-Jan-2016 dchagin

Regen for r293582.

293582 09-Jan-2016 dchagin

MFC r283480:

Add utimensat() system call.

293575 09-Jan-2016 dchagin

MFC r283474:

Rework signal code to allow using it by other modules, like linprocfs:

1. Linux sigset always 64 bit on all platforms. In order to move Linux
sigset code to the linux_common module define it as 64 bit int. Move
Linux sigset manipulation routines to the MI path.

2. Move Linux signal number definitions to the MI path. In general, they
are the same on all platforms except for a few signals.

3. Map Linux RT signals to the FreeBSD RT signals and hide signal conversion
tables to avoid conversion errors.

4. Emulate Linux SIGPWR signal via FreeBSD SIGRTMIN signal which is outside
of allowed on Linux signal numbers.

PR: 197216

293572 09-Jan-2016 dchagin

MFC r283471:

According to Linux man sigaltstack(3) shall return EINVAL if the ss
argument is not a null pointer, and the ss_flags member pointed to by ss
contains flags other than SS_DISABLE. However, in fact, Linux also
allows SS_ONSTACK flag which is simply ignored.

For buggy apps (at least mono) ignore other than SS_DISABLE
flags as a Linux do.

While here move MI part of sigaltstack code to the appropriate place.

293570 09-Jan-2016 dchagin

Regen for r293569.

293569 09-Jan-2016 dchagin

MFC r283467:

Call nosys in case when the incorrect syscall number is specified.

Its my fault, fixed by mjg@ at r289055.

293568 09-Jan-2016 dchagin

Regen for r293567.

293567 09-Jan-2016 dchagin

MFC r283465:

Add preliminary fallocate system call implementation
to emulate posix_fallocate() function.

293556 09-Jan-2016 dchagin

Regen for r293555.

293555 09-Jan-2016 dchagin

MFC r283451:

Implement ppoll() system call.

293550 09-Jan-2016 dchagin

Regen for r293549.

293549 09-Jan-2016 dchagin

MFC r283444:

Implement eventfd system call.

293548 09-Jan-2016 dchagin

MFC r283443:

Put the correct value for the abi_nfdbits parameter of kern_select() for
all supported Linuxulators.

293547 09-Jan-2016 dchagin

Regen for r293546.

293546 09-Jan-2016 dchagin

MFC r283441:

Implement epoll family system calls. This is a tiny wrapper
around kqueue() to implement epoll subset of functionality.
The kqueue user data are 32bit on i386 which is not enough for
epoll user data, so we keep user data in the proc emuldata.

Initial patch developed by rdivacky@ in 2007, then extended
by Yuri Victorovich @ r255672 and finished by me
in collaboration with mjg@ and jillies@.

293541 09-Jan-2016 dchagin

MFC r283437:

To avoid code duplication move open/fcntl definitions to the MI
header file.

293536 09-Jan-2016 dchagin

MFC r283432:

Being exported through vdso the note.Linux section used by glibc
to determine the kernel version (this saves one uname call).
Temporarily disable the export of a note.Linux section until I figured
out how to change the kernel version in the note.Linux on the fly.

293535 09-Jan-2016 dchagin

MFC r283431:

Add AT_RANDOM and AT_EXECFN auxiliary vector entries which are used by
glibc. At list since glibc version 2.16 using AT_RANDOM is mandatory.

293534 09-Jan-2016 dchagin

Regen for r293533.

293533 09-Jan-2016 dchagin

MFC r283428:

Change linux faccessat syscall definition to match actual linux one.

The AT_EACCESS and AT_SYMLINK_NOFOLLOW flags are actually implemented
within the glibc wrapper function for faccessat(). If either of these
flags are specified, then the wrapper function employs fstatat() to
determine access permissions.

293531 09-Jan-2016 dchagin

Regen for r293530.

293530 09-Jan-2016 dchagin

MFC r283424:

Add preliminary support for x86-64 Linux binaries.

283424 24-May-2015 dchagin

Add preliminary support for x86-64 Linux binaries.

Differential Revision: https://reviews.freebsd.org/D1076