History log of /freebsd-current/lib/libsys/Makefile.sys
Revision Date Author Comments
# 74484086 22-Apr-2024 Brooks Davis <brooks@FreeBSD.org>

Make __libsys_interposing_slot libsys only

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D44881


# 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
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


# f7dbbbd1 13-Mar-2024 Brooks Davis <brooks@FreeBSD.org>

libsys: don't expose sigwait wrapper

Long ago (e129c18a83ef) __sys_sigwait was wrapped to prevent sigwait()
from returning with EINTR. Through a series of changes this wrapper
become __libc_sigwait which was internal to libc and used solely in the
interposing table. To support a move of sigwait back to libc, move this
wrapper into libsys and rename it with an __libsys_ prefix.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D44238


# 269593dc 06-Mar-2024 Brooks Davis <brooks@FreeBSD.org>

libsys/aarch64: end syscall stubs with newlines

Technically speaking, POSIX text files must end with a newline.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D44231


# 6d3f4dcd 29-Feb-2024 Brooks Davis <brooks@FreeBSD.org>

libsys: make PSEUDO take a bare syscall name

Rather than having PSEUDO be a list of object files when all consumers
want syscall names or source files, make it a list of bare syscall
names like INTERPOSED (which is built on PSEUDO).

Improve document of variables developers can set.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D44108


# f102db50 29-Feb-2024 Brooks Davis <brooks@FreeBSD.org>

libsys: consolidate PSEUDO definitions

Consolidate in preparation for further cleanup.

Also relocate the sole NOASM entry.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D44107


# e52a9177 29-Feb-2024 Brooks Davis <brooks@FreeBSD.org>

libsys: reduce makefile declaration duplication

Every PSEUDO entry (_foo.o) has a corresponding NOASM entry (foo.o) to
suppress its addition to ASM. Check PSEUDO instead when adding entries
to ASM. No functional change.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D44106


# 7d233b22 23-Feb-2024 Konstantin Belousov <kib@FreeBSD.org>

libsys: fix sleep(3)/usleep(3) cancel behavior

Move functions back to libc/gen sources; they are only versioned from
libc and not libsys.
Access libsys interposing slots using __libsys_interposing_slot()
instead of direct __libsys_interposing array dereference, which cannot
work from libc.

Reported by: glebius
Reviewed by: brooks
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D44042


# 8271d9b9 20-Feb-2024 Konstantin Belousov <kib@FreeBSD.org>

libsys: remove usage of pthread_once and _once_stub

that existed in auxv.c, use simple bool gate instead. This leaves a
small window if two threads try to call _elf_aux_info(3) simultaneously.
The situation is safe because auxv parsing is really idempotent. The
parsed data is the same, and we store atomic types (int/long/ptr) so
double-init does not matter.

Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential revision: https://reviews.freebsd.org/D43985


# 99ea6757 19-Feb-2024 Brooks Davis <brooks@FreeBSD.org>

lib{c,sys}: move auxargs more firmly into libsys

Continue to filter the public interface (elf_aux_info()), but entierly
relocate the private interfaces (_elf_aux_info(),
__init_elf_aux_vector(), and __elf_aux_vector) to libsys.

This ensures that rtld updates the correct (only) copy of
__elf_aux_vector. After 968a18975adc9c2a619bb52aa2f009de99fc9e24
updates were confused and __getosreldate was failing, causing
the system to fall back to compat compat12 syscalls in some cases.

Return to explicitly linking libc to libsys and link libthr with libc
and libsys (in that order).

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D43910


# a52cb4c4 03-Feb-2024 Konstantin Belousov <kib@FreeBSD.org>

Document aio_read2/aio_write2

Reviewed by: jhb
Discussed with: asomers
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D43448


# e9d96105 15-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libsys: plumb in to build

libsys provides the FreeBSD kernel interface (auxargs, system calls,
vdso). It can be linked directly for programs using a non-standard
libc and will later be linked as a filter library to libc providing
the actual system call implementation.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 86deddfa 21-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libsys: generate private symbol map

We now export all _ and __sys_ prefixed syscalls stubs from libc and
libsys so that libsys can replace them.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 10f1b536 17-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: move __getosreldate to libsys

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# f70c5a09 17-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: move getpagesize(s) to libsys

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 4c33415e 15-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: elf auxiliary vector handling to libsys

This is part of the interface to the kernel and some syscall wrappers
depend on it so move it there.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 81245a77 21-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: compile _once in libsys

auxv support requires _once(), but we don't want the libsys version
stomping on the libc version should they diverge in the future. We
could rename it entierly, but for now just hook it in via Makefile.sys.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 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/pull/908


# cdecda8d 15-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: move rfork_thread(3) to libsys

rfork_thread(3) is assembly that makes syscalls directly and uses
cerror so it belongs in libsys.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 31a46e2c 14-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: Move per-arch sys/Makefile.inc to libsys

libc/<arch>/sys/Makefile.inc -> libsys/<arch>/Makefile.sys.

Require that libsys/<arch>/Makefile.sys exist. At least for current
archtiectures, it's not possible for an architecture to not have and MD
syscall bits.

powerpcspe/Makefile.sys's structure means it had to be modified when moved
so rename detection won't work, but it has trivial contents so the
history is unimportant.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 19149b03 14-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: remove .PATH refs to libc/<arch>/sys

There are no longer any source files here so remove references.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 29d079c9 16-Jan-2024 Brooks Davis <brooks@FreeBSD.org>

libsys: move __libsys_interposer consumers

These system call wrappers call interposed system calls in fairly
trivial ways. Move them over to libsys so all __libsys_interposer
consumers end up in libsys.

Also move recvmmsg and sendmmsg as they are documented with recv and
send.

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908


# 8f529310 14-Nov-2023 Brooks Davis <brooks@FreeBSD.org>

libc: libc/sys/Makefile.inc -> libsys/Makefile.sys

Reviewed by: kib, emaste, imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/908