Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 3 Feb 2024 11:05:10 -0500
From:      Daniel Eischen <eischen@vigrid.com>
To:        Brooks Davis <brooks@freebsd.org>
Cc:        current@freebsd.org, Dave Cottlehuber <dch@skunkwerks.at>
Subject:   Re: libc/libsys split coming soon
Message-ID:  <082DBB76-B8B0-4583-BDE4-B6DCD1DAD133@vigrid.com>
In-Reply-To: <458c2a3b-1139-4449-a4a9-f23782686dea@app.fastmail.com>
References:  <458c2a3b-1139-4449-a4a9-f23782686dea@app.fastmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Will this break binary compatibility with older programs expecting those sym=
bols in libc and not linked to libsys?

> On Feb 3, 2024, at 3:39=E2=80=AFAM, Dave Cottlehuber <dch@skunkwerks.at> w=
rote:
>=20
> =EF=BB=BFOn Fri, 2 Feb 2024, at 23:31, Brooks Davis wrote:
>> TL;DR: The implementation of system calls is moving to a seperate
>> library (libsys).  No changes are required to existing software (except
>> to ensure that libsys is present when building custom disk images).
>>=20
>> Code: https://github.com/freebsd/freebsd-src/pull/908
>>=20
>> After nearly a decade of intermittent work, I'm about to land a series
>> of patches which moves system calls, vdso support, and libc's parsing of
>> the ELF auxiliary argument vector into a separate library (libsys).  I
>> plan to do this early next week (February 5th).
>>=20
>> This change serves three primary purposes:
>>  1. It's easier to completely replace system call implementations for
>>     tracing or compartmentalization purposes.
>>  2. It simplifies the implementation of restrictions on system calls such=

>>     as those implemented by OpenBSD's msyscall(2)
>>     (https://man.openbsd.org/msyscall.2).
>>  3. It allows language runtimes to link with libsys for system call
>>     implementations without requiring libc.
>=20
> Awesome! So (3) is generally considered ideal for languages like zig[1], r=
ust or go, to use directly?
>=20
> What=E2=80=99s the appropriate mechanism for such a language to know which=
 version of FreeBSD it=E2=80=99s talking to, to ensure syscall table matches=
 the languages expectations?
>=20
> It would be nice to hear about any experiments in (2) and how that compare=
s to things such as capsicum.
>=20
> [1]: https://github.com/ziglang/zig/issues/165
>=20
> A+
> Dave
>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?082DBB76-B8B0-4583-BDE4-B6DCD1DAD133>