#
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 ...
|
#
32c7350b |
| 07-Mar-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libc/i386: don't attempt to export alloca
The assembly implementation was removed in 2006 (commit 3c03c7095e7e).
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D44242
|
Revision tags: release/13.3.0 |
|
#
1e2502bf |
| 15-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libc: move MD sys related symbols to libsys
This is a mix genuine MD interfaces and compat symbols like _getlogin.
Reviewed by: kib, emaste, imp Pull Request: https://github.com/freebsd/freebsd-src
libc: move MD sys related symbols to libsys
This is a mix genuine MD interfaces and compat symbols like _getlogin.
Reviewed by: kib, emaste, imp Pull Request: https://github.com/freebsd/freebsd-src/pull/908
show more ...
|
#
c7045186 |
| 16-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libc: centralize a few numeric symbols
fabs, __infinity, and __nan are universally implemented so declare them in gen/Symbol.map.
We would also include __flt_rounds, but it's under FBSD_1.3 on arm
libc: centralize a few numeric symbols
fabs, __infinity, and __nan are universally implemented so declare them in gen/Symbol.map.
We would also include __flt_rounds, but it's under FBSD_1.3 on arm so until that's gone we're stuck with it. Likewise, everyone but i386 implements fp[gs]etmask.
Reviewed by: imp, kib, emaste Differential Revision: https://reviews.freebsd.org/D42618
show more ...
|
#
5d79b544 |
| 16-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libc: centralize makecontext symbols
Declare makecontext() and __makecontext() symbols centrally as they are always implemented.
Reviewed by: imp, kib Differential Revision: https://reviews.freebsd
libc: centralize makecontext symbols
Declare makecontext() and __makecontext() symbols centrally as they are always implemented.
Reviewed by: imp, kib Differential Revision: https://reviews.freebsd.org/D42617
show more ...
|
#
1c656143 |
| 16-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libc: centralize {_,sig,}{set,long}jmp symbols
These symbols are universally exposed and documented so declare them centrally. Double- and triple-underscore versions exist on some platforms, but le
libc: centralize {_,sig,}{set,long}jmp symbols
These symbols are universally exposed and documented so declare them centrally. Double- and triple-underscore versions exist on some platforms, but leave those alone for now.
Reviewed by: imp, kib Differential Revision: https://reviews.freebsd.org/D42616
show more ...
|
#
ff3a9d8e |
| 16-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libc: centralize ntoh symbols
These are implemented by net/ntoh.c via headers and compiler intrinsics so declare them in net/Symbol.map.
Reviewed by: imp, kib, emaste Differential Revision: https:/
libc: centralize ntoh symbols
These are implemented by net/ntoh.c via headers and compiler intrinsics so declare them in net/Symbol.map.
Reviewed by: imp, kib, emaste Differential Revision: https://reviews.freebsd.org/D42615
show more ...
|
#
e4a1800f |
| 16-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libc: further centralize syscall symbols
All architectures necessarily implement _exit(2) and vfork(2) so declare them in sys/Symbol.map.
Reviewed by: imp, kib, emaste Differential Revision: https:
libc: further centralize syscall symbols
All architectures necessarily implement _exit(2) and vfork(2) so declare them in sys/Symbol.map.
Reviewed by: imp, kib, emaste Differential Revision: https://reviews.freebsd.org/D42614
show more ...
|
#
1ca63a82 |
| 15-Nov-2023 |
Brooks Davis <brooks@FreeBSD.org> |
libc: Remove empty comments in Symbol.map
These were left over from $FreeBSD$ removal.
Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D42612
|
Revision tags: release/14.0.0 |
|
#
42b38843 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line .h pattern
Remove /^\s*\*+\s*\$FreeBSD\$.*$\n/
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0 |
|
#
ae67737a |
| 09-Dec-2021 |
John Baldwin <jhb@FreeBSD.org> |
libc: Remove _get_tp() and _set_tp().
Their uses have been replaced by _tcb_get() and _tcb_set() from <machine/tls.h>.
Reviewed by: kib, jrtc27 Sponsored by: The University of Cambridge, Google Inc
libc: Remove _get_tp() and _set_tp().
Their uses have been replaced by _tcb_get() and _tcb_set() from <machine/tls.h>.
Reviewed by: kib, jrtc27 Sponsored by: The University of Cambridge, Google Inc. Differential Revision: https://reviews.freebsd.org/D33354
show more ...
|
Revision tags: release/12.3.0, release/13.0.0, release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0 |
|
#
18b18078 |
| 25-Feb-2019 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r344527
|
#
a8fe8db4 |
| 25-Feb-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r344178 through r344512.
|
#
a2d95495 |
| 20-Feb-2019 |
Konstantin Belousov <kib@FreeBSD.org> |
Add usermode helpers for for Intel userspace protection keys feature.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews
Add usermode helpers for for Intel userspace protection keys feature.
Reviewed by: markj Tested by: pho Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Differential revision: https://reviews.freebsd.org/D18893
show more ...
|
#
67350cb5 |
| 09-Dec-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340918 through r341763.
|
Revision tags: release/12.0.0 |
|
#
db19a093 |
| 05-Dec-2018 |
Brooks Davis <brooks@FreeBSD.org> |
Remove MD __sys_* private symbols.
No references to any of these exist in the tree. The list was also erratic with different architectures exporting different things (arm64 and riscv exported none).
Remove MD __sys_* private symbols.
No references to any of these exist in the tree. The list was also erratic with different architectures exporting different things (arm64 and riscv exported none).
Reviewed by: kib Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D18425
show more ...
|
Revision tags: release/11.2.0 |
|
#
9f9c9b22 |
| 04-Jun-2018 |
Mark Johnston <markj@FreeBSD.org> |
Reimplement brk() and sbrk() to avoid the use of _end.
Previously, libc.so would initialize its notion of the break address using _end, a special symbol emitted by the static linker following the bs
Reimplement brk() and sbrk() to avoid the use of _end.
Previously, libc.so would initialize its notion of the break address using _end, a special symbol emitted by the static linker following the bss section. Compatibility issues between lld and ld.bfd could cause the wrong definition of _end (libc.so's definition rather than that of the executable) to be used, breaking the brk()/sbrk() interface.
Avoid this problem and future interoperability issues by simply not relying on _end. Instead, modify the break() system call to return the kernel's view of the current break address, and have libc initialize its state using an extra syscall upon the first use of the interface. As a side effect, this appears to fix brk()/sbrk() usage in executables run with rtld direct exec, since the kernel and libc.so no longer maintain separate views of the process' break address.
PR: 228574 Reviewed by: kib (previous version) MFC after: 2 months Differential Revision: https://reviews.freebsd.org/D15663
show more ...
|
#
87385baf |
| 12-Apr-2018 |
Brooks Davis <brooks@FreeBSD.org> |
Replace MD assembly exect() with a portable version.
Originally, on the VAX exect() enable tracing once the new executable image was loaded. This was possible because tracing was controllable throu
Replace MD assembly exect() with a portable version.
Originally, on the VAX exect() enable tracing once the new executable image was loaded. This was possible because tracing was controllable through user space code by setting the PSL_T flag. The following instruction is a system call that activated tracing (as all instructions do) by copying PSL_T to PSL_TP (trace pending). The first instruction of the new executable image would trigger a trace fault.
This is not portable to all platforms and the behavior was replaced with ptrace(PT_TRACE_ME, ...) since FreeBSD forked off of the CSRG repository. Platforms either incorrectly call execve(), trigger trace faults inside the original executable, or do contain an implementation of this function.
The exect() interfaces is deprecated or removed on NetBSD and OpenBSD.
Submitted by: Ali Mashtizadeh <ali@mashtizadeh.com> Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D14989
show more ...
|
Revision tags: release/10.4.0, release/11.1.0, release/11.0.1, release/11.0.0 |
|
#
d6084013 |
| 05-Apr-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: The FreeBSD Foundation
|
Revision tags: release/10.3.0 |
|
#
dae2d550 |
| 24-Mar-2016 |
Ed Maste <emaste@FreeBSD.org> |
libc: stop exporting curbrk and minbrk in the private namespace
They are not used anywhere else in the base system and are an internal implementation detail that does not need to be exposed.
Review
libc: stop exporting curbrk and minbrk in the private namespace
They are not used anywhere else in the base system and are an internal implementation detail that does not need to be exposed.
Reviewed by: kib Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D5728
show more ...
|
Revision tags: release/10.2.0, release/10.1.0, release/9.3.0, release/10.0.0, release/9.2.0 |
|
#
cfe30d02 |
| 19-Jun-2013 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Merge fresh head.
|
Revision tags: release/8.4.0, release/9.1.0 |
|
#
e477abf7 |
| 27-Nov-2012 |
Alexander Motin <mav@FreeBSD.org> |
MFC @ r241285
|
#
a10c6f55 |
| 11-Nov-2012 |
Neel Natu <neel@FreeBSD.org> |
IFC @ r242684
|
#
23090366 |
| 04-Nov-2012 |
Simon J. Gerraty <sjg@FreeBSD.org> |
Sync from head
|
#
a8599e09 |
| 05-Sep-2012 |
Jilles Tjoelker <jilles@FreeBSD.org> |
libc/i386: Do not export .cerror.
For some reason, libc exports the symbol .cerror (HIDENAME(cerror)), albeit in the FBSDprivate_1.0 version. It looks like there is no reason for this since it is no
libc/i386: Do not export .cerror.
For some reason, libc exports the symbol .cerror (HIDENAME(cerror)), albeit in the FBSDprivate_1.0 version. It looks like there is no reason for this since it is not used from other libraries. Given that it cannot be accessed from C and its strange calling convention, it is rather unlikely that other things rely on it. Perhaps it is from a time when symbols could not be hidden.
Not exporting .cerror causes it to be jumped to directly instead of via the PLT.
This change also takes advantage of .cerror's new status by not saving and loading %ebx before jumping to it. (Therefore, .cerror now saves and loads %ebx itself.) Where there was a conditional jump to a jump to .cerror, the conditional jump has been changed to jump to .cerror directly (many modern CPUs don't do static prediction and in any case it is not much of a benefit anyway).
This change makes libc.so.7 a few kilobytes smaller.
Reviewed by: kib
show more ...
|