From 0cfeb5137ecad4b66cd3174e3d70ab8f986159e9 Mon Sep 17 00:00:00 2001 From: LLVM Packaging Team Date: Mon, 23 Sep 2024 13:23:31 +0200 Subject: [PATCH] bootstrap-fix-include-next When doing a bootstrap, we use a newly built clang. When this one is used, if already installed on the system, we have clang header in two places: llvm-toolchain-7-7/build-llvm/lib/clang/7.0.0/include/inttypes.h and /usr/include/clang/7.0.0/include/inttypes.h Because clang expects only one of his headers to be available, it uses include_next to get the glibc (libc6-dev package) header. However, in the previous example, because we have inttypes.h twice in the include search path, clang's header will call itself without any effect. Therefore, it will do include_next until the define from the libc is existing (ex: _INTTYPES_H) Gbp-Pq: Name bootstrap-fix-include-next.diff --- clang/lib/Headers/inttypes.h | 2 +- clang/lib/Headers/limits.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/lib/Headers/inttypes.h b/clang/lib/Headers/inttypes.h index 1c894c4aca..eac373cf2c 100644 --- a/clang/lib/Headers/inttypes.h +++ b/clang/lib/Headers/inttypes.h @@ -6,7 +6,7 @@ * \*===----------------------------------------------------------------------===*/ -#ifndef __CLANG_INTTYPES_H +#if !defined(__CLANG_INTTYPES_H) || !defined(_INTTYPES_H) // AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T // is defined until an inclusion of it without _STD_TYPES_T occurs, in which // case the header guard macro is defined. diff --git a/clang/lib/Headers/limits.h b/clang/lib/Headers/limits.h index 15e6bbe0ab..1aa8cd3332 100644 --- a/clang/lib/Headers/limits.h +++ b/clang/lib/Headers/limits.h @@ -6,7 +6,7 @@ * \*===----------------------------------------------------------------------===*/ -#ifndef __CLANG_LIMITS_H +#if !defined(__CLANG_LIMITS_H) || !defined(_LIBC_LIMITS_H_) #define __CLANG_LIMITS_H /* The system's limits.h may, in turn, try to #include_next GCC's limits.h. -- 2.30.2