Page MenuHomeFreeBSD

pthread: Make pthread_np.h self-contained
AcceptedPublic

Authored by markj on May 6 2026, 5:27 PM.
Tags
None
Referenced Files
F166112051: D56857.id177323.diff
Tue, Aug 11, 7:58 PM
F166107904: D56857.id177320.diff
Tue, Aug 11, 7:07 PM
F166101386: D56857.id177320.diff
Tue, Aug 11, 5:52 PM
Unknown Object (File)
Mon, Aug 10, 10:30 AM
Unknown Object (File)
Mon, Aug 10, 8:33 AM
Unknown Object (File)
Mon, Aug 10, 4:44 AM
Unknown Object (File)
Sun, Aug 9, 11:22 AM
Unknown Object (File)
Sat, Aug 8, 3:11 PM
Subscribers

Details

Reviewers
kib
olce
Summary

Including param.h from a standard header is inappropriate. param.h
defines all sorts of crap which collides with commonly used identifiers.
I discovered this while trying to build an old version of QEMU which
polluted its namespace by including pthread_np.h->sys/param.h, which
defines FSCALE, which breaks QEMU code.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 72859
Build 69742: arc lint + arc unit

Event Timeline

markj requested review of this revision.May 6 2026, 5:27 PM
include/pthread_np.h
37

I think this must be sys/types.h.

In the man pages, pthread_attr_getaffinity_np() is documented to take size_t. It is natural for consumer to conclude that including pthread_np.h implies availability of size_t.

Then the change of size_t to __size_t in prototypes can be reverted.

Include sys/types.h instead of sys/_types.h

This revision is now accepted and ready to land.May 6 2026, 7:14 PM