From 694d52306305e31626744fd484397aeffe9cf287 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 6 Oct 2018 15:22:00 +0200 Subject: [PATCH] * Start the work on bootstraping clang - bootstrap-with-openmp-version-export-missing.diff: fix a link issue https://bugs.llvm.org/show_bug.cgi?id=39200 - bootstrap-fix-include-next.diff: Fix an include issue at bootstrap phase https://bugs.llvm.org/show_bug.cgi?id=39162 --- debian/changelog | 5 +++ .../patches/bootstrap-fix-include-next.diff | 41 +++++++++++++++++++ ...ap-with-openmp-version-export-missing.diff | 14 +++++++ debian/patches/series | 2 + 4 files changed, 62 insertions(+) create mode 100644 debian/patches/bootstrap-fix-include-next.diff create mode 100644 debian/patches/bootstrap-with-openmp-version-export-missing.diff diff --git a/debian/changelog b/debian/changelog index a9e2d61f..7713703f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,11 @@ llvm-toolchain-7 (1:7-6) UNRELEASED; urgency=medium * Add back libomp5-X.Y.symbols.in (untested) + * Start the work on bootstraping clang + - bootstrap-with-openmp-version-export-missing.diff: fix a link issue + https://bugs.llvm.org/show_bug.cgi?id=39200 + - bootstrap-fix-include-next.diff: Fix an include issue at bootstrap phase + https://bugs.llvm.org/show_bug.cgi?id=39162 -- Sylvestre Ledru Sat, 06 Oct 2018 14:57:58 +0200 diff --git a/debian/patches/bootstrap-fix-include-next.diff b/debian/patches/bootstrap-fix-include-next.diff new file mode 100644 index 00000000..0ad00550 --- /dev/null +++ b/debian/patches/bootstrap-fix-include-next.diff @@ -0,0 +1,41 @@ +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. +Therefor, it will do include_next until the define from the libc is existing (ex: _INTTYPES_H) + + +Index: llvm-toolchain-7-7/clang/lib/Headers/inttypes.h +=================================================================== +--- llvm-toolchain-7-7.orig/clang/lib/Headers/inttypes.h ++++ llvm-toolchain-7-7/clang/lib/Headers/inttypes.h +@@ -20,7 +20,7 @@ + * + \*===----------------------------------------------------------------------===*/ + +-#ifndef __CLANG_INTTYPES_H ++#if !defined(__CLANG_INTTYPES_H) || !defined(_INTTYPES_H) + #define __CLANG_INTTYPES_H + + #if defined(_MSC_VER) && _MSC_VER < 1800 +Index: llvm-toolchain-7-7/clang/lib/Headers/limits.h +=================================================================== +--- llvm-toolchain-7-7.orig/clang/lib/Headers/limits.h ++++ llvm-toolchain-7-7/clang/lib/Headers/limits.h +@@ -22,7 +22,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. diff --git a/debian/patches/bootstrap-with-openmp-version-export-missing.diff b/debian/patches/bootstrap-with-openmp-version-export-missing.diff new file mode 100644 index 00000000..f503df20 --- /dev/null +++ b/debian/patches/bootstrap-with-openmp-version-export-missing.diff @@ -0,0 +1,14 @@ +Index: llvm-toolchain-7-7/openmp/runtime/src/CMakeLists.txt +=================================================================== +--- llvm-toolchain-7-7.orig/openmp/runtime/src/CMakeLists.txt ++++ llvm-toolchain-7-7/openmp/runtime/src/CMakeLists.txt +@@ -174,7 +174,8 @@ endif() + + # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS + libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS) +-target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS}) ++target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS} ++ "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports_so.txt") + + # Create *.inc before compiling any sources + # objects depend on : .inc files diff --git a/debian/patches/series b/debian/patches/series index 7e80a4bb..ceb82ca2 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -76,3 +76,5 @@ D51108-rust-powerpc.diff disable-sse2-old-x86.diff scan-build-clang-X.diff 0001-analyzer-scan-build-if-status-bugs-is-passed-don-t-f.patch +bootstrap-fix-include-next.diff +bootstrap-with-openmp-version-export-missing.diff