Subject: [BUG] Non-portable Construct Introduced in diagnose.c (dirent) at v2.38.0-rc0

From: <[email-masked]>
Date: Fri, 16 Sep 2022 19:04:49 -0400

The dirent d_type field is not available on every system. This was
introduced at 2.38.0-rc0 in diagnose.c

diagnose.c, line 79: error(1565): struct "dirent" has no field "d_type"

  		    e->d_type == DT_DIR && strlen(e->d_name) == 2 &&

(3 more issues in diagnose exist of this form).

The code should use the  NO_D_TYPE_IN_DIRENT knob to detect whether this is
an existing field as defined in cache.h.

This change breaks the build on NonStop systems (at least). I'm sorry I
missed this during review.

Randall

--
Brief whoami: NonStop&UNIX developer since approximately
UNIX(421664400)
NonStop(211288444200000000)
-- In real life, I talk too much.