* 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
This commit is contained in:
Sylvestre Ledru 2018-10-06 15:22:00 +02:00
parent c5113f29a1
commit 694d523063
4 changed files with 62 additions and 0 deletions

5
debian/changelog vendored
View File

@ -1,6 +1,11 @@
llvm-toolchain-7 (1:7-6) UNRELEASED; urgency=medium llvm-toolchain-7 (1:7-6) UNRELEASED; urgency=medium
* Add back libomp5-X.Y.symbols.in (untested) * 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 <sylvestre@debian.org> Sat, 06 Oct 2018 14:57:58 +0200 -- Sylvestre Ledru <sylvestre@debian.org> Sat, 06 Oct 2018 14:57:58 +0200

View File

@ -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.

View File

@ -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

View File

@ -76,3 +76,5 @@ D51108-rust-powerpc.diff
disable-sse2-old-x86.diff disable-sse2-old-x86.diff
scan-build-clang-X.diff scan-build-clang-X.diff
0001-analyzer-scan-build-if-status-bugs-is-passed-don-t-f.patch 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