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, Apr 11, 6:22 AM
Unknown Object (File)
Sat, Apr 11, 2:52 AM
Unknown Object (File)
Sun, Apr 5, 9:09 AM
Unknown Object (File)
Mar 7 2026, 7:39 PM
Unknown Object (File)
Mar 7 2026, 7:36 AM
Unknown Object (File)
Mar 7 2026, 1:53 AM
Unknown Object (File)
Mar 7 2026, 1:47 AM
Unknown Object (File)
Mar 5 2026, 4:53 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.