bootstrap-fix-include-next
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Mon, 23 Sep 2024 11:23:31 +0000 (13:23 +0200)
committerSylvestre Ledru <sylvestre@debian.org>
Mon, 23 Sep 2024 11:23:31 +0000 (13:23 +0200)
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
clang/lib/Headers/limits.h

index 1c894c4aca4975d7439ed3abda221818dbc57e94..eac373cf2cc59e0df740ae1a0cb4b5eef1b69266 100644 (file)
@@ -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.
index 15e6bbe0abcf7d765e928fecb14b34d5d76aaa1b..1aa8cd33329db48615764556c396f5d29054f233 100644 (file)
@@ -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.