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)
Thu, Jul 16, 4:42 AM
Unknown Object (File)
Thu, Jul 9, 10:58 PM
Unknown Object (File)
Sat, Jul 4, 6:20 PM
Unknown Object (File)
Sat, Jul 4, 5:54 PM
Unknown Object (File)
Jun 9 2026, 10:45 PM
Unknown Object (File)
Jun 4 2026, 7:11 AM
Unknown Object (File)
Jun 4 2026, 7:08 AM
Unknown Object (File)
Jun 3 2026, 9:42 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