Page MenuHomeFreeBSD

pthread: Make pthread_np.h self-contained
AcceptedPublic

Authored by markj on May 6 2026, 5:27 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Jun 9, 10:45 PM
Unknown Object (File)
Thu, Jun 4, 7:11 AM
Unknown Object (File)
Thu, Jun 4, 7:08 AM
Unknown Object (File)
Wed, Jun 3, 9:42 PM
Unknown Object (File)
Wed, Jun 3, 9:34 PM
Unknown Object (File)
Mon, Jun 1, 6:52 AM
Unknown Object (File)
Sat, May 30, 11:24 AM
Unknown Object (File)
May 21 2026, 1:54 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