Page MenuHomeFreeBSD

libsys: Use PICO_CFLAGS to disable syscall stubs
AbandonedPublic

Authored by brooks on May 22 2025, 3:02 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, May 30, 4:47 AM
Unknown Object (File)
Thu, May 21, 6:23 AM
Unknown Object (File)
May 14 2026, 11:19 PM
Unknown Object (File)
May 14 2026, 11:18 PM
Unknown Object (File)
May 6 2026, 8:46 PM
Unknown Object (File)
Apr 27 2026, 9:51 PM
Unknown Object (File)
Apr 21 2026, 9:52 PM
Unknown Object (File)
Apr 16 2026, 5:48 PM
Subscribers

Details

Summary

SHARED_CFLAGS doesn't do anything for .S files and if it did, the
result would be a broken RTLD. Switch to PICO_CFLAGS to only disable
stubs in regular shared libraries.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 64354
Build 61238: arc lint + arc unit

Event Timeline

Hm, is this because of rtld using the nossppico files from libc? I see two problems:

  1. The nossppico files really shouldn't have the syscall bodies either
  2. On CheriBSD we don't have nossppico for CHERI, since we don't have/need SSP, so rtld pulls from the regular pico files

Would this not be solved by having rtld-elf pull the syscall bits from libsys.a instead? Presumably an oversight that it wasn't changed, masked by this bug.

Hmm, indeed. Extracting from libsys_pic.a seems like the right answer. That then raises the question of the value of PICO_CFLAGS and the like some I might drop that entirely and just add SHARED_CFLAGS.