summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2020-04-10 11:20:35 +0900
committerKoichi Sasada <ko1@atdot.net>2020-04-10 14:53:25 +0900
commit443389effc37308ce1a3c3a840082a344fc6af56 (patch)
treedb47722822c73d30be82410b880fda0fcb14a199 /include
parent63a5412db7138297a2e7513067ef80dad7a3b4b4 (diff)
reduce duplicate include.
Without this patch, 20k files are opened (openat syscall) because of duplicate includes. This patch reduced it to 3k and build time was reduced compile time of range.o from 15sec -> 3sec on my machine. [Bug #16772]
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3010
Diffstat (limited to 'include')
-rw-r--r--include/ruby/3/anyargs.h1
-rw-r--r--include/ruby/3/arithmetic/int.h1
-rw-r--r--include/ruby/3/assume.h1
-rw-r--r--include/ruby/3/attr/alloc_size.h1
-rw-r--r--include/ruby/3/attr/artificial.h1
-rw-r--r--include/ruby/3/attr/cold.h1
-rw-r--r--include/ruby/3/attr/const.h2
-rw-r--r--include/ruby/3/attr/constexpr.h1
-rw-r--r--include/ruby/3/attr/deprecated.h2
-rw-r--r--include/ruby/3/attr/diagnose_if.h2
-rw-r--r--include/ruby/3/attr/enum_extensibility.h1
-rw-r--r--include/ruby/3/attr/error.h1
-rw-r--r--include/ruby/3/attr/flag_enum.h1
-rw-r--r--include/ruby/3/attr/forceinline.h2
-rw-r--r--include/ruby/3/attr/format.h1
-rw-r--r--include/ruby/3/attr/maybe_unused.h1
-rw-r--r--include/ruby/3/attr/nodiscard.h1
-rw-r--r--include/ruby/3/attr/noexcept.h1
-rw-r--r--include/ruby/3/attr/noinline.h1
-rw-r--r--include/ruby/3/attr/nonnull.h1
-rw-r--r--include/ruby/3/attr/noreturn.h2
-rw-r--r--include/ruby/3/attr/pure.h2
-rw-r--r--include/ruby/3/attr/restrict.h3
-rw-r--r--include/ruby/3/attr/returns_nonnull.h1
-rw-r--r--include/ruby/3/attr/warning.h1
-rw-r--r--include/ruby/3/attr/weakref.h1
-rw-r--r--include/ruby/3/cast.h3
-rw-r--r--include/ruby/3/compiler_is.h5
-rw-r--r--include/ruby/3/config.h4
-rw-r--r--include/ruby/3/core/rdata.h1
-rw-r--r--include/ruby/3/has/attribute.h2
-rw-r--r--include/ruby/3/has/builtin.h2
-rw-r--r--include/ruby/3/has/cpp_attribute.h2
-rw-r--r--include/ruby/3/has/declspec_attribute.h2
-rw-r--r--include/ruby/3/static_assert.h1
-rw-r--r--include/ruby/3/stdalign.h2
-rw-r--r--include/ruby/3/token_paste.h3
-rw-r--r--include/ruby/3/warning_push.h1
-rw-r--r--include/ruby/backward/2/gcc_version_since.h1
-rw-r--r--include/ruby/backward/2/long_long.h2
40 files changed, 9 insertions, 56 deletions
diff --git a/include/ruby/3/anyargs.h b/include/ruby/3/anyargs.h
index e2408d72c6..7c2aa05c21 100644
--- a/include/ruby/3/anyargs.h
+++ b/include/ruby/3/anyargs.h
@@ -72,7 +72,6 @@
#include "ruby/3/attr/weakref.h"
#include "ruby/3/cast.h"
#include "ruby/3/config.h"
-#include "ruby/3/has/attribute.h"
#include "ruby/3/intern/class.h"
#include "ruby/3/intern/vm.h"
#include "ruby/3/method.h"
diff --git a/include/ruby/3/arithmetic/int.h b/include/ruby/3/arithmetic/int.h
index f6af085a53..36485167cc 100644
--- a/include/ruby/3/arithmetic/int.h
+++ b/include/ruby/3/arithmetic/int.h
@@ -31,7 +31,6 @@
#include "ruby/3/dllexport.h"
#include "ruby/3/special_consts.h"
#include "ruby/3/value.h"
-#include "ruby/3/warning_push.h"
#include "ruby/assert.h"
#define RB_INT2NUM rb_int2num_inline
diff --git a/include/ruby/3/assume.h b/include/ruby/3/assume.h
index 926c17f36d..cbd02637a2 100644
--- a/include/ruby/3/assume.h
+++ b/include/ruby/3/assume.h
@@ -27,7 +27,6 @@
#define RUBY3_ASSUME_H
#include "ruby/3/config.h"
#include "ruby/3/cast.h"
-#include "ruby/3/compiler_since.h"
#include "ruby/3/has/builtin.h"
/** @cond INTERNAL_MACRO */
diff --git a/include/ruby/3/attr/alloc_size.h b/include/ruby/3/attr/alloc_size.h
index 1b13e6f4a5..8296e9dcfd 100644
--- a/include/ruby/3/attr/alloc_size.h
+++ b/include/ruby/3/attr/alloc_size.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_ALLOC_SIZE.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((alloc_size))` */
#if defined(RUBY3_ATTR_ALLOC_SIZE)
diff --git a/include/ruby/3/attr/artificial.h b/include/ruby/3/attr/artificial.h
index 7b0acab2f6..5e94a048f9 100644
--- a/include/ruby/3/attr/artificial.h
+++ b/include/ruby/3/attr/artificial.h
@@ -32,7 +32,6 @@
* case it gets vital to know where the inlining happened in the callee.
* See also https://stackoverflow.com/a/21936099
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((artificial))` */
#if defined(RUBY3_ATTR_ARTIFICIAL)
diff --git a/include/ruby/3/attr/cold.h b/include/ruby/3/attr/cold.h
index 6c1093d1ff..27f92763f1 100644
--- a/include/ruby/3/attr/cold.h
+++ b/include/ruby/3/attr/cold.h
@@ -19,7 +19,6 @@
* @brief Defines #RUBY3_ATTR_COLD.
*/
#include "ruby/3/compiler_is.h"
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((cold))` */
#if defined(RUBY3_ATTR_COLD)
diff --git a/include/ruby/3/attr/const.h b/include/ruby/3/attr/const.h
index 06372db0c2..689889cb65 100644
--- a/include/ruby/3/attr/const.h
+++ b/include/ruby/3/attr/const.h
@@ -18,8 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_CONST.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/attribute.h"
#include "ruby/3/has/declspec_attribute.h"
/** Wraps (or simulates) `__attribute__((const))` */
diff --git a/include/ruby/3/attr/constexpr.h b/include/ruby/3/attr/constexpr.h
index 5c09bced49..11842d87c0 100644
--- a/include/ruby/3/attr/constexpr.h
+++ b/include/ruby/3/attr/constexpr.h
@@ -20,7 +20,6 @@
*/
#include "ruby/3/has/feature.h"
#include "ruby/3/compiler_is.h"
-#include "ruby/3/token_paste.h"
/** @cond INTERNAL_MACRO*/
#if defined(RUBY3_ATTR_CONSTEXPR)
diff --git a/include/ruby/3/attr/deprecated.h b/include/ruby/3/attr/deprecated.h
index cea124e1fe..629f7c9fc5 100644
--- a/include/ruby/3/attr/deprecated.h
+++ b/include/ruby/3/attr/deprecated.h
@@ -18,8 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_DEPRECATED.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/attribute.h"
#include "ruby/3/has/c_attribute.h"
#include "ruby/3/has/cpp_attribute.h"
#include "ruby/3/has/declspec_attribute.h"
diff --git a/include/ruby/3/attr/diagnose_if.h b/include/ruby/3/attr/diagnose_if.h
index 88ad81ab2c..a363c4cdb3 100644
--- a/include/ruby/3/attr/diagnose_if.h
+++ b/include/ruby/3/attr/diagnose_if.h
@@ -18,8 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_DIAGNOSE_IF.
*/
-#include "ruby/3/has/attribute.h"
-#include "ruby/3/warning_push.h"
/** Wraps (or simulates) `__attribute__((diagnose_if))` */
#if defined(RUBY3_ATTR_DIAGNOSE_IF)
diff --git a/include/ruby/3/attr/enum_extensibility.h b/include/ruby/3/attr/enum_extensibility.h
index 2135736de7..0631057383 100644
--- a/include/ruby/3/attr/enum_extensibility.h
+++ b/include/ruby/3/attr/enum_extensibility.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief #RUBY3_ATTR_ENUM_EXTENSIBILITY.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((enum_extensibility))` */
#if defined(RUBY3_ATTR_ENUM_EXTENSIBILITY)
diff --git a/include/ruby/3/attr/error.h b/include/ruby/3/attr/error.h
index 15d9181fe2..ec9383aace 100644
--- a/include/ruby/3/attr/error.h
+++ b/include/ruby/3/attr/error.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_ERROR.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((error))` */
#if defined(RUBY3_ATTR_ERROR)
diff --git a/include/ruby/3/attr/flag_enum.h b/include/ruby/3/attr/flag_enum.h
index a026ab5de1..5e7e9982f9 100644
--- a/include/ruby/3/attr/flag_enum.h
+++ b/include/ruby/3/attr/flag_enum.h
@@ -19,7 +19,6 @@
* @brief Defines #RUBY3_ATTR_FLAG_ENUM.
* @see https://clang.llvm.org/docs/AttributeReference.html#flag_enum
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((flag_enum)` */
#if defined(RUBY3_ATTR_FLAG_ENUM)
diff --git a/include/ruby/3/attr/forceinline.h b/include/ruby/3/attr/forceinline.h
index 47d7d58147..6d279235b8 100644
--- a/include/ruby/3/attr/forceinline.h
+++ b/include/ruby/3/attr/forceinline.h
@@ -18,8 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_FORCEINLINE.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/attribute.h"
/**
* Wraps (or simulates) `__forceinline`. MSVC complains on declarations like
diff --git a/include/ruby/3/attr/format.h b/include/ruby/3/attr/format.h
index b41094f221..de8e2f53c4 100644
--- a/include/ruby/3/attr/format.h
+++ b/include/ruby/3/attr/format.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_FORMAT.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((format))` */
#if defined(RUBY3_ATTR_FORMAT)
diff --git a/include/ruby/3/attr/maybe_unused.h b/include/ruby/3/attr/maybe_unused.h
index 3463dfb77a..29a8c35bfc 100644
--- a/include/ruby/3/attr/maybe_unused.h
+++ b/include/ruby/3/attr/maybe_unused.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_MAYBE_UNUSED.
*/
-#include "ruby/3/has/attribute.h"
#include "ruby/3/has/c_attribute.h"
#include "ruby/3/has/cpp_attribute.h"
diff --git a/include/ruby/3/attr/nodiscard.h b/include/ruby/3/attr/nodiscard.h
index 00ef068422..342a1da7ad 100644
--- a/include/ruby/3/attr/nodiscard.h
+++ b/include/ruby/3/attr/nodiscard.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NODISCARD.
*/
-#include "ruby/3/has/attribute.h"
#include "ruby/3/has/c_attribute.h"
#include "ruby/3/has/cpp_attribute.h"
diff --git a/include/ruby/3/attr/noexcept.h b/include/ruby/3/attr/noexcept.h
index c5db6b3e79..1bc90de88c 100644
--- a/include/ruby/3/attr/noexcept.h
+++ b/include/ruby/3/attr/noexcept.h
@@ -59,7 +59,6 @@
* Itanium C++ ABI has zero-cost exception handling), but does impact on
* generated binary size. This is bad.
*/
-#include "ruby/3/compiler_since.h"
#include "ruby/3/has/feature.h"
/** Wraps (or simulates) C++11 `noexcept` */
diff --git a/include/ruby/3/attr/noinline.h b/include/ruby/3/attr/noinline.h
index 470043794a..4483c4c8d6 100644
--- a/include/ruby/3/attr/noinline.h
+++ b/include/ruby/3/attr/noinline.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NOINLINE.
*/
-#include "ruby/3/has/attribute.h"
#include "ruby/3/has/declspec_attribute.h"
/** Wraps (or simulates) `__declspec(noinline)` */
diff --git a/include/ruby/3/attr/nonnull.h b/include/ruby/3/attr/nonnull.h
index fff90df55b..0431c5a363 100644
--- a/include/ruby/3/attr/nonnull.h
+++ b/include/ruby/3/attr/nonnull.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NONNULL.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((nonnull))` */
#if defined(RUBY3_ATTR_NONNULL)
diff --git a/include/ruby/3/attr/noreturn.h b/include/ruby/3/attr/noreturn.h
index c08c824947..2dc940116a 100644
--- a/include/ruby/3/attr/noreturn.h
+++ b/include/ruby/3/attr/noreturn.h
@@ -18,8 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_NORETURN.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/attribute.h"
#include "ruby/3/has/cpp_attribute.h"
#include "ruby/3/has/declspec_attribute.h"
diff --git a/include/ruby/3/attr/pure.h b/include/ruby/3/attr/pure.h
index 8ae2e91fdf..530b0cf3b4 100644
--- a/include/ruby/3/attr/pure.h
+++ b/include/ruby/3/attr/pure.h
@@ -18,8 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_PURE.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/attribute.h"
#include "ruby/assert.h"
/** Wraps (or simulates) `__attribute__((pure))` */
diff --git a/include/ruby/3/attr/restrict.h b/include/ruby/3/attr/restrict.h
index cd753584dd..c42ad99a01 100644
--- a/include/ruby/3/attr/restrict.h
+++ b/include/ruby/3/attr/restrict.h
@@ -18,9 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_RESTRICT.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/attribute.h"
-#include "ruby/3/token_paste.h"
/* :FIXME: config.h includes conflicting `#define restrict`. MSVC can be
* detected using `RUBY3_COMPILER_SINCE()`, but Clang & family cannot use
diff --git a/include/ruby/3/attr/returns_nonnull.h b/include/ruby/3/attr/returns_nonnull.h
index 269df4de69..aefee7ef30 100644
--- a/include/ruby/3/attr/returns_nonnull.h
+++ b/include/ruby/3/attr/returns_nonnull.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_RETURNS_NONNULL.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((returns_nonnull))` */
#if defined(RUBY3_ATTR_RETURNS_NONNULL)
diff --git a/include/ruby/3/attr/warning.h b/include/ruby/3/attr/warning.h
index ebd86b3a07..6323b6e2fe 100644
--- a/include/ruby/3/attr/warning.h
+++ b/include/ruby/3/attr/warning.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_WARNING.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((warning))` */
#if defined(RUBY3_ATTR_WARNING)
diff --git a/include/ruby/3/attr/weakref.h b/include/ruby/3/attr/weakref.h
index 084f8b99dc..28b901d44f 100644
--- a/include/ruby/3/attr/weakref.h
+++ b/include/ruby/3/attr/weakref.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_ATTR_WEAKREF.
*/
-#include "ruby/3/has/attribute.h"
/** Wraps (or simulates) `__attribute__((weakref))` */
#if defined(RUBY3_ATTR_WEAKREF)
diff --git a/include/ruby/3/cast.h b/include/ruby/3/cast.h
index d9725ce17d..10caa809e5 100644
--- a/include/ruby/3/cast.h
+++ b/include/ruby/3/cast.h
@@ -23,9 +23,6 @@
* public headers. They could be used from C++, and C-style casts could issue
* warnings. Ruby internals are pure C so they should not bother.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/warning.h"
-#include "ruby/3/warning_push.h"
#if defined(RUBY3_CAST)
# /* Take that. */
diff --git a/include/ruby/3/compiler_is.h b/include/ruby/3/compiler_is.h
index 39d1fbf70d..9f8b81315d 100644
--- a/include/ruby/3/compiler_is.h
+++ b/include/ruby/3/compiler_is.h
@@ -25,6 +25,9 @@
* @retval true It is.
* @retval false It isn't.
*/
+#ifndef RUBY3_COMPILER_IS_INCLUDED
+#define RUBY3_COMPILER_IS_INCLUDED
+
#ifndef RUBY3_COMPILER_IS
# define RUBY3_COMPILER_IS(cc) RUBY3_COMPILER_IS_ ## cc
#endif
@@ -41,3 +44,5 @@
* Apple's might be needed.
*
* - ARM's armclang: ditto, it can be clang-backended. */
+
+#endif // RUBY3_COMPILER_IS_INCLUDED
diff --git a/include/ruby/3/config.h b/include/ruby/3/config.h
index fe7e190838..12489c7c16 100644
--- a/include/ruby/3/config.h
+++ b/include/ruby/3/config.h
@@ -27,6 +27,10 @@
#endif
#include "ruby/3/compiler_since.h"
+#include "ruby/3/has/warning.h"
+#include "ruby/3/has/attribute.h"
+#include "ruby/3/warning_push.h"
+#include "ruby/3/token_paste.h"
#if defined(__cplusplus)
#/* __builtin_choose_expr and __builtin_types_compatible aren't available
diff --git a/include/ruby/3/core/rdata.h b/include/ruby/3/core/rdata.h
index d39a01b52f..651ceed0d7 100644
--- a/include/ruby/3/core/rdata.h
+++ b/include/ruby/3/core/rdata.h
@@ -32,7 +32,6 @@
#include "ruby/3/core/rbasic.h"
#include "ruby/3/dllexport.h"
#include "ruby/3/fl_type.h"
-#include "ruby/3/token_paste.h"
#include "ruby/3/value.h"
#include "ruby/3/value_type.h"
#include "ruby/defines.h"
diff --git a/include/ruby/3/has/attribute.h b/include/ruby/3/has/attribute.h
index 229e092b30..05af8e63be 100644
--- a/include/ruby/3/has/attribute.h
+++ b/include/ruby/3/has/attribute.h
@@ -19,8 +19,6 @@
* @brief Defines #RUBY3_HAS_ATTRIBUTE.
*/
#include "ruby/3/config.h"
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/token_paste.h"
/** Wraps (or simulates) `__has_attribute`. */
#if defined(RUBY3_HAS_ATTRIBUTE)
diff --git a/include/ruby/3/has/builtin.h b/include/ruby/3/has/builtin.h
index b30fbdd1be..23391acc3c 100644
--- a/include/ruby/3/has/builtin.h
+++ b/include/ruby/3/has/builtin.h
@@ -19,8 +19,6 @@
* @brief Defines #RUBY3_HAS_BUILTIN.
*/
#include "ruby/3/config.h"
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/token_paste.h"
/** Wraps (or simulates) `__has_builtin`. */
#if defined(RUBY3_HAS_BUILTIN)
diff --git a/include/ruby/3/has/cpp_attribute.h b/include/ruby/3/has/cpp_attribute.h
index 83c5392200..70bec4a267 100644
--- a/include/ruby/3/has/cpp_attribute.h
+++ b/include/ruby/3/has/cpp_attribute.h
@@ -19,8 +19,6 @@
* @brief Defines #RUBY3_HAS_CPP_ATTRIBUTE.
*/
#include "ruby/3/compiler_is.h"
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/token_paste.h"
/** @cond INTERNAL_MACRO */
#if defined(RUBY3_HAS_CPP_ATTRIBUTE0)
diff --git a/include/ruby/3/has/declspec_attribute.h b/include/ruby/3/has/declspec_attribute.h
index f902ef963c..a7d97b400a 100644
--- a/include/ruby/3/has/declspec_attribute.h
+++ b/include/ruby/3/has/declspec_attribute.h
@@ -18,8 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines #RUBY3_HAS_DECLSPEC_ATTRIBUTE.
*/
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/token_paste.h"
/** Wraps (or simulates) `__has_declspec_attribute`. */
#if defined(RUBY3_HAS_DECLSPEC_ATTRIBUTE)
diff --git a/include/ruby/3/static_assert.h b/include/ruby/3/static_assert.h
index 8a4a5dbfe8..78ce4def4b 100644
--- a/include/ruby/3/static_assert.h
+++ b/include/ruby/3/static_assert.h
@@ -20,7 +20,6 @@
*/
#include <assert.h>
#include "ruby/3/has/extension.h"
-#include "ruby/3/compiler_since.h"
/** @cond INTERNAL_MACRO */
#if defined(RUBY3_STATIC_ASSERT0)
diff --git a/include/ruby/3/stdalign.h b/include/ruby/3/stdalign.h
index 894ca14e7f..294a6410c4 100644
--- a/include/ruby/3/stdalign.h
+++ b/include/ruby/3/stdalign.h
@@ -25,10 +25,8 @@
#endif
#include "ruby/3/compiler_is.h"
-#include "ruby/3/compiler_since.h"
#include "ruby/3/has/feature.h"
#include "ruby/3/has/extension.h"
-#include "ruby/3/has/attribute.h"
#include "ruby/3/has/declspec_attribute.h"
/**
diff --git a/include/ruby/3/token_paste.h b/include/ruby/3/token_paste.h
index 72a8270442..e15897dcc0 100644
--- a/include/ruby/3/token_paste.h
+++ b/include/ruby/3/token_paste.h
@@ -19,9 +19,6 @@
* @brief Defines #RUBY3_TOKEN_PASTE.
*/
#include "ruby/3/config.h"
-#include "ruby/3/compiler_since.h"
-#include "ruby/3/has/warning.h"
-#include "ruby/3/warning_push.h"
/* :TODO: add your compiler here. There are many compilers that can suppress
* warnings via pragmas, but not all of them accept such things inside of `#if`
diff --git a/include/ruby/3/warning_push.h b/include/ruby/3/warning_push.h
index 3f453fce9a..6edaaa37ee 100644
--- a/include/ruby/3/warning_push.h
+++ b/include/ruby/3/warning_push.h
@@ -42,7 +42,6 @@
* ```
*/
#include "ruby/3/compiler_is.h"
-#include "ruby/3/compiler_since.h"
#ifdef RUBY3_WARNING_PUSH
# /* Take that. */
diff --git a/include/ruby/backward/2/gcc_version_since.h b/include/ruby/backward/2/gcc_version_since.h
index c3c7aca5e0..4e2abc45f9 100644
--- a/include/ruby/backward/2/gcc_version_since.h
+++ b/include/ruby/backward/2/gcc_version_since.h
@@ -18,7 +18,6 @@
* extension libraries. They could be written in C++98.
* @brief Defines old #GCC_VERSION_SINCE
*/
-#include "ruby/3/compiler_since.h"
#ifndef GCC_VERSION_SINCE
#define GCC_VERSION_SINCE(x, y, z) RUBY3_COMPILER_SINCE(GCC, (x), (y), (z))
diff --git a/include/ruby/backward/2/long_long.h b/include/ruby/backward/2/long_long.h
index 8669d42cd6..29b930625e 100644
--- a/include/ruby/backward/2/long_long.h
+++ b/include/ruby/backward/2/long_long.h
@@ -24,8 +24,6 @@
* compatibility only.
*/
#include "ruby/3/config.h"
-#include "ruby/3/has/warning.h"
-#include "ruby/3/warning_push.h"
#if defined(LONG_LONG)
# /* Take that. */