OK how about this?

I am developing a python script to try and automate this. I have chosen
these 7 just to see what you think.
Here priv.h is only included for its transitive includes and nothing from
the content of the file.
Would this work>

On Sun, Apr 12, 2026 at 4:48 PM Samuel Thibault <[email protected]>
wrote:

> Hello,
>
> Milos Nikic, le ven. 10 avril 2026 21:21:58 -0700, a ecrit:
> > Regarding the headers: I come from a background where "Include What You
> Use"
> > (IWYU) is strictly enforced for stability, so my instinct is to strip
> away
> > "kitchen sink" headers and make every dependency explicit.
> >
> > However, it sounds like this codebase prefers using umbrella headers and
> > relying on transitive resolution
>
> In some cases, yes.
>
> It can be for types reasons: if you use a function that returns a
> kern_return_t, well, yes, surely the header that defines that type has
> to get included by the header tha declares that function. That's why
> you'd essentially never really need to include <sys/types.h>
>
> Then there are a couple of meta-headers such as <mach.h> which are
> really meant to include others.
>
> And then there can indeed be some opportunistic includes: e.g. <hurd.h>
> happens to include <errno.h> (for some extern inlines), but includers of
> <hurd.h> should still include <errno.h> themselves if they want to get
> E* macros.
>
> Samuel
>
From 7164dde9bd6f0976fec59c2184abd0873a6e46d4 Mon Sep 17 00:00:00 2001
From: Milos Nikic <[email protected]>
Date: Sun, 12 Apr 2026 22:10:00 -0700
Subject: [PATCH] libdiskfs: Cleanup of headers in some files.

Replace the usage of include priv.h where it is only included for its transitive includes.
Instead use more specific includes.
---
 libdiskfs/dead-name.c  | 4 +++-
 libdiskfs/demuxer.c    | 4 +++-
 libdiskfs/dir-chg.c    | 9 ++++++++-
 libdiskfs/dir-clear.c  | 5 ++++-
 libdiskfs/direnter.c   | 4 +++-
 libdiskfs/dirremove.c  | 4 +++-
 libdiskfs/dirrewrite.c | 4 +++-
 7 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/libdiskfs/dead-name.c b/libdiskfs/dead-name.c
index 5e0cf787..6e074736 100644
--- a/libdiskfs/dead-name.c
+++ b/libdiskfs/dead-name.c
@@ -18,7 +18,9 @@
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. */
 
-#include "priv.h"
+#include <hurd/fshelp.h>
+#include <hurd/ports.h>
+#include <mach.h>
 
 void
 ports_dead_name (void *notify, mach_port_t dead_name)
diff --git a/libdiskfs/demuxer.c b/libdiskfs/demuxer.c
index 4a1c4fb4..e0efa82e 100644
--- a/libdiskfs/demuxer.c
+++ b/libdiskfs/demuxer.c
@@ -15,8 +15,10 @@
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 
-#include "priv.h"
 
+#include "diskfs.h"
+#include <mach.h>
+#include <mach/mig_errors.h>
 #include "io_S.h"
 #include "fs_S.h"
 #include "../libports/notify_S.h"
diff --git a/libdiskfs/dir-chg.c b/libdiskfs/dir-chg.c
index 0657c45b..11626cf9 100644
--- a/libdiskfs/dir-chg.c
+++ b/libdiskfs/dir-chg.c
@@ -15,7 +15,14 @@
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 
-#include "priv.h"
+#include <errno.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+
+#include "diskfs.h"
+#include <hurd/hurd_types.h>
+#include <mach.h>
 #include "fs_S.h"
 #include "fs_notify_U.h"
 
diff --git a/libdiskfs/dir-clear.c b/libdiskfs/dir-clear.c
index 02a800ed..d61baf98 100644
--- a/libdiskfs/dir-clear.c
+++ b/libdiskfs/dir-clear.c
@@ -15,7 +15,10 @@
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
 
-#include "priv.h"
+#include <assert-backtrace.h>
+#include <errno.h>
+
+#include "diskfs.h"
 
 /* Clear the `.' and `..' entries from directory DP.  Its parent is PDP,
    and the user responsible for this is identified by CRED.  Both 
diff --git a/libdiskfs/direnter.c b/libdiskfs/direnter.c
index cb9b76ca..17cc618d 100644
--- a/libdiskfs/direnter.c
+++ b/libdiskfs/direnter.c
@@ -19,7 +19,9 @@
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. */
 
 
-#include "priv.h"
+#include <errno.h>
+
+#include "diskfs.h"
 
 /* Add NP to directory DP under the name NAME.  This will only be
    called after an unsuccessful call to diskfs_lookup of type CREATE
diff --git a/libdiskfs/dirremove.c b/libdiskfs/dirremove.c
index 239daa72..f0e35ba8 100644
--- a/libdiskfs/dirremove.c
+++ b/libdiskfs/dirremove.c
@@ -18,7 +18,9 @@
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. */
 
-#include "priv.h"
+#include <errno.h>
+#include "diskfs.h"
+#include <hurd/hurd_types.h>
 
 /* This will only be called after a successful call to diskfs_lookup
    of type REMOVE; this call should remove the name found from the
diff --git a/libdiskfs/dirrewrite.c b/libdiskfs/dirrewrite.c
index 8f713960..28bce82d 100644
--- a/libdiskfs/dirrewrite.c
+++ b/libdiskfs/dirrewrite.c
@@ -18,8 +18,10 @@
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. */
 
+#include <errno.h>
 
-#include "priv.h"
+#include "diskfs.h"
+#include <hurd/hurd_types.h>
 
 /* This will only be called after a successful call to diskfs_lookup
    of type RENAME; this call should change the name found in directory
-- 
2.53.0

Reply via email to