Page MenuHomeFreeBSD

libc: stop trying to create __<syscall> symbols
ClosedPublic

Authored by brooks on Aug 1 2025, 12:35 PM.
Tags
None
Referenced Files
F174786574: D51668.id159847.diff
Tue, Oct 6, 12:01 AM
F174785282: D51668.id159541.diff
Mon, Oct 5, 11:52 PM
F174780183: D51668.diff
Mon, Oct 5, 11:02 PM
Unknown Object (File)
Sat, Oct 3, 3:19 AM
Unknown Object (File)
Sat, Sep 26, 4:31 AM
Unknown Object (File)
Fri, Sep 18, 6:09 AM
Unknown Object (File)
Mon, Sep 14, 10:14 AM
Unknown Object (File)
Mon, Sep 14, 10:14 AM
Subscribers

Details

Summary

When we switched to an interposing table (commit 8495e8b1e9e1) for
cancelation points we stopped having concrete implementations of
<syscall> and instead use sys_<syscall> and __thr_<syscall>.
These entries of the form:

weak_reference(sys_<syscall>, __<syscall>);

seem to be intended to preserve these symbols, but they have no effect
as __sys_<syscall> isn't defined in the translation units in question.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

I have half a memory of this pattern being added to the mix as a compat bridge when moving away from libcR... but it's clear they'd have no effect now

This revision is now accepted and ready to land.Aug 1 2025, 5:50 PM