| #
7dd9070e
|
| 16-Apr-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libc: INTERPOS_SYS macro for interposed syscalls
This macro makes uses the __sys_<foo>_t typedefs from libsys.h to greatly simplify calling functions in the interposing table.
Reviewed by: kib Diff
libc: INTERPOS_SYS macro for interposed syscalls
This macro makes uses the __sys_<foo>_t typedefs from libsys.h to greatly simplify calling functions in the interposing table.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D44389
show more ...
|
| #
d7847a8d
|
| 13-Mar-2024 |
Brooks Davis <brooks@FreeBSD.org> |
lib{c,sys}: return wrapped syscall APIs to libc
These provide standard APIs, but are implemented using another system call (e.g., pipe implemented in terms of pipe2) or are interposed by the threadi
lib{c,sys}: return wrapped syscall APIs to libc
These provide standard APIs, but are implemented using another system call (e.g., pipe implemented in terms of pipe2) or are interposed by the threading library to support cancelation.
After discussion with kib (see D44111), I've concluded that it is better to keep most public interfaces in libc with as little as possible in libsys.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D44241
show more ...
|
| #
ef5fddd3
|
| 13-Mar-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libsys: make __libsys_interposing static
Access __libsys_interposing with __libc_interposing_slot() in all cases to support a move of these wrappers back to libc.
Reviewed by: kib Differential Revi
libsys: make __libsys_interposing static
Access __libsys_interposing with __libc_interposing_slot() in all cases to support a move of these wrappers back to libc.
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D44239
show more ...
|
| #
8269e767
|
| 14-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libsys: relocate implementations and manpages
Remove core system call implementations and documentation to lib/libsys and lib/libsys/<arch> from lib/libc/sys and lib/libc/<arch>/<sys>. Update paths
libsys: relocate implementations and manpages
Remove core system call implementations and documentation to lib/libsys and lib/libsys/<arch> from lib/libc/sys and lib/libc/<arch>/<sys>. Update paths to allow libc to find them in their new home.
Reviewed by: kib, emaste, imp Pull Request: https://github.com/freebsd/freebsd-src/pull/908
show more ...
|
| #
9cbd9658
|
| 16-Jan-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libc: split libc and syscall interposing (1/2)
System calls or their wrappers are now interposed by __libsys_interposing with purely libc entries remaining in __libc_interposing.
Use __libsys_inter
libc: split libc and syscall interposing (1/2)
System calls or their wrappers are now interposed by __libsys_interposing with purely libc entries remaining in __libc_interposing.
Use __libsys_interposing_slot in libthr to update __libsys_interposing, but also make __libc_interposing_slot fall back to __libsys_interposing_slot so an out of date libc has a chance of working during updates.
Reviewed by: kib, emaste, imp Pull Request: https://github.com/freebsd/freebsd-src/pull/908
show more ...
|
| #
559a218c
|
| 01-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
libc: Purge unneeded cdefs.h
These sys/cdefs.h are not needed. Purge them. They are mostly left-over from the $FreeBSD$ removal. A few in libc are still required for macros that cdefs.h defines. Kee
libc: Purge unneeded cdefs.h
These sys/cdefs.h are not needed. Purge them. They are mostly left-over from the $FreeBSD$ removal. A few in libc are still required for macros that cdefs.h defines. Keep those.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D42385
show more ...
|
| #
1d386b48
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| #
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
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
show more ...
|
| #
5b5fa75a
|
| 04-Aug-2022 |
Ed Maste <emaste@FreeBSD.org> |
libc: drop "All rights reserved" from Foundation copyrights
This has already been done for most files that have the Foundation as the only listed copyright holder. Do it now for files that list mul
libc: drop "All rights reserved" from Foundation copyrights
This has already been done for most files that have the Foundation as the only listed copyright holder. Do it now for files that list multiple copyright holders, but have the Foundation copyright in its own section.
Sponsored by: The FreeBSD Foundation
show more ...
|
| #
d915a14e
|
| 25-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
libc: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using mis-identified many licenses so this was mostly a manual - error p
libc: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using mis-identified many licenses so this was mostly a manual - error prone - task.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
show more ...
|
| #
0538aafc
|
| 18-Apr-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
The lseek(2), mmap(2), truncate(2), ftruncate(2), pread(2), and pwrite(2) syscalls are wrapped to provide compatibility with pre-7.x kernels which required padding before the off_t parameter. The fc
The lseek(2), mmap(2), truncate(2), ftruncate(2), pread(2), and pwrite(2) syscalls are wrapped to provide compatibility with pre-7.x kernels which required padding before the off_t parameter. The fcntl(2) contains compatibility code to handle kernels before the struct flock was changed during the 8.x CURRENT development. The shims were reasonable to allow easier revert to the older kernel at that time.
Now, two or three major releases later, shims do not serve any purpose. Such old kernels cannot handle current libc, so revert the compatibility code.
Make padded syscalls support conditional under the COMPAT6 config option. For COMPAT32, the syscalls were under COMPAT6 already.
Remove WITHOUT_SYSCALL_COMPAT build option, which only purpose was to (partially) disable the removed shims.
Reviewed by: jhb, imp (previous versions) Discussed with: peter Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
| #
1849df30
|
| 01-Apr-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Correctly handle __fcntl_compat symbol for the !SYSCALL_COMPAT case. Both .weak and .alias assembler directives only work when assembling the file which defines the symbol.
Reported and tested by: a
Correctly handle __fcntl_compat symbol for the !SYSCALL_COMPAT case. Both .weak and .alias assembler directives only work when assembling the file which defines the symbol.
Reported and tested by: andrew Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
| #
8495e8b1
|
| 03-Jan-2015 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix known issues which blow up the process after dlopen("libthr.so") (or loading a dso linked to libthr.so into process which was not linked against threading library).
- Remove libthr interposers o
Fix known issues which blow up the process after dlopen("libthr.so") (or loading a dso linked to libthr.so into process which was not linked against threading library).
- Remove libthr interposers of the libc functions, including __error(). Instead, functions calls are indirected through the interposing table, similar to how pthread stubs in libc are already done. Libc by default points either to syscall trampolines or to existing libc implementations. On libthr load, libthr rewrites the pointers to the cancellable implementations already in libthr. The interposition table is separate from pthreads stubs indirection table to not pull pthreads stubs into static binaries.
- Postpone the malloc(3) internal mutexes initialization until libthr is loaded. This avoids recursion between calloc(3) and static pthread_mutex_t initialization.
- Reinstall signal handlers with wrapper on libthr load. The _rtld_is_dlopened(3) is used to avoid useless calls to sigaction(2) when libthr is statically referenced from the main binary.
In the process, fix openat(2), swapcontext(2) and setcontext(2) interposing. The libc symbols were exported at different versions than libthr interposers. Export both libc and libthr versions from libc now, with default set to the higher version from libthr.
Remove unused and disconnected swapcontext(3) userspace implementation from libc/gen.
No objections from: deischen Tested by: pho, antoine (exp-run) (previous versions) Sponsored by: The FreeBSD Foundation MFC after: 1 week
show more ...
|
| #
a53cab2c
|
| 21-Jul-2012 |
Konstantin Belousov <kib@FreeBSD.org> |
(Incomplete) fixes for symbols visibility issues and style in fcntl.h.
Append '__' prefix to the tag of struct oflock, and put it under BSD namespace. Structure is needed both by libc and kernel, th
(Incomplete) fixes for symbols visibility issues and style in fcntl.h.
Append '__' prefix to the tag of struct oflock, and put it under BSD namespace. Structure is needed both by libc and kernel, thus cannot be hidden under #ifdef _KERNEL.
Move a set of non-standard F_* and O_* constants into BSD namespace. SUSv4 explicitely allows implemenation to pollute F_* and O_* names after fcntl.h is included, but it costs us nothing to adhere to the specification if exact POSIX compliance level is requested by user code.
Change some spaces after #define to tabs.
Noted by and discussed with: bde MFC after: 1 week
show more ...
|
| #
cd7d66a2
|
| 30-May-2008 |
Doug Rabson <dfr@FreeBSD.org> |
Call the fcntl compatiblity wrapper from the thread library fcntl wrappers so that they get the benefit of the (limited) forward ABI compatibility.
MFC after: 1 week
|
| #
2da0808a
|
| 27-May-2008 |
Doug Rabson <dfr@FreeBSD.org> |
Make fcntl() a weak symbol so that it can be overridden by thread libraries.
MFC after: 2 days
|
| #
aea15cbc
|
| 04-Apr-2008 |
Doug Rabson <dfr@FreeBSD.org> |
Add some compatibility code so that software which is built to use the new struct flock with l_sysid member can work properly on an an old kernel which doesn't support l_sysid.
Sponsored by: Isilon
Add some compatibility code so that software which is built to use the new struct flock with l_sysid member can work properly on an an old kernel which doesn't support l_sysid.
Sponsored by: Isilon Systems
show more ...
|