6856 sys/stream.h exposes unnecessary macros to userland

Review Request #549 — Created May 29, 2017 and submitted


This is a slightly "slimmed down" version of Lauri Tirkkonen's work as shown in https://illumos.org/rb/r/187/
That's good work, but it was sort of "stuck" because it was hard to analyze it's affect on either
(a) the gate (i.e. with wsdiff) or (b) consuming applications (due to exported header changes).

In this version of the work, I've tried to only remove the exposure of sys/stream.h
from netinet/in.h and otherwise leave header exposure as little changed as possible.
I hope this gives us a way to move forward with 6856, in "smaller steps".

The rest of the changes Lauri Tirkkonen proposed also look good, and would
further improve (reduce) unexpected header exposure, but I suggest we
consider making those separately.

Note: there are XXX marks to call attention to things in this review.
No need to tell me they need to be removed before this integrates.

Build and wsdiff (on top of the changes shown in https://www.illumos.org/rb/r/548/
because I needed to use Studio to get deterministic build results)
wsdiff of before vs. after this change shows nothing but a few expected
differences (i.e. "dof" sections and data containing the git changeset hash)

I hope to get a "pkgsrc" build with this too.
Confirmed that "pkgsrc" build was fine:
(Thanks to Jonathan Perkin at Joyent)

  1. The changes look okay but I don't feel confident enough to really say until I've done some regression testing. Hopefully I'll get a chance to do that over the weekend.

    1. Hi Andy, did you get any time to try this?

    2. No I didn't, but I should have some time today.

  2. usr/src/uts/common/sys/socket.h (Diff revision 1)

    Are the programs in question in the gate, or third party consumers do expect these to be included too?

    1. Some in the gate, some outside...

    2. It would be a nice "next step" to try to clean up these sys/socket.h includes too,
      though that's a somewhat less urgent problem than the sys/stream.h mess was.
      The fixes Lauri Tirkkonen posted should take care of most of that,
      though we'll have to look at the pkgsrc impact after each removal.

  1. Given the testing done, LGTM.

  1. I did a full build of our OS with this change applied. No issues detected.

Review request changed

Status: Closed (submitted)