diff --git a/configure b/configure
index 509e29fd10c3bd71c003ff1d5bcda63f968efe9f..bc51839c823ab4c9b7cd3fe7c6e7749a9abdac61 100755
--- a/configure
+++ b/configure
@@ -13653,7 +13653,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -13699,7 +13699,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -13723,7 +13723,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -13768,7 +13768,7 @@ else
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
@@ -13792,7 +13792,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     We can't simply define LARGE_OFF_T to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
 		       && LARGE_OFF_T % 2147483647 == 1)
 		      ? 1 : -1];
diff --git a/configure.ac b/configure.ac
index 7f69430b789725c85aee4118efeb0876a3a5d5c2..021d0d167e4da5958f5b0ae0473fd1522c036a06 100644
--- a/configure.ac
+++ b/configure.ac
@@ -218,17 +218,13 @@ if test ! x"${UNAME}" = xNo; then
 fi
 AC_SUBST(PBX_OSREV)
 
-AH_TOP(
-#ifndef ASTERISK_AUTOCONFIG_H
+AH_TOP([#ifndef ASTERISK_AUTOCONFIG_H
 #define ASTERISK_AUTOCONFIG_H
+/* IWYU pragma: private, include "asterisk.h" */
 
-#include "asterisk/buildopts.h"
+#include "asterisk/buildopts.h" /* IWYU pragma: export */])
 
-)
-
-AH_BOTTOM(
-#endif
-)
+AH_BOTTOM([#endif	/* ASTERISK_AUTOCONFIG_H */])
 
 # cross-compile checks
 if test "${cross_compiling}" = "yes";
diff --git a/include/asterisk/astmm.h b/include/asterisk/astmm.h
index 6c9a8aeeeb2d777d9acbc521f4d3bb8d09481924..83c34bed34543a6d8ca622f09839aa7bfb190466 100644
--- a/include/asterisk/astmm.h
+++ b/include/asterisk/astmm.h
@@ -30,6 +30,7 @@ extern "C" {
 
 #ifndef _ASTERISK_ASTMM_H
 #define _ASTERISK_ASTMM_H
+/* IWYU pragma: private, include "asterisk/utils.h" */
 
 #ifndef STANDALONE
 
diff --git a/include/asterisk/autoconfig.h.in b/include/asterisk/autoconfig.h.in
index 17aac1d83a747872673c607c246903377c64b753..d86ba4a6aad4ea96350d2b6e0096efc558351942 100644
--- a/include/asterisk/autoconfig.h.in
+++ b/include/asterisk/autoconfig.h.in
@@ -2,10 +2,9 @@
 
 #ifndef ASTERISK_AUTOCONFIG_H
 #define ASTERISK_AUTOCONFIG_H
+/* IWYU pragma: private, include "asterisk.h" */
 
-#include "asterisk/buildopts.h"
-
-
+#include "asterisk/buildopts.h" /* IWYU pragma: export */
 
 /* Define to 1 if internal poll should be used. */
 #undef AST_POLL_COMPAT
@@ -1381,4 +1380,4 @@
    code using `volatile' can become incorrect without. Disable with care. */
 #undef volatile
 
-#endif
+#endif	/* ASTERISK_AUTOCONFIG_H */
diff --git a/include/asterisk/compat.h b/include/asterisk/compat.h
index c9c99c150cfe19c8b2a556afae89cc0db0d1ac7a..3eb6c96a2d3a0b4a87a0571f7e91534ea05bbad1 100644
--- a/include/asterisk/compat.h
+++ b/include/asterisk/compat.h
@@ -15,10 +15,12 @@
  * especially those related to header files.
  */
 
-#include "asterisk/compiler.h"
-
 #ifndef _COMPAT_H
 #define _COMPAT_H
+/* IWYU pragma: private, include "asterisk.h" */
+/* IWYU pragma: begin_exports */
+
+#include "asterisk/compiler.h"
 
 #ifndef __STDC_VERSION__
 /* flex output wants to find this defined. */
@@ -231,5 +233,5 @@ float roundf(float x);
 #ifndef NAN
 #define NAN (0.0/0.0)
 #endif
-
+/* IWYU pragma: end_exports */
 #endif