From a5766d2fc2021a510f3f267ec385ee7803407d0d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 5 Nov 2016 13:36:50 +0000 Subject: [PATCH 01/89] fix package name --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 3babd56d..eac14a0d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,6 @@ llvm-toolchain-3.8 (1:3.8.1-14) unstable; urgency=medium - * libclang-common-3.9-dev: missing multilib binaries for the sanatizer + * libclang-common-3.8-dev: missing multilib binaries for the sanatizer libraries (Closes: #841923) Many thanks to Norbert Lange for the changes From d2b338b512db5dcc05a3755374794d4e81625b7d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 5 Nov 2016 13:38:47 +0000 Subject: [PATCH 02/89] fix typo --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index eac14a0d..bccd342e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,6 @@ llvm-toolchain-3.8 (1:3.8.1-14) unstable; urgency=medium - * libclang-common-3.8-dev: missing multilib binaries for the sanatizer + * libclang-common-3.8-dev: missing multilib binaries for the sanitizer libraries (Closes: #841923) Many thanks to Norbert Lange for the changes From 96c9df4917d8272c21e6a704bd03965281c94d08 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 6 Nov 2016 14:44:45 +0000 Subject: [PATCH 03/89] Limit build-deps on g++-multilib where it is available: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32 --- debian/changelog | 8 ++++++++ debian/control | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index bccd342e..b68e5a88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +llvm-toolchain-3.8 (1:3.8.1-15) unstable; urgency=medium + + * Limit build-deps on g++-multilib where it is available: + amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 + s390x sparc sparc64 x32 + + -- Sylvestre Ledru Sun, 06 Nov 2016 15:44:34 +0100 + llvm-toolchain-3.8 (1:3.8.1-14) unstable; urgency=medium * libclang-common-3.8-dev: missing multilib binaries for the sanitizer diff --git a/debian/control b/debian/control index f9c5319c..66c2dd35 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, libjsoncpp-dev, lcov, procps, help2man, dh-ocaml, zlib1g-dev, - g++-multilib + g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev Standards-Version: 3.9.8 From b5789da75929b89b67044146d7bb08c1ed9e2c3e Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 6 Nov 2016 19:52:51 +0000 Subject: [PATCH 04/89] add <\!cross> in the build dep options --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 66c2dd35..80c274d8 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, libjsoncpp-dev, lcov, procps, help2man, dh-ocaml, zlib1g-dev, - g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] + g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev Standards-Version: 3.9.8 From ce0db5670a07b6facfb25fdd57f722bf1f039c40 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 15:14:50 +0000 Subject: [PATCH 05/89] Fix segfaults in the memory sanitizers (Closes: #842642) Caused by the newer glibc. Many thanks for Nobert Lange for everything --- debian/changelog | 7 + debian/patches/series | 3 + ...ream-asan-msan-fix-reallocation-logic.diff | 54 ++++++++ .../upstream-fix-asan-initialization.diff | 102 ++++++++++++++ ...m-msan-prevent-initialization-failure.diff | 124 ++++++++++++++++++ 5 files changed, 290 insertions(+) create mode 100644 debian/patches/upstream-asan-msan-fix-reallocation-logic.diff create mode 100644 debian/patches/upstream-fix-asan-initialization.diff create mode 100644 debian/patches/upstream-msan-prevent-initialization-failure.diff diff --git a/debian/changelog b/debian/changelog index b68e5a88..9718b17e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.8 (1:3.8.1-16) unstable; urgency=medium + + * Fix segfaults in the memory sanitizers (Closes: #842642) + Caused by the newer glibc. Many thanks for Nobert Lange for everything + + -- Sylvestre Ledru Fri, 11 Nov 2016 16:14:31 +0100 + llvm-toolchain-3.8 (1:3.8.1-15) unstable; urgency=medium * Limit build-deps on g++-multilib where it is available: diff --git a/debian/patches/series b/debian/patches/series index b2ecdd27..54a1f0c3 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -51,3 +51,6 @@ lldb-arm64.diff clang-tidy-run-bin.diff silent-llvm-symbolizer.diff +upstream-asan-msan-fix-reallocation-logic.diff +upstream-fix-asan-initialization.diff +upstream-msan-prevent-initialization-failure.diff diff --git a/debian/patches/upstream-asan-msan-fix-reallocation-logic.diff b/debian/patches/upstream-asan-msan-fix-reallocation-logic.diff new file mode 100644 index 00000000..70c352d3 --- /dev/null +++ b/debian/patches/upstream-asan-msan-fix-reallocation-logic.diff @@ -0,0 +1,54 @@ +From c8a185bc3169b0a6d2cd8beedc77033461830037 Mon Sep 17 00:00:00 2001 +From: Maxim Ostapenko +Date: Mon, 26 Sep 2016 08:11:21 +0000 +Subject: [PATCH] [asan, msan] Fix reallocation logic when + IsInDlsymAllocPool(ptr) is true. + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282389 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/asan/asan_malloc_linux.cc | 8 +++++--- + lib/msan/msan_interceptors.cc | 8 +++++++- + 2 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/compiler-rt/lib/asan/asan_malloc_linux.cc b/compiler-rt/lib/asan/asan_malloc_linux.cc +index d7a22d6..a78767c 100644 +--- a/compiler-rt/lib/asan/asan_malloc_linux.cc ++++ b/compiler-rt/lib/asan/asan_malloc_linux.cc +@@ -79,10 +79,12 @@ INTERCEPTOR(void*, realloc, void *ptr, uptr size) { + uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; + uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); + void *new_ptr; +- if (UNLIKELY(!asan_inited)) ++ if (UNLIKELY(!asan_inited)) { + new_ptr = AllocateFromLocalPool(size); +- else +- new_ptr = asan_malloc(size, &stack); ++ } else { ++ copy_size = size; ++ new_ptr = asan_malloc(copy_size, &stack); ++ } + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; + } +diff --git a/compiler-rt/lib/msan/msan_interceptors.cc b/compiler-rt/lib/msan/msan_interceptors.cc +index 2aeaef4..93b93ae 100644 +--- a/compiler-rt/lib/msan/msan_interceptors.cc ++++ b/compiler-rt/lib/msan/msan_interceptors.cc +@@ -935,7 +935,13 @@ INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { + if (UNLIKELY(IsInDlsymAllocPool(ptr))) { + uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; + uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); +- void *new_ptr = AllocateFromLocalPool(size); ++ void *new_ptr; ++ if (UNLIKELY(!msan_inited)) { ++ new_ptr = AllocateFromLocalPool(copy_size); ++ } else { ++ copy_size = size; ++ new_ptr = MsanReallocate(&stack, ptr, copy_size, sizeof(u64), false); ++ } + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; + } +-- +2.10.2 + diff --git a/debian/patches/upstream-fix-asan-initialization.diff b/debian/patches/upstream-fix-asan-initialization.diff new file mode 100644 index 00000000..d9e71178 --- /dev/null +++ b/debian/patches/upstream-fix-asan-initialization.diff @@ -0,0 +1,102 @@ +From 570ee9dd7a6f90b0370a86535cbde6738d0ccf67 Mon Sep 17 00:00:00 2001 +From: Maxim Ostapenko +Date: Mon, 16 May 2016 07:20:53 +0000 +Subject: [PATCH] [asan] Fix asan initialization failure with newer (2.23+) + glibc in use. + +This patch tries to fix https://llvm.org/bugs/show_bug.cgi?id=27310 by using the same hack for malloc as we use for calloc: allocate corresponding memory from internal buffer when ASan is not initialized. +This way we could avoid nasty '==6987==AddressSanitizer CHECK failed: ../../../../libsanitizer/asan/asan_rtl.cc:556 "((!asan_init_is_running && "ASan init calls itself!")) != (0)" (0x0, 0x0)' errors in +environments with glibc 2.23+ in use, where _dl_signal_error, called from dlsym for undefined symbols calls malloc in order to get a buffer for error message. + +Differential Revision: http://reviews.llvm.org/D20235 + + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@269633 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/asan/asan_malloc_linux.cc | 42 ++++++++++++++++++++++++------------------ + 1 file changed, 24 insertions(+), 18 deletions(-) + +diff --git a/compiler-rt/lib/asan/asan_malloc_linux.cc b/compiler-rt/lib/asan/asan_malloc_linux.cc +index a81f19f..162abd2 100644 +--- a/compiler-rt/lib/asan/asan_malloc_linux.cc ++++ b/compiler-rt/lib/asan/asan_malloc_linux.cc +@@ -26,52 +26,58 @@ + // ---------------------- Replacement functions ---------------- {{{1 + using namespace __asan; // NOLINT + +-static const uptr kCallocPoolSize = 1024; +-static uptr calloc_memory_for_dlsym[kCallocPoolSize]; ++static uptr allocated_for_dlsym; ++static const uptr kDlsymAllocPoolSize = 1024; ++static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize]; + +-static bool IsInCallocPool(const void *ptr) { +- sptr off = (sptr)ptr - (sptr)calloc_memory_for_dlsym; +- return 0 <= off && off < (sptr)kCallocPoolSize; ++static bool IsInDlsymAllocPool(const void *ptr) { ++ uptr off = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ return off < sizeof(alloc_memory_for_dlsym); ++} ++ ++static void *AllocateFromLocalPool(uptr size_in_bytes) { ++ uptr size_in_words = RoundUpTo(size_in_bytes, kWordSize) / kWordSize; ++ void *mem = (void*)&alloc_memory_for_dlsym[allocated_for_dlsym]; ++ allocated_for_dlsym += size_in_words; ++ CHECK_LT(allocated_for_dlsym, kDlsymAllocPoolSize); ++ return mem; + } + + INTERCEPTOR(void, free, void *ptr) { + GET_STACK_TRACE_FREE; +- if (UNLIKELY(IsInCallocPool(ptr))) ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) + return; + asan_free(ptr, &stack, FROM_MALLOC); + } + + INTERCEPTOR(void, cfree, void *ptr) { + GET_STACK_TRACE_FREE; +- if (UNLIKELY(IsInCallocPool(ptr))) ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) + return; + asan_free(ptr, &stack, FROM_MALLOC); + } + + INTERCEPTOR(void*, malloc, uptr size) { ++ if (UNLIKELY(!asan_inited)) ++ // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym. ++ return AllocateFromLocalPool(size); + GET_STACK_TRACE_MALLOC; + return asan_malloc(size, &stack); + } + + INTERCEPTOR(void*, calloc, uptr nmemb, uptr size) { +- if (UNLIKELY(!asan_inited)) { ++ if (UNLIKELY(!asan_inited)) + // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym. +- static uptr allocated; +- uptr size_in_words = ((nmemb * size) + kWordSize - 1) / kWordSize; +- void *mem = (void*)&calloc_memory_for_dlsym[allocated]; +- allocated += size_in_words; +- CHECK(allocated < kCallocPoolSize); +- return mem; +- } ++ return AllocateFromLocalPool(nmemb * size); + GET_STACK_TRACE_MALLOC; + return asan_calloc(nmemb, size, &stack); + } + + INTERCEPTOR(void*, realloc, void *ptr, uptr size) { + GET_STACK_TRACE_MALLOC; +- if (UNLIKELY(IsInCallocPool(ptr))) { +- uptr offset = (uptr)ptr - (uptr)calloc_memory_for_dlsym; +- uptr copy_size = Min(size, kCallocPoolSize - offset); ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) { ++ uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); + void *new_ptr = asan_malloc(size, &stack); + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; +-- +2.10.2 + diff --git a/debian/patches/upstream-msan-prevent-initialization-failure.diff b/debian/patches/upstream-msan-prevent-initialization-failure.diff new file mode 100644 index 00000000..ba52b590 --- /dev/null +++ b/debian/patches/upstream-msan-prevent-initialization-failure.diff @@ -0,0 +1,124 @@ +From 827ea206c1078fc7c7da287984a7ba4563390589 Mon Sep 17 00:00:00 2001 +From: Maxim Ostapenko +Date: Fri, 23 Sep 2016 07:40:55 +0000 +Subject: [PATCH] [msan] Prevent initialization failure with newer (2.23+) + glibc in use. + +This patch is pretty the same as http://reviews.llvm.org/D20235 that we used +for ASan. Using the same hack for MSan fixes its initialization with newer +Glibc in use. + +Differential Revision: https://reviews.llvm.org/D24736 + + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282232 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/asan/asan_malloc_linux.cc | 6 +++++- + lib/msan/msan_interceptors.cc | 43 +++++++++++++++++++++++++++++++------------ + 2 files changed, 36 insertions(+), 13 deletions(-) + +diff --git a/compiler-rt/lib/asan/asan_malloc_linux.cc b/compiler-rt/lib/asan/asan_malloc_linux.cc +index 162abd2..d7a22d6 100644 +--- a/compiler-rt/lib/asan/asan_malloc_linux.cc ++++ b/compiler-rt/lib/asan/asan_malloc_linux.cc +@@ -78,7 +78,11 @@ INTERCEPTOR(void*, realloc, void *ptr, uptr size) { + if (UNLIKELY(IsInDlsymAllocPool(ptr))) { + uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; + uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); +- void *new_ptr = asan_malloc(size, &stack); ++ void *new_ptr; ++ if (UNLIKELY(!asan_inited)) ++ new_ptr = AllocateFromLocalPool(size); ++ else ++ new_ptr = asan_malloc(size, &stack); + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; + } +diff --git a/compiler-rt/lib/msan/msan_interceptors.cc b/compiler-rt/lib/msan/msan_interceptors.cc +index f23d3ee..2aeaef4 100644 +--- a/compiler-rt/lib/msan/msan_interceptors.cc ++++ b/compiler-rt/lib/msan/msan_interceptors.cc +@@ -64,6 +64,23 @@ bool IsInInterceptorScope() { + return in_interceptor_scope; + } + ++static uptr allocated_for_dlsym; ++static const uptr kDlsymAllocPoolSize = 1024; ++static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize]; ++ ++static bool IsInDlsymAllocPool(const void *ptr) { ++ uptr off = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ return off < sizeof(alloc_memory_for_dlsym); ++} ++ ++static void *AllocateFromLocalPool(uptr size_in_bytes) { ++ uptr size_in_words = RoundUpTo(size_in_bytes, kWordSize) / kWordSize; ++ void *mem = (void *)&alloc_memory_for_dlsym[allocated_for_dlsym]; ++ allocated_for_dlsym += size_in_words; ++ CHECK_LT(allocated_for_dlsym, kDlsymAllocPoolSize); ++ return mem; ++} ++ + #define ENSURE_MSAN_INITED() do { \ + CHECK(!msan_init_is_running); \ + if (!msan_inited) { \ +@@ -227,14 +244,14 @@ INTERCEPTOR(void *, pvalloc, SIZE_T size) { + + INTERCEPTOR(void, free, void *ptr) { + GET_MALLOC_STACK_TRACE; +- if (!ptr) return; ++ if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return; + MsanDeallocate(&stack, ptr); + } + + #if !SANITIZER_FREEBSD + INTERCEPTOR(void, cfree, void *ptr) { + GET_MALLOC_STACK_TRACE; +- if (!ptr) return; ++ if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return; + MsanDeallocate(&stack, ptr); + } + #define MSAN_MAYBE_INTERCEPT_CFREE INTERCEPT_FUNCTION(cfree) +@@ -907,27 +924,29 @@ INTERCEPTOR(int, epoll_pwait, int epfd, void *events, int maxevents, + + INTERCEPTOR(void *, calloc, SIZE_T nmemb, SIZE_T size) { + GET_MALLOC_STACK_TRACE; +- if (UNLIKELY(!msan_inited)) { ++ if (UNLIKELY(!msan_inited)) + // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym. +- const SIZE_T kCallocPoolSize = 1024; +- static uptr calloc_memory_for_dlsym[kCallocPoolSize]; +- static SIZE_T allocated; +- SIZE_T size_in_words = ((nmemb * size) + kWordSize - 1) / kWordSize; +- void *mem = (void*)&calloc_memory_for_dlsym[allocated]; +- allocated += size_in_words; +- CHECK(allocated < kCallocPoolSize); +- return mem; +- } ++ return AllocateFromLocalPool(nmemb * size); + return MsanCalloc(&stack, nmemb, size); + } + + INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { + GET_MALLOC_STACK_TRACE; ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) { ++ uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); ++ void *new_ptr = AllocateFromLocalPool(size); ++ internal_memcpy(new_ptr, ptr, copy_size); ++ return new_ptr; ++ } + return MsanReallocate(&stack, ptr, size, sizeof(u64), false); + } + + INTERCEPTOR(void *, malloc, SIZE_T size) { + GET_MALLOC_STACK_TRACE; ++ if (UNLIKELY(!msan_inited)) ++ // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym. ++ return AllocateFromLocalPool(size); + return MsanReallocate(&stack, nullptr, size, sizeof(u64), false); + } + +-- +2.10.2 + From 7edcbc81fc4ed3b071852acf8428e74415246a85 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 15:17:02 +0000 Subject: [PATCH 06/89] Enable the sanitizers testsuite --- debian/changelog | 1 + debian/rules | 3 +++ 2 files changed, 4 insertions(+) diff --git a/debian/changelog b/debian/changelog index 9718b17e..8156d8a7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ llvm-toolchain-3.8 (1:3.8.1-16) unstable; urgency=medium * Fix segfaults in the memory sanitizers (Closes: #842642) Caused by the newer glibc. Many thanks for Nobert Lange for everything + * Enable the sanitizers testsuite -- Sylvestre Ledru Fri, 11 Nov 2016 16:14:31 +0100 diff --git a/debian/rules b/debian/rules index d553e734..2e77ffaa 100755 --- a/debian/rules +++ b/debian/rules @@ -498,6 +498,9 @@ endif # Clang tests (CMake) $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-clang || true +# Sanitizer + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-sanitize || true + # LLDB tests (CMake) ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS))) From 42d0ccfc407a5f5b6cce790e18fa96653e208a51 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 15:59:13 +0000 Subject: [PATCH 07/89] fix the patches --- debian/patches/series | 5 +- .../upstream-fix-asan-initialization.diff | 102 ------------------ 2 files changed, 2 insertions(+), 105 deletions(-) delete mode 100644 debian/patches/upstream-fix-asan-initialization.diff diff --git a/debian/patches/series b/debian/patches/series index 54a1f0c3..7e03b3ac 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -49,8 +49,7 @@ asan-glibc-2.24.diff lldb-dont-assume-64bit-systems-are-all-x86-64.patch lldb-arm64.diff clang-tidy-run-bin.diff - silent-llvm-symbolizer.diff -upstream-asan-msan-fix-reallocation-logic.diff -upstream-fix-asan-initialization.diff upstream-msan-prevent-initialization-failure.diff +upstream-asan-msan-fix-reallocation-logic.diff + diff --git a/debian/patches/upstream-fix-asan-initialization.diff b/debian/patches/upstream-fix-asan-initialization.diff deleted file mode 100644 index d9e71178..00000000 --- a/debian/patches/upstream-fix-asan-initialization.diff +++ /dev/null @@ -1,102 +0,0 @@ -From 570ee9dd7a6f90b0370a86535cbde6738d0ccf67 Mon Sep 17 00:00:00 2001 -From: Maxim Ostapenko -Date: Mon, 16 May 2016 07:20:53 +0000 -Subject: [PATCH] [asan] Fix asan initialization failure with newer (2.23+) - glibc in use. - -This patch tries to fix https://llvm.org/bugs/show_bug.cgi?id=27310 by using the same hack for malloc as we use for calloc: allocate corresponding memory from internal buffer when ASan is not initialized. -This way we could avoid nasty '==6987==AddressSanitizer CHECK failed: ../../../../libsanitizer/asan/asan_rtl.cc:556 "((!asan_init_is_running && "ASan init calls itself!")) != (0)" (0x0, 0x0)' errors in -environments with glibc 2.23+ in use, where _dl_signal_error, called from dlsym for undefined symbols calls malloc in order to get a buffer for error message. - -Differential Revision: http://reviews.llvm.org/D20235 - - -git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@269633 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - lib/asan/asan_malloc_linux.cc | 42 ++++++++++++++++++++++++------------------ - 1 file changed, 24 insertions(+), 18 deletions(-) - -diff --git a/compiler-rt/lib/asan/asan_malloc_linux.cc b/compiler-rt/lib/asan/asan_malloc_linux.cc -index a81f19f..162abd2 100644 ---- a/compiler-rt/lib/asan/asan_malloc_linux.cc -+++ b/compiler-rt/lib/asan/asan_malloc_linux.cc -@@ -26,52 +26,58 @@ - // ---------------------- Replacement functions ---------------- {{{1 - using namespace __asan; // NOLINT - --static const uptr kCallocPoolSize = 1024; --static uptr calloc_memory_for_dlsym[kCallocPoolSize]; -+static uptr allocated_for_dlsym; -+static const uptr kDlsymAllocPoolSize = 1024; -+static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize]; - --static bool IsInCallocPool(const void *ptr) { -- sptr off = (sptr)ptr - (sptr)calloc_memory_for_dlsym; -- return 0 <= off && off < (sptr)kCallocPoolSize; -+static bool IsInDlsymAllocPool(const void *ptr) { -+ uptr off = (uptr)ptr - (uptr)alloc_memory_for_dlsym; -+ return off < sizeof(alloc_memory_for_dlsym); -+} -+ -+static void *AllocateFromLocalPool(uptr size_in_bytes) { -+ uptr size_in_words = RoundUpTo(size_in_bytes, kWordSize) / kWordSize; -+ void *mem = (void*)&alloc_memory_for_dlsym[allocated_for_dlsym]; -+ allocated_for_dlsym += size_in_words; -+ CHECK_LT(allocated_for_dlsym, kDlsymAllocPoolSize); -+ return mem; - } - - INTERCEPTOR(void, free, void *ptr) { - GET_STACK_TRACE_FREE; -- if (UNLIKELY(IsInCallocPool(ptr))) -+ if (UNLIKELY(IsInDlsymAllocPool(ptr))) - return; - asan_free(ptr, &stack, FROM_MALLOC); - } - - INTERCEPTOR(void, cfree, void *ptr) { - GET_STACK_TRACE_FREE; -- if (UNLIKELY(IsInCallocPool(ptr))) -+ if (UNLIKELY(IsInDlsymAllocPool(ptr))) - return; - asan_free(ptr, &stack, FROM_MALLOC); - } - - INTERCEPTOR(void*, malloc, uptr size) { -+ if (UNLIKELY(!asan_inited)) -+ // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym. -+ return AllocateFromLocalPool(size); - GET_STACK_TRACE_MALLOC; - return asan_malloc(size, &stack); - } - - INTERCEPTOR(void*, calloc, uptr nmemb, uptr size) { -- if (UNLIKELY(!asan_inited)) { -+ if (UNLIKELY(!asan_inited)) - // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym. -- static uptr allocated; -- uptr size_in_words = ((nmemb * size) + kWordSize - 1) / kWordSize; -- void *mem = (void*)&calloc_memory_for_dlsym[allocated]; -- allocated += size_in_words; -- CHECK(allocated < kCallocPoolSize); -- return mem; -- } -+ return AllocateFromLocalPool(nmemb * size); - GET_STACK_TRACE_MALLOC; - return asan_calloc(nmemb, size, &stack); - } - - INTERCEPTOR(void*, realloc, void *ptr, uptr size) { - GET_STACK_TRACE_MALLOC; -- if (UNLIKELY(IsInCallocPool(ptr))) { -- uptr offset = (uptr)ptr - (uptr)calloc_memory_for_dlsym; -- uptr copy_size = Min(size, kCallocPoolSize - offset); -+ if (UNLIKELY(IsInDlsymAllocPool(ptr))) { -+ uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; -+ uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); - void *new_ptr = asan_malloc(size, &stack); - internal_memcpy(new_ptr, ptr, copy_size); - return new_ptr; --- -2.10.2 - From a33ac5ebc04a4e8500d58cfd7f587af08a7c6ee0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 16:01:54 +0000 Subject: [PATCH 08/89] * Fix segfaults in the memory sanitizers (Closes: #842642) Caused by the newer glibc. Many thanks for Nobert Lange for everything * Enable the sanitizers testsuite --- debian/changelog | 8 ++ debian/patches/series | 7 + ...ream-asan-msan-fix-reallocation-logic.diff | 54 ++++++++ .../upstream-fix-asan-initialization.diff | 102 ++++++++++++++ ...m-msan-prevent-initialization-failure.diff | 124 ++++++++++++++++++ debian/rules | 3 + 6 files changed, 298 insertions(+) create mode 100644 debian/patches/upstream-asan-msan-fix-reallocation-logic.diff create mode 100644 debian/patches/upstream-fix-asan-initialization.diff create mode 100644 debian/patches/upstream-msan-prevent-initialization-failure.diff diff --git a/debian/changelog b/debian/changelog index beeb0715..769c0d19 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +llvm-toolchain-3.9 (1:3.9-6) unstable; urgency=medium + + * Fix segfaults in the memory sanitizers (Closes: #842642) + Caused by the newer glibc. Many thanks for Nobert Lange for everything + * Enable the sanitizers testsuite + + -- Sylvestre Ledru Fri, 11 Nov 2016 17:01:38 +0100 + llvm-toolchain-3.9 (1:3.9-5) unstable; urgency=medium * d/p/0011-SimplifyCFG-Hoisting-invalidates-metadata.patch: Also apply bug 29163 diff --git a/debian/patches/series b/debian/patches/series index c1d132f7..5590b18b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -35,9 +35,16 @@ lldb-link-atomic-cmake.patch disable-llvm-symbolizer-test.diff kfreebsd-support.diff clang-tidy-run-bin.diff +<<<<<<< .working drop-wrong-hack-arm64.patch bug-30342.diff fix-scan-view-path.diff 0011-SimplifyCFG-Hoisting-invalidates-metadata.patch clang-fix-cmpxchg8-detection-on-i386.patch lldb-addversion-suffix-to-llvm-server-exec.patch +#upstream-fix-asan-initialization.diff +upstream-msan-prevent-initialization-failure.diff +upstream-asan-msan-fix-reallocation-logic.diff +silent-llvm-symbolizer.diff +upstream-msan-prevent-initialization-failure.diff +upstream-asan-msan-fix-reallocation-logic.diff diff --git a/debian/patches/upstream-asan-msan-fix-reallocation-logic.diff b/debian/patches/upstream-asan-msan-fix-reallocation-logic.diff new file mode 100644 index 00000000..70c352d3 --- /dev/null +++ b/debian/patches/upstream-asan-msan-fix-reallocation-logic.diff @@ -0,0 +1,54 @@ +From c8a185bc3169b0a6d2cd8beedc77033461830037 Mon Sep 17 00:00:00 2001 +From: Maxim Ostapenko +Date: Mon, 26 Sep 2016 08:11:21 +0000 +Subject: [PATCH] [asan, msan] Fix reallocation logic when + IsInDlsymAllocPool(ptr) is true. + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282389 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/asan/asan_malloc_linux.cc | 8 +++++--- + lib/msan/msan_interceptors.cc | 8 +++++++- + 2 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/compiler-rt/lib/asan/asan_malloc_linux.cc b/compiler-rt/lib/asan/asan_malloc_linux.cc +index d7a22d6..a78767c 100644 +--- a/compiler-rt/lib/asan/asan_malloc_linux.cc ++++ b/compiler-rt/lib/asan/asan_malloc_linux.cc +@@ -79,10 +79,12 @@ INTERCEPTOR(void*, realloc, void *ptr, uptr size) { + uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; + uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); + void *new_ptr; +- if (UNLIKELY(!asan_inited)) ++ if (UNLIKELY(!asan_inited)) { + new_ptr = AllocateFromLocalPool(size); +- else +- new_ptr = asan_malloc(size, &stack); ++ } else { ++ copy_size = size; ++ new_ptr = asan_malloc(copy_size, &stack); ++ } + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; + } +diff --git a/compiler-rt/lib/msan/msan_interceptors.cc b/compiler-rt/lib/msan/msan_interceptors.cc +index 2aeaef4..93b93ae 100644 +--- a/compiler-rt/lib/msan/msan_interceptors.cc ++++ b/compiler-rt/lib/msan/msan_interceptors.cc +@@ -935,7 +935,13 @@ INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { + if (UNLIKELY(IsInDlsymAllocPool(ptr))) { + uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; + uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); +- void *new_ptr = AllocateFromLocalPool(size); ++ void *new_ptr; ++ if (UNLIKELY(!msan_inited)) { ++ new_ptr = AllocateFromLocalPool(copy_size); ++ } else { ++ copy_size = size; ++ new_ptr = MsanReallocate(&stack, ptr, copy_size, sizeof(u64), false); ++ } + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; + } +-- +2.10.2 + diff --git a/debian/patches/upstream-fix-asan-initialization.diff b/debian/patches/upstream-fix-asan-initialization.diff new file mode 100644 index 00000000..d9e71178 --- /dev/null +++ b/debian/patches/upstream-fix-asan-initialization.diff @@ -0,0 +1,102 @@ +From 570ee9dd7a6f90b0370a86535cbde6738d0ccf67 Mon Sep 17 00:00:00 2001 +From: Maxim Ostapenko +Date: Mon, 16 May 2016 07:20:53 +0000 +Subject: [PATCH] [asan] Fix asan initialization failure with newer (2.23+) + glibc in use. + +This patch tries to fix https://llvm.org/bugs/show_bug.cgi?id=27310 by using the same hack for malloc as we use for calloc: allocate corresponding memory from internal buffer when ASan is not initialized. +This way we could avoid nasty '==6987==AddressSanitizer CHECK failed: ../../../../libsanitizer/asan/asan_rtl.cc:556 "((!asan_init_is_running && "ASan init calls itself!")) != (0)" (0x0, 0x0)' errors in +environments with glibc 2.23+ in use, where _dl_signal_error, called from dlsym for undefined symbols calls malloc in order to get a buffer for error message. + +Differential Revision: http://reviews.llvm.org/D20235 + + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@269633 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/asan/asan_malloc_linux.cc | 42 ++++++++++++++++++++++++------------------ + 1 file changed, 24 insertions(+), 18 deletions(-) + +diff --git a/compiler-rt/lib/asan/asan_malloc_linux.cc b/compiler-rt/lib/asan/asan_malloc_linux.cc +index a81f19f..162abd2 100644 +--- a/compiler-rt/lib/asan/asan_malloc_linux.cc ++++ b/compiler-rt/lib/asan/asan_malloc_linux.cc +@@ -26,52 +26,58 @@ + // ---------------------- Replacement functions ---------------- {{{1 + using namespace __asan; // NOLINT + +-static const uptr kCallocPoolSize = 1024; +-static uptr calloc_memory_for_dlsym[kCallocPoolSize]; ++static uptr allocated_for_dlsym; ++static const uptr kDlsymAllocPoolSize = 1024; ++static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize]; + +-static bool IsInCallocPool(const void *ptr) { +- sptr off = (sptr)ptr - (sptr)calloc_memory_for_dlsym; +- return 0 <= off && off < (sptr)kCallocPoolSize; ++static bool IsInDlsymAllocPool(const void *ptr) { ++ uptr off = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ return off < sizeof(alloc_memory_for_dlsym); ++} ++ ++static void *AllocateFromLocalPool(uptr size_in_bytes) { ++ uptr size_in_words = RoundUpTo(size_in_bytes, kWordSize) / kWordSize; ++ void *mem = (void*)&alloc_memory_for_dlsym[allocated_for_dlsym]; ++ allocated_for_dlsym += size_in_words; ++ CHECK_LT(allocated_for_dlsym, kDlsymAllocPoolSize); ++ return mem; + } + + INTERCEPTOR(void, free, void *ptr) { + GET_STACK_TRACE_FREE; +- if (UNLIKELY(IsInCallocPool(ptr))) ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) + return; + asan_free(ptr, &stack, FROM_MALLOC); + } + + INTERCEPTOR(void, cfree, void *ptr) { + GET_STACK_TRACE_FREE; +- if (UNLIKELY(IsInCallocPool(ptr))) ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) + return; + asan_free(ptr, &stack, FROM_MALLOC); + } + + INTERCEPTOR(void*, malloc, uptr size) { ++ if (UNLIKELY(!asan_inited)) ++ // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym. ++ return AllocateFromLocalPool(size); + GET_STACK_TRACE_MALLOC; + return asan_malloc(size, &stack); + } + + INTERCEPTOR(void*, calloc, uptr nmemb, uptr size) { +- if (UNLIKELY(!asan_inited)) { ++ if (UNLIKELY(!asan_inited)) + // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym. +- static uptr allocated; +- uptr size_in_words = ((nmemb * size) + kWordSize - 1) / kWordSize; +- void *mem = (void*)&calloc_memory_for_dlsym[allocated]; +- allocated += size_in_words; +- CHECK(allocated < kCallocPoolSize); +- return mem; +- } ++ return AllocateFromLocalPool(nmemb * size); + GET_STACK_TRACE_MALLOC; + return asan_calloc(nmemb, size, &stack); + } + + INTERCEPTOR(void*, realloc, void *ptr, uptr size) { + GET_STACK_TRACE_MALLOC; +- if (UNLIKELY(IsInCallocPool(ptr))) { +- uptr offset = (uptr)ptr - (uptr)calloc_memory_for_dlsym; +- uptr copy_size = Min(size, kCallocPoolSize - offset); ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) { ++ uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); + void *new_ptr = asan_malloc(size, &stack); + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; +-- +2.10.2 + diff --git a/debian/patches/upstream-msan-prevent-initialization-failure.diff b/debian/patches/upstream-msan-prevent-initialization-failure.diff new file mode 100644 index 00000000..ba52b590 --- /dev/null +++ b/debian/patches/upstream-msan-prevent-initialization-failure.diff @@ -0,0 +1,124 @@ +From 827ea206c1078fc7c7da287984a7ba4563390589 Mon Sep 17 00:00:00 2001 +From: Maxim Ostapenko +Date: Fri, 23 Sep 2016 07:40:55 +0000 +Subject: [PATCH] [msan] Prevent initialization failure with newer (2.23+) + glibc in use. + +This patch is pretty the same as http://reviews.llvm.org/D20235 that we used +for ASan. Using the same hack for MSan fixes its initialization with newer +Glibc in use. + +Differential Revision: https://reviews.llvm.org/D24736 + + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282232 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/asan/asan_malloc_linux.cc | 6 +++++- + lib/msan/msan_interceptors.cc | 43 +++++++++++++++++++++++++++++++------------ + 2 files changed, 36 insertions(+), 13 deletions(-) + +diff --git a/compiler-rt/lib/asan/asan_malloc_linux.cc b/compiler-rt/lib/asan/asan_malloc_linux.cc +index 162abd2..d7a22d6 100644 +--- a/compiler-rt/lib/asan/asan_malloc_linux.cc ++++ b/compiler-rt/lib/asan/asan_malloc_linux.cc +@@ -78,7 +78,11 @@ INTERCEPTOR(void*, realloc, void *ptr, uptr size) { + if (UNLIKELY(IsInDlsymAllocPool(ptr))) { + uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; + uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); +- void *new_ptr = asan_malloc(size, &stack); ++ void *new_ptr; ++ if (UNLIKELY(!asan_inited)) ++ new_ptr = AllocateFromLocalPool(size); ++ else ++ new_ptr = asan_malloc(size, &stack); + internal_memcpy(new_ptr, ptr, copy_size); + return new_ptr; + } +diff --git a/compiler-rt/lib/msan/msan_interceptors.cc b/compiler-rt/lib/msan/msan_interceptors.cc +index f23d3ee..2aeaef4 100644 +--- a/compiler-rt/lib/msan/msan_interceptors.cc ++++ b/compiler-rt/lib/msan/msan_interceptors.cc +@@ -64,6 +64,23 @@ bool IsInInterceptorScope() { + return in_interceptor_scope; + } + ++static uptr allocated_for_dlsym; ++static const uptr kDlsymAllocPoolSize = 1024; ++static uptr alloc_memory_for_dlsym[kDlsymAllocPoolSize]; ++ ++static bool IsInDlsymAllocPool(const void *ptr) { ++ uptr off = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ return off < sizeof(alloc_memory_for_dlsym); ++} ++ ++static void *AllocateFromLocalPool(uptr size_in_bytes) { ++ uptr size_in_words = RoundUpTo(size_in_bytes, kWordSize) / kWordSize; ++ void *mem = (void *)&alloc_memory_for_dlsym[allocated_for_dlsym]; ++ allocated_for_dlsym += size_in_words; ++ CHECK_LT(allocated_for_dlsym, kDlsymAllocPoolSize); ++ return mem; ++} ++ + #define ENSURE_MSAN_INITED() do { \ + CHECK(!msan_init_is_running); \ + if (!msan_inited) { \ +@@ -227,14 +244,14 @@ INTERCEPTOR(void *, pvalloc, SIZE_T size) { + + INTERCEPTOR(void, free, void *ptr) { + GET_MALLOC_STACK_TRACE; +- if (!ptr) return; ++ if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return; + MsanDeallocate(&stack, ptr); + } + + #if !SANITIZER_FREEBSD + INTERCEPTOR(void, cfree, void *ptr) { + GET_MALLOC_STACK_TRACE; +- if (!ptr) return; ++ if (!ptr || UNLIKELY(IsInDlsymAllocPool(ptr))) return; + MsanDeallocate(&stack, ptr); + } + #define MSAN_MAYBE_INTERCEPT_CFREE INTERCEPT_FUNCTION(cfree) +@@ -907,27 +924,29 @@ INTERCEPTOR(int, epoll_pwait, int epfd, void *events, int maxevents, + + INTERCEPTOR(void *, calloc, SIZE_T nmemb, SIZE_T size) { + GET_MALLOC_STACK_TRACE; +- if (UNLIKELY(!msan_inited)) { ++ if (UNLIKELY(!msan_inited)) + // Hack: dlsym calls calloc before REAL(calloc) is retrieved from dlsym. +- const SIZE_T kCallocPoolSize = 1024; +- static uptr calloc_memory_for_dlsym[kCallocPoolSize]; +- static SIZE_T allocated; +- SIZE_T size_in_words = ((nmemb * size) + kWordSize - 1) / kWordSize; +- void *mem = (void*)&calloc_memory_for_dlsym[allocated]; +- allocated += size_in_words; +- CHECK(allocated < kCallocPoolSize); +- return mem; +- } ++ return AllocateFromLocalPool(nmemb * size); + return MsanCalloc(&stack, nmemb, size); + } + + INTERCEPTOR(void *, realloc, void *ptr, SIZE_T size) { + GET_MALLOC_STACK_TRACE; ++ if (UNLIKELY(IsInDlsymAllocPool(ptr))) { ++ uptr offset = (uptr)ptr - (uptr)alloc_memory_for_dlsym; ++ uptr copy_size = Min(size, kDlsymAllocPoolSize - offset); ++ void *new_ptr = AllocateFromLocalPool(size); ++ internal_memcpy(new_ptr, ptr, copy_size); ++ return new_ptr; ++ } + return MsanReallocate(&stack, ptr, size, sizeof(u64), false); + } + + INTERCEPTOR(void *, malloc, SIZE_T size) { + GET_MALLOC_STACK_TRACE; ++ if (UNLIKELY(!msan_inited)) ++ // Hack: dlsym calls malloc before REAL(malloc) is retrieved from dlsym. ++ return AllocateFromLocalPool(size); + return MsanReallocate(&stack, nullptr, size, sizeof(u64), false); + } + +-- +2.10.2 + diff --git a/debian/rules b/debian/rules index 60fc7edb..86f44358 100755 --- a/debian/rules +++ b/debian/rules @@ -457,6 +457,9 @@ ifeq (${LLD_ENABLE},yes) $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lld || true endif +# Sanitizer + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-sanitize || true + # LLDB tests (CMake) ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) ifneq (,$(filter codecoverageDISABLED,$(DEB_BUILD_OPTIONS))) From d1cbeddb9f2b4da92a83b628aaf4bb54b2452688 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 16:08:56 +0000 Subject: [PATCH 09/89] remove test --- debian/patches/series | 5 ----- debian/patches/silent-llvm-symbolizer.diff | 12 ------------ 2 files changed, 17 deletions(-) delete mode 100644 debian/patches/silent-llvm-symbolizer.diff diff --git a/debian/patches/series b/debian/patches/series index 5590b18b..4fec2917 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -35,16 +35,11 @@ lldb-link-atomic-cmake.patch disable-llvm-symbolizer-test.diff kfreebsd-support.diff clang-tidy-run-bin.diff -<<<<<<< .working drop-wrong-hack-arm64.patch bug-30342.diff fix-scan-view-path.diff 0011-SimplifyCFG-Hoisting-invalidates-metadata.patch clang-fix-cmpxchg8-detection-on-i386.patch lldb-addversion-suffix-to-llvm-server-exec.patch -#upstream-fix-asan-initialization.diff -upstream-msan-prevent-initialization-failure.diff -upstream-asan-msan-fix-reallocation-logic.diff -silent-llvm-symbolizer.diff upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff diff --git a/debian/patches/silent-llvm-symbolizer.diff b/debian/patches/silent-llvm-symbolizer.diff deleted file mode 100644 index 4834dae6..00000000 --- a/debian/patches/silent-llvm-symbolizer.diff +++ /dev/null @@ -1,12 +0,0 @@ -Index: llvm-toolchain-3.8-3.8.1/test/tools/llvm-symbolizer/print_context.c -=================================================================== ---- llvm-toolchain-3.8-3.8.1.orig/test/tools/llvm-symbolizer/print_context.c -+++ llvm-toolchain-3.8-3.8.1/test/tools/llvm-symbolizer/print_context.c -@@ -1,6 +1,7 @@ - // REQUIRES: x86_64-linux - // RUN: %host_cc -O0 -g %s -o %t 2>&1 - // RUN: %t 2>&1 | llvm-symbolizer -print-source-context-lines=5 -obj=%t | FileCheck %s --check-prefix=CHECK -+// XFAIL: * - - #include - From 849a2e688f1950deae10c439d5867b128648baab Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 17:45:54 +0000 Subject: [PATCH 10/89] fix a typo in the check sanitizer --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 2e77ffaa..e55634c5 100755 --- a/debian/rules +++ b/debian/rules @@ -499,7 +499,7 @@ endif $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-clang || true # Sanitizer - $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-sanitize || true + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-sanitizer || true # LLDB tests (CMake) ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) From a0f823ffccd3e07eaf6cb8ee0d2d7b61a0e3ac88 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 17:45:54 +0000 Subject: [PATCH 11/89] fix a typo in the check sanitizer --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 86f44358..0c6dc60d 100755 --- a/debian/rules +++ b/debian/rules @@ -458,7 +458,7 @@ ifeq (${LLD_ENABLE},yes) endif # Sanitizer - $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-sanitize || true + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-sanitizer || true # LLDB tests (CMake) ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) From 7a170d08f2b6b52b0c4a3014aff739f04cc82e3d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 17:52:51 +0000 Subject: [PATCH 12/89] force the lang to be english and the system. Can cause issue with parsing french for example --- debian/patches/lit-force-lang.diff | 13 +++++++++++++ debian/patches/series | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 debian/patches/lit-force-lang.diff diff --git a/debian/patches/lit-force-lang.diff b/debian/patches/lit-force-lang.diff new file mode 100644 index 00000000..37a5d2cd --- /dev/null +++ b/debian/patches/lit-force-lang.diff @@ -0,0 +1,13 @@ +Index: llvm-toolchain-3.8-3.8.1/projects/compiler-rt/test/lit.common.cfg +=================================================================== +--- llvm-toolchain-3.8-3.8.1.orig/projects/compiler-rt/test/lit.common.cfg ++++ llvm-toolchain-3.8-3.8.1/projects/compiler-rt/test/lit.common.cfg +@@ -120,7 +120,7 @@ def is_linux_lto_supported(): + if not os.path.exists(os.path.join(config.llvm_shlib_dir, 'LLVMgold.so')): + return False + +- ld_cmd = subprocess.Popen([config.gold_executable, '--help'], stdout = subprocess.PIPE) ++ ld_cmd = subprocess.Popen([config.gold_executable, '--help'], stdout = subprocess.PIPE, env={'LANG': 'C'}) + ld_out = ld_cmd.stdout.read().decode() + ld_cmd.wait() + diff --git a/debian/patches/series b/debian/patches/series index 7e03b3ac..c2845b92 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -52,4 +52,4 @@ clang-tidy-run-bin.diff silent-llvm-symbolizer.diff upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff - +lit-force-lang.diff From 32be4b518355680f474a14d2ffac8a972b6f5439 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 18:09:06 +0000 Subject: [PATCH 13/89] rebase of the patch --- debian/patches/lit-force-lang.diff | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/patches/lit-force-lang.diff b/debian/patches/lit-force-lang.diff index 37a5d2cd..84e65583 100644 --- a/debian/patches/lit-force-lang.diff +++ b/debian/patches/lit-force-lang.diff @@ -1,8 +1,8 @@ -Index: llvm-toolchain-3.8-3.8.1/projects/compiler-rt/test/lit.common.cfg +Index: llvm-toolchain-3.9-3.9~svn275918/compiler-rt/test/lit.common.cfg =================================================================== ---- llvm-toolchain-3.8-3.8.1.orig/projects/compiler-rt/test/lit.common.cfg -+++ llvm-toolchain-3.8-3.8.1/projects/compiler-rt/test/lit.common.cfg -@@ -120,7 +120,7 @@ def is_linux_lto_supported(): +--- llvm-toolchain-3.9-3.9~svn275918.orig/compiler-rt/test/lit.common.cfg ++++ llvm-toolchain-3.9-3.9~svn275918/compiler-rt/test/lit.common.cfg +@@ -148,7 +148,7 @@ def is_linux_lto_supported(): if not os.path.exists(os.path.join(config.llvm_shlib_dir, 'LLVMgold.so')): return False From a8c8177356653c882de6dda851c3b1141d8e5f4b Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 11 Nov 2016 18:19:14 +0000 Subject: [PATCH 14/89] fix the patch --- debian/patches/lit-force-lang.diff | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/patches/lit-force-lang.diff b/debian/patches/lit-force-lang.diff index 37a5d2cd..84e65583 100644 --- a/debian/patches/lit-force-lang.diff +++ b/debian/patches/lit-force-lang.diff @@ -1,8 +1,8 @@ -Index: llvm-toolchain-3.8-3.8.1/projects/compiler-rt/test/lit.common.cfg +Index: llvm-toolchain-3.9-3.9~svn275918/compiler-rt/test/lit.common.cfg =================================================================== ---- llvm-toolchain-3.8-3.8.1.orig/projects/compiler-rt/test/lit.common.cfg -+++ llvm-toolchain-3.8-3.8.1/projects/compiler-rt/test/lit.common.cfg -@@ -120,7 +120,7 @@ def is_linux_lto_supported(): +--- llvm-toolchain-3.9-3.9~svn275918.orig/compiler-rt/test/lit.common.cfg ++++ llvm-toolchain-3.9-3.9~svn275918/compiler-rt/test/lit.common.cfg +@@ -148,7 +148,7 @@ def is_linux_lto_supported(): if not os.path.exists(os.path.join(config.llvm_shlib_dir, 'LLVMgold.so')): return False From 755bc6aaf9e28b1ef58b94ff03145580448542c7 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 13 Nov 2016 12:40:47 +0000 Subject: [PATCH 15/89] Disable NEON generation on armhf (Closes: #841474, #842142) Thanks to Pauli for the fix --- debian/changelog | 7 +++++++ .../patches/clang-arm-default-vfp3-on-armv7a.patch | 13 +++++++++++++ debian/patches/series | 1 + 3 files changed, 21 insertions(+) create mode 100644 debian/patches/clang-arm-default-vfp3-on-armv7a.patch diff --git a/debian/changelog b/debian/changelog index 8156d8a7..42a00c5a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.8 (1:3.8.1-17) unstable; urgency=medium + + * Disable NEON generation on armhf (Closes: #841474, #842142) + Thanks to Pauli for the fix + + -- Sylvestre Ledru Sun, 13 Nov 2016 13:38:01 +0100 + llvm-toolchain-3.8 (1:3.8.1-16) unstable; urgency=medium * Fix segfaults in the memory sanitizers (Closes: #842642) diff --git a/debian/patches/clang-arm-default-vfp3-on-armv7a.patch b/debian/patches/clang-arm-default-vfp3-on-armv7a.patch new file mode 100644 index 00000000..0a2dbbc3 --- /dev/null +++ b/debian/patches/clang-arm-default-vfp3-on-armv7a.patch @@ -0,0 +1,13 @@ +Index: llvm-toolchain-3.8-3.8.1/include/llvm/Support/ARMTargetParser.def +=================================================================== +--- llvm-toolchain-3.8-3.8.1.orig/include/llvm/Support/ARMTargetParser.def ++++ llvm-toolchain-3.8-3.8.1/include/llvm/Support/ARMTargetParser.def +@@ -75,7 +75,7 @@ ARM_ARCH("armv6kz", AK_ARMV6KZ, "6KZ", " + ARM_ARCH("armv6-m", AK_ARMV6M, "6-M", "v6m", ARMBuildAttrs::CPUArch::v6_M, + FK_NONE, AEK_NONE) + ARM_ARCH("armv7-a", AK_ARMV7A, "7-A", "v7", ARMBuildAttrs::CPUArch::v7, +- FK_NEON, AEK_DSP) ++ FK_VFPV3 /* Hard float */, AEK_DSP) + ARM_ARCH("armv7-r", AK_ARMV7R, "7-R", "v7r", ARMBuildAttrs::CPUArch::v7, + FK_NONE, (AEK_HWDIV | AEK_DSP)) + ARM_ARCH("armv7-m", AK_ARMV7M, "7-M", "v7m", ARMBuildAttrs::CPUArch::v7, diff --git a/debian/patches/series b/debian/patches/series index c2845b92..3c9c20fa 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -53,3 +53,4 @@ silent-llvm-symbolizer.diff upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff +clang-arm-default-vfp3-on-armv7a.patch From 2c2400e0b20dafb65461e84d44f69ca2ce8d46f7 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 13 Nov 2016 12:42:10 +0000 Subject: [PATCH 16/89] Disable NEON generation on armhf (Closes: #841474, #842142) Thanks to Pauli for the fix --- debian/changelog | 7 +++++++ .../patches/clang-arm-default-vfp3-on-armv7a.patch | 13 +++++++++++++ debian/patches/series | 1 + 3 files changed, 21 insertions(+) create mode 100644 debian/patches/clang-arm-default-vfp3-on-armv7a.patch diff --git a/debian/changelog b/debian/changelog index 769c0d19..cfd4c91a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.9 (1:3.9-7) UNRELEASED; urgency=medium + + * Disable NEON generation on armhf (Closes: #841474, #842142) + Thanks to Pauli for the fix + + -- Sylvestre Ledru Sun, 13 Nov 2016 13:40:59 +0100 + llvm-toolchain-3.9 (1:3.9-6) unstable; urgency=medium * Fix segfaults in the memory sanitizers (Closes: #842642) diff --git a/debian/patches/clang-arm-default-vfp3-on-armv7a.patch b/debian/patches/clang-arm-default-vfp3-on-armv7a.patch new file mode 100644 index 00000000..3be02ce3 --- /dev/null +++ b/debian/patches/clang-arm-default-vfp3-on-armv7a.patch @@ -0,0 +1,13 @@ +Index: llvm-toolchain-3.9-3.9/include/llvm/Support/ARMTargetParser.def +=================================================================== +--- llvm-toolchain-3.9-3.9.orig/include/llvm/Support/ARMTargetParser.def ++++ llvm-toolchain-3.9-3.9/include/llvm/Support/ARMTargetParser.def +@@ -75,7 +75,7 @@ ARM_ARCH("armv6kz", AK_ARMV6KZ, "6KZ", " + ARM_ARCH("armv6-m", AK_ARMV6M, "6-M", "v6m", ARMBuildAttrs::CPUArch::v6_M, + FK_NONE, ARM::AEK_NONE) + ARM_ARCH("armv7-a", AK_ARMV7A, "7-A", "v7", ARMBuildAttrs::CPUArch::v7, +- FK_NEON, ARM::AEK_DSP) ++ FK_VFPV3 /* Hard float */, ARM::AEK_DSP) + ARM_ARCH("armv7-r", AK_ARMV7R, "7-R", "v7r", ARMBuildAttrs::CPUArch::v7, + FK_NONE, (ARM::AEK_HWDIV | ARM::AEK_DSP)) + ARM_ARCH("armv7-m", AK_ARMV7M, "7-M", "v7m", ARMBuildAttrs::CPUArch::v7, diff --git a/debian/patches/series b/debian/patches/series index dad4539f..bdc3eb95 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -44,3 +44,4 @@ lldb-addversion-suffix-to-llvm-server-exec.patch upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff +clang-arm-default-vfp3-on-armv7a.patch From bb597755b0f1908ef80dbdcdb4e6c3dfad061ed3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 15 Nov 2016 16:06:51 +0000 Subject: [PATCH 17/89] remove syntax not understood everywhere --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 74a22c33..60aa8aab 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, libjsoncpp-dev, lcov, procps, help2man, dh-ocaml, zlib1g-dev, - g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] + g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev, libllvm-3.9-ocaml-dev Standards-Version: 3.9.8 From fc2a841c57d1276ad60041a084d844b057a760f0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 15 Nov 2016 16:06:51 +0000 Subject: [PATCH 18/89] remove syntax not understood everywhere --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 80c274d8..66c2dd35 100644 --- a/debian/control +++ b/debian/control @@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, libjsoncpp-dev, lcov, procps, help2man, dh-ocaml, zlib1g-dev, - g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] + g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev Standards-Version: 3.9.8 From 94f1b674278762aff93e8a739dcfeabc7c055113 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 24 Nov 2016 09:46:18 +0000 Subject: [PATCH 19/89] fix the version --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 0c6dc60d..78f3aece 100755 --- a/debian/rules +++ b/debian/rules @@ -7,7 +7,7 @@ DEB_INST := $(CURDIR)/debian/tmp/ # accomodate that by hardcoding the 5 detection GCC_VERSION := $(shell dpkg-query -W -f '$${Version}' g++ | sed -rne 's,^([0-9]+:)?(5|6|[0-9]+\.[0-9]+|[0-9]+).*$$,\2,p') LLVM_VERSION := 3.9 -LLVM_VERSION_FULL := $(LLVM_VERSION).0 +LLVM_VERSION_FULL := $(LLVM_VERSION).1 SONAME_EXT := 1 # Manage the case when the version is 1:3.5~svn213052-1~exp1 or 1:3.4.2-1 DEBIAN_REVISION := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\3,p") From ba1e624fc26efb263eb85800efb83103f4e1dd50 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 30 Nov 2016 11:06:05 +0000 Subject: [PATCH 20/89] patches/bug-30342.diff removed. Applied upstream (3.9.1) --- debian/changelog | 5 +++-- debian/patches/bug-30342.diff | 42 ----------------------------------- debian/patches/series | 1 - 3 files changed, 3 insertions(+), 45 deletions(-) delete mode 100644 debian/patches/bug-30342.diff diff --git a/debian/changelog b/debian/changelog index cfd4c91a..97a7cc6a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,10 @@ -llvm-toolchain-3.9 (1:3.9-7) UNRELEASED; urgency=medium +llvm-toolchain-3.9 (1:3.9~svn288149-1~exp1) UNRELEASED; urgency=medium * Disable NEON generation on armhf (Closes: #841474, #842142) Thanks to Pauli for the fix + * patches/bug-30342.diff removed. Applied upstream (3.9.1) - -- Sylvestre Ledru Sun, 13 Nov 2016 13:40:59 +0100 + -- Sylvestre Ledru Tue, 29 Nov 2016 18:07:50 +0100 llvm-toolchain-3.9 (1:3.9-6) unstable; urgency=medium diff --git a/debian/patches/bug-30342.diff b/debian/patches/bug-30342.diff deleted file mode 100644 index a94ecaeb..00000000 --- a/debian/patches/bug-30342.diff +++ /dev/null @@ -1,42 +0,0 @@ -Index: llvm-toolchain-3.9-3.9/test/Transforms/InstCombine/indexed-gep-compares.ll -=================================================================== ---- llvm-toolchain-3.9-3.9.orig/test/Transforms/InstCombine/indexed-gep-compares.ll -+++ llvm-toolchain-3.9-3.9/test/Transforms/InstCombine/indexed-gep-compares.ll -@@ -167,4 +167,24 @@ lpad: - ; CHECK: ret i32* %[[PTR]] - } - -+ -+@pr30402 = constant i64 3 -+define i1 @test7() { -+entry: -+ br label %bb7 -+ -+bb7: ; preds = %bb10, %entry-block -+ %phi = phi i64* [ @pr30402, %entry ], [ getelementptr inbounds (i64, i64* @pr30402, i32 1), %bb7 ] -+ %cmp = icmp eq i64* %phi, getelementptr inbounds (i64, i64* @pr30402, i32 1) -+ br i1 %cmp, label %bb10, label %bb7 -+ -+bb10: -+ ret i1 %cmp -+} -+; CHECK-LABEL: @test7( -+; CHECK: %[[phi:.*]] = phi i64* [ @pr30402, %entry ], [ getelementptr inbounds (i64, i64* @pr30402, i32 1), %bb7 ] -+; CHECK: %[[cmp:.*]] = icmp eq i64* %[[phi]], getelementptr inbounds (i64, i64* @pr30402, i32 1) -+; CHECK: ret i1 %[[cmp]] -+ -+ - declare i32 @__gxx_personality_v0(...) -Index: llvm-toolchain-3.9-3.9/lib/Transforms/InstCombine/InstCombineCompares.cpp -=================================================================== ---- llvm-toolchain-3.9-3.9.orig/lib/Transforms/InstCombine/InstCombineCompares.cpp -+++ llvm-toolchain-3.9-3.9/lib/Transforms/InstCombine/InstCombineCompares.cpp -@@ -634,7 +634,7 @@ static bool canRewriteGEPAsOffset(Value - } - - if (!isa(V) && !isa(V) && -- !isa(V) && !isa(V)) -+ !isa(V) && !isa(V)) - // We've found some value that we can't explore which is different from - // the base. Therefore we can't do this transformation. - return false; diff --git a/debian/patches/series b/debian/patches/series index bdc3eb95..feb40bde 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -36,7 +36,6 @@ disable-llvm-symbolizer-test.diff kfreebsd-support.diff clang-tidy-run-bin.diff drop-wrong-hack-arm64.patch -bug-30342.diff fix-scan-view-path.diff 0011-SimplifyCFG-Hoisting-invalidates-metadata.patch clang-fix-cmpxchg8-detection-on-i386.patch From d7384ffa9823090196e3854e61416d7d0b0fae9f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 1 Dec 2016 13:54:36 +0000 Subject: [PATCH 21/89] patches/bug-30342.diff 0011-SimplifyCFG-Hoisting-invalidates-metadata.patch removed. Applied upstream (3.9.1) --- debian/changelog | 4 +- ...ifyCFG-Hoisting-invalidates-metadata.patch | 84 ------------------- debian/patches/series | 1 - 3 files changed, 2 insertions(+), 87 deletions(-) delete mode 100644 debian/patches/0011-SimplifyCFG-Hoisting-invalidates-metadata.patch diff --git a/debian/changelog b/debian/changelog index 97a7cc6a..1060c589 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,9 +2,9 @@ llvm-toolchain-3.9 (1:3.9~svn288149-1~exp1) UNRELEASED; urgency=medium * Disable NEON generation on armhf (Closes: #841474, #842142) Thanks to Pauli for the fix - * patches/bug-30342.diff removed. Applied upstream (3.9.1) + * patches/bug-30342.diff 0011-SimplifyCFG-Hoisting-invalidates-metadata.patch removed. Applied upstream (3.9.1) - -- Sylvestre Ledru Tue, 29 Nov 2016 18:07:50 +0100 + -- Sylvestre Ledru Thu, 01 Dec 2016 14:48:18 +0100 llvm-toolchain-3.9 (1:3.9-6) unstable; urgency=medium diff --git a/debian/patches/0011-SimplifyCFG-Hoisting-invalidates-metadata.patch b/debian/patches/0011-SimplifyCFG-Hoisting-invalidates-metadata.patch deleted file mode 100644 index b184a402..00000000 --- a/debian/patches/0011-SimplifyCFG-Hoisting-invalidates-metadata.patch +++ /dev/null @@ -1,84 +0,0 @@ -From eee68eafa7e8e4ce996b49f5551636639a6c331a Mon Sep 17 00:00:00 2001 -From: David Majnemer -Date: Mon, 29 Aug 2016 17:14:08 +0000 -Subject: [PATCH 11/17] [SimplifyCFG] Hoisting invalidates metadata - -We forgot to remove optimization metadata when performing hosting during -FoldTwoEntryPHINode. - -This fixes PR29163. - -git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279980 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - lib/Transforms/Utils/SimplifyCFG.cpp | 10 ++++++++-- - test/Transforms/SimplifyCFG/PR29163.ll | 31 +++++++++++++++++++++++++++++++ - 2 files changed, 39 insertions(+), 2 deletions(-) - create mode 100644 test/Transforms/SimplifyCFG/PR29163.ll - -diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp -index 0504646..c197317 100644 ---- a/lib/Transforms/Utils/SimplifyCFG.cpp -+++ b/lib/Transforms/Utils/SimplifyCFG.cpp -@@ -2024,14 +2024,20 @@ static bool FoldTwoEntryPHINode(PHINode *PN, const TargetTransformInfo &TTI, - - // Move all 'aggressive' instructions, which are defined in the - // conditional parts of the if's up to the dominating block. -- if (IfBlock1) -+ if (IfBlock1) { -+ for (auto &I : *IfBlock1) -+ I.dropUnknownNonDebugMetadata(); - DomBlock->getInstList().splice(InsertPt->getIterator(), - IfBlock1->getInstList(), IfBlock1->begin(), - IfBlock1->getTerminator()->getIterator()); -- if (IfBlock2) -+ } -+ if (IfBlock2) { -+ for (auto &I : *IfBlock2) -+ I.dropUnknownNonDebugMetadata(); - DomBlock->getInstList().splice(InsertPt->getIterator(), - IfBlock2->getInstList(), IfBlock2->begin(), - IfBlock2->getTerminator()->getIterator()); -+ } - - while (PHINode *PN = dyn_cast(BB->begin())) { - // Change the PHI node into a select instruction. -diff --git a/test/Transforms/SimplifyCFG/PR29163.ll b/test/Transforms/SimplifyCFG/PR29163.ll -new file mode 100644 -index 0000000..65f9090 ---- /dev/null -+++ b/test/Transforms/SimplifyCFG/PR29163.ll -@@ -0,0 +1,31 @@ -+; RUN: opt -S -simplifycfg < %s | FileCheck %s -+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" -+target triple = "x86_64-unknown-linux-gnu" -+ -+@GV = external constant i64* -+ -+define i64* @test1(i1 %cond, i8* %P) { -+entry: -+ br i1 %cond, label %if, label %then -+ -+then: -+ %bc = bitcast i8* %P to i64* -+ br label %join -+ -+if: -+ %load = load i64*, i64** @GV, align 8, !dereferenceable !0 -+ br label %join -+ -+join: -+ %phi = phi i64* [ %bc, %then ], [ %load, %if ] -+ ret i64* %phi -+} -+ -+; CHECK-LABEL: define i64* @test1( -+; CHECK: %[[bc:.*]] = bitcast i8* %P to i64* -+; CHECK: %[[load:.*]] = load i64*, i64** @GV, align 8{{$}} -+; CHECK: %[[phi:.*]] = select i1 %cond, i64* %[[load]], i64* %[[bc]] -+; CHECK: ret i64* %[[phi]] -+ -+ -+!0 = !{i64 8} --- -2.10.1 - diff --git a/debian/patches/series b/debian/patches/series index feb40bde..aaf41b66 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -37,7 +37,6 @@ kfreebsd-support.diff clang-tidy-run-bin.diff drop-wrong-hack-arm64.patch fix-scan-view-path.diff -0011-SimplifyCFG-Hoisting-invalidates-metadata.patch clang-fix-cmpxchg8-detection-on-i386.patch lldb-addversion-suffix-to-llvm-server-exec.patch upstream-msan-prevent-initialization-failure.diff From 40da6c085b22c6d00d6e362db516923dae26a9c3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 4 Dec 2016 08:47:11 +0000 Subject: [PATCH 22/89] fix changelog --- debian/changelog | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 1060c589..b49fcc67 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,11 @@ -llvm-toolchain-3.9 (1:3.9~svn288149-1~exp1) UNRELEASED; urgency=medium +llvm-toolchain-3.9 (1:3.9.1~+rc2-1~exp1) experimental; urgency=medium + * rc 2 of a new release (3.9.1) * Disable NEON generation on armhf (Closes: #841474, #842142) Thanks to Pauli for the fix * patches/bug-30342.diff 0011-SimplifyCFG-Hoisting-invalidates-metadata.patch removed. Applied upstream (3.9.1) - -- Sylvestre Ledru Thu, 01 Dec 2016 14:48:18 +0100 + -- Sylvestre Ledru Fri, 02 Dec 2016 16:19:14 +0100 llvm-toolchain-3.9 (1:3.9-6) unstable; urgency=medium From 3bf05e337071848745e6bc7986d42a2e724e8d8f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 10 Dec 2016 17:21:12 +0000 Subject: [PATCH 23/89] rc 3 of a new release (3.9.1) --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index b49fcc67..84db828c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.9 (1:3.9.1~+rc3-1~exp1) experimental; urgency=medium + + * rc 3 of a new release (3.9.1) + + -- Sylvestre Ledru Sat, 10 Dec 2016 03:17:38 +0100 + llvm-toolchain-3.9 (1:3.9.1~+rc2-1~exp1) experimental; urgency=medium * rc 2 of a new release (3.9.1) From a64d431691ac9899a5cc270048cc17b5f58e9a66 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 14 Dec 2016 08:42:40 +0000 Subject: [PATCH 24/89] version 3.9.1 --- debian/orig-tar.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh index e9fd0ee1..fb70f940 100755 --- a/debian/orig-tar.sh +++ b/debian/orig-tar.sh @@ -16,7 +16,7 @@ set -e SVN_BASE_URL=http://llvm.org/svn/llvm-project/ MAJOR_VERSION=3.9 -CURRENT_VERSION=3.9 # Should be changed to 3.5.1 later +CURRENT_VERSION=3.9.1 # Should be changed to 3.5.1 later if test -n "$1"; then # http://llvm.org/svn/llvm-project/{cfe,llvm,compiler-rt,...}/branches/google/stable/ @@ -107,9 +107,9 @@ fi if test -n "$RCRELEASE"; then # VERSION=$MAJOR_VERSION"+"$REVISION # WAS TAG if test "$TAG" = "final"; then - VERSION=$MAJOR_VERSION + VERSION=$CURRENT_VERSION else - VERSION=$MAJOR_VERSION"~+"$TAG + VERSION=$CURRENT_VERSION"~+"$TAG fi FULL_VERSION="llvm-toolchain-"$MAJOR_VERSION"_"$VERSION else From 966c4040a4e35f2cea2491f1c7b76ab658f588d0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 17 Dec 2016 16:55:53 +0000 Subject: [PATCH 25/89] * debian/orig-tar.sh: less verbose * New stable release --- debian/changelog | 12 ++++++++++++ debian/orig-tar.sh | 14 +++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 84db828c..c48c3d46 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +llvm-toolchain-3.9 (1:3.9.1-2) UNRELEASED; urgency=medium + + * debian/orig-tar.sh: less verbose + + -- Sylvestre Ledru Sat, 17 Dec 2016 17:55:44 +0100 + +llvm-toolchain-3.9 (1:3.9.1-1) unstable; urgency=medium + + * New stable release + + -- Sylvestre Ledru Wed, 14 Dec 2016 09:22:02 +0100 + llvm-toolchain-3.9 (1:3.9.1~+rc3-1~exp1) experimental; urgency=medium * rc 3 of a new release (3.9.1) diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh index fb70f940..d2987579 100755 --- a/debian/orig-tar.sh +++ b/debian/orig-tar.sh @@ -126,28 +126,28 @@ mkdir -p $SVN_ARCHIVES # LLVM LLVM_TARGET=$FULL_VERSION checkout_sources llvm $(get_svn_url llvm $BRANCH $TAG) $LLVM_TARGET "$BRANCH" $REVISION -tar jcvf $FULL_VERSION.orig.tar.bz2 $LLVM_TARGET +tar jcf $FULL_VERSION.orig.tar.bz2 $LLVM_TARGET rm -rf $LLVM_TARGET # Clang CLANG_TARGET=clang_$VERSION checkout_sources clang $(get_svn_url cfe $BRANCH $TAG) $CLANG_TARGET "$BRANCH" $REVISION -tar jcvf $FULL_VERSION.orig-clang.tar.bz2 $CLANG_TARGET +tar jcf $FULL_VERSION.orig-clang.tar.bz2 $CLANG_TARGET rm -rf $CLANG_TARGET # Clang extra CLANG_TARGET=clang-tools-extra_$VERSION checkout_sources clang-tools-extra $(get_svn_url clang-tools-extra $BRANCH $TAG) $CLANG_TARGET "$BRANCH" $REVISION -tar jcvf $FULL_VERSION.orig-clang-tools-extra.tar.bz2 $CLANG_TARGET +tar jcf $FULL_VERSION.orig-clang-tools-extra.tar.bz2 $CLANG_TARGET rm -rf $CLANG_TARGET # Compiler-rt COMPILER_RT_TARGET=compiler-rt_$VERSION checkout_sources compiler-rt $(get_svn_url compiler-rt $BRANCH $TAG) $COMPILER_RT_TARGET "$BRANCH" $REVISION #$SVN_CMD $(get_svn_url compiler-rt $BRANCH $TAG) $COMPILER_RT_TARGET -tar jcvf $FULL_VERSION.orig-compiler-rt.tar.bz2 $COMPILER_RT_TARGET +tar jcf $FULL_VERSION.orig-compiler-rt.tar.bz2 $COMPILER_RT_TARGET rm -rf $COMPILER_RT_TARGET # Polly @@ -155,7 +155,7 @@ POLLY_TARGET=polly_$VERSION checkout_sources polly $(get_svn_url polly $BRANCH $TAG) $POLLY_TARGET "$BRANCH" $REVISION #$SVN_CMD $(get_svn_url polly $BRANCH $TAG) $POLLY_TARGET rm -rf $POLLY_TARGET/www $POLLY_TARGET/autoconf/config.sub $POLLY_TARGET/autoconf/config.guess -tar jcvf $FULL_VERSION.orig-polly.tar.bz2 $POLLY_TARGET +tar jcf $FULL_VERSION.orig-polly.tar.bz2 $POLLY_TARGET rm -rf $POLLY_TARGET # LLD @@ -163,7 +163,7 @@ LLD_TARGET=lld_$VERSION checkout_sources lld $(get_svn_url lld $BRANCH $TAG) $LLD_TARGET "$BRANCH" $REVISION #$SVN_CMD $(get_svn_url lld $BRANCH $TAG) $LLD_TARGET rm -rf $LLD_TARGET/www/ -tar jcvf $FULL_VERSION.orig-lld.tar.bz2 $LLD_TARGET +tar jcf $FULL_VERSION.orig-lld.tar.bz2 $LLD_TARGET rm -rf $LLD_TARGET # LLDB @@ -171,7 +171,7 @@ LLDB_TARGET=lldb_$VERSION checkout_sources lldb $(get_svn_url lldb $BRANCH $TAG) $LLDB_TARGET "$BRANCH" $REVISION #$SVN_CMD $(get_svn_url lldb $BRANCH $TAG) $LLDB_TARGET rm -rf $LLDB_TARGET/www/ -tar jcvf $FULL_VERSION.orig-lldb.tar.bz2 $LLDB_TARGET +tar jcf $FULL_VERSION.orig-lldb.tar.bz2 $LLDB_TARGET rm -rf $LLDB_TARGET PATH_DEBIAN="$(pwd)/$(dirname $0)/../" From dac33f327f2cf2adc3a4b1894ed92684f25fdf35 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 20 Dec 2016 09:08:07 +0000 Subject: [PATCH 26/89] * Remove the info section from the generated manpages (Closes: #846269) * Fix the path to lldb-server (to lldb-server-3.8) (Closes: #846638) * Also install python-lldb-3.8 when installing lldb-3.8 (Closes: #846612) * Disable libedit usage in lldb because of garbage (Closes: #846616) --- debian/changelog | 4 ++++ debian/control | 4 ++-- debian/patches/lldb-server-path.diff | 13 +++++++++++++ debian/patches/series | 1 + debian/rules | 11 +++++++---- 5 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 debian/patches/lldb-server-path.diff diff --git a/debian/changelog b/debian/changelog index 42a00c5a..fc1a11d3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,10 @@ llvm-toolchain-3.8 (1:3.8.1-17) unstable; urgency=medium * Disable NEON generation on armhf (Closes: #841474, #842142) Thanks to Pauli for the fix + * Remove the info section from the generated manpages (Closes: #846269) + * Fix the path to lldb-server (to lldb-server-3.8) (Closes: #846638) + * Also install python-lldb-3.8 when installing lldb-3.8 (Closes: #846612) + * Disable libedit usage in lldb because of garbage (Closes: #846616) -- Sylvestre Ledru Sun, 13 Nov 2016 13:38:01 +0100 diff --git a/debian/control b/debian/control index 66c2dd35..8e0120df 100644 --- a/debian/control +++ b/debian/control @@ -397,8 +397,8 @@ Description: Modular compiler and toolchain technologies, examples Package: lldb-3.8 Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe sh4 x32 mips mipsel arm64 # ia64 hurd powerpc ppc64el sparc64 ppc64 mips64el have been removed -Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), llvm-3.8-dev -Suggests: python-lldb-3.8 +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), llvm-3.8-dev, + python-lldb-3.8 Conflicts: lldb-3.4, lldb-3.5 Pre-Depends: ${misc:Pre-Depends} Description: Next generation, high-performance debugger diff --git a/debian/patches/lldb-server-path.diff b/debian/patches/lldb-server-path.diff new file mode 100644 index 00000000..d7480b4e --- /dev/null +++ b/debian/patches/lldb-server-path.diff @@ -0,0 +1,13 @@ +Index: llvm-toolchain-3.8-3.8.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +=================================================================== +--- llvm-toolchain-3.8-3.8.1.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp ++++ llvm-toolchain-3.8-3.8.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +@@ -40,7 +40,7 @@ + #if defined(__APPLE__) + # define DEBUGSERVER_BASENAME "debugserver" + #else +-# define DEBUGSERVER_BASENAME "lldb-server" ++# define DEBUGSERVER_BASENAME "lldb-server-3.8" + #endif + + #if defined (HAVE_LIBCOMPRESSION) diff --git a/debian/patches/series b/debian/patches/series index 3c9c20fa..85c9ee10 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -54,3 +54,4 @@ upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch +lldb-server-path.diff diff --git a/debian/rules b/debian/rules index e55634c5..1dd3be8a 100755 --- a/debian/rules +++ b/debian/rules @@ -130,7 +130,10 @@ LLDB_DISABLE_ARCHS := hurd-i386 ia64 ppc64el powerpc s390x sparc64 ppc64 mips64e # hurd has threading issues ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH))) # Disable LLDB for this arch. - LLDB_ENABLE=no + LLDB_ENABLE=no +else +# See https://llvm.org/bugs/show_bug.cgi?id=28898 + CMAKE_EXTRA += -DLLDB_DISABLE_LIBEDIT=ON endif @@ -297,13 +300,13 @@ build_doc: cd $$d && rm -f underscore.js && ln -s /usr/share/javascript/underscore/underscore.js; \ done - help2man --version-string=$(LLVM_VERSION) clang/tools/scan-view/bin/scan-view > debian/man/scan-view-$(LLVM_VERSION).1 - help2man --version-string=$(LLVM_VERSION) clang/tools/clang-format/clang-format-diff.py > debian/man/clang-format-diff-$(LLVM_VERSION).1 + help2man --version-string=$(LLVM_VERSION) --no-info clang/tools/scan-view/bin/scan-view > debian/man/scan-view-$(LLVM_VERSION).1 + help2man --version-string=$(LLVM_VERSION) --no-info clang/tools/clang-format/clang-format-diff.py > debian/man/clang-format-diff-$(LLVM_VERSION).1 CMDS="llvm-dwarfdump llvm-mc llvm-mcmarkup llvm-objdump llvm-rtdyld llvm-size llvm-ranlib lldb lldb-mi clang-format clang clang-tblgen clang-check clang-tidy clang-apply-replacements git-clang-format pp-trace sancov lli"; \ for f in $$CMDS; do \ echo "Generating manpage of $$f"; \ - LD_LIBRARY_PATH=$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/:/usr/lib/*/libfakeroot help2man --no-discard-stderr --version-string=$(LLVM_VERSION) $(TARGET_BUILD)/$(BUILD_DIR)/bin/$$f > debian/man/$$f-$(LLVM_VERSION).1; \ + LD_LIBRARY_PATH=$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/:/usr/lib/*/libfakeroot help2man --no-discard-stderr --version-string=$(LLVM_VERSION) --no-info $(TARGET_BUILD)/$(BUILD_DIR)/bin/$$f > debian/man/$$f-$(LLVM_VERSION).1; \ done override_dh_auto_install: From d3a4d7ac313ee341894074b013967e976700db74 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 20 Dec 2016 09:09:06 +0000 Subject: [PATCH 27/89] Remove the info section from the generated manpages (Closes: #846269) --- debian/changelog | 1 + debian/rules | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index c48c3d46..c41b2a14 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ llvm-toolchain-3.9 (1:3.9.1-2) UNRELEASED; urgency=medium * debian/orig-tar.sh: less verbose + * Remove the info section from the generated manpages (Closes: #846269) -- Sylvestre Ledru Sat, 17 Dec 2016 17:55:44 +0100 diff --git a/debian/rules b/debian/rules index 78f3aece..9d846d39 100755 --- a/debian/rules +++ b/debian/rules @@ -270,13 +270,13 @@ build_doc: cd $$d && rm -f underscore.js && ln -s /usr/share/javascript/underscore/underscore.js && cd -; \ done - help2man --version-string=$(LLVM_VERSION) clang/tools/scan-view/bin/scan-view > debian/man/scan-view-$(LLVM_VERSION).1 - help2man --version-string=$(LLVM_VERSION) clang/tools/clang-format/clang-format-diff.py > debian/man/clang-format-diff-$(LLVM_VERSION).1 + help2man --version-string=$(LLVM_VERSION) --no-discard-stderr clang/tools/scan-view/bin/scan-view > debian/man/scan-view-$(LLVM_VERSION).1 + help2man --version-string=$(LLVM_VERSION) --no-discard-stderr clang/tools/clang-format/clang-format-diff.py > debian/man/clang-format-diff-$(LLVM_VERSION).1 CMDS="llvm-dwarfdump llvm-mc llvm-mcmarkup llvm-objdump llvm-rtdyld llvm-size llvm-ranlib lldb lldb-mi clang-format clang clang-tblgen clang-check clang-tidy clang-apply-replacements clang-rename clang-query pp-trace sancov lli modularize clang-include-fixer find-all-symbols"; \ for f in $$CMDS; do \ echo "Generating manpage of $$f"; \ - LD_LIBRARY_PATH=$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/:/usr/lib/*/libfakeroot help2man --version-string=$(LLVM_VERSION) $(TARGET_BUILD)/bin/$$f > debian/man/$$f-$(LLVM_VERSION).1; \ + LD_LIBRARY_PATH=$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/:/usr/lib/*/libfakeroot help2man --version-string=$(LLVM_VERSION) --no-discard-stderr $(TARGET_BUILD)/bin/$$f > debian/man/$$f-$(LLVM_VERSION).1; \ done override_dh_auto_install: From 41ad6a1e57fd19cf4a2f6283fbec250157b2114d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 20 Dec 2016 09:17:09 +0000 Subject: [PATCH 28/89] Revert "Fix the path to lldb-server (to lldb-server-3.9) (Closes: #846638)" --- debian/changelog | 1 - debian/patches/lldb-server-path.diff | 13 ------------- debian/patches/series | 2 -- 3 files changed, 16 deletions(-) delete mode 100644 debian/patches/lldb-server-path.diff diff --git a/debian/changelog b/debian/changelog index 91052482..0cfbbde0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,6 @@ llvm-toolchain-3.9 (1:3.9.1-2) UNRELEASED; urgency=medium * debian/orig-tar.sh: less verbose * Remove the info section from the generated manpages (Closes: #846269) - * Fix the path to lldb-server (to lldb-server-3.9) (Closes: #846638) * Disable libedit usage in lldb because of garbage (Closes: #846616) -- Sylvestre Ledru Sat, 17 Dec 2016 17:55:44 +0100 diff --git a/debian/patches/lldb-server-path.diff b/debian/patches/lldb-server-path.diff deleted file mode 100644 index ce50f2aa..00000000 --- a/debian/patches/lldb-server-path.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: llvm-toolchain-3.8-3.8.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -=================================================================== ---- llvm-toolchain-3.8-3.8.1.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -+++ llvm-toolchain-3.8-3.8.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -@@ -40,7 +40,7 @@ - #if defined(__APPLE__) - # define DEBUGSERVER_BASENAME "debugserver" - #else --# define DEBUGSERVER_BASENAME "lldb-server" -+# define DEBUGSERVER_BASENAME "lldb-server-3.9" - #endif - - #if defined (HAVE_LIBCOMPRESSION) diff --git a/debian/patches/series b/debian/patches/series index 0cab711b..aaf41b66 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -43,5 +43,3 @@ upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch -clang-arm-default-vfp3-on-armv7a.patch -lldb-server-path.diff From 3e9ae93627e40c411d6d272c0f638d8dbe3dc65b Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 7 Jan 2017 12:53:31 +0000 Subject: [PATCH 29/89] prepare for upload --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 0cfbbde0..f12bf68f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-3.9 (1:3.9.1-2) UNRELEASED; urgency=medium +llvm-toolchain-3.9 (1:3.9.1-2) unstable; urgency=medium * debian/orig-tar.sh: less verbose * Remove the info section from the generated manpages (Closes: #846269) From 8edaa63dab0bcb25c620bba91eb0e0de77a75084 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 7 Jan 2017 14:53:49 +0000 Subject: [PATCH 30/89] Fix the path to lldb-server (to lldb-server-3.9) (Closes: #846638) --- debian/changelog | 1 + debian/patches/lldb-server-path.diff | 20 ++++++++++++++++++++ debian/patches/series | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 debian/patches/lldb-server-path.diff diff --git a/debian/changelog b/debian/changelog index f12bf68f..cd1ab17a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ llvm-toolchain-3.9 (1:3.9.1-2) unstable; urgency=medium * debian/orig-tar.sh: less verbose * Remove the info section from the generated manpages (Closes: #846269) * Disable libedit usage in lldb because of garbage (Closes: #846616) + * Fix the path to lldb-server (to lldb-server-3.9) (Closes: #846638) -- Sylvestre Ledru Sat, 17 Dec 2016 17:55:44 +0100 diff --git a/debian/patches/lldb-server-path.diff b/debian/patches/lldb-server-path.diff new file mode 100644 index 00000000..b91e29df --- /dev/null +++ b/debian/patches/lldb-server-path.diff @@ -0,0 +1,20 @@ +Index: llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp ++++ llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +@@ -37,14 +37,10 @@ + // Project includes + #include "ProcessGDBRemoteLog.h" + +-#ifndef DEBIAN_VERSION_SUFFIX +-#define DEBIAN_VERSION_SUFFIX "" +-#endif +- + #if defined(__APPLE__) + # define DEBUGSERVER_BASENAME "debugserver" + #else +-# define DEBUGSERVER_BASENAME "lldb-server" DEBIAN_VERSION_SUFFIX ++# define DEBUGSERVER_BASENAME "lldb-server-3.9" + #endif + + #if defined (HAVE_LIBCOMPRESSION) diff --git a/debian/patches/series b/debian/patches/series index aaf41b66..84c502dd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -38,8 +38,8 @@ clang-tidy-run-bin.diff drop-wrong-hack-arm64.patch fix-scan-view-path.diff clang-fix-cmpxchg8-detection-on-i386.patch -lldb-addversion-suffix-to-llvm-server-exec.patch upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch +lldb-server-path.diff From 7f00e22bc561e42396d1a11ecff39da949f91d4b Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 7 Jan 2017 15:16:53 +0000 Subject: [PATCH 31/89] rename the patch to match what we do with 4.0 --- ...ddversion-suffix-to-llvm-server-exec.patch | 53 ++++++------------- debian/patches/lldb-server-path.diff | 20 ------- debian/patches/series | 2 +- 3 files changed, 16 insertions(+), 59 deletions(-) delete mode 100644 debian/patches/lldb-server-path.diff diff --git a/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch b/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch index 5490f129..4b96a0a7 100644 --- a/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch +++ b/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch @@ -1,45 +1,22 @@ -lldb-server exec users always /usr/bin/lldb-server. Server is required -for any debugging with lldb which makes it unusable unless default version -package has been installed. Small changes to code and debian/rules allows -a workaround for lldb-server start up. - -To use this one needs to add cmake defination during configure. eg --DDEBIAN_VERSION_SUFFIX=-$(LLVM_VERSION) - -Better implementation would be to use /usr/share/llvm-$(VERSION)/bin but -that change seems to require a big change to the path handling code -which could then break something else. - -This probably should have upstream bug but I couldn't find any existing report. - ---- llvm-toolchain-3.9-3.9.orig/CMakeLists.txt -+++ llvm-toolchain-3.9-3.9/CMakeLists.txt -@@ -2,6 +2,10 @@ - - cmake_minimum_required(VERSION 3.4.3) - -+set(DEBIAN_VERSION_SUFFIX "" CACHE STRING "Versioned program suffix that is required to exec correct subtool.") -+ -+add_definitions( -DDEBIAN_VERSION_SUFFIX=\"${DEBIAN_VERSION_SUFFIX}\") -+ - if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - message(STATUS "No build type selected, default to Debug") - set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (default Debug)") ---- llvm-toolchain-3.9-3.9.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -+++ llvm-toolchain-3.9-3.9/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -@@ -37,10 +37,14 @@ - // Project includes - #include "ProcessGDBRemoteLog.h" - -+#ifndef DEBIAN_VERSION_SUFFIX -+#define DEBIAN_VERSION_SUFFIX "" -+#endif -+ +Index: llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp ++++ llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp +@@ -40,7 +40,7 @@ #if defined(__APPLE__) # define DEBUGSERVER_BASENAME "debugserver" #else -# define DEBUGSERVER_BASENAME "lldb-server" -+# define DEBUGSERVER_BASENAME "lldb-server" DEBIAN_VERSION_SUFFIX ++# define DEBUGSERVER_BASENAME "lldb-server-3.9" #endif #if defined (HAVE_LIBCOMPRESSION) +@@ -1175,7 +1175,7 @@ GDBRemoteCommunication::StartDebugserver + } + } + } +- ++ log->Printf("foo %s, debugserver_file_spec.GetPath ().c_str ()); + if (debugserver_exists) + { + debugserver_file_spec.GetPath (debugserver_path, sizeof(debugserver_path)); diff --git a/debian/patches/lldb-server-path.diff b/debian/patches/lldb-server-path.diff deleted file mode 100644 index b91e29df..00000000 --- a/debian/patches/lldb-server-path.diff +++ /dev/null @@ -1,20 +0,0 @@ -Index: llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -=================================================================== ---- llvm-toolchain-3.9-3.9.1.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -+++ llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp -@@ -37,14 +37,10 @@ - // Project includes - #include "ProcessGDBRemoteLog.h" - --#ifndef DEBIAN_VERSION_SUFFIX --#define DEBIAN_VERSION_SUFFIX "" --#endif -- - #if defined(__APPLE__) - # define DEBUGSERVER_BASENAME "debugserver" - #else --# define DEBUGSERVER_BASENAME "lldb-server" DEBIAN_VERSION_SUFFIX -+# define DEBUGSERVER_BASENAME "lldb-server-3.9" - #endif - - #if defined (HAVE_LIBCOMPRESSION) diff --git a/debian/patches/series b/debian/patches/series index 84c502dd..2921eae7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -42,4 +42,4 @@ upstream-msan-prevent-initialization-failure.diff upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch -lldb-server-path.diff +lldb-addversion-suffix-to-llvm-server-exec.patch From 8a23e068a22219855e5bc3eeacbed67b8388eed3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Jan 2017 20:24:27 +0000 Subject: [PATCH 32/89] d/p/lldb-server-link.diff Fix the lldb hang. It was due to a linking issue. Thanks to Pavel Labath (Closes: #846640) --- debian/changelog | 4 +++- debian/patches/lldb-server-link.diff | 28 ++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 debian/patches/lldb-server-link.diff diff --git a/debian/changelog b/debian/changelog index fc1a11d3..09b1cb41 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,8 +6,10 @@ llvm-toolchain-3.8 (1:3.8.1-17) unstable; urgency=medium * Fix the path to lldb-server (to lldb-server-3.8) (Closes: #846638) * Also install python-lldb-3.8 when installing lldb-3.8 (Closes: #846612) * Disable libedit usage in lldb because of garbage (Closes: #846616) + * d/p/lldb-server-link.diff Fix the lldb hang. It was due to a linking issue. + Thanks to Pavel Labath (Closes: #846640) - -- Sylvestre Ledru Sun, 13 Nov 2016 13:38:01 +0100 + -- Sylvestre Ledru Mon, 09 Jan 2017 21:24:17 +0100 llvm-toolchain-3.8 (1:3.8.1-16) unstable; urgency=medium diff --git a/debian/patches/lldb-server-link.diff b/debian/patches/lldb-server-link.diff new file mode 100644 index 00000000..8152645d --- /dev/null +++ b/debian/patches/lldb-server-link.diff @@ -0,0 +1,28 @@ +diff --git a/lldb/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake +index 75c522f65..3d868068c 100644 +--- a/lldb.orig/cmake/modules/AddLLDB.cmake ++++ b/lldb/cmake/modules/AddLLDB.cmake +@@ -93,7 +93,7 @@ macro(add_lldb_library name) + endmacro(add_lldb_library) + + macro(add_lldb_executable name) +- add_llvm_executable(${name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN}) ++ add_llvm_executable(${name} ${ARGN}) + set_target_properties(${name} PROPERTIES FOLDER "lldb executables") + endmacro(add_lldb_executable) + +diff --git a/lldb/tools/lldb-server/CMakeLists.txt b/tools/lldb-server/CMakeLists.txt +index 28360914a..9d8a09b69 100644 +--- a/lldb.orig/tools/lldb-server/CMakeLists.txt ++++ b/lldb/tools/lldb-server/CMakeLists.txt +@@ -43,7 +43,9 @@ else() + target_link_libraries(lldb-server ${LLDB_USED_LIBS}) + target_link_libraries(lldb-server ${CLANG_USED_LIBS}) + endif() +-llvm_config(lldb-server ${LLVM_LINK_COMPONENTS}) ++if (NOT LLVM_LINK_LLVM_DYLIB) ++ llvm_config(lldb-server ${LLVM_LINK_COMPONENTS}) ++endif() + + target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS}) + diff --git a/debian/patches/series b/debian/patches/series index 85c9ee10..0c698349 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -55,3 +55,4 @@ upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch lldb-server-path.diff +lldb-server-link.diff From d4ccf80cc8f68f36db5223ca1d941d440f3c09eb Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Jan 2017 20:25:10 +0000 Subject: [PATCH 33/89] d/p/lldb-server-link.diff Fix the lldb hang. It was due to a linking issue. Thanks to Pavel Labath (Closes: #846640) --- debian/changelog | 2 ++ debian/patches/lldb-server-link.diff | 28 ++++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 31 insertions(+) create mode 100644 debian/patches/lldb-server-link.diff diff --git a/debian/changelog b/debian/changelog index cd1ab17a..096d00a8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ llvm-toolchain-3.9 (1:3.9.1-2) unstable; urgency=medium * Remove the info section from the generated manpages (Closes: #846269) * Disable libedit usage in lldb because of garbage (Closes: #846616) * Fix the path to lldb-server (to lldb-server-3.9) (Closes: #846638) + * d/p/lldb-server-link.diff Fix the lldb hang. It was due to a linking issue. + Thanks to Pavel Labath (Closes: #846640) -- Sylvestre Ledru Sat, 17 Dec 2016 17:55:44 +0100 diff --git a/debian/patches/lldb-server-link.diff b/debian/patches/lldb-server-link.diff new file mode 100644 index 00000000..8152645d --- /dev/null +++ b/debian/patches/lldb-server-link.diff @@ -0,0 +1,28 @@ +diff --git a/lldb/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake +index 75c522f65..3d868068c 100644 +--- a/lldb.orig/cmake/modules/AddLLDB.cmake ++++ b/lldb/cmake/modules/AddLLDB.cmake +@@ -93,7 +93,7 @@ macro(add_lldb_library name) + endmacro(add_lldb_library) + + macro(add_lldb_executable name) +- add_llvm_executable(${name} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN}) ++ add_llvm_executable(${name} ${ARGN}) + set_target_properties(${name} PROPERTIES FOLDER "lldb executables") + endmacro(add_lldb_executable) + +diff --git a/lldb/tools/lldb-server/CMakeLists.txt b/tools/lldb-server/CMakeLists.txt +index 28360914a..9d8a09b69 100644 +--- a/lldb.orig/tools/lldb-server/CMakeLists.txt ++++ b/lldb/tools/lldb-server/CMakeLists.txt +@@ -43,7 +43,9 @@ else() + target_link_libraries(lldb-server ${LLDB_USED_LIBS}) + target_link_libraries(lldb-server ${CLANG_USED_LIBS}) + endif() +-llvm_config(lldb-server ${LLVM_LINK_COMPONENTS}) ++if (NOT LLVM_LINK_LLVM_DYLIB) ++ llvm_config(lldb-server ${LLVM_LINK_COMPONENTS}) ++endif() + + target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS}) + diff --git a/debian/patches/series b/debian/patches/series index 2921eae7..9b687665 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -43,3 +43,4 @@ upstream-asan-msan-fix-reallocation-logic.diff lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch lldb-addversion-suffix-to-llvm-server-exec.patch +lldb-server-link.diff From b2b7c66f95b670be6eab11a9ecb2ec3af62b6a2e Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 10 Jan 2017 11:14:06 +0000 Subject: [PATCH 34/89] fix the lldb patches --- ...ddversion-suffix-to-llvm-server-exec.patch | 9 ----- debian/patches/lldb-server-link.diff | 40 +++++++++++-------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch b/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch index 4b96a0a7..83852b0b 100644 --- a/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch +++ b/debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch @@ -11,12 +11,3 @@ Index: llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/Process/gdb-remote/GDBRemote #endif #if defined (HAVE_LIBCOMPRESSION) -@@ -1175,7 +1175,7 @@ GDBRemoteCommunication::StartDebugserver - } - } - } -- -+ log->Printf("foo %s, debugserver_file_spec.GetPath ().c_str ()); - if (debugserver_exists) - { - debugserver_file_spec.GetPath (debugserver_path, sizeof(debugserver_path)); diff --git a/debian/patches/lldb-server-link.diff b/debian/patches/lldb-server-link.diff index 8152645d..37f3df33 100644 --- a/debian/patches/lldb-server-link.diff +++ b/debian/patches/lldb-server-link.diff @@ -1,5 +1,17 @@ +diff --git a/lldb/cmake/LLDBDependencies.cmake b/cmake/LLDBDependencies.cmake +index 67d110e0a..ee4f7a6e3 100644 +--- a/lldb.orig/cmake/LLDBDependencies.cmake ++++ b/lldb/cmake/LLDBDependencies.cmake +@@ -201,6 +201,7 @@ set(LLVM_LINK_COMPONENTS + option + support + coverage ++ DebugInfoPDB + ) + + if ( NOT LLDB_DISABLE_PYTHON ) diff --git a/lldb/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake -index 75c522f65..3d868068c 100644 +index af1605076..aa11a90d0 100644 --- a/lldb.orig/cmake/modules/AddLLDB.cmake +++ b/lldb/cmake/modules/AddLLDB.cmake @@ -93,7 +93,7 @@ macro(add_lldb_library name) @@ -11,18 +23,14 @@ index 75c522f65..3d868068c 100644 set_target_properties(${name} PROPERTIES FOLDER "lldb executables") endmacro(add_lldb_executable) -diff --git a/lldb/tools/lldb-server/CMakeLists.txt b/tools/lldb-server/CMakeLists.txt -index 28360914a..9d8a09b69 100644 ---- a/lldb.orig/tools/lldb-server/CMakeLists.txt -+++ b/lldb/tools/lldb-server/CMakeLists.txt -@@ -43,7 +43,9 @@ else() - target_link_libraries(lldb-server ${LLDB_USED_LIBS}) - target_link_libraries(lldb-server ${CLANG_USED_LIBS}) - endif() --llvm_config(lldb-server ${LLVM_LINK_COMPONENTS}) -+if (NOT LLVM_LINK_LLVM_DYLIB) -+ llvm_config(lldb-server ${LLVM_LINK_COMPONENTS}) -+endif() - - target_link_libraries(lldb-server ${LLDB_SYSTEM_LIBS}) - +diff --git a/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt b/source/Plugins/SymbolFile/PDB/CMakeLists.txt +index 79d8a25d6..b22c928c5 100644 +--- a/lldb.orig/source/Plugins/SymbolFile/PDB/CMakeLists.txt ++++ b/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt +@@ -1,6 +1,3 @@ +-set(LLVM_PRIVATE_LINK_COMPONENTS +- DebugInfoPDB) +- + add_lldb_library(lldbPluginSymbolFilePDB + PDBASTParser.cpp + SymbolFilePDB.cpp From 613ea2431a1864cd5ebb80b2fa65858d8ea75493 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jan 2017 10:47:28 +0000 Subject: [PATCH 35/89] Also install python-lldb-3.9 when installing lldb-3.9 (Closes: #851171) --- debian/changelog | 6 ++++++ debian/control | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 096d00a8..1f9d35ed 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.9 (1:3.9.1-3) unstable; urgency=medium + + * Also install python-lldb-3.9 when installing lldb-3.9 (Closes: #851171) + + -- Sylvestre Ledru Sat, 14 Jan 2017 11:46:16 +0100 + llvm-toolchain-3.9 (1:3.9.1-2) unstable; urgency=medium * debian/orig-tar.sh: less verbose diff --git a/debian/control b/debian/control index 60aa8aab..561bd3b8 100644 --- a/debian/control +++ b/debian/control @@ -451,8 +451,8 @@ Description: Modular compiler and toolchain technologies, examples Package: lldb-3.9 Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe sh4 x32 mips mipsel arm64 # ia64 mips mipsel hurd powerpc ppc64 ppc64el sparc64 s390x have been removed -Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.9 (= ${binary:Version}), llvm-3.9-dev -Suggests: python-lldb-3.9 +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.9 (= ${binary:Version}), llvm-3.9-dev, + python-lldb-3.9 Conflicts: lldb-3.4, lldb-3.5 Pre-Depends: ${misc:Pre-Depends} Description: Next generation, high-performance debugger From c89b994d143274d16a537856fc71398e6e594014 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jan 2017 10:52:54 +0000 Subject: [PATCH 36/89] Bring back the content of llvm-3.9-doc (Closes: #844616) --- debian/changelog | 1 + debian/llvm-X.Y-doc.install.in | 6 ++++++ 2 files changed, 7 insertions(+) create mode 100644 debian/llvm-X.Y-doc.install.in diff --git a/debian/changelog b/debian/changelog index 1f9d35ed..208c59c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ llvm-toolchain-3.9 (1:3.9.1-3) unstable; urgency=medium * Also install python-lldb-3.9 when installing lldb-3.9 (Closes: #851171) + * Bring back the content of llvm-3.9-doc (Closes: #844616) -- Sylvestre Ledru Sat, 14 Jan 2017 11:46:16 +0100 diff --git a/debian/llvm-X.Y-doc.install.in b/debian/llvm-X.Y-doc.install.in new file mode 100644 index 00000000..6ac115a5 --- /dev/null +++ b/debian/llvm-X.Y-doc.install.in @@ -0,0 +1,6 @@ +docs/_build/html usr/share/doc/llvm-@LLVM_VERSION@-doc/ +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html.tar.gz +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/ocamldoc.tar.gz +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/Dummy.html +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/doxygen.css +#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/html/LibASTMatchersReference.html From 929d6e212872f1d2ac178bea454e68bee219c5af Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jan 2017 11:03:38 +0000 Subject: [PATCH 37/89] snapshot => 4.0 --- debian/changelog | 2 +- debian/control | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 434d56d1..53123a88 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -llvm-toolchain-snapshot (1:4.0~svn291557-1~exp1) experimental; urgency=medium +llvm-toolchain-4.0 (1:4.0~svn291557-1~exp1) experimental; urgency=medium * New snapshot release * d/p/lldb-server-link-issue.patch removed, merged upstream diff --git a/debian/control b/debian/control index 19bfe15d..89ff73d9 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: llvm-toolchain-snapshot +Source: llvm-toolchain-4.0 Section: devel Priority: optional Maintainer: LLVM Packaging Team From a234b6ac60253060e083187a774a0a4180d61cda Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jan 2017 12:43:25 +0000 Subject: [PATCH 38/89] update of the changelog --- debian/changelog | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 53123a88..8ea92d1c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,11 +1,12 @@ -llvm-toolchain-4.0 (1:4.0~svn291557-1~exp1) experimental; urgency=medium +llvm-toolchain-4.0 (1:4.0~svn292009-1~exp1) experimental; urgency=medium - * New snapshot release + * Upsream branched. + Snapshot is now 5.0, 4.0 is ongoing * d/p/lldb-server-link-issue.patch removed, merged upstream * Also install python-lldb-4.0 when installing lldb-4.0 (Closes: #851171) * Bring back the content of llvm-4.0-doc (Closes: #844616) - -- Sylvestre Ledru Tue, 10 Jan 2017 12:01:20 +0100 + -- Sylvestre Ledru Sat, 14 Jan 2017 13:41:31 +0100 llvm-toolchain-snapshot (1:4.0~svn291344-1) unstable; urgency=medium From 07fa90d02be0a629e8abc9fcb7a0112d058f0954 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jan 2017 12:52:10 +0000 Subject: [PATCH 39/89] remove an old comment --- debian/rules | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/rules b/debian/rules index 6b2dc559..42c56577 100755 --- a/debian/rules +++ b/debian/rules @@ -2,7 +2,6 @@ TARGET_BUILD := build-llvm DEB_INST := $(CURDIR)/debian/tmp/ -#GCC_VERSION := 4.8 # The 5|6| in the regexp is a crappy workaround. g++ 5.2 in Debian is not providing a g++-5.2 binary (only g++-5) # accomodate that by hardcoding the 5 detection GCC_VERSION := $(shell dpkg-query -W -f '$${Version}' g++ | sed -rne 's,^([0-9]+:)?(5|6|[0-9]+\.[0-9]+|[0-9]+).*$$,\2,p') From bcf3fdffd62e24803b63e402ef86f55d6852e630 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jan 2017 12:53:49 +0000 Subject: [PATCH 40/89] d/p/silent-amdgpu-test-failing.diff silent amdgpu tests failing (see upstream bug 31610) --- debian/changelog | 2 + debian/patches/series | 1 + .../patches/silent-amdgpu-test-failing.diff | 46 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 debian/patches/silent-amdgpu-test-failing.diff diff --git a/debian/changelog b/debian/changelog index 8ea92d1c..a473f826 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,8 @@ llvm-toolchain-4.0 (1:4.0~svn292009-1~exp1) experimental; urgency=medium * Upsream branched. Snapshot is now 5.0, 4.0 is ongoing + * d/p/silent-amdgpu-test-failing.diff silent amdgpu tests failing + (see upstream bug 31610) * d/p/lldb-server-link-issue.patch removed, merged upstream * Also install python-lldb-4.0 when installing lldb-4.0 (Closes: #851171) * Bring back the content of llvm-4.0-doc (Closes: #844616) diff --git a/debian/patches/series b/debian/patches/series index a2a5d940..5ba467da 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -43,3 +43,4 @@ clang-fix-cmpxchg8-detection-on-i386.patch lldb-addversion-suffix-to-llvm-server-exec.patch lldb-missing-install.diff silent-test-failing-codeverage.diff +silent-amdgpu-test-failing.diff diff --git a/debian/patches/silent-amdgpu-test-failing.diff b/debian/patches/silent-amdgpu-test-failing.diff new file mode 100644 index 00000000..1e138cb0 --- /dev/null +++ b/debian/patches/silent-amdgpu-test-failing.diff @@ -0,0 +1,46 @@ +Index: llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/invalid-opencl-version-metadata1.ll +=================================================================== +--- llvm-toolchain-snapshot_5.0~svn292012.orig/test/CodeGen/AMDGPU/invalid-opencl-version-metadata1.ll ++++ llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/invalid-opencl-version-metadata1.ll +@@ -2,5 +2,6 @@ + ; check llc does not crash for invalid opencl version metadata + + ; CHECK: { amd.MDVersion: [ 2, 0 ] } ++; XFAIL: * + + !opencl.ocl.version = !{} +Index: llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/invalid-opencl-version-metadata2.ll +=================================================================== +--- llvm-toolchain-snapshot_5.0~svn292012.orig/test/CodeGen/AMDGPU/invalid-opencl-version-metadata2.ll ++++ llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/invalid-opencl-version-metadata2.ll +@@ -2,6 +2,7 @@ + ; check llc does not crash for invalid opencl version metadata + + ; CHECK: { amd.MDVersion: [ 2, 0 ] } ++; XFAIL: * + + !opencl.ocl.version = !{!0} + !0 = !{} +Index: llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/invalid-opencl-version-metadata3.ll +=================================================================== +--- llvm-toolchain-snapshot_5.0~svn292012.orig/test/CodeGen/AMDGPU/invalid-opencl-version-metadata3.ll ++++ llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/invalid-opencl-version-metadata3.ll +@@ -2,6 +2,7 @@ + ; check llc does not crash for invalid opencl version metadata + + ; CHECK: { amd.MDVersion: [ 2, 0 ] } ++; XFAIL: * + + !opencl.ocl.version = !{!0} + !0 = !{i32 1} +Index: llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/runtime-metadata.ll +=================================================================== +--- llvm-toolchain-snapshot_5.0~svn292012.orig/test/CodeGen/AMDGPU/runtime-metadata.ll ++++ llvm-toolchain-snapshot_5.0~svn292012/test/CodeGen/AMDGPU/runtime-metadata.ll +@@ -1,5 +1,6 @@ + ; RUN: llc -mtriple=amdgcn--amdhsa -filetype=obj -o - < %s | llvm-readobj -amdgpu-runtime-metadata | FileCheck %s + ; RUN: llc -mtriple=amdgcn--amdhsa -filetype=obj -amdgpu-dump-rtmd -amdgpu-check-rtmd-parser %s -o - 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=PARSER %s ++; XFAIL: * + + %struct.A = type { i8, float } + %opencl.image1d_t = type opaque From 1052cca49aaed351b667383a490202d36364e26a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jan 2017 15:27:20 +0000 Subject: [PATCH 41/89] d/p/pthread-link.diff Hardcode like to pthread which was missing for libclang --- debian/changelog | 4 +++- debian/patches/pthread-link.diff | 18 ++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 debian/patches/pthread-link.diff diff --git a/debian/changelog b/debian/changelog index a473f826..2247b576 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,11 +2,13 @@ llvm-toolchain-4.0 (1:4.0~svn292009-1~exp1) experimental; urgency=medium * Upsream branched. Snapshot is now 5.0, 4.0 is ongoing - * d/p/silent-amdgpu-test-failing.diff silent amdgpu tests failing + * d/p/silent-amdgpu-test-failing.diff silent amdgpu tests failing (see upstream bug 31610) * d/p/lldb-server-link-issue.patch removed, merged upstream * Also install python-lldb-4.0 when installing lldb-4.0 (Closes: #851171) * Bring back the content of llvm-4.0-doc (Closes: #844616) + * d/p/pthread-link.diff Hardcode like to pthread which was missing for + libclang -- Sylvestre Ledru Sat, 14 Jan 2017 13:41:31 +0100 diff --git a/debian/patches/pthread-link.diff b/debian/patches/pthread-link.diff new file mode 100644 index 00000000..144d07ec --- /dev/null +++ b/debian/patches/pthread-link.diff @@ -0,0 +1,18 @@ +Index: llvm-toolchain-4.0-4.0~svn292009/tools/clang/tools/libclang/CMakeLists.txt +=================================================================== +--- llvm-toolchain-4.0-4.0~svn292009.orig/tools/clang/tools/libclang/CMakeLists.txt ++++ llvm-toolchain-4.0-4.0~svn292009/tools/clang/tools/libclang/CMakeLists.txt +@@ -56,6 +56,13 @@ endif () + find_library(DL_LIBRARY_PATH dl) + if (DL_LIBRARY_PATH) + list(APPEND LIBS dl) ++ ++endif() ++if (PTHREAD_LIB) ++ # libpthreads overrides some standard library symbols, so main ++ # executable must be linked with it in order to provide consistent ++ # API for all shared libaries loaded by this executable. ++ list(APPEND LIBS ${PTHREAD_LIB}) + endif() + + option(LIBCLANG_BUILD_STATIC diff --git a/debian/patches/series b/debian/patches/series index 5ba467da..b7baf634 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -44,3 +44,4 @@ lldb-addversion-suffix-to-llvm-server-exec.patch lldb-missing-install.diff silent-test-failing-codeverage.diff silent-amdgpu-test-failing.diff +pthread-link.diff From 9ff018a403b7c824c5857cb6502cf95bdac9c9af Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 15 Jan 2017 09:24:58 +0000 Subject: [PATCH 42/89] fix the patch --- debian/patches/pthread-link.diff | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/patches/pthread-link.diff b/debian/patches/pthread-link.diff index 144d07ec..d4d890b6 100644 --- a/debian/patches/pthread-link.diff +++ b/debian/patches/pthread-link.diff @@ -1,7 +1,7 @@ -Index: llvm-toolchain-4.0-4.0~svn292009/tools/clang/tools/libclang/CMakeLists.txt -=================================================================== ---- llvm-toolchain-4.0-4.0~svn292009.orig/tools/clang/tools/libclang/CMakeLists.txt -+++ llvm-toolchain-4.0-4.0~svn292009/tools/clang/tools/libclang/CMakeLists.txt +Index: llvm-toolchain-4.0-4.0~svn292009/clang/tools/libclang/CMakeLists.txt +1;4601;0c=================================================================== +--- llvm-toolchain-4.0-4.0~svn292009.orig/clang/tools/libclang/CMakeLists.txt ++++ llvm-toolchain-4.0-4.0~svn292009/clang/tools/libclang/CMakeLists.txt @@ -56,6 +56,13 @@ endif () find_library(DL_LIBRARY_PATH dl) if (DL_LIBRARY_PATH) From bf3c68b79d805bf61b62e15858c2d7e9fbe74ec0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 19 Jan 2017 17:09:57 +0000 Subject: [PATCH 43/89] New testing release --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 2247b576..0fcb6e08 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-4.0 (1:4.0~+rc1-1) unstable; urgency=medium + + * New testing release + + -- Sylvestre Ledru Wed, 18 Jan 2017 16:50:19 +0100 + llvm-toolchain-4.0 (1:4.0~svn292009-1~exp1) experimental; urgency=medium * Upsream branched. From 36865c6e065b53df5affcf2c1b80ac2bcbc24ac7 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 19 Jan 2017 17:10:18 +0000 Subject: [PATCH 44/89] Fix the VCS-* links --- debian/changelog | 6 ++++++ debian/control | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 0fcb6e08..5fa45661 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-4.0 (1:4.0~+rc1-2) UNRELEASED; urgency=medium + + * Fix the VCS-* links + + -- Sylvestre Ledru Thu, 19 Jan 2017 18:10:01 +0100 + llvm-toolchain-4.0 (1:4.0~+rc1-1) unstable; urgency=medium * New testing release diff --git a/debian/control b/debian/control index 89ff73d9..7dcef52c 100644 --- a/debian/control +++ b/debian/control @@ -14,8 +14,8 @@ Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev, libllvm-3.9-ocaml-dev Standards-Version: 3.9.8 Homepage: http://www.llvm.org/ -Vcs-Svn: svn://anonscm.debian.org/svn/pkg-llvm/llvm-toolchain/branches/snapshot/ -Vcs-Browser: https://svn.debian.org/viewsvn/pkg-llvm/llvm-toolchain/branches/snapshot/ +Vcs-Svn: svn://anonscm.debian.org/svn/pkg-llvm/llvm-toolchain/branches/4.0/ +Vcs-Browser: https://svn.debian.org/viewsvn/pkg-llvm/llvm-toolchain/branches/4.0/ # ------------- clang ------------- From d4501c76d3bb3bbfc76a5597167c9a70f86fea2f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 22 Jan 2017 20:55:37 +0000 Subject: [PATCH 45/89] add the workaround for precise with split-dwarf --- debian/rules | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/rules b/debian/rules index 17d7bf76..b7e0780a 100755 --- a/debian/rules +++ b/debian/rules @@ -33,6 +33,12 @@ ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe)) LDFLAGS_EXTRA += -latomic endif +ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) ge 2.22.52.0.4 ; echo $$?),0) +# when using -gsplit-dwarf, it will requires extract-dwo which doesn't exist on precise: +# More: https://llvm.org/bugs/show_bug.cgi?id=28841 +CXXFLAGS_EXTRA += -gsplit-dwarf +endif + ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) lt 4.7.2-10~ ; echo $$?),0) # Too old version of gcc. Force 4.9 GCC_VERSION := 4.9 From 155aada62fe0bad7c5058d65cf019d743b0ec5a2 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 23 Jan 2017 06:34:51 +0000 Subject: [PATCH 46/89] gsplit-dwarf: only when binutils supports it --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index b7e0780a..3d8215fb 100755 --- a/debian/rules +++ b/debian/rules @@ -25,7 +25,7 @@ DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) OCAML_STDLIB_DIR ?= $(shell ocamlc -where) LDFLAGS_EXTRA = -CXXFLAGS_EXTRA = -std=c++0x -gsplit-dwarf +CXXFLAGS_EXTRA = -std=c++0x CONFIGURE_EXTRA = CMAKE_EXTRA = From 8d06b6e6d9f398f426b85a8ec781e6be1dfc449b Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 27 Jan 2017 08:41:10 +0000 Subject: [PATCH 47/89] d/p/amdgpu-regression.diff Fix a regression impacting mesa (Closes: #852616) --- debian/changelog | 7 ++ debian/patches/amdgpu-regression.diff | 104 ++++++++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 112 insertions(+) create mode 100644 debian/patches/amdgpu-regression.diff diff --git a/debian/changelog b/debian/changelog index 208c59c8..d9ac3833 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.9 (1:3.9.1-4) unstable; urgency=medium + + * d/p/amdgpu-regression.diff Fix a regression impacting mesa + (Closes: #852616) + + -- + llvm-toolchain-3.9 (1:3.9.1-3) unstable; urgency=medium * Also install python-lldb-3.9 when installing lldb-3.9 (Closes: #851171) diff --git a/debian/patches/amdgpu-regression.diff b/debian/patches/amdgpu-regression.diff new file mode 100644 index 00000000..99d312ea --- /dev/null +++ b/debian/patches/amdgpu-regression.diff @@ -0,0 +1,104 @@ +diff --git a/lib/Target/AMDGPU/SIInstructions.td b/lib/Target/AMDGPU/SIInstructions.td +index 9eb7a50..60a571d 100644 +--- a/lib/Target/AMDGPU/SIInstructions.td ++++ b/lib/Target/AMDGPU/SIInstructions.td +@@ -1301,6 +1301,7 @@ def SI_RETURN : SPseudoInstSI < + let isReturn = 1; + let hasSideEffects = 1; + let hasNoSchedulingInfo = 1; ++ let DisableWQM = 1; + } + + let Defs = [M0, EXEC], +diff --git a/lib/Target/AMDGPU/SIWholeQuadMode.cpp b/lib/Target/AMDGPU/SIWholeQuadMode.cpp +index c8bfc5a..03efd1f 100644 +--- a/lib/Target/AMDGPU/SIWholeQuadMode.cpp ++++ b/lib/Target/AMDGPU/SIWholeQuadMode.cpp +@@ -219,13 +219,6 @@ char SIWholeQuadMode::scanInstructions(MachineFunction &MF, + markInstruction(MI, Flags, Worklist); + GlobalFlags |= Flags; + } +- +- if (WQMOutputs && MBB.succ_empty()) { +- // This is a prolog shader. Make sure we go back to exact mode at the end. +- Blocks[&MBB].OutNeeds = StateExact; +- Worklist.push_back(&MBB); +- GlobalFlags |= StateExact; +- } + } + + return GlobalFlags; +diff --git a/test/CodeGen/AMDGPU/wqm.ll b/test/CodeGen/AMDGPU/wqm.ll +index 7f06f06..aef3ed0 100644 +--- a/test/CodeGen/AMDGPU/wqm.ll ++++ b/test/CodeGen/AMDGPU/wqm.ll +@@ -17,17 +17,18 @@ main_body: + ;CHECK-LABEL: {{^}}test2: + ;CHECK-NEXT: ; %main_body + ;CHECK-NEXT: s_wqm_b64 exec, exec +-;CHECK: image_sample + ;CHECK-NOT: exec +-;CHECK: _load_dword v0, +-define amdgpu_ps float @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { ++define amdgpu_ps void @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { + main_body: + %c.1 = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %c, <8 x i32> %rsrc, <4 x i32> %sampler, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) + %c.2 = bitcast <4 x float> %c.1 to <4 x i32> + %c.3 = extractelement <4 x i32> %c.2, i32 0 + %gep = getelementptr float, float addrspace(1)* %ptr, i32 %c.3 + %data = load float, float addrspace(1)* %gep +- ret float %data ++ ++ call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %data, float undef, float undef, float undef) ++ ++ ret void + } + + ; ... but disabled for stores (and, in this simple case, not re-enabled). +@@ -415,6 +416,46 @@ entry: + ret void + } + ++; Must return to exact at the end of a non-void returning shader, ++; otherwise the EXEC mask exported by the epilog will be wrong. This is true ++; even if the shader has no kills, because a kill could have happened in a ++; previous shader fragment. ++; ++; CHECK-LABEL: {{^}}test_nonvoid_return: ++; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec ++; CHECK: s_wqm_b64 exec, exec ++; ++; CHECK: s_and_b64 exec, exec, [[LIVE]] ++; CHECK-NOT: exec ++define amdgpu_ps <4 x float> @test_nonvoid_return() nounwind { ++ %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) ++ %tex.i = bitcast <4 x float> %tex to <4 x i32> ++ %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) ++ ret <4 x float> %dtex ++} ++ ++; CHECK-LABEL: {{^}}test_nonvoid_return_unreachable: ++; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec ++; CHECK: s_wqm_b64 exec, exec ++; ++; CHECK: s_and_b64 exec, exec, [[LIVE]] ++; CHECK-NOT: exec ++define amdgpu_ps <4 x float> @test_nonvoid_return_unreachable(i32 inreg %c) nounwind { ++entry: ++ %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) ++ %tex.i = bitcast <4 x float> %tex to <4 x i32> ++ %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) ++ ++ %cc = icmp sgt i32 %c, 0 ++ br i1 %cc, label %if, label %else ++ ++if: ++ store volatile <4 x float> %dtex, <4 x float>* undef ++ unreachable ++ ++else: ++ ret <4 x float> %dtex ++} + + declare void @llvm.amdgcn.image.store.v4i32(<4 x float>, <4 x i32>, <8 x i32>, i32, i1, i1, i1, i1) #1 + declare void @llvm.amdgcn.buffer.store.f32(float, <4 x i32>, i32, i32, i1, i1) #1 diff --git a/debian/patches/series b/debian/patches/series index 9b687665..3845eea4 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -44,3 +44,4 @@ lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch lldb-addversion-suffix-to-llvm-server-exec.patch lldb-server-link.diff +amdgpu-regression.diff From b07636d37bc8e101e8cd4ca21cc781cce7f79928 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 27 Jan 2017 08:48:06 +0000 Subject: [PATCH 48/89] rebase of the patch --- debian/patches/amdgpu-regression.diff | 34 +++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/debian/patches/amdgpu-regression.diff b/debian/patches/amdgpu-regression.diff index 99d312ea..4061fa68 100644 --- a/debian/patches/amdgpu-regression.diff +++ b/debian/patches/amdgpu-regression.diff @@ -1,20 +1,20 @@ -diff --git a/lib/Target/AMDGPU/SIInstructions.td b/lib/Target/AMDGPU/SIInstructions.td -index 9eb7a50..60a571d 100644 ---- a/lib/Target/AMDGPU/SIInstructions.td -+++ b/lib/Target/AMDGPU/SIInstructions.td -@@ -1301,6 +1301,7 @@ def SI_RETURN : SPseudoInstSI < - let isReturn = 1; +Index: llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIInstructions.td +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lib/Target/AMDGPU/SIInstructions.td ++++ llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIInstructions.td +@@ -2029,6 +2029,7 @@ def SI_RETURN : PseudoInstSI < let hasSideEffects = 1; + let SALU = 1; let hasNoSchedulingInfo = 1; + let DisableWQM = 1; } - let Defs = [M0, EXEC], -diff --git a/lib/Target/AMDGPU/SIWholeQuadMode.cpp b/lib/Target/AMDGPU/SIWholeQuadMode.cpp -index c8bfc5a..03efd1f 100644 ---- a/lib/Target/AMDGPU/SIWholeQuadMode.cpp -+++ b/lib/Target/AMDGPU/SIWholeQuadMode.cpp -@@ -219,13 +219,6 @@ char SIWholeQuadMode::scanInstructions(MachineFunction &MF, + let Uses = [EXEC], Defs = [EXEC, VCC, M0], +Index: llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIWholeQuadMode.cpp +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lib/Target/AMDGPU/SIWholeQuadMode.cpp ++++ llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIWholeQuadMode.cpp +@@ -219,13 +219,6 @@ char SIWholeQuadMode::scanInstructions(M markInstruction(MI, Flags, Worklist); GlobalFlags |= Flags; } @@ -28,10 +28,10 @@ index c8bfc5a..03efd1f 100644 } return GlobalFlags; -diff --git a/test/CodeGen/AMDGPU/wqm.ll b/test/CodeGen/AMDGPU/wqm.ll -index 7f06f06..aef3ed0 100644 ---- a/test/CodeGen/AMDGPU/wqm.ll -+++ b/test/CodeGen/AMDGPU/wqm.ll +Index: llvm-toolchain-3.9-3.9.1/test/CodeGen/AMDGPU/wqm.ll +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/test/CodeGen/AMDGPU/wqm.ll ++++ llvm-toolchain-3.9-3.9.1/test/CodeGen/AMDGPU/wqm.ll @@ -17,17 +17,18 @@ main_body: ;CHECK-LABEL: {{^}}test2: ;CHECK-NEXT: ; %main_body @@ -55,7 +55,7 @@ index 7f06f06..aef3ed0 100644 } ; ... but disabled for stores (and, in this simple case, not re-enabled). -@@ -415,6 +416,46 @@ entry: +@@ -414,6 +415,46 @@ entry: ret void } From 515e8931a5bddebf22949d43d6e830e612e653fe Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 27 Jan 2017 09:12:23 +0000 Subject: [PATCH 49/89] fix the patch --- debian/patches/amdgpu-regression.diff | 142 +++++++++++++------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/debian/patches/amdgpu-regression.diff b/debian/patches/amdgpu-regression.diff index 4061fa68..fd8081c8 100644 --- a/debian/patches/amdgpu-regression.diff +++ b/debian/patches/amdgpu-regression.diff @@ -1,104 +1,104 @@ -Index: llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIInstructions.td -=================================================================== ---- llvm-toolchain-3.9-3.9.1.orig/lib/Target/AMDGPU/SIInstructions.td -+++ llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIInstructions.td -@@ -2029,6 +2029,7 @@ def SI_RETURN : PseudoInstSI < - let hasSideEffects = 1; - let SALU = 1; - let hasNoSchedulingInfo = 1; -+ let DisableWQM = 1; - } - - let Uses = [EXEC], Defs = [EXEC, VCC, M0], Index: llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIWholeQuadMode.cpp =================================================================== --- llvm-toolchain-3.9-3.9.1.orig/lib/Target/AMDGPU/SIWholeQuadMode.cpp +++ llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIWholeQuadMode.cpp -@@ -219,13 +219,6 @@ char SIWholeQuadMode::scanInstructions(M +@@ -219,6 +219,13 @@ char SIWholeQuadMode::scanInstructions(M markInstruction(MI, Flags, Worklist); GlobalFlags |= Flags; } -- -- if (WQMOutputs && MBB.succ_empty()) { -- // This is a prolog shader. Make sure we go back to exact mode at the end. -- Blocks[&MBB].OutNeeds = StateExact; -- Worklist.push_back(&MBB); -- GlobalFlags |= StateExact; -- } ++ ++ if (WQMOutputs && MBB.succ_empty()) { ++ // This is a prolog shader. Make sure we go back to exact mode at the end. ++ Blocks[&MBB].OutNeeds = StateExact; ++ Worklist.push_back(&MBB); ++ GlobalFlags |= StateExact; ++ } } return GlobalFlags; +Index: llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIInstructions.td +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lib/Target/AMDGPU/SIInstructions.td ++++ llvm-toolchain-3.9-3.9.1/lib/Target/AMDGPU/SIInstructions.td +@@ -2029,7 +2029,6 @@ def SI_RETURN : PseudoInstSI < + let hasSideEffects = 1; + let SALU = 1; + let hasNoSchedulingInfo = 1; +- let DisableWQM = 1; + } + + let Uses = [EXEC], Defs = [EXEC, VCC, M0], Index: llvm-toolchain-3.9-3.9.1/test/CodeGen/AMDGPU/wqm.ll =================================================================== --- llvm-toolchain-3.9-3.9.1.orig/test/CodeGen/AMDGPU/wqm.ll +++ llvm-toolchain-3.9-3.9.1/test/CodeGen/AMDGPU/wqm.ll -@@ -17,17 +17,18 @@ main_body: +@@ -17,18 +17,17 @@ main_body: ;CHECK-LABEL: {{^}}test2: ;CHECK-NEXT: ; %main_body ;CHECK-NEXT: s_wqm_b64 exec, exec --;CHECK: image_sample ++;CHECK: image_sample ;CHECK-NOT: exec --;CHECK: _load_dword v0, --define amdgpu_ps float @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { -+define amdgpu_ps void @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { +-define amdgpu_ps void @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { ++;CHECK: _load_dword v0, ++define amdgpu_ps float @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { main_body: %c.1 = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %c, <8 x i32> %rsrc, <4 x i32> %sampler, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) %c.2 = bitcast <4 x float> %c.1 to <4 x i32> %c.3 = extractelement <4 x i32> %c.2, i32 0 %gep = getelementptr float, float addrspace(1)* %ptr, i32 %c.3 %data = load float, float addrspace(1)* %gep -- ret float %data -+ -+ call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %data, float undef, float undef, float undef) -+ -+ ret void +- +- call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %data, float undef, float undef, float undef) +- +- ret void ++ ret float %data } ; ... but disabled for stores (and, in this simple case, not re-enabled). -@@ -414,6 +415,46 @@ entry: +@@ -415,46 +414,6 @@ entry: ret void } -+; Must return to exact at the end of a non-void returning shader, -+; otherwise the EXEC mask exported by the epilog will be wrong. This is true -+; even if the shader has no kills, because a kill could have happened in a -+; previous shader fragment. -+; -+; CHECK-LABEL: {{^}}test_nonvoid_return: -+; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec -+; CHECK: s_wqm_b64 exec, exec -+; -+; CHECK: s_and_b64 exec, exec, [[LIVE]] -+; CHECK-NOT: exec -+define amdgpu_ps <4 x float> @test_nonvoid_return() nounwind { -+ %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) -+ %tex.i = bitcast <4 x float> %tex to <4 x i32> -+ %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) -+ ret <4 x float> %dtex -+} -+ -+; CHECK-LABEL: {{^}}test_nonvoid_return_unreachable: -+; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec -+; CHECK: s_wqm_b64 exec, exec -+; -+; CHECK: s_and_b64 exec, exec, [[LIVE]] -+; CHECK-NOT: exec -+define amdgpu_ps <4 x float> @test_nonvoid_return_unreachable(i32 inreg %c) nounwind { -+entry: -+ %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) -+ %tex.i = bitcast <4 x float> %tex to <4 x i32> -+ %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) -+ -+ %cc = icmp sgt i32 %c, 0 -+ br i1 %cc, label %if, label %else -+ -+if: -+ store volatile <4 x float> %dtex, <4 x float>* undef -+ unreachable -+ -+else: -+ ret <4 x float> %dtex -+} +-; Must return to exact at the end of a non-void returning shader, +-; otherwise the EXEC mask exported by the epilog will be wrong. This is true +-; even if the shader has no kills, because a kill could have happened in a +-; previous shader fragment. +-; +-; CHECK-LABEL: {{^}}test_nonvoid_return: +-; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec +-; CHECK: s_wqm_b64 exec, exec +-; +-; CHECK: s_and_b64 exec, exec, [[LIVE]] +-; CHECK-NOT: exec +-define amdgpu_ps <4 x float> @test_nonvoid_return() nounwind { +- %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) +- %tex.i = bitcast <4 x float> %tex to <4 x i32> +- %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) +- ret <4 x float> %dtex +-} +- +-; CHECK-LABEL: {{^}}test_nonvoid_return_unreachable: +-; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec +-; CHECK: s_wqm_b64 exec, exec +-; +-; CHECK: s_and_b64 exec, exec, [[LIVE]] +-; CHECK-NOT: exec +-define amdgpu_ps <4 x float> @test_nonvoid_return_unreachable(i32 inreg %c) nounwind { +-entry: +- %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) +- %tex.i = bitcast <4 x float> %tex to <4 x i32> +- %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) +- +- %cc = icmp sgt i32 %c, 0 +- br i1 %cc, label %if, label %else +- +-if: +- store volatile <4 x float> %dtex, <4 x float>* undef +- unreachable +- +-else: +- ret <4 x float> %dtex +-} declare void @llvm.amdgcn.image.store.v4i32(<4 x float>, <4 x i32>, <8 x i32>, i32, i1, i1, i1, i1) #1 declare void @llvm.amdgcn.buffer.store.f32(float, <4 x i32>, i32, i32, i1, i1) #1 From a556c232495f0190b09139bb48ff70a97317d188 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 27 Jan 2017 09:18:28 +0000 Subject: [PATCH 50/89] rebase of the patch --- debian/patches/lldb-server-link.diff | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/debian/patches/lldb-server-link.diff b/debian/patches/lldb-server-link.diff index 37f3df33..dbf2164d 100644 --- a/debian/patches/lldb-server-link.diff +++ b/debian/patches/lldb-server-link.diff @@ -1,8 +1,8 @@ -diff --git a/lldb/cmake/LLDBDependencies.cmake b/cmake/LLDBDependencies.cmake -index 67d110e0a..ee4f7a6e3 100644 ---- a/lldb.orig/cmake/LLDBDependencies.cmake -+++ b/lldb/cmake/LLDBDependencies.cmake -@@ -201,6 +201,7 @@ set(LLVM_LINK_COMPONENTS +Index: llvm-toolchain-3.9-3.9.1/lldb/cmake/LLDBDependencies.cmake +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lldb/cmake/LLDBDependencies.cmake ++++ llvm-toolchain-3.9-3.9.1/lldb/cmake/LLDBDependencies.cmake +@@ -207,6 +207,7 @@ set(LLVM_LINK_COMPONENTS option support coverage @@ -10,10 +10,10 @@ index 67d110e0a..ee4f7a6e3 100644 ) if ( NOT LLDB_DISABLE_PYTHON ) -diff --git a/lldb/cmake/modules/AddLLDB.cmake b/cmake/modules/AddLLDB.cmake -index af1605076..aa11a90d0 100644 ---- a/lldb.orig/cmake/modules/AddLLDB.cmake -+++ b/lldb/cmake/modules/AddLLDB.cmake +Index: llvm-toolchain-3.9-3.9.1/lldb/cmake/modules/AddLLDB.cmake +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lldb/cmake/modules/AddLLDB.cmake ++++ llvm-toolchain-3.9-3.9.1/lldb/cmake/modules/AddLLDB.cmake @@ -93,7 +93,7 @@ macro(add_lldb_library name) endmacro(add_lldb_library) @@ -23,10 +23,10 @@ index af1605076..aa11a90d0 100644 set_target_properties(${name} PROPERTIES FOLDER "lldb executables") endmacro(add_lldb_executable) -diff --git a/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt b/source/Plugins/SymbolFile/PDB/CMakeLists.txt -index 79d8a25d6..b22c928c5 100644 ---- a/lldb.orig/source/Plugins/SymbolFile/PDB/CMakeLists.txt -+++ b/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt +Index: llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt ++++ llvm-toolchain-3.9-3.9.1/lldb/source/Plugins/SymbolFile/PDB/CMakeLists.txt @@ -1,6 +1,3 @@ -set(LLVM_PRIVATE_LINK_COMPONENTS - DebugInfoPDB) From 7b1c1944c4c2e67c9771b8598bf85c8514064dfb Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 27 Jan 2017 10:02:53 +0000 Subject: [PATCH 51/89] d/p/esan-Fix-ESan-test-failure-on-Debian-Sid-bot*.diff: cherry-pick upsream patch to make esan work with the new glibc Thanks to Nobert Lange for investigating (Closes: #844092) --- debian/changelog | 5 +- ...x-ESan-test-failure-on-Debian-Sid-bot.diff | 103 ++++++++++++++++++ ...-ESan-test-failure-on-Debian-Sid-bot2.diff | 31 ++++++ debian/patches/series | 2 + 4 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff create mode 100644 debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff diff --git a/debian/changelog b/debian/changelog index d9ac3833..ebc7281e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,8 +2,11 @@ llvm-toolchain-3.9 (1:3.9.1-4) unstable; urgency=medium * d/p/amdgpu-regression.diff Fix a regression impacting mesa (Closes: #852616) + * d/p/esan-Fix-ESan-test-failure-on-Debian-Sid-bot*.diff: + cherry-pick upsream patch to make esan work with the new glibc + Thanks to Nobert Lange for investigating (Closes: #844092) - -- + -- Sylvestre Ledru Fri, 27 Jan 2017 11:02:15 +0100 llvm-toolchain-3.9 (1:3.9.1-3) unstable; urgency=medium diff --git a/debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff b/debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff new file mode 100644 index 00000000..9e00be40 --- /dev/null +++ b/debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff @@ -0,0 +1,103 @@ +From 2dca6dc37a0c7a7f2232677f0d8bc175f7e0aa1d Mon Sep 17 00:00:00 2001 +From: Qin Zhao +Date: Mon, 3 Oct 2016 20:03:10 +0000 +Subject: [PATCH] [esan] Fix ESan test failure on Debian Sid bot + +Summary: +Handles early allocation from dlsym by allocating memory from a local +static buffer. + +Reviewers: bruening + +Subscribers: kubabrecka + +Differential Revision: https://reviews.llvm.org/D25193 + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@283139 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/esan/esan_interceptors.cpp | 42 ++++++++++++++++++++++++++++-------------- + 1 file changed, 28 insertions(+), 14 deletions(-) + +Index: llvm-toolchain-3.9-3.9.1/compiler-rt/lib/esan/esan_interceptors.cpp +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/compiler-rt/lib/esan/esan_interceptors.cpp ++++ llvm-toolchain-3.9-3.9.1/compiler-rt/lib/esan/esan_interceptors.cpp +@@ -461,28 +461,35 @@ INTERCEPTOR(int, pthread_sigmask, int ho + // Malloc interceptors + //===----------------------------------------------------------------------===// + +-static char early_alloc_buf[128]; +-static bool used_early_alloc_buf; ++static const uptr early_alloc_buf_size = 1024; ++static uptr allocated_bytes; ++static char early_alloc_buf[early_alloc_buf_size]; ++ ++static bool isInEarlyAllocBuf(const void *ptr) { ++ return ((uptr)ptr >= (uptr)early_alloc_buf && ++ ((uptr)ptr - (uptr)early_alloc_buf) < sizeof(early_alloc_buf)); ++} + + static void *handleEarlyAlloc(uptr size) { + // If esan is initialized during an interceptor (which happens with some + // tcmalloc implementations that call pthread_mutex_lock), the call from +- // dlsym to calloc will deadlock. There is only one such calloc (dlsym +- // allocates a single pthread key), so we work around it by using a +- // static buffer for the calloc request. The loader currently needs +- // 32 bytes but we size at 128 to allow for future changes. ++ // dlsym to calloc will deadlock. ++ // dlsym may also call malloc before REAL(malloc) is retrieved from dlsym. ++ // We work around it by using a static buffer for the early malloc/calloc ++ // requests. + // This solution will also allow us to deliberately intercept malloc & family + // in the future (to perform tool actions on each allocation, without + // replacing the allocator), as it also solves the problem of intercepting + // calloc when it will itself be called before its REAL pointer is + // initialized. +- CHECK(!used_early_alloc_buf && size < sizeof(early_alloc_buf)); + // We do not handle multiple threads here. This only happens at process init + // time, and while it's possible for a shared library to create early threads + // that race here, we consider that to be a corner case extreme enough that + // it's not worth the effort to handle. +- used_early_alloc_buf = true; +- return (void *)early_alloc_buf; ++ void *mem = (void *)&early_alloc_buf[allocated_bytes]; ++ allocated_bytes += size; ++ CHECK_LT(allocated_bytes, early_alloc_buf_size); ++ return mem; + } + + INTERCEPTOR(void*, calloc, uptr size, uptr n) { +@@ -496,14 +503,20 @@ INTERCEPTOR(void*, calloc, uptr size, up + return res; + } + ++INTERCEPTOR(void*, malloc, uptr size) { ++ if (EsanDuringInit && REAL(malloc) == nullptr) ++ return handleEarlyAlloc(size); ++ void *ctx; ++ COMMON_INTERCEPTOR_ENTER(ctx, malloc, size); ++ return REAL(malloc)(size); ++} ++ + INTERCEPTOR(void, free, void *p) { + void *ctx; +- COMMON_INTERCEPTOR_ENTER(ctx, free, p); +- if (p == (void *)early_alloc_buf) { +- // We expect just a singleton use but we clear this for cleanliness. +- used_early_alloc_buf = false; ++ // There are only a few early allocation requests, so we simply skip the free. ++ if (isInEarlyAllocBuf(p)) + return; +- } ++ COMMON_INTERCEPTOR_ENTER(ctx, free, p); + REAL(free)(p); + } + +@@ -534,6 +547,7 @@ void initializeInterceptors() { + ESAN_MAYBE_INTERCEPT_PTHREAD_SIGMASK; + + INTERCEPT_FUNCTION(calloc); ++ INTERCEPT_FUNCTION(malloc); + INTERCEPT_FUNCTION(free); + + // TODO(bruening): intercept routines that other sanitizers intercept that diff --git a/debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff b/debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff new file mode 100644 index 00000000..79b9d56d --- /dev/null +++ b/debian/patches/esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff @@ -0,0 +1,31 @@ +From 9b149609c0dc08dc75537c44d43038c0e34b1321 Mon Sep 17 00:00:00 2001 +From: Qin Zhao +Date: Fri, 7 Oct 2016 20:53:35 +0000 +Subject: [PATCH] [esan] Fix ESan test failure on Debian Sid bot + +Summary: Increase early allocation buffer size. + +Reviewers: bruening + +Subscribers: kubabrecka + +Differential Revision: https://reviews.llvm.org/D25380 + +git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@283598 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/esan/esan_interceptors.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: llvm-toolchain-3.9-3.9.1/compiler-rt/lib/esan/esan_interceptors.cpp +=================================================================== +--- llvm-toolchain-3.9-3.9.1.orig/compiler-rt/lib/esan/esan_interceptors.cpp ++++ llvm-toolchain-3.9-3.9.1/compiler-rt/lib/esan/esan_interceptors.cpp +@@ -461,7 +461,7 @@ INTERCEPTOR(int, pthread_sigmask, int ho + // Malloc interceptors + //===----------------------------------------------------------------------===// + +-static const uptr early_alloc_buf_size = 1024; ++static const uptr early_alloc_buf_size = 4096; + static uptr allocated_bytes; + static char early_alloc_buf[early_alloc_buf_size]; + diff --git a/debian/patches/series b/debian/patches/series index 3845eea4..1e40a91d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -45,3 +45,5 @@ clang-arm-default-vfp3-on-armv7a.patch lldb-addversion-suffix-to-llvm-server-exec.patch lldb-server-link.diff amdgpu-regression.diff +esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff +esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff From 85b27b41f3a219b57a65729874659d624ac11571 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 28 Jan 2017 11:39:26 +0000 Subject: [PATCH 52/89] also ship lld static libraries --- debian/liblld-X.Y.install.in | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index aab1ecd5..9e815c20 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1 +1,9 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From 4232f3aa0e92ea1fa0d2c7be538001ea26c07860 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 9 Feb 2017 11:41:15 +0000 Subject: [PATCH 53/89] New testing release --- debian/changelog | 5 +++-- debian/liblld-X.Y.install.in | 8 -------- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5fa45661..7e8e22d2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,9 @@ -llvm-toolchain-4.0 (1:4.0~+rc1-2) UNRELEASED; urgency=medium +llvm-toolchain-4.0 (1:4.0~+rc2-1) unstable; urgency=medium + * New testing release * Fix the VCS-* links - -- Sylvestre Ledru Thu, 19 Jan 2017 18:10:01 +0100 + -- Sylvestre Ledru Thu, 09 Feb 2017 09:31:18 +0100 llvm-toolchain-4.0 (1:4.0~+rc1-1) unstable; urgency=medium diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index 9e815c20..aab1ecd5 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1,9 +1 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From b793707858ca130fe47fcdae56513318b507efff Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 10 Feb 2017 09:49:17 +0000 Subject: [PATCH 54/89] bring back the static libs --- debian/liblld-X.Y.install.in | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index aab1ecd5..475da624 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1 +1,10 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ +usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a + From c2e0bf0f41fa02c4f446c7aaf40b0006665fa1c0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 18 Feb 2017 16:56:49 +0000 Subject: [PATCH 55/89] Fix the C++ include path order (Closes: #855222) Many thanks to Jason Rhinelander for investigating --- debian/changelog | 7 +++++++ debian/patches/fix-clang-path-and-build.diff | 21 ++++++++++---------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7e8e22d2..82d580a0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-4.0 (1:4.0~+rc2-2) UNRELEASED; urgency=medium + + * Fix the C++ include path order (Closes: #855222) + Many thanks to Jason Rhinelander for investigating + + -- Sylvestre Ledru Sat, 18 Feb 2017 17:54:01 +0100 + llvm-toolchain-4.0 (1:4.0~+rc2-1) unstable; urgency=medium * New testing release diff --git a/debian/patches/fix-clang-path-and-build.diff b/debian/patches/fix-clang-path-and-build.diff index 64eb9977..c566bcc3 100644 --- a/debian/patches/fix-clang-path-and-build.diff +++ b/debian/patches/fix-clang-path-and-build.diff @@ -2,14 +2,15 @@ clang/lib/Driver/ToolChains.cpp | 2 ++ 1 file changed, 2 insertions(+) ---- a/clang/lib/Driver/ToolChains.cpp -+++ b/clang/lib/Driver/ToolChains.cpp -@@ -2842,6 +2842,8 @@ void Generic_GCC::AddClangCXXStdlibInclu - DriverArgs.hasArg(options::OPT_nostdincxx)) - return; - +Index: llvm-toolchain-4.0-4.0~+rc2/clang/lib/Driver/ToolChains.cpp +=================================================================== +--- llvm-toolchain-4.0-4.0~+rc2.orig/clang/lib/Driver/ToolChains.cpp ++++ llvm-toolchain-4.0-4.0~+rc2/clang/lib/Driver/ToolChains.cpp +@@ -2952,6 +2952,7 @@ void Generic_GCC::AddClangCXXStdlibInclu + addLibStdCxxIncludePaths(DriverArgs, CC1Args); + break; + } + addSystemInclude(DriverArgs, CC1Args, "/usr/include/clang/" + std::string(CLANG_VERSION_STRING) + "/include/"); -+ - switch (GetCXXStdlibType(DriverArgs)) { - case ToolChain::CST_Libcxx: { - std::string Path = findLibCxxIncludePath(); + } + + std::string Generic_GCC::findLibCxxIncludePath() const { From 90885a9de47f4fa692bb69824fe968bc68b88d00 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 3 Mar 2017 21:22:58 +0000 Subject: [PATCH 56/89] New testing release --- debian/changelog | 3 ++- debian/liblld-X.Y.install.in | 16 ++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index 82d580a0..d3a71b71 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ -llvm-toolchain-4.0 (1:4.0~+rc2-2) UNRELEASED; urgency=medium +llvm-toolchain-4.0 (1:4.0~+rc3-1) unstable; urgency=medium + * New testing release * Fix the C++ include path order (Closes: #855222) Many thanks to Jason Rhinelander for investigating diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index 475da624..0d0fa10a 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1,10 +1,10 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From 71bd064969bccc2390efa7a6b664f5e8cf27455b Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 7 Mar 2017 13:46:17 +0000 Subject: [PATCH 57/89] libs to be installed --- debian/liblld-X.Y.install.in | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index 0d0fa10a..475da624 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1,10 +1,10 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From 3b74b9ff291a15fb0ea9888f802d4db5bc11afbc Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 8 Mar 2017 16:23:20 +0000 Subject: [PATCH 58/89] New testing release --- debian/changelog | 6 ++++++ debian/liblld-X.Y.install.in | 16 ++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/debian/changelog b/debian/changelog index d3a71b71..5200b5e5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-4.0 (1:4.0~+rc4-1) unstable; urgency=medium + + * New testing release + + -- Sylvestre Ledru Wed, 08 Mar 2017 08:52:37 +0100 + llvm-toolchain-4.0 (1:4.0~+rc3-1) unstable; urgency=medium * New testing release diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index 475da624..0d0fa10a 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1,10 +1,10 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From 92088f250c06e2a0bc24d561e792a71d1b6a27a1 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 8 Mar 2017 16:23:31 +0000 Subject: [PATCH 59/89] revert change --- debian/liblld-X.Y.install.in | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index 0d0fa10a..475da624 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1,10 +1,10 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From 2c8ac1c14e88f5c44f8096b5b0d1b5e659b2193c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Mar 2017 08:49:28 +0000 Subject: [PATCH 60/89] Fix the broken liblldb-3.8-dev links (Closes: #856864) --- debian/changelog | 6 ++++++ debian/liblldb-X.Y.links.in | 3 ++- debian/rules | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 09b1cb41..c7bac9b5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.8 (1:3.8.1-18) unstable; urgency=medium + + * Fix the broken liblldb-3.8-dev links (Closes: #856864) + + -- Sylvestre Ledru Sun, 12 Mar 2017 09:49:18 +0100 + llvm-toolchain-3.8 (1:3.8.1-17) unstable; urgency=medium * Disable NEON generation on armhf (Closes: #841474, #842142) diff --git a/debian/liblldb-X.Y.links.in b/debian/liblldb-X.Y.links.in index a222fbc6..9ba83763 100644 --- a/debian/liblldb-X.Y.links.in +++ b/debian/liblldb-X.Y.links.in @@ -1,3 +1,4 @@ usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so.1 - +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb-@LLVM_VERSION@.so.1 diff --git a/debian/rules b/debian/rules index 1dd3be8a..82469f3c 100755 --- a/debian/rules +++ b/debian/rules @@ -553,6 +553,9 @@ ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) if test -d $(TARGET_BUILD)/tools/lldb/test/lldb-test-traces/; then \ cat $(TARGET_BUILD)/tools/lldb/test/lldb-test-traces/*; \ fi + + cd $(TARGET_BUILD)/$(BUILD_DIR)/lib && \ + rm -f liblldb-$(LLVM_VERSION).so endif # Managed by debian build system From e287480bca53d0a7c4c9975010ad59e4d05176d6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Mar 2017 09:02:23 +0000 Subject: [PATCH 61/89] Fix the incorrect symlink to scan-build-py (Closes: #856869) --- debian/changelog | 6 ++++++ debian/clang-X.Y.links.in | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 5200b5e5..a2f8082c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-4.0 (1:4.0~+rc4-2) unstable; urgency=medium + + * Fix the incorrect symlink to scan-build-py (Closes: #856869) + + -- Sylvestre Ledru Sun, 12 Mar 2017 10:01:46 +0100 + llvm-toolchain-4.0 (1:4.0~+rc4-1) unstable; urgency=medium * New testing release diff --git a/debian/clang-X.Y.links.in b/debian/clang-X.Y.links.in index 04ccd25c..d2d92626 100644 --- a/debian/clang-X.Y.links.in +++ b/debian/clang-X.Y.links.in @@ -1,4 +1,4 @@ -usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-@LLVM_VERSION@ -usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build-py usr/bin/scan-build-@LLVM_VERSION@-py +usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-@L1;4600;0cLVM_VERSION@ +usr/share/clang/scan-build-py-@LLVM_VERSION@/bin/scan-build-py usr/bin/scan-build-@LLVM_VERSION@-py usr/share/clang/scan-view-@LLVM_VERSION@/bin/scan-view usr/bin/scan-view-@LLVM_VERSION@ From 03fa05eea2c562d28a5da4a08a293f72b954b59d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Mar 2017 11:09:01 +0000 Subject: [PATCH 62/89] Fix links again --- debian/control | 3 ++- debian/liblldb-X.Y-dev.links.in | 2 ++ debian/liblldb-X.Y.links.in | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 debian/liblldb-X.Y-dev.links.in diff --git a/debian/control b/debian/control index 8e0120df..61e2cf7b 100644 --- a/debian/control +++ b/debian/control @@ -397,7 +397,8 @@ Description: Modular compiler and toolchain technologies, examples Package: lldb-3.8 Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe sh4 x32 mips mipsel arm64 # ia64 hurd powerpc ppc64el sparc64 ppc64 mips64el have been removed -Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), llvm-3.8-dev, +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), + llvm-3.8-dev, python-lldb-3.8 Conflicts: lldb-3.4, lldb-3.5 Pre-Depends: ${misc:Pre-Depends} diff --git a/debian/liblldb-X.Y-dev.links.in b/debian/liblldb-X.Y-dev.links.in new file mode 100644 index 00000000..18e13a51 --- /dev/null +++ b/debian/liblldb-X.Y-dev.links.in @@ -0,0 +1,2 @@ +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so + diff --git a/debian/liblldb-X.Y.links.in b/debian/liblldb-X.Y.links.in index 9ba83763..87056582 100644 --- a/debian/liblldb-X.Y.links.in +++ b/debian/liblldb-X.Y.links.in @@ -1,4 +1,4 @@ usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so.1 -usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb-@LLVM_VERSION@.so.1 + From bc8995510b0b801151c06396487431282b0af891 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Mar 2017 12:41:40 +0000 Subject: [PATCH 63/89] New upstream release --- debian/changelog | 6 +++--- debian/liblld-X.Y.install.in | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/debian/changelog b/debian/changelog index a2f8082c..e93b51c6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,8 @@ -llvm-toolchain-4.0 (1:4.0~+rc4-2) unstable; urgency=medium +llvm-toolchain-4.0 (1:4.0-1) unstable; urgency=medium - * Fix the incorrect symlink to scan-build-py (Closes: #856869) + * New upstream release - -- Sylvestre Ledru Sun, 12 Mar 2017 10:01:46 +0100 + -- Sylvestre Ledru Thu, 09 Mar 2017 07:51:53 +0100 llvm-toolchain-4.0 (1:4.0~+rc4-1) unstable; urgency=medium diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index 475da624..0d0fa10a 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1,10 +1,10 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a -usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From 424a2b927914f720a384ab00fd2b5e9d6cbf4a3c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Mar 2017 12:42:10 +0000 Subject: [PATCH 64/89] * Fix the incorrect symlink to scan-build-py (Closes: #856869) * Try to ignore also libclang_rt.asan-*.so for the dep generation (Closes: #854965) --- debian/changelog | 8 ++++++++ debian/rules | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index e93b51c6..85f7da29 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +llvm-toolchain-4.0 (1:4.0-2) unstable; urgency=medium + + * Fix the incorrect symlink to scan-build-py (Closes: #856869) + * Try to ignore also libclang_rt.asan-*.so for the dep generation + (Closes: #854965) + + -- Sylvestre Ledru Sun, 12 Mar 2017 10:01:46 +0100 + llvm-toolchain-4.0 (1:4.0-1) unstable; urgency=medium * New upstream release diff --git a/debian/rules b/debian/rules index 42c56577..45906496 100755 --- a/debian/rules +++ b/debian/rules @@ -427,7 +427,7 @@ override_dh_auto_install: override_dh_shlibdeps: # Ignore asan libraries. They would trigger dependencies to multiarch libraries - dh_shlibdeps -l$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ -Xlibclang_rt.asan -Xlibclang_rt.asan + dh_shlibdeps -l$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ -Xlibclang_rt.asan -Xlibclang_rt.asan -Xlibclang_rt.asan-*.so -Xlibclang_rt.asan-*.so override_dh_installman: dh_installman From 56b0b035409f91ed09233d640fc8d00e630977b5 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 12 Mar 2017 12:42:59 +0000 Subject: [PATCH 65/89] bring back lib for the ci --- debian/liblld-X.Y.install.in | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in index 0d0fa10a..475da624 100644 --- a/debian/liblld-X.Y.install.in +++ b/debian/liblld-X.Y.install.in @@ -1,10 +1,10 @@ #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a -#usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldConfig.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldReaderWriter.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldDriver.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldYAML.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCore.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldMachO.a +usr/lib/llvm-@LLVM_VERSION@/lib/liblldCOFF.a From f66539762c1ec2d66426589d24d5150386996d99 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 14 Mar 2017 09:48:55 +0000 Subject: [PATCH 66/89] Explicit the dep of clang-format on same version of llvm to avoid undefined symbols --- debian/changelog | 2 ++ debian/control | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 85f7da29..88e6a2b1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ llvm-toolchain-4.0 (1:4.0-2) unstable; urgency=medium * Fix the incorrect symlink to scan-build-py (Closes: #856869) + * Explicit the dep of clang-format on same version of llvm to avoid + undefined symbols * Try to ignore also libclang_rt.asan-*.so for the dep generation (Closes: #854965) diff --git a/debian/control b/debian/control index 7dcef52c..67d1ae12 100644 --- a/debian/control +++ b/debian/control @@ -44,7 +44,8 @@ Description: C, C++ and Objective-C compiler (LLVM based) Package: clang-format-4.0 Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, python +Depends: ${shlibs:Depends}, ${misc:Depends}, python, + libllvm4.0 (= ${binary:Version}) Replaces: clang-format-3.3 Breaks: clang-format-3.3 Description: Tool to format C/C++/Obj-C code From 6dc4e621d7eb83192a8aaf1028126d4541180d3e Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 09:11:27 +0000 Subject: [PATCH 67/89] Fix the incorrect symlink to scan-build-py (Closes: #856869) --- debian/changelog | 6 ++++++ debian/clang-X.Y.links.in | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index ebc7281e..1b594396 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium + + * Fix the incorrect symlink to scan-build-py (Closes: #856869) + + -- Sylvestre Ledru Sun, 12 Mar 2017 10:01:10 +0100 + llvm-toolchain-3.9 (1:3.9.1-4) unstable; urgency=medium * d/p/amdgpu-regression.diff Fix a regression impacting mesa diff --git a/debian/clang-X.Y.links.in b/debian/clang-X.Y.links.in index 04ccd25c..6a9b11f0 100644 --- a/debian/clang-X.Y.links.in +++ b/debian/clang-X.Y.links.in @@ -1,4 +1,4 @@ usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-@LLVM_VERSION@ -usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build-py usr/bin/scan-build-@LLVM_VERSION@-py +usr/share/clang/scan-build-py-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-@LLVM_VERSION@-py usr/share/clang/scan-view-@LLVM_VERSION@/bin/scan-view usr/bin/scan-view-@LLVM_VERSION@ From 664a3d543d9b84be9efe534c684db420b7a12891 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 09:12:26 +0000 Subject: [PATCH 68/89] * Allow '!pointer' in OpenCL (Closes: #857623) * Add missing liblldb symlink (Closes: #857683) * Use versioned symbols (Closes: #848368) --- debian/changelog | 7 ++++++- debian/liblldb-X.Y.links.in | 1 + .../857623-allow-opencl-pointer-to-bool.diff | 20 +++++++++++++++++++ debian/patches/series | 1 + debian/rules | 2 +- 5 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 debian/patches/857623-allow-opencl-pointer-to-bool.diff diff --git a/debian/changelog b/debian/changelog index 1b594396..44e69d2d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,7 +2,12 @@ llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium * Fix the incorrect symlink to scan-build-py (Closes: #856869) - -- Sylvestre Ledru Sun, 12 Mar 2017 10:01:10 +0100 + [ Rebecca N. Palmer ] + * Allow '!pointer' in OpenCL (Closes: #857623) + * Add missing liblldb symlink (Closes: #857683) + * Use versioned symbols (Closes: #848368) + + -- Sylvestre Ledru Sun, 19 Mar 2017 10:12:03 +0100 llvm-toolchain-3.9 (1:3.9.1-4) unstable; urgency=medium diff --git a/debian/liblldb-X.Y.links.in b/debian/liblldb-X.Y.links.in index a222fbc6..87056582 100644 --- a/debian/liblldb-X.Y.links.in +++ b/debian/liblldb-X.Y.links.in @@ -1,3 +1,4 @@ usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb.so.1 +usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb-@LLVM_VERSION@.so.1 diff --git a/debian/patches/857623-allow-opencl-pointer-to-bool.diff b/debian/patches/857623-allow-opencl-pointer-to-bool.diff new file mode 100644 index 00000000..d3c9371f --- /dev/null +++ b/debian/patches/857623-allow-opencl-pointer-to-bool.diff @@ -0,0 +1,20 @@ +Description: Allow "if (!pointer)" in OpenCL 1.1 + +Used by e.g. Blender on mesa-opencl-icd + +Author: Anastasia Stulova +Origin: upstream https://reviews.llvm.org/rL294313 +Bug: https://bugs.llvm.org/show_bug.cgi?id=30217 +Bug-Debian: https://bugs.debian.org/857623 + +--- llvm-toolchain-3.9-3.9.1.orig/clang/lib/Sema/SemaExpr.cpp ++++ llvm-toolchain-3.9-3.9.1/clang/lib/Sema/SemaExpr.cpp +@@ -11424,7 +11424,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(So + Context.getLangOpts().OpenCLVersion < 120) { + // OpenCL v1.1 6.3.h: The logical operator not (!) does not + // operate on scalar float types. +- if (!resultType->isIntegerType()) ++ if (!resultType->isIntegerType() && !resultType->isPointerType()) + return ExprError(Diag(OpLoc, diag::err_typecheck_unary_expr) + << resultType << Input.get()->getSourceRange()); + } diff --git a/debian/patches/series b/debian/patches/series index 1e40a91d..169084a7 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -47,3 +47,4 @@ lldb-server-link.diff amdgpu-regression.diff esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff +857623-allow-opencl-pointer-to-bool.diff diff --git a/debian/rules b/debian/rules index 3d8215fb..f001eb39 100755 --- a/debian/rules +++ b/debian/rules @@ -24,7 +24,7 @@ DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) OCAML_STDLIB_DIR ?= $(shell ocamlc -where) -LDFLAGS_EXTRA = +LDFLAGS_EXTRA = -Wl,--default-symver CXXFLAGS_EXTRA = -std=c++0x CONFIGURE_EXTRA = CMAKE_EXTRA = From 3ac2b41e2ce272ded1082230208bc382e53de8ea Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 15:58:09 +0000 Subject: [PATCH 69/89] update of rebecca work --- debian/patches/add_symbols_versioning.patch | 41 +++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 42 insertions(+) create mode 100644 debian/patches/add_symbols_versioning.patch diff --git a/debian/patches/add_symbols_versioning.patch b/debian/patches/add_symbols_versioning.patch new file mode 100644 index 00000000..29be9c7f --- /dev/null +++ b/debian/patches/add_symbols_versioning.patch @@ -0,0 +1,41 @@ +Description: add a simple linker script to version LLVM symbols + +This patch adds a very simple linker script to version the lib's symbols +and thus trying to avoid crashes if an application loads two different +LLVM versions (as long as they do not share data between them). + +Note that we deliberately *don't* make LLVM_3.9 depend on LLVM_3.8: +they're incompatible and the whole point of this patch is +to tell the linker that. + +Author: Rebecca N. Palmer +Author: Lisandro Damían Nicanor Pérez Meyer +Bug-Debian: https://bugs.debian.org/848368 + +--- llvm-toolchain-3.9-3.9.1.orig/tools/llvm-shlib/CMakeLists.txt ++++ llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/CMakeLists.txt +@@ -42,7 +42,7 @@ set_property(TARGET LLVM PROPERTY VERSIO + list(REMOVE_DUPLICATES LIB_NAMES) + if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "GNU" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "kFreeBSD") # FIXME: It should be "GNU ld for elf" + # GNU ld doesn't resolve symbols in the version script. +- set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) ++ set(LIB_NAMES -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") + set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) + endif() +--- /dev/null ++++ llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/simple_version_script.map +@@ -0,0 +1 @@ ++LLVM_3.9 { global: *; }; +--- llvm-toolchain-3.9-3.9.1.orig/cmake/modules/AddLLVM.cmake ++++ llvm-toolchain-3.9-3.9.1/cmake/modules/AddLLVM.cmake +@@ -74,7 +74,7 @@ function(add_llvm_symbol_exports target_ + set(native_export_file "${target_name}.exports") + # FIXME: Don't write the "local:" line on OpenBSD. + add_custom_command(OUTPUT ${native_export_file} +- COMMAND echo "{" > ${native_export_file} ++ COMMAND echo "LLVM_3.9 {" > ${native_export_file} + COMMAND grep -q "[[:alnum:]]" ${export_file} && echo " global:" >> ${native_export_file} || : + COMMAND sed -e "s/$/;/" -e "s/^/ /" < ${export_file} >> ${native_export_file} + COMMAND echo " local: *;" >> ${native_export_file} + diff --git a/debian/patches/series b/debian/patches/series index 169084a7..158fe9b0 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -48,3 +48,4 @@ amdgpu-regression.diff esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff 857623-allow-opencl-pointer-to-bool.diff +add_symbols_versioning.patch From 6b7788647bdae1ac2ce4a1df0033dc4fcaa2d738 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 15:59:47 +0000 Subject: [PATCH 70/89] remove the ldflags --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index f001eb39..3d8215fb 100755 --- a/debian/rules +++ b/debian/rules @@ -24,7 +24,7 @@ DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) OCAML_STDLIB_DIR ?= $(shell ocamlc -where) -LDFLAGS_EXTRA = -Wl,--default-symver +LDFLAGS_EXTRA = CXXFLAGS_EXTRA = -std=c++0x CONFIGURE_EXTRA = CMAKE_EXTRA = From aef2ed28af37420ff51258411e19c4b92537db90 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 19:30:26 +0000 Subject: [PATCH 71/89] news + symbol --- debian/NEWS | 10 + debian/libclang1-X.Y.symbols.in | 678 ++++++++++++++++---------------- 2 files changed, 349 insertions(+), 339 deletions(-) diff --git a/debian/NEWS b/debian/NEWS index 91160e68..ffdd637c 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,3 +1,13 @@ +llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium + + * Libraries ship with ELF symbols versions. This will address the issue of + a binary using to different versions of LLVM in parallel + This also means that every library using LLVM library or clang library + will have to be relinked against this new version + Thanks to Rebecca N. Palmer for the change (Closes: #848368) + + -- Sylvestre Ledru Sun, 19 Mar 2017 20:29:22 +0100 + llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium * clang is now co-instalable. Available on version 3.4, 3.5 and 3.6 diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index 42a45f4d..39b008c5 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,340 +1,340 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - clang_BlockCommandComment_getArgText@Base 3.2 - clang_BlockCommandComment_getCommandName@Base 3.2 - clang_BlockCommandComment_getNumArgs@Base 3.2 - clang_BlockCommandComment_getParagraph@Base 3.2 - clang_CXCursorSet_contains@Base 3.2 - clang_CXCursorSet_insert@Base 3.2 - clang_CXIndex_getGlobalOptions@Base 3.2 - clang_CXIndex_setGlobalOptions@Base 3.2 - clang_CXXConstructor_isConvertingConstructor@Base 3.9 - clang_CXXConstructor_isCopyConstructor@Base 3.9 - clang_CXXConstructor_isDefaultConstructor@Base 3.9 - clang_CXXConstructor_isMoveConstructor@Base 3.9 - clang_CXXField_isMutable@Base 3.8 - clang_CXXMethod_isConst@Base 3.4 - clang_CXXMethod_isDefaulted@Base 3.9 - clang_CXXMethod_isPureVirtual@Base 3.4 - clang_CXXMethod_isStatic@Base 3.2 - clang_CXXMethod_isVirtual@Base 3.2 - clang_Comment_getChild@Base 3.2 - clang_Comment_getKind@Base 3.2 - clang_Comment_getNumChildren@Base 3.2 - clang_Comment_isWhitespace@Base 3.2 - clang_CompilationDatabase_dispose@Base 3.2 - clang_CompilationDatabase_fromDirectory@Base 3.2 - clang_CompilationDatabase_getAllCompileCommands@Base 3.4 - clang_CompilationDatabase_getCompileCommands@Base 3.2 - clang_CompileCommand_getArg@Base 3.2 - clang_CompileCommand_getDirectory@Base 3.2 - clang_CompileCommand_getFilename@Base 3.8 - clang_CompileCommand_getMappedSourceContent@Base 3.8 - clang_CompileCommand_getMappedSourcePath@Base 3.8 - clang_CompileCommand_getNumArgs@Base 3.2 - clang_CompileCommands_dispose@Base 3.2 - clang_CompileCommands_getCommand@Base 3.2 - clang_CompileCommands_getSize@Base 3.2 - clang_Cursor_Evaluate@Base 3.9 - clang_Cursor_getArgument@Base 3.2 - clang_Cursor_getBriefCommentText@Base 3.2 - clang_Cursor_getCXXManglings@Base 3.8 - clang_Cursor_getCommentRange@Base 3.2 - clang_Cursor_getMangling@Base 3.6 - clang_Cursor_getModule@Base 3.2 - clang_Cursor_getNumArguments@Base 3.2 - clang_Cursor_getNumTemplateArguments@Base 3.6 - clang_Cursor_getObjCDeclQualifiers@Base 3.4 - clang_Cursor_getObjCPropertyAttributes@Base 3.4 - clang_Cursor_getObjCSelectorIndex@Base 3.2 - clang_Cursor_getOffsetOfField@Base 3.7 - clang_Cursor_getParsedComment@Base 3.2 - clang_Cursor_getRawCommentText@Base 3.2 - clang_Cursor_getReceiverType@Base 3.2 - clang_Cursor_getSpellingNameRange@Base 3.2 - clang_Cursor_getStorageClass@Base 3.6 - clang_Cursor_getTemplateArgumentKind@Base 3.6 - clang_Cursor_getTemplateArgumentType@Base 3.6 - clang_Cursor_getTemplateArgumentUnsignedValue@Base 3.6 - clang_Cursor_getTemplateArgumentValue@Base 3.6 - clang_Cursor_getTranslationUnit@Base 3.2 - clang_Cursor_hasAttrs@Base 3.9 - clang_Cursor_isAnonymous@Base 3.7 - clang_Cursor_isBitField@Base 3.4 - clang_Cursor_isDynamicCall@Base 3.2 - clang_Cursor_isFunctionInlined@Base 3.9 - clang_Cursor_isMacroBuiltin@Base 3.9 - clang_Cursor_isMacroFunctionLike@Base 3.9 - clang_Cursor_isNull@Base 3.2 - clang_Cursor_isObjCOptional@Base 3.4 - clang_Cursor_isVariadic@Base 3.4 - clang_EvalResult_dispose@Base 3.9 - clang_EvalResult_getAsDouble@Base 3.9 - clang_EvalResult_getAsInt@Base 3.9 - clang_EvalResult_getAsStr@Base 3.9 - clang_EvalResult_getKind@Base 3.9 - clang_File_isEqual@Base 3.6 - clang_FullComment_getAsHTML@Base 3.2 - clang_FullComment_getAsXML@Base 3.2 - clang_HTMLStartTagComment_isSelfClosing@Base 3.2 - clang_HTMLStartTag_getAttrName@Base 3.2 - clang_HTMLStartTag_getAttrValue@Base 3.2 - clang_HTMLStartTag_getNumAttrs@Base 3.2 - clang_HTMLTagComment_getAsString@Base 3.2 - clang_HTMLTagComment_getTagName@Base 3.2 - clang_IndexAction_create@Base 3.2 - clang_IndexAction_dispose@Base 3.2 - clang_InlineCommandComment_getArgText@Base 3.2 - clang_InlineCommandComment_getCommandName@Base 3.2 - clang_InlineCommandComment_getNumArgs@Base 3.2 - clang_InlineCommandComment_getRenderKind@Base 3.2 - clang_InlineContentComment_hasTrailingNewline@Base 3.2 - clang_Location_isFromMainFile@Base 3.4 - clang_Location_isInSystemHeader@Base 3.4 - clang_ModuleMapDescriptor_create@Base 3.6 - clang_ModuleMapDescriptor_dispose@Base 3.6 - clang_ModuleMapDescriptor_setFrameworkModuleName@Base 3.6 - clang_ModuleMapDescriptor_setUmbrellaHeader@Base 3.6 - clang_ModuleMapDescriptor_writeToBuffer@Base 3.6 - clang_Module_getASTFile@Base 3.4 - clang_Module_getFullName@Base 3.2 - clang_Module_getName@Base 3.2 - clang_Module_getNumTopLevelHeaders@Base 3.2 - clang_Module_getParent@Base 3.2 - clang_Module_getTopLevelHeader@Base 3.2 - clang_Module_isSystem@Base 3.6 - clang_ParamCommandComment_getDirection@Base 3.2 - clang_ParamCommandComment_getParamIndex@Base 3.2 - clang_ParamCommandComment_getParamName@Base 3.2 - clang_ParamCommandComment_isDirectionExplicit@Base 3.2 - clang_ParamCommandComment_isParamIndexValid@Base 3.2 - clang_Range_isNull@Base 3.2 - clang_TParamCommandComment_getDepth@Base 3.2 - clang_TParamCommandComment_getIndex@Base 3.2 - clang_TParamCommandComment_getParamName@Base 3.2 - clang_TParamCommandComment_isParamPositionValid@Base 3.2 - clang_TextComment_getText@Base 3.2 - clang_Type_getAlignOf@Base 3.4 - clang_Type_getCXXRefQualifier@Base 3.4 - clang_Type_getClassType@Base 3.4 - clang_Type_getNamedType@Base 3.9 - clang_Type_getNumTemplateArguments@Base 3.6 - clang_Type_getObjCEncoding@Base 3.9 - clang_Type_getOffsetOf@Base 3.4 - clang_Type_getSizeOf@Base 3.4 - clang_Type_getTemplateArgumentAsType@Base 3.6 - clang_Type_visitFields@Base 3.7 - clang_VerbatimBlockLineComment_getText@Base 3.2 - clang_VerbatimLineComment_getText@Base 3.2 - clang_VirtualFileOverlay_addFileMapping@Base 3.6 - clang_VirtualFileOverlay_create@Base 3.6 - clang_VirtualFileOverlay_dispose@Base 3.6 - clang_VirtualFileOverlay_setCaseSensitivity@Base 3.6 - clang_VirtualFileOverlay_writeToBuffer@Base 3.6 - clang_annotateTokens@Base 3.2 - clang_codeCompleteAt@Base 3.2 - clang_codeCompleteGetContainerKind@Base 3.2 - clang_codeCompleteGetContainerUSR@Base 3.2 - clang_codeCompleteGetContexts@Base 3.2 - clang_codeCompleteGetDiagnostic@Base 3.2 - clang_codeCompleteGetNumDiagnostics@Base 3.2 - clang_codeCompleteGetObjCSelector@Base 3.2 - clang_constructUSR_ObjCCategory@Base 3.2 - clang_constructUSR_ObjCClass@Base 3.2 - clang_constructUSR_ObjCIvar@Base 3.2 - clang_constructUSR_ObjCMethod@Base 3.2 - clang_constructUSR_ObjCProperty@Base 3.2 - clang_constructUSR_ObjCProtocol@Base 3.2 - clang_createCXCursorSet@Base 3.2 - clang_createIndex@Base 3.2 - clang_createTranslationUnit2@Base 3.6 - clang_createTranslationUnit@Base 3.2 - clang_createTranslationUnitFromSourceFile@Base 3.2 - clang_defaultCodeCompleteOptions@Base 3.2 - clang_defaultDiagnosticDisplayOptions@Base 3.2 - clang_defaultEditingTranslationUnitOptions@Base 3.2 - clang_defaultReparseOptions@Base 3.2 - clang_defaultSaveOptions@Base 3.2 - clang_disposeCXCursorSet@Base 3.2 - clang_disposeCXPlatformAvailability@Base 3.2 - clang_disposeCXTUResourceUsage@Base 3.2 - clang_disposeCodeCompleteResults@Base 3.2 - clang_disposeDiagnostic@Base 3.2 - clang_disposeDiagnosticSet@Base 3.2 - clang_disposeIndex@Base 3.2 - clang_disposeOverriddenCursors@Base 3.2 - clang_disposeSourceRangeList@Base 3.6 - clang_disposeString@Base 3.2 - clang_disposeStringSet@Base 3.8 - clang_disposeTokens@Base 3.2 - clang_disposeTranslationUnit@Base 3.2 - clang_enableStackTraces@Base 3.2 - clang_equalCursors@Base 3.2 - clang_equalLocations@Base 3.2 - clang_equalRanges@Base 3.2 - clang_equalTypes@Base 3.2 - clang_executeOnThread@Base 3.2 - clang_findIncludesInFile@Base 3.4 - clang_findIncludesInFileWithBlock@Base 3.4 - clang_findReferencesInFile@Base 3.2 - clang_findReferencesInFileWithBlock@Base 3.2 - clang_formatDiagnostic@Base 3.2 - clang_free@Base 3.7 - clang_getArgType@Base 3.2 - clang_getArrayElementType@Base 3.2 - clang_getArraySize@Base 3.2 - clang_getBuildSessionTimestamp@Base 3.6 - clang_getCString@Base 3.2 - clang_getCXTUResourceUsage@Base 3.2 - clang_getCXXAccessSpecifier@Base 3.2 - clang_getCanonicalCursor@Base 3.2 - clang_getCanonicalType@Base 3.2 - clang_getChildDiagnostics@Base 3.2 - clang_getClangVersion@Base 3.2 - clang_getCompletionAnnotation@Base 3.2 - clang_getCompletionAvailability@Base 3.2 - clang_getCompletionBriefComment@Base 3.2 - clang_getCompletionChunkCompletionString@Base 3.2 - clang_getCompletionChunkKind@Base 3.2 - clang_getCompletionChunkText@Base 3.2 - clang_getCompletionNumAnnotations@Base 3.2 - clang_getCompletionParent@Base 3.2 - clang_getCompletionPriority@Base 3.2 - clang_getCursor@Base 3.2 - clang_getCursorAvailability@Base 3.2 - clang_getCursorCompletionString@Base 3.2 - clang_getCursorDefinition@Base 3.2 - clang_getCursorDisplayName@Base 3.2 - clang_getCursorExtent@Base 3.2 - clang_getCursorKind@Base 3.2 - clang_getCursorKindSpelling@Base 3.2 - clang_getCursorLanguage@Base 3.2 - clang_getCursorLexicalParent@Base 3.2 - clang_getCursorLinkage@Base 3.2 - clang_getCursorLocation@Base 3.2 - clang_getCursorPlatformAvailability@Base 3.2 - clang_getCursorReferenceNameRange@Base 3.2 - clang_getCursorReferenced@Base 3.2 - clang_getCursorResultType@Base 3.2 - clang_getCursorSemanticParent@Base 3.2 - clang_getCursorSpelling@Base 3.2 - clang_getCursorType@Base 3.2 - clang_getCursorUSR@Base 3.2 - clang_getCursorVisibility@Base 3.8 - clang_getDeclObjCTypeEncoding@Base 3.2 - clang_getDefinitionSpellingAndExtent@Base 3.2 - clang_getDiagnostic@Base 3.2 - clang_getDiagnosticCategory@Base 3.2 - clang_getDiagnosticCategoryName@Base 3.2 - clang_getDiagnosticCategoryText@Base 3.2 - clang_getDiagnosticFixIt@Base 3.2 - clang_getDiagnosticInSet@Base 3.2 - clang_getDiagnosticLocation@Base 3.2 - clang_getDiagnosticNumFixIts@Base 3.2 - clang_getDiagnosticNumRanges@Base 3.2 - clang_getDiagnosticOption@Base 3.2 - clang_getDiagnosticRange@Base 3.2 - clang_getDiagnosticSetFromTU@Base 3.2 - clang_getDiagnosticSeverity@Base 3.2 - clang_getDiagnosticSpelling@Base 3.2 - clang_getElementType@Base 3.2 - clang_getEnumConstantDeclUnsignedValue@Base 3.2 - clang_getEnumConstantDeclValue@Base 3.2 - clang_getEnumDeclIntegerType@Base 3.2 - clang_getExpansionLocation@Base 3.2 - clang_getFieldDeclBitWidth@Base 3.4 - clang_getFile@Base 3.2 - clang_getFileLocation@Base 3.4 - clang_getFileName@Base 3.2 - clang_getFileTime@Base 3.2 - clang_getFileUniqueID@Base 3.4 - clang_getFunctionTypeCallingConv@Base 3.2 - clang_getIBOutletCollectionType@Base 3.2 - clang_getIncludedFile@Base 3.2 - clang_getInclusions@Base 3.2 - clang_getInstantiationLocation@Base 3.2 - clang_getLocation@Base 3.2 - clang_getLocationForOffset@Base 3.2 - clang_getModuleForFile@Base 3.6 - clang_getNullCursor@Base 3.2 - clang_getNullLocation@Base 3.2 - clang_getNullRange@Base 3.2 - clang_getNumArgTypes@Base 3.2 - clang_getNumCompletionChunks@Base 3.2 - clang_getNumDiagnostics@Base 3.2 - clang_getNumDiagnosticsInSet@Base 3.2 - clang_getNumElements@Base 3.2 - clang_getNumOverloadedDecls@Base 3.2 - clang_getOverloadedDecl@Base 3.2 - clang_getOverriddenCursors@Base 3.2 - clang_getPointeeType@Base 3.2 - clang_getPresumedLocation@Base 3.2 - clang_getRange@Base 3.2 - clang_getRangeEnd@Base 3.2 - clang_getRangeStart@Base 3.2 - clang_getRemappings@Base 3.2 - clang_getRemappingsFromFileList@Base 3.2 - clang_getResultType@Base 3.2 - clang_getSkippedRanges@Base 3.6 - clang_getSpecializedCursorTemplate@Base 3.2 - clang_getSpellingLocation@Base 3.2 - clang_getTUResourceUsageName@Base 3.2 - clang_getTemplateCursorKind@Base 3.2 - clang_getTokenExtent@Base 3.2 - clang_getTokenKind@Base 3.2 - clang_getTokenLocation@Base 3.2 - clang_getTokenSpelling@Base 3.2 - clang_getTranslationUnitCursor@Base 3.2 - clang_getTranslationUnitSpelling@Base 3.2 - clang_getTypeDeclaration@Base 3.2 - clang_getTypeKindSpelling@Base 3.2 - clang_getTypeSpelling@Base 3.4 - clang_getTypedefDeclUnderlyingType@Base 3.2 - clang_hashCursor@Base 3.2 - clang_indexLoc_getCXSourceLocation@Base 3.2 - clang_indexLoc_getFileLocation@Base 3.2 - clang_indexSourceFile@Base 3.2 - clang_indexSourceFileFullArgv@Base 3.8 - clang_indexTranslationUnit@Base 3.2 - clang_index_getCXXClassDeclInfo@Base 3.2 - clang_index_getClientContainer@Base 3.2 - clang_index_getClientEntity@Base 3.2 - clang_index_getIBOutletCollectionAttrInfo@Base 3.2 - clang_index_getObjCCategoryDeclInfo@Base 3.2 - clang_index_getObjCContainerDeclInfo@Base 3.2 - clang_index_getObjCInterfaceDeclInfo@Base 3.2 - clang_index_getObjCPropertyDeclInfo@Base 3.2 - clang_index_getObjCProtocolRefListInfo@Base 3.2 - clang_index_isEntityObjCContainerKind@Base 3.2 - clang_index_setClientContainer@Base 3.2 - clang_index_setClientEntity@Base 3.2 - clang_isAttribute@Base 3.2 - clang_isConstQualifiedType@Base 3.2 - clang_isCursorDefinition@Base 3.2 - clang_isDeclaration@Base 3.2 - clang_isExpression@Base 3.2 - clang_isFileMultipleIncludeGuarded@Base 3.2 - clang_isFunctionTypeVariadic@Base 3.2 - clang_isInvalid@Base 3.2 - clang_isPODType@Base 3.2 - clang_isPreprocessing@Base 3.2 - clang_isReference@Base 3.2 - clang_isRestrictQualifiedType@Base 3.2 - clang_isStatement@Base 3.2 - clang_isTranslationUnit@Base 3.2 - clang_isUnexposed@Base 3.2 - clang_isVirtualBase@Base 3.2 - clang_isVolatileQualifiedType@Base 3.2 - clang_loadDiagnostics@Base 3.2 - clang_parseTranslationUnit2@Base 3.6 - clang_parseTranslationUnit2FullArgv@Base 3.8 - clang_parseTranslationUnit@Base 3.2 - clang_remap_dispose@Base 3.2 - clang_remap_getFilenames@Base 3.2 - clang_remap_getNumFiles@Base 3.2 - clang_reparseTranslationUnit@Base 3.2 - clang_saveTranslationUnit@Base 3.2 - clang_sortCodeCompletionResults@Base 3.2 - clang_toggleCrashRecovery@Base 3.2 - clang_tokenize@Base 3.2 - clang_visitChildren@Base 3.2 - clang_visitChildrenWithBlock@Base 3.2 + clang_BlockCommandComment_getArgText@@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getCommandName@@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getNumArgs@@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getParagraph@@LLVM_VERSION@ 3.2 + clang_CXCursorSet_contains@@LLVM_VERSION@ 3.2 + clang_CXCursorSet_insert@@LLVM_VERSION@ 3.2 + clang_CXIndex_getGlobalOptions@@LLVM_VERSION@ 3.2 + clang_CXIndex_setGlobalOptions@@LLVM_VERSION@ 3.2 + clang_CXXConstructor_isConvertingConstructor@@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isCopyConstructor@@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isDefaultConstructor@@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isMoveConstructor@@LLVM_VERSION@ 3.9 + clang_CXXField_isMutable@@LLVM_VERSION@ 3.8 + clang_CXXMethod_isConst@@LLVM_VERSION@ 3.4 + clang_CXXMethod_isDefaulted@@LLVM_VERSION@ 3.9 + clang_CXXMethod_isPureVirtual@@LLVM_VERSION@ 3.4 + clang_CXXMethod_isStatic@@LLVM_VERSION@ 3.2 + clang_CXXMethod_isVirtual@@LLVM_VERSION@ 3.2 + clang_Comment_getChild@@LLVM_VERSION@ 3.2 + clang_Comment_getKind@@LLVM_VERSION@ 3.2 + clang_Comment_getNumChildren@@LLVM_VERSION@ 3.2 + clang_Comment_isWhitespace@@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_dispose@@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_fromDirectory@@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_getAllCompileCommands@@LLVM_VERSION@ 3.4 + clang_CompilationDatabase_getCompileCommands@@LLVM_VERSION@ 3.2 + clang_CompileCommand_getArg@@LLVM_VERSION@ 3.2 + clang_CompileCommand_getDirectory@@LLVM_VERSION@ 3.2 + clang_CompileCommand_getFilename@@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourceContent@@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourcePath@@LLVM_VERSION@ 3.8 + clang_CompileCommand_getNumArgs@@LLVM_VERSION@ 3.2 + clang_CompileCommands_dispose@@LLVM_VERSION@ 3.2 + clang_CompileCommands_getCommand@@LLVM_VERSION@ 3.2 + clang_CompileCommands_getSize@@LLVM_VERSION@ 3.2 + clang_Cursor_Evaluate@@LLVM_VERSION@ 3.9 + clang_Cursor_getArgument@@LLVM_VERSION@ 3.2 + clang_Cursor_getBriefCommentText@@LLVM_VERSION@ 3.2 + clang_Cursor_getCXXManglings@@LLVM_VERSION@ 3.8 + clang_Cursor_getCommentRange@@LLVM_VERSION@ 3.2 + clang_Cursor_getMangling@@LLVM_VERSION@ 3.6 + clang_Cursor_getModule@@LLVM_VERSION@ 3.2 + clang_Cursor_getNumArguments@@LLVM_VERSION@ 3.2 + clang_Cursor_getNumTemplateArguments@@LLVM_VERSION@ 3.6 + clang_Cursor_getObjCDeclQualifiers@@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCPropertyAttributes@@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCSelectorIndex@@LLVM_VERSION@ 3.2 + clang_Cursor_getOffsetOfField@@LLVM_VERSION@ 3.7 + clang_Cursor_getParsedComment@@LLVM_VERSION@ 3.2 + clang_Cursor_getRawCommentText@@LLVM_VERSION@ 3.2 + clang_Cursor_getReceiverType@@LLVM_VERSION@ 3.2 + clang_Cursor_getSpellingNameRange@@LLVM_VERSION@ 3.2 + clang_Cursor_getStorageClass@@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentKind@@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentType@@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentUnsignedValue@@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentValue@@LLVM_VERSION@ 3.6 + clang_Cursor_getTranslationUnit@@LLVM_VERSION@ 3.2 + clang_Cursor_hasAttrs@@LLVM_VERSION@ 3.9 + clang_Cursor_isAnonymous@@LLVM_VERSION@ 3.7 + clang_Cursor_isBitField@@LLVM_VERSION@ 3.4 + clang_Cursor_isDynamicCall@@LLVM_VERSION@ 3.2 + clang_Cursor_isFunctionInlined@@LLVM_VERSION@ 3.9 + clang_Cursor_isMacroBuiltin@@LLVM_VERSION@ 3.9 + clang_Cursor_isMacroFunctionLike@@LLVM_VERSION@ 3.9 + clang_Cursor_isNull@@LLVM_VERSION@ 3.2 + clang_Cursor_isObjCOptional@@LLVM_VERSION@ 3.4 + clang_Cursor_isVariadic@@LLVM_VERSION@ 3.4 + clang_EvalResult_dispose@@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsDouble@@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsInt@@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsStr@@LLVM_VERSION@ 3.9 + clang_EvalResult_getKind@@LLVM_VERSION@ 3.9 + clang_File_isEqual@@LLVM_VERSION@ 3.6 + clang_FullComment_getAsHTML@@LLVM_VERSION@ 3.2 + clang_FullComment_getAsXML@@LLVM_VERSION@ 3.2 + clang_HTMLStartTagComment_isSelfClosing@@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrName@@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrValue@@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getNumAttrs@@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getAsString@@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getTagName@@LLVM_VERSION@ 3.2 + clang_IndexAction_create@@LLVM_VERSION@ 3.2 + clang_IndexAction_dispose@@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getArgText@@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getCommandName@@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getNumArgs@@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getRenderKind@@LLVM_VERSION@ 3.2 + clang_InlineContentComment_hasTrailingNewline@@LLVM_VERSION@ 3.2 + clang_Location_isFromMainFile@@LLVM_VERSION@ 3.4 + clang_Location_isInSystemHeader@@LLVM_VERSION@ 3.4 + clang_ModuleMapDescriptor_create@@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_dispose@@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setFrameworkModuleName@@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setUmbrellaHeader@@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_writeToBuffer@@LLVM_VERSION@ 3.6 + clang_Module_getASTFile@@LLVM_VERSION@ 3.4 + clang_Module_getFullName@@LLVM_VERSION@ 3.2 + clang_Module_getName@@LLVM_VERSION@ 3.2 + clang_Module_getNumTopLevelHeaders@@LLVM_VERSION@ 3.2 + clang_Module_getParent@@LLVM_VERSION@ 3.2 + clang_Module_getTopLevelHeader@@LLVM_VERSION@ 3.2 + clang_Module_isSystem@@LLVM_VERSION@ 3.6 + clang_ParamCommandComment_getDirection@@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamIndex@@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamName@@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isDirectionExplicit@@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isParamIndexValid@@LLVM_VERSION@ 3.2 + clang_Range_isNull@@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getDepth@@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getIndex@@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getParamName@@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_isParamPositionValid@@LLVM_VERSION@ 3.2 + clang_TextComment_getText@@LLVM_VERSION@ 3.2 + clang_Type_getAlignOf@@LLVM_VERSION@ 3.4 + clang_Type_getCXXRefQualifier@@LLVM_VERSION@ 3.4 + clang_Type_getClassType@@LLVM_VERSION@ 3.4 + clang_Type_getNamedType@@LLVM_VERSION@ 3.9 + clang_Type_getNumTemplateArguments@@LLVM_VERSION@ 3.6 + clang_Type_getObjCEncoding@@LLVM_VERSION@ 3.9 + clang_Type_getOffsetOf@@LLVM_VERSION@ 3.4 + clang_Type_getSizeOf@@LLVM_VERSION@ 3.4 + clang_Type_getTemplateArgumentAsType@@LLVM_VERSION@ 3.6 + clang_Type_visitFields@@LLVM_VERSION@ 3.7 + clang_VerbatimBlockLineComment_getText@@LLVM_VERSION@ 3.2 + clang_VerbatimLineComment_getText@@LLVM_VERSION@ 3.2 + clang_VirtualFileOverlay_addFileMapping@@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_create@@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_dispose@@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_setCaseSensitivity@@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_writeToBuffer@@LLVM_VERSION@ 3.6 + clang_annotateTokens@@LLVM_VERSION@ 3.2 + clang_codeCompleteAt@@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerKind@@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerUSR@@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContexts@@LLVM_VERSION@ 3.2 + clang_codeCompleteGetDiagnostic@@LLVM_VERSION@ 3.2 + clang_codeCompleteGetNumDiagnostics@@LLVM_VERSION@ 3.2 + clang_codeCompleteGetObjCSelector@@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCCategory@@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCClass@@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCIvar@@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCMethod@@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProperty@@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProtocol@@LLVM_VERSION@ 3.2 + clang_createCXCursorSet@@LLVM_VERSION@ 3.2 + clang_createIndex@@LLVM_VERSION@ 3.2 + clang_createTranslationUnit2@@LLVM_VERSION@ 3.6 + clang_createTranslationUnit@@LLVM_VERSION@ 3.2 + clang_createTranslationUnitFromSourceFile@@LLVM_VERSION@ 3.2 + clang_defaultCodeCompleteOptions@@LLVM_VERSION@ 3.2 + clang_defaultDiagnosticDisplayOptions@@LLVM_VERSION@ 3.2 + clang_defaultEditingTranslationUnitOptions@@LLVM_VERSION@ 3.2 + clang_defaultReparseOptions@@LLVM_VERSION@ 3.2 + clang_defaultSaveOptions@@LLVM_VERSION@ 3.2 + clang_disposeCXCursorSet@@LLVM_VERSION@ 3.2 + clang_disposeCXPlatformAvailability@@LLVM_VERSION@ 3.2 + clang_disposeCXTUResourceUsage@@LLVM_VERSION@ 3.2 + clang_disposeCodeCompleteResults@@LLVM_VERSION@ 3.2 + clang_disposeDiagnostic@@LLVM_VERSION@ 3.2 + clang_disposeDiagnosticSet@@LLVM_VERSION@ 3.2 + clang_disposeIndex@@LLVM_VERSION@ 3.2 + clang_disposeOverriddenCursors@@LLVM_VERSION@ 3.2 + clang_disposeSourceRangeList@@LLVM_VERSION@ 3.6 + clang_disposeString@@LLVM_VERSION@ 3.2 + clang_disposeStringSet@@LLVM_VERSION@ 3.8 + clang_disposeTokens@@LLVM_VERSION@ 3.2 + clang_disposeTranslationUnit@@LLVM_VERSION@ 3.2 + clang_enableStackTraces@@LLVM_VERSION@ 3.2 + clang_equalCursors@@LLVM_VERSION@ 3.2 + clang_equalLocations@@LLVM_VERSION@ 3.2 + clang_equalRanges@@LLVM_VERSION@ 3.2 + clang_equalTypes@@LLVM_VERSION@ 3.2 + clang_executeOnThread@@LLVM_VERSION@ 3.2 + clang_findIncludesInFile@@LLVM_VERSION@ 3.4 + clang_findIncludesInFileWithBlock@@LLVM_VERSION@ 3.4 + clang_findReferencesInFile@@LLVM_VERSION@ 3.2 + clang_findReferencesInFileWithBlock@@LLVM_VERSION@ 3.2 + clang_formatDiagnostic@@LLVM_VERSION@ 3.2 + clang_free@@LLVM_VERSION@ 3.7 + clang_getArgType@@LLVM_VERSION@ 3.2 + clang_getArrayElementType@@LLVM_VERSION@ 3.2 + clang_getArraySize@@LLVM_VERSION@ 3.2 + clang_getBuildSessionTimestamp@@LLVM_VERSION@ 3.6 + clang_getCString@@LLVM_VERSION@ 3.2 + clang_getCXTUResourceUsage@@LLVM_VERSION@ 3.2 + clang_getCXXAccessSpecifier@@LLVM_VERSION@ 3.2 + clang_getCanonicalCursor@@LLVM_VERSION@ 3.2 + clang_getCanonicalType@@LLVM_VERSION@ 3.2 + clang_getChildDiagnostics@@LLVM_VERSION@ 3.2 + clang_getClangVersion@@LLVM_VERSION@ 3.2 + clang_getCompletionAnnotation@@LLVM_VERSION@ 3.2 + clang_getCompletionAvailability@@LLVM_VERSION@ 3.2 + clang_getCompletionBriefComment@@LLVM_VERSION@ 3.2 + clang_getCompletionChunkCompletionString@@LLVM_VERSION@ 3.2 + clang_getCompletionChunkKind@@LLVM_VERSION@ 3.2 + clang_getCompletionChunkText@@LLVM_VERSION@ 3.2 + clang_getCompletionNumAnnotations@@LLVM_VERSION@ 3.2 + clang_getCompletionParent@@LLVM_VERSION@ 3.2 + clang_getCompletionPriority@@LLVM_VERSION@ 3.2 + clang_getCursor@@LLVM_VERSION@ 3.2 + clang_getCursorAvailability@@LLVM_VERSION@ 3.2 + clang_getCursorCompletionString@@LLVM_VERSION@ 3.2 + clang_getCursorDefinition@@LLVM_VERSION@ 3.2 + clang_getCursorDisplayName@@LLVM_VERSION@ 3.2 + clang_getCursorExtent@@LLVM_VERSION@ 3.2 + clang_getCursorKind@@LLVM_VERSION@ 3.2 + clang_getCursorKindSpelling@@LLVM_VERSION@ 3.2 + clang_getCursorLanguage@@LLVM_VERSION@ 3.2 + clang_getCursorLexicalParent@@LLVM_VERSION@ 3.2 + clang_getCursorLinkage@@LLVM_VERSION@ 3.2 + clang_getCursorLocation@@LLVM_VERSION@ 3.2 + clang_getCursorPlatformAvailability@@LLVM_VERSION@ 3.2 + clang_getCursorReferenceNameRange@@LLVM_VERSION@ 3.2 + clang_getCursorReferenced@@LLVM_VERSION@ 3.2 + clang_getCursorResultType@@LLVM_VERSION@ 3.2 + clang_getCursorSemanticParent@@LLVM_VERSION@ 3.2 + clang_getCursorSpelling@@LLVM_VERSION@ 3.2 + clang_getCursorType@@LLVM_VERSION@ 3.2 + clang_getCursorUSR@@LLVM_VERSION@ 3.2 + clang_getCursorVisibility@@LLVM_VERSION@ 3.8 + clang_getDeclObjCTypeEncoding@@LLVM_VERSION@ 3.2 + clang_getDefinitionSpellingAndExtent@@LLVM_VERSION@ 3.2 + clang_getDiagnostic@@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategory@@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryName@@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryText@@LLVM_VERSION@ 3.2 + clang_getDiagnosticFixIt@@LLVM_VERSION@ 3.2 + clang_getDiagnosticInSet@@LLVM_VERSION@ 3.2 + clang_getDiagnosticLocation@@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumFixIts@@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumRanges@@LLVM_VERSION@ 3.2 + clang_getDiagnosticOption@@LLVM_VERSION@ 3.2 + clang_getDiagnosticRange@@LLVM_VERSION@ 3.2 + clang_getDiagnosticSetFromTU@@LLVM_VERSION@ 3.2 + clang_getDiagnosticSeverity@@LLVM_VERSION@ 3.2 + clang_getDiagnosticSpelling@@LLVM_VERSION@ 3.2 + clang_getElementType@@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclUnsignedValue@@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclValue@@LLVM_VERSION@ 3.2 + clang_getEnumDeclIntegerType@@LLVM_VERSION@ 3.2 + clang_getExpansionLocation@@LLVM_VERSION@ 3.2 + clang_getFieldDeclBitWidth@@LLVM_VERSION@ 3.4 + clang_getFile@@LLVM_VERSION@ 3.2 + clang_getFileLocation@@LLVM_VERSION@ 3.4 + clang_getFileName@@LLVM_VERSION@ 3.2 + clang_getFileTime@@LLVM_VERSION@ 3.2 + clang_getFileUniqueID@@LLVM_VERSION@ 3.4 + clang_getFunctionTypeCallingConv@@LLVM_VERSION@ 3.2 + clang_getIBOutletCollectionType@@LLVM_VERSION@ 3.2 + clang_getIncludedFile@@LLVM_VERSION@ 3.2 + clang_getInclusions@@LLVM_VERSION@ 3.2 + clang_getInstantiationLocation@@LLVM_VERSION@ 3.2 + clang_getLocation@@LLVM_VERSION@ 3.2 + clang_getLocationForOffset@@LLVM_VERSION@ 3.2 + clang_getModuleForFile@@LLVM_VERSION@ 3.6 + clang_getNullCursor@@LLVM_VERSION@ 3.2 + clang_getNullLocation@@LLVM_VERSION@ 3.2 + clang_getNullRange@@LLVM_VERSION@ 3.2 + clang_getNumArgTypes@@LLVM_VERSION@ 3.2 + clang_getNumCompletionChunks@@LLVM_VERSION@ 3.2 + clang_getNumDiagnostics@@LLVM_VERSION@ 3.2 + clang_getNumDiagnosticsInSet@@LLVM_VERSION@ 3.2 + clang_getNumElements@@LLVM_VERSION@ 3.2 + clang_getNumOverloadedDecls@@LLVM_VERSION@ 3.2 + clang_getOverloadedDecl@@LLVM_VERSION@ 3.2 + clang_getOverriddenCursors@@LLVM_VERSION@ 3.2 + clang_getPointeeType@@LLVM_VERSION@ 3.2 + clang_getPresumedLocation@@LLVM_VERSION@ 3.2 + clang_getRange@@LLVM_VERSION@ 3.2 + clang_getRangeEnd@@LLVM_VERSION@ 3.2 + clang_getRangeStart@@LLVM_VERSION@ 3.2 + clang_getRemappings@@LLVM_VERSION@ 3.2 + clang_getRemappingsFromFileList@@LLVM_VERSION@ 3.2 + clang_getResultType@@LLVM_VERSION@ 3.2 + clang_getSkippedRanges@@LLVM_VERSION@ 3.6 + clang_getSpecializedCursorTemplate@@LLVM_VERSION@ 3.2 + clang_getSpellingLocation@@LLVM_VERSION@ 3.2 + clang_getTUResourceUsageName@@LLVM_VERSION@ 3.2 + clang_getTemplateCursorKind@@LLVM_VERSION@ 3.2 + clang_getTokenExtent@@LLVM_VERSION@ 3.2 + clang_getTokenKind@@LLVM_VERSION@ 3.2 + clang_getTokenLocation@@LLVM_VERSION@ 3.2 + clang_getTokenSpelling@@LLVM_VERSION@ 3.2 + clang_getTranslationUnitCursor@@LLVM_VERSION@ 3.2 + clang_getTranslationUnitSpelling@@LLVM_VERSION@ 3.2 + clang_getTypeDeclaration@@LLVM_VERSION@ 3.2 + clang_getTypeKindSpelling@@LLVM_VERSION@ 3.2 + clang_getTypeSpelling@@LLVM_VERSION@ 3.4 + clang_getTypedefDeclUnderlyingType@@LLVM_VERSION@ 3.2 + clang_hashCursor@@LLVM_VERSION@ 3.2 + clang_indexLoc_getCXSourceLocation@@LLVM_VERSION@ 3.2 + clang_indexLoc_getFileLocation@@LLVM_VERSION@ 3.2 + clang_indexSourceFile@@LLVM_VERSION@ 3.2 + clang_indexSourceFileFullArgv@@LLVM_VERSION@ 3.8 + clang_indexTranslationUnit@@LLVM_VERSION@ 3.2 + clang_index_getCXXClassDeclInfo@@LLVM_VERSION@ 3.2 + clang_index_getClientContainer@@LLVM_VERSION@ 3.2 + clang_index_getClientEntity@@LLVM_VERSION@ 3.2 + clang_index_getIBOutletCollectionAttrInfo@@LLVM_VERSION@ 3.2 + clang_index_getObjCCategoryDeclInfo@@LLVM_VERSION@ 3.2 + clang_index_getObjCContainerDeclInfo@@LLVM_VERSION@ 3.2 + clang_index_getObjCInterfaceDeclInfo@@LLVM_VERSION@ 3.2 + clang_index_getObjCPropertyDeclInfo@@LLVM_VERSION@ 3.2 + clang_index_getObjCProtocolRefListInfo@@LLVM_VERSION@ 3.2 + clang_index_isEntityObjCContainerKind@@LLVM_VERSION@ 3.2 + clang_index_setClientContainer@@LLVM_VERSION@ 3.2 + clang_index_setClientEntity@@LLVM_VERSION@ 3.2 + clang_isAttribute@@LLVM_VERSION@ 3.2 + clang_isConstQualifiedType@@LLVM_VERSION@ 3.2 + clang_isCursorDefinition@@LLVM_VERSION@ 3.2 + clang_isDeclaration@@LLVM_VERSION@ 3.2 + clang_isExpression@@LLVM_VERSION@ 3.2 + clang_isFileMultipleIncludeGuarded@@LLVM_VERSION@ 3.2 + clang_isFunctionTypeVariadic@@LLVM_VERSION@ 3.2 + clang_isInvalid@@LLVM_VERSION@ 3.2 + clang_isPODType@@LLVM_VERSION@ 3.2 + clang_isPreprocessing@@LLVM_VERSION@ 3.2 + clang_isReference@@LLVM_VERSION@ 3.2 + clang_isRestrictQualifiedType@@LLVM_VERSION@ 3.2 + clang_isStatement@@LLVM_VERSION@ 3.2 + clang_isTranslationUnit@@LLVM_VERSION@ 3.2 + clang_isUnexposed@@LLVM_VERSION@ 3.2 + clang_isVirtualBase@@LLVM_VERSION@ 3.2 + clang_isVolatileQualifiedType@@LLVM_VERSION@ 3.2 + clang_loadDiagnostics@@LLVM_VERSION@ 3.2 + clang_parseTranslationUnit2@@LLVM_VERSION@ 3.6 + clang_parseTranslationUnit2FullArgv@@LLVM_VERSION@ 3.8 + clang_parseTranslationUnit@@LLVM_VERSION@ 3.2 + clang_remap_dispose@@LLVM_VERSION@ 3.2 + clang_remap_getFilenames@@LLVM_VERSION@ 3.2 + clang_remap_getNumFiles@@LLVM_VERSION@ 3.2 + clang_reparseTranslationUnit@@LLVM_VERSION@ 3.2 + clang_saveTranslationUnit@@LLVM_VERSION@ 3.2 + clang_sortCodeCompletionResults@@LLVM_VERSION@ 3.2 + clang_toggleCrashRecovery@@LLVM_VERSION@ 3.2 + clang_tokenize@@LLVM_VERSION@ 3.2 + clang_visitChildren@@LLVM_VERSION@ 3.2 + clang_visitChildrenWithBlock@@LLVM_VERSION@ 3.2 From 720ce7ddfd874e1eeaf135150c886eb54d67d170 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 21:06:15 +0000 Subject: [PATCH 72/89] fix symbols list --- debian/libclang1-X.Y.symbols.in | 679 ++++++++++++++++---------------- 1 file changed, 340 insertions(+), 339 deletions(-) diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index 39b008c5..d85065b9 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,340 +1,341 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - clang_BlockCommandComment_getArgText@@LLVM_VERSION@ 3.2 - clang_BlockCommandComment_getCommandName@@LLVM_VERSION@ 3.2 - clang_BlockCommandComment_getNumArgs@@LLVM_VERSION@ 3.2 - clang_BlockCommandComment_getParagraph@@LLVM_VERSION@ 3.2 - clang_CXCursorSet_contains@@LLVM_VERSION@ 3.2 - clang_CXCursorSet_insert@@LLVM_VERSION@ 3.2 - clang_CXIndex_getGlobalOptions@@LLVM_VERSION@ 3.2 - clang_CXIndex_setGlobalOptions@@LLVM_VERSION@ 3.2 - clang_CXXConstructor_isConvertingConstructor@@LLVM_VERSION@ 3.9 - clang_CXXConstructor_isCopyConstructor@@LLVM_VERSION@ 3.9 - clang_CXXConstructor_isDefaultConstructor@@LLVM_VERSION@ 3.9 - clang_CXXConstructor_isMoveConstructor@@LLVM_VERSION@ 3.9 - clang_CXXField_isMutable@@LLVM_VERSION@ 3.8 - clang_CXXMethod_isConst@@LLVM_VERSION@ 3.4 - clang_CXXMethod_isDefaulted@@LLVM_VERSION@ 3.9 - clang_CXXMethod_isPureVirtual@@LLVM_VERSION@ 3.4 - clang_CXXMethod_isStatic@@LLVM_VERSION@ 3.2 - clang_CXXMethod_isVirtual@@LLVM_VERSION@ 3.2 - clang_Comment_getChild@@LLVM_VERSION@ 3.2 - clang_Comment_getKind@@LLVM_VERSION@ 3.2 - clang_Comment_getNumChildren@@LLVM_VERSION@ 3.2 - clang_Comment_isWhitespace@@LLVM_VERSION@ 3.2 - clang_CompilationDatabase_dispose@@LLVM_VERSION@ 3.2 - clang_CompilationDatabase_fromDirectory@@LLVM_VERSION@ 3.2 - clang_CompilationDatabase_getAllCompileCommands@@LLVM_VERSION@ 3.4 - clang_CompilationDatabase_getCompileCommands@@LLVM_VERSION@ 3.2 - clang_CompileCommand_getArg@@LLVM_VERSION@ 3.2 - clang_CompileCommand_getDirectory@@LLVM_VERSION@ 3.2 - clang_CompileCommand_getFilename@@LLVM_VERSION@ 3.8 - clang_CompileCommand_getMappedSourceContent@@LLVM_VERSION@ 3.8 - clang_CompileCommand_getMappedSourcePath@@LLVM_VERSION@ 3.8 - clang_CompileCommand_getNumArgs@@LLVM_VERSION@ 3.2 - clang_CompileCommands_dispose@@LLVM_VERSION@ 3.2 - clang_CompileCommands_getCommand@@LLVM_VERSION@ 3.2 - clang_CompileCommands_getSize@@LLVM_VERSION@ 3.2 - clang_Cursor_Evaluate@@LLVM_VERSION@ 3.9 - clang_Cursor_getArgument@@LLVM_VERSION@ 3.2 - clang_Cursor_getBriefCommentText@@LLVM_VERSION@ 3.2 - clang_Cursor_getCXXManglings@@LLVM_VERSION@ 3.8 - clang_Cursor_getCommentRange@@LLVM_VERSION@ 3.2 - clang_Cursor_getMangling@@LLVM_VERSION@ 3.6 - clang_Cursor_getModule@@LLVM_VERSION@ 3.2 - clang_Cursor_getNumArguments@@LLVM_VERSION@ 3.2 - clang_Cursor_getNumTemplateArguments@@LLVM_VERSION@ 3.6 - clang_Cursor_getObjCDeclQualifiers@@LLVM_VERSION@ 3.4 - clang_Cursor_getObjCPropertyAttributes@@LLVM_VERSION@ 3.4 - clang_Cursor_getObjCSelectorIndex@@LLVM_VERSION@ 3.2 - clang_Cursor_getOffsetOfField@@LLVM_VERSION@ 3.7 - clang_Cursor_getParsedComment@@LLVM_VERSION@ 3.2 - clang_Cursor_getRawCommentText@@LLVM_VERSION@ 3.2 - clang_Cursor_getReceiverType@@LLVM_VERSION@ 3.2 - clang_Cursor_getSpellingNameRange@@LLVM_VERSION@ 3.2 - clang_Cursor_getStorageClass@@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentKind@@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentType@@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentUnsignedValue@@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentValue@@LLVM_VERSION@ 3.6 - clang_Cursor_getTranslationUnit@@LLVM_VERSION@ 3.2 - clang_Cursor_hasAttrs@@LLVM_VERSION@ 3.9 - clang_Cursor_isAnonymous@@LLVM_VERSION@ 3.7 - clang_Cursor_isBitField@@LLVM_VERSION@ 3.4 - clang_Cursor_isDynamicCall@@LLVM_VERSION@ 3.2 - clang_Cursor_isFunctionInlined@@LLVM_VERSION@ 3.9 - clang_Cursor_isMacroBuiltin@@LLVM_VERSION@ 3.9 - clang_Cursor_isMacroFunctionLike@@LLVM_VERSION@ 3.9 - clang_Cursor_isNull@@LLVM_VERSION@ 3.2 - clang_Cursor_isObjCOptional@@LLVM_VERSION@ 3.4 - clang_Cursor_isVariadic@@LLVM_VERSION@ 3.4 - clang_EvalResult_dispose@@LLVM_VERSION@ 3.9 - clang_EvalResult_getAsDouble@@LLVM_VERSION@ 3.9 - clang_EvalResult_getAsInt@@LLVM_VERSION@ 3.9 - clang_EvalResult_getAsStr@@LLVM_VERSION@ 3.9 - clang_EvalResult_getKind@@LLVM_VERSION@ 3.9 - clang_File_isEqual@@LLVM_VERSION@ 3.6 - clang_FullComment_getAsHTML@@LLVM_VERSION@ 3.2 - clang_FullComment_getAsXML@@LLVM_VERSION@ 3.2 - clang_HTMLStartTagComment_isSelfClosing@@LLVM_VERSION@ 3.2 - clang_HTMLStartTag_getAttrName@@LLVM_VERSION@ 3.2 - clang_HTMLStartTag_getAttrValue@@LLVM_VERSION@ 3.2 - clang_HTMLStartTag_getNumAttrs@@LLVM_VERSION@ 3.2 - clang_HTMLTagComment_getAsString@@LLVM_VERSION@ 3.2 - clang_HTMLTagComment_getTagName@@LLVM_VERSION@ 3.2 - clang_IndexAction_create@@LLVM_VERSION@ 3.2 - clang_IndexAction_dispose@@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getArgText@@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getCommandName@@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getNumArgs@@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getRenderKind@@LLVM_VERSION@ 3.2 - clang_InlineContentComment_hasTrailingNewline@@LLVM_VERSION@ 3.2 - clang_Location_isFromMainFile@@LLVM_VERSION@ 3.4 - clang_Location_isInSystemHeader@@LLVM_VERSION@ 3.4 - clang_ModuleMapDescriptor_create@@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_dispose@@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_setFrameworkModuleName@@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_setUmbrellaHeader@@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_writeToBuffer@@LLVM_VERSION@ 3.6 - clang_Module_getASTFile@@LLVM_VERSION@ 3.4 - clang_Module_getFullName@@LLVM_VERSION@ 3.2 - clang_Module_getName@@LLVM_VERSION@ 3.2 - clang_Module_getNumTopLevelHeaders@@LLVM_VERSION@ 3.2 - clang_Module_getParent@@LLVM_VERSION@ 3.2 - clang_Module_getTopLevelHeader@@LLVM_VERSION@ 3.2 - clang_Module_isSystem@@LLVM_VERSION@ 3.6 - clang_ParamCommandComment_getDirection@@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_getParamIndex@@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_getParamName@@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_isDirectionExplicit@@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_isParamIndexValid@@LLVM_VERSION@ 3.2 - clang_Range_isNull@@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_getDepth@@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_getIndex@@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_getParamName@@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_isParamPositionValid@@LLVM_VERSION@ 3.2 - clang_TextComment_getText@@LLVM_VERSION@ 3.2 - clang_Type_getAlignOf@@LLVM_VERSION@ 3.4 - clang_Type_getCXXRefQualifier@@LLVM_VERSION@ 3.4 - clang_Type_getClassType@@LLVM_VERSION@ 3.4 - clang_Type_getNamedType@@LLVM_VERSION@ 3.9 - clang_Type_getNumTemplateArguments@@LLVM_VERSION@ 3.6 - clang_Type_getObjCEncoding@@LLVM_VERSION@ 3.9 - clang_Type_getOffsetOf@@LLVM_VERSION@ 3.4 - clang_Type_getSizeOf@@LLVM_VERSION@ 3.4 - clang_Type_getTemplateArgumentAsType@@LLVM_VERSION@ 3.6 - clang_Type_visitFields@@LLVM_VERSION@ 3.7 - clang_VerbatimBlockLineComment_getText@@LLVM_VERSION@ 3.2 - clang_VerbatimLineComment_getText@@LLVM_VERSION@ 3.2 - clang_VirtualFileOverlay_addFileMapping@@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_create@@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_dispose@@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_setCaseSensitivity@@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_writeToBuffer@@LLVM_VERSION@ 3.6 - clang_annotateTokens@@LLVM_VERSION@ 3.2 - clang_codeCompleteAt@@LLVM_VERSION@ 3.2 - clang_codeCompleteGetContainerKind@@LLVM_VERSION@ 3.2 - clang_codeCompleteGetContainerUSR@@LLVM_VERSION@ 3.2 - clang_codeCompleteGetContexts@@LLVM_VERSION@ 3.2 - clang_codeCompleteGetDiagnostic@@LLVM_VERSION@ 3.2 - clang_codeCompleteGetNumDiagnostics@@LLVM_VERSION@ 3.2 - clang_codeCompleteGetObjCSelector@@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCCategory@@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCClass@@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCIvar@@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCMethod@@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCProperty@@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCProtocol@@LLVM_VERSION@ 3.2 - clang_createCXCursorSet@@LLVM_VERSION@ 3.2 - clang_createIndex@@LLVM_VERSION@ 3.2 - clang_createTranslationUnit2@@LLVM_VERSION@ 3.6 - clang_createTranslationUnit@@LLVM_VERSION@ 3.2 - clang_createTranslationUnitFromSourceFile@@LLVM_VERSION@ 3.2 - clang_defaultCodeCompleteOptions@@LLVM_VERSION@ 3.2 - clang_defaultDiagnosticDisplayOptions@@LLVM_VERSION@ 3.2 - clang_defaultEditingTranslationUnitOptions@@LLVM_VERSION@ 3.2 - clang_defaultReparseOptions@@LLVM_VERSION@ 3.2 - clang_defaultSaveOptions@@LLVM_VERSION@ 3.2 - clang_disposeCXCursorSet@@LLVM_VERSION@ 3.2 - clang_disposeCXPlatformAvailability@@LLVM_VERSION@ 3.2 - clang_disposeCXTUResourceUsage@@LLVM_VERSION@ 3.2 - clang_disposeCodeCompleteResults@@LLVM_VERSION@ 3.2 - clang_disposeDiagnostic@@LLVM_VERSION@ 3.2 - clang_disposeDiagnosticSet@@LLVM_VERSION@ 3.2 - clang_disposeIndex@@LLVM_VERSION@ 3.2 - clang_disposeOverriddenCursors@@LLVM_VERSION@ 3.2 - clang_disposeSourceRangeList@@LLVM_VERSION@ 3.6 - clang_disposeString@@LLVM_VERSION@ 3.2 - clang_disposeStringSet@@LLVM_VERSION@ 3.8 - clang_disposeTokens@@LLVM_VERSION@ 3.2 - clang_disposeTranslationUnit@@LLVM_VERSION@ 3.2 - clang_enableStackTraces@@LLVM_VERSION@ 3.2 - clang_equalCursors@@LLVM_VERSION@ 3.2 - clang_equalLocations@@LLVM_VERSION@ 3.2 - clang_equalRanges@@LLVM_VERSION@ 3.2 - clang_equalTypes@@LLVM_VERSION@ 3.2 - clang_executeOnThread@@LLVM_VERSION@ 3.2 - clang_findIncludesInFile@@LLVM_VERSION@ 3.4 - clang_findIncludesInFileWithBlock@@LLVM_VERSION@ 3.4 - clang_findReferencesInFile@@LLVM_VERSION@ 3.2 - clang_findReferencesInFileWithBlock@@LLVM_VERSION@ 3.2 - clang_formatDiagnostic@@LLVM_VERSION@ 3.2 - clang_free@@LLVM_VERSION@ 3.7 - clang_getArgType@@LLVM_VERSION@ 3.2 - clang_getArrayElementType@@LLVM_VERSION@ 3.2 - clang_getArraySize@@LLVM_VERSION@ 3.2 - clang_getBuildSessionTimestamp@@LLVM_VERSION@ 3.6 - clang_getCString@@LLVM_VERSION@ 3.2 - clang_getCXTUResourceUsage@@LLVM_VERSION@ 3.2 - clang_getCXXAccessSpecifier@@LLVM_VERSION@ 3.2 - clang_getCanonicalCursor@@LLVM_VERSION@ 3.2 - clang_getCanonicalType@@LLVM_VERSION@ 3.2 - clang_getChildDiagnostics@@LLVM_VERSION@ 3.2 - clang_getClangVersion@@LLVM_VERSION@ 3.2 - clang_getCompletionAnnotation@@LLVM_VERSION@ 3.2 - clang_getCompletionAvailability@@LLVM_VERSION@ 3.2 - clang_getCompletionBriefComment@@LLVM_VERSION@ 3.2 - clang_getCompletionChunkCompletionString@@LLVM_VERSION@ 3.2 - clang_getCompletionChunkKind@@LLVM_VERSION@ 3.2 - clang_getCompletionChunkText@@LLVM_VERSION@ 3.2 - clang_getCompletionNumAnnotations@@LLVM_VERSION@ 3.2 - clang_getCompletionParent@@LLVM_VERSION@ 3.2 - clang_getCompletionPriority@@LLVM_VERSION@ 3.2 - clang_getCursor@@LLVM_VERSION@ 3.2 - clang_getCursorAvailability@@LLVM_VERSION@ 3.2 - clang_getCursorCompletionString@@LLVM_VERSION@ 3.2 - clang_getCursorDefinition@@LLVM_VERSION@ 3.2 - clang_getCursorDisplayName@@LLVM_VERSION@ 3.2 - clang_getCursorExtent@@LLVM_VERSION@ 3.2 - clang_getCursorKind@@LLVM_VERSION@ 3.2 - clang_getCursorKindSpelling@@LLVM_VERSION@ 3.2 - clang_getCursorLanguage@@LLVM_VERSION@ 3.2 - clang_getCursorLexicalParent@@LLVM_VERSION@ 3.2 - clang_getCursorLinkage@@LLVM_VERSION@ 3.2 - clang_getCursorLocation@@LLVM_VERSION@ 3.2 - clang_getCursorPlatformAvailability@@LLVM_VERSION@ 3.2 - clang_getCursorReferenceNameRange@@LLVM_VERSION@ 3.2 - clang_getCursorReferenced@@LLVM_VERSION@ 3.2 - clang_getCursorResultType@@LLVM_VERSION@ 3.2 - clang_getCursorSemanticParent@@LLVM_VERSION@ 3.2 - clang_getCursorSpelling@@LLVM_VERSION@ 3.2 - clang_getCursorType@@LLVM_VERSION@ 3.2 - clang_getCursorUSR@@LLVM_VERSION@ 3.2 - clang_getCursorVisibility@@LLVM_VERSION@ 3.8 - clang_getDeclObjCTypeEncoding@@LLVM_VERSION@ 3.2 - clang_getDefinitionSpellingAndExtent@@LLVM_VERSION@ 3.2 - clang_getDiagnostic@@LLVM_VERSION@ 3.2 - clang_getDiagnosticCategory@@LLVM_VERSION@ 3.2 - clang_getDiagnosticCategoryName@@LLVM_VERSION@ 3.2 - clang_getDiagnosticCategoryText@@LLVM_VERSION@ 3.2 - clang_getDiagnosticFixIt@@LLVM_VERSION@ 3.2 - clang_getDiagnosticInSet@@LLVM_VERSION@ 3.2 - clang_getDiagnosticLocation@@LLVM_VERSION@ 3.2 - clang_getDiagnosticNumFixIts@@LLVM_VERSION@ 3.2 - clang_getDiagnosticNumRanges@@LLVM_VERSION@ 3.2 - clang_getDiagnosticOption@@LLVM_VERSION@ 3.2 - clang_getDiagnosticRange@@LLVM_VERSION@ 3.2 - clang_getDiagnosticSetFromTU@@LLVM_VERSION@ 3.2 - clang_getDiagnosticSeverity@@LLVM_VERSION@ 3.2 - clang_getDiagnosticSpelling@@LLVM_VERSION@ 3.2 - clang_getElementType@@LLVM_VERSION@ 3.2 - clang_getEnumConstantDeclUnsignedValue@@LLVM_VERSION@ 3.2 - clang_getEnumConstantDeclValue@@LLVM_VERSION@ 3.2 - clang_getEnumDeclIntegerType@@LLVM_VERSION@ 3.2 - clang_getExpansionLocation@@LLVM_VERSION@ 3.2 - clang_getFieldDeclBitWidth@@LLVM_VERSION@ 3.4 - clang_getFile@@LLVM_VERSION@ 3.2 - clang_getFileLocation@@LLVM_VERSION@ 3.4 - clang_getFileName@@LLVM_VERSION@ 3.2 - clang_getFileTime@@LLVM_VERSION@ 3.2 - clang_getFileUniqueID@@LLVM_VERSION@ 3.4 - clang_getFunctionTypeCallingConv@@LLVM_VERSION@ 3.2 - clang_getIBOutletCollectionType@@LLVM_VERSION@ 3.2 - clang_getIncludedFile@@LLVM_VERSION@ 3.2 - clang_getInclusions@@LLVM_VERSION@ 3.2 - clang_getInstantiationLocation@@LLVM_VERSION@ 3.2 - clang_getLocation@@LLVM_VERSION@ 3.2 - clang_getLocationForOffset@@LLVM_VERSION@ 3.2 - clang_getModuleForFile@@LLVM_VERSION@ 3.6 - clang_getNullCursor@@LLVM_VERSION@ 3.2 - clang_getNullLocation@@LLVM_VERSION@ 3.2 - clang_getNullRange@@LLVM_VERSION@ 3.2 - clang_getNumArgTypes@@LLVM_VERSION@ 3.2 - clang_getNumCompletionChunks@@LLVM_VERSION@ 3.2 - clang_getNumDiagnostics@@LLVM_VERSION@ 3.2 - clang_getNumDiagnosticsInSet@@LLVM_VERSION@ 3.2 - clang_getNumElements@@LLVM_VERSION@ 3.2 - clang_getNumOverloadedDecls@@LLVM_VERSION@ 3.2 - clang_getOverloadedDecl@@LLVM_VERSION@ 3.2 - clang_getOverriddenCursors@@LLVM_VERSION@ 3.2 - clang_getPointeeType@@LLVM_VERSION@ 3.2 - clang_getPresumedLocation@@LLVM_VERSION@ 3.2 - clang_getRange@@LLVM_VERSION@ 3.2 - clang_getRangeEnd@@LLVM_VERSION@ 3.2 - clang_getRangeStart@@LLVM_VERSION@ 3.2 - clang_getRemappings@@LLVM_VERSION@ 3.2 - clang_getRemappingsFromFileList@@LLVM_VERSION@ 3.2 - clang_getResultType@@LLVM_VERSION@ 3.2 - clang_getSkippedRanges@@LLVM_VERSION@ 3.6 - clang_getSpecializedCursorTemplate@@LLVM_VERSION@ 3.2 - clang_getSpellingLocation@@LLVM_VERSION@ 3.2 - clang_getTUResourceUsageName@@LLVM_VERSION@ 3.2 - clang_getTemplateCursorKind@@LLVM_VERSION@ 3.2 - clang_getTokenExtent@@LLVM_VERSION@ 3.2 - clang_getTokenKind@@LLVM_VERSION@ 3.2 - clang_getTokenLocation@@LLVM_VERSION@ 3.2 - clang_getTokenSpelling@@LLVM_VERSION@ 3.2 - clang_getTranslationUnitCursor@@LLVM_VERSION@ 3.2 - clang_getTranslationUnitSpelling@@LLVM_VERSION@ 3.2 - clang_getTypeDeclaration@@LLVM_VERSION@ 3.2 - clang_getTypeKindSpelling@@LLVM_VERSION@ 3.2 - clang_getTypeSpelling@@LLVM_VERSION@ 3.4 - clang_getTypedefDeclUnderlyingType@@LLVM_VERSION@ 3.2 - clang_hashCursor@@LLVM_VERSION@ 3.2 - clang_indexLoc_getCXSourceLocation@@LLVM_VERSION@ 3.2 - clang_indexLoc_getFileLocation@@LLVM_VERSION@ 3.2 - clang_indexSourceFile@@LLVM_VERSION@ 3.2 - clang_indexSourceFileFullArgv@@LLVM_VERSION@ 3.8 - clang_indexTranslationUnit@@LLVM_VERSION@ 3.2 - clang_index_getCXXClassDeclInfo@@LLVM_VERSION@ 3.2 - clang_index_getClientContainer@@LLVM_VERSION@ 3.2 - clang_index_getClientEntity@@LLVM_VERSION@ 3.2 - clang_index_getIBOutletCollectionAttrInfo@@LLVM_VERSION@ 3.2 - clang_index_getObjCCategoryDeclInfo@@LLVM_VERSION@ 3.2 - clang_index_getObjCContainerDeclInfo@@LLVM_VERSION@ 3.2 - clang_index_getObjCInterfaceDeclInfo@@LLVM_VERSION@ 3.2 - clang_index_getObjCPropertyDeclInfo@@LLVM_VERSION@ 3.2 - clang_index_getObjCProtocolRefListInfo@@LLVM_VERSION@ 3.2 - clang_index_isEntityObjCContainerKind@@LLVM_VERSION@ 3.2 - clang_index_setClientContainer@@LLVM_VERSION@ 3.2 - clang_index_setClientEntity@@LLVM_VERSION@ 3.2 - clang_isAttribute@@LLVM_VERSION@ 3.2 - clang_isConstQualifiedType@@LLVM_VERSION@ 3.2 - clang_isCursorDefinition@@LLVM_VERSION@ 3.2 - clang_isDeclaration@@LLVM_VERSION@ 3.2 - clang_isExpression@@LLVM_VERSION@ 3.2 - clang_isFileMultipleIncludeGuarded@@LLVM_VERSION@ 3.2 - clang_isFunctionTypeVariadic@@LLVM_VERSION@ 3.2 - clang_isInvalid@@LLVM_VERSION@ 3.2 - clang_isPODType@@LLVM_VERSION@ 3.2 - clang_isPreprocessing@@LLVM_VERSION@ 3.2 - clang_isReference@@LLVM_VERSION@ 3.2 - clang_isRestrictQualifiedType@@LLVM_VERSION@ 3.2 - clang_isStatement@@LLVM_VERSION@ 3.2 - clang_isTranslationUnit@@LLVM_VERSION@ 3.2 - clang_isUnexposed@@LLVM_VERSION@ 3.2 - clang_isVirtualBase@@LLVM_VERSION@ 3.2 - clang_isVolatileQualifiedType@@LLVM_VERSION@ 3.2 - clang_loadDiagnostics@@LLVM_VERSION@ 3.2 - clang_parseTranslationUnit2@@LLVM_VERSION@ 3.6 - clang_parseTranslationUnit2FullArgv@@LLVM_VERSION@ 3.8 - clang_parseTranslationUnit@@LLVM_VERSION@ 3.2 - clang_remap_dispose@@LLVM_VERSION@ 3.2 - clang_remap_getFilenames@@LLVM_VERSION@ 3.2 - clang_remap_getNumFiles@@LLVM_VERSION@ 3.2 - clang_reparseTranslationUnit@@LLVM_VERSION@ 3.2 - clang_saveTranslationUnit@@LLVM_VERSION@ 3.2 - clang_sortCodeCompletionResults@@LLVM_VERSION@ 3.2 - clang_toggleCrashRecovery@@LLVM_VERSION@ 3.2 - clang_tokenize@@LLVM_VERSION@ 3.2 - clang_visitChildren@@LLVM_VERSION@ 3.2 - clang_visitChildrenWithBlock@@LLVM_VERSION@ 3.2 + LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 3.9 + clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getParagraph@LLVM_@LLVM_VERSION@ 3.2 + clang_CXCursorSet_contains@LLVM_@LLVM_VERSION@ 3.2 + clang_CXCursorSet_insert@LLVM_@LLVM_VERSION@ 3.2 + clang_CXIndex_getGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_CXIndex_setGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_CXXConstructor_isConvertingConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isCopyConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isDefaultConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isMoveConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXField_isMutable@LLVM_@LLVM_VERSION@ 3.8 + clang_CXXMethod_isConst@LLVM_@LLVM_VERSION@ 3.4 + clang_CXXMethod_isDefaulted@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXMethod_isPureVirtual@LLVM_@LLVM_VERSION@ 3.4 + clang_CXXMethod_isStatic@LLVM_@LLVM_VERSION@ 3.2 + clang_CXXMethod_isVirtual@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getChild@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getKind@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getNumChildren@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_isWhitespace@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_fromDirectory@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_getAllCompileCommands@LLVM_@LLVM_VERSION@ 3.4 + clang_CompilationDatabase_getCompileCommands@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getArg@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getDirectory@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getFilename@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourceContent@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourcePath@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_getCommand@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_getSize@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_Evaluate@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_getArgument@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getBriefCommentText@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getCXXManglings@LLVM_@LLVM_VERSION@ 3.8 + clang_Cursor_getCommentRange@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getMangling@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getModule@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getNumArguments@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getObjCDeclQualifiers@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCPropertyAttributes@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCSelectorIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getOffsetOfField@LLVM_@LLVM_VERSION@ 3.7 + clang_Cursor_getParsedComment@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getRawCommentText@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getReceiverType@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getSpellingNameRange@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getStorageClass@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentKind@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentType@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentUnsignedValue@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentValue@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_hasAttrs@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isAnonymous@LLVM_@LLVM_VERSION@ 3.7 + clang_Cursor_isBitField@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_isDynamicCall@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_isFunctionInlined@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isMacroBuiltin@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isMacroFunctionLike@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isNull@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_isObjCOptional@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_isVariadic@LLVM_@LLVM_VERSION@ 3.4 + clang_EvalResult_dispose@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsDouble@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsInt@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsStr@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getKind@LLVM_@LLVM_VERSION@ 3.9 + clang_File_isEqual@LLVM_@LLVM_VERSION@ 3.6 + clang_FullComment_getAsHTML@LLVM_@LLVM_VERSION@ 3.2 + clang_FullComment_getAsXML@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTagComment_isSelfClosing@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrName@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrValue@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getNumAttrs@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getAsString@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getTagName@LLVM_@LLVM_VERSION@ 3.2 + clang_IndexAction_create@LLVM_@LLVM_VERSION@ 3.2 + clang_IndexAction_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getRenderKind@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineContentComment_hasTrailingNewline@LLVM_@LLVM_VERSION@ 3.2 + clang_Location_isFromMainFile@LLVM_@LLVM_VERSION@ 3.4 + clang_Location_isInSystemHeader@LLVM_@LLVM_VERSION@ 3.4 + clang_ModuleMapDescriptor_create@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_dispose@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setFrameworkModuleName@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setUmbrellaHeader@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 + clang_Module_getASTFile@LLVM_@LLVM_VERSION@ 3.4 + clang_Module_getFullName@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getName@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getNumTopLevelHeaders@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getParent@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getTopLevelHeader@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_isSystem@LLVM_@LLVM_VERSION@ 3.6 + clang_ParamCommandComment_getDirection@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isDirectionExplicit@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isParamIndexValid@LLVM_@LLVM_VERSION@ 3.2 + clang_Range_isNull@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getDepth@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_isParamPositionValid@LLVM_@LLVM_VERSION@ 3.2 + clang_TextComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_Type_getAlignOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getCXXRefQualifier@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getClassType@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getNamedType@LLVM_@LLVM_VERSION@ 3.9 + clang_Type_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 + clang_Type_getObjCEncoding@LLVM_@LLVM_VERSION@ 3.9 + clang_Type_getOffsetOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getSizeOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getTemplateArgumentAsType@LLVM_@LLVM_VERSION@ 3.6 + clang_Type_visitFields@LLVM_@LLVM_VERSION@ 3.7 + clang_VerbatimBlockLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_VerbatimLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_VirtualFileOverlay_addFileMapping@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_create@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_dispose@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_setCaseSensitivity@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 + clang_annotateTokens@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteAt@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerKind@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerUSR@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContexts@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetObjCSelector@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCCategory@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCClass@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCIvar@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCMethod@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProperty@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProtocol@LLVM_@LLVM_VERSION@ 3.2 + clang_createCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 + clang_createIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_createTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 + clang_createTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_createTranslationUnitFromSourceFile@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultCodeCompleteOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultDiagnosticDisplayOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultEditingTranslationUnitOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultReparseOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultSaveOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCodeCompleteResults@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeDiagnosticSet@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeSourceRangeList@LLVM_@LLVM_VERSION@ 3.6 + clang_disposeString@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeStringSet@LLVM_@LLVM_VERSION@ 3.8 + clang_disposeTokens@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_enableStackTraces@LLVM_@LLVM_VERSION@ 3.2 + clang_equalCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_equalLocations@LLVM_@LLVM_VERSION@ 3.2 + clang_equalRanges@LLVM_@LLVM_VERSION@ 3.2 + clang_equalTypes@LLVM_@LLVM_VERSION@ 3.2 + clang_executeOnThread@LLVM_@LLVM_VERSION@ 3.2 + clang_findIncludesInFile@LLVM_@LLVM_VERSION@ 3.4 + clang_findIncludesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.4 + clang_findReferencesInFile@LLVM_@LLVM_VERSION@ 3.2 + clang_findReferencesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.2 + clang_formatDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_free@LLVM_@LLVM_VERSION@ 3.7 + clang_getArgType@LLVM_@LLVM_VERSION@ 3.2 + clang_getArrayElementType@LLVM_@LLVM_VERSION@ 3.2 + clang_getArraySize@LLVM_@LLVM_VERSION@ 3.2 + clang_getBuildSessionTimestamp@LLVM_@LLVM_VERSION@ 3.6 + clang_getCString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCXXAccessSpecifier@LLVM_@LLVM_VERSION@ 3.2 + clang_getCanonicalCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getCanonicalType@LLVM_@LLVM_VERSION@ 3.2 + clang_getChildDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_getClangVersion@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionAnnotation@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionBriefComment@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkCompletionString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkText@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionNumAnnotations@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionPriority@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorCompletionString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorDisplayName@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorKindSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLanguage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLexicalParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLinkage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorReferenceNameRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorReferenced@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorResultType@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorSemanticParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorType@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorUSR@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorVisibility@LLVM_@LLVM_VERSION@ 3.8 + clang_getDeclObjCTypeEncoding@LLVM_@LLVM_VERSION@ 3.2 + clang_getDefinitionSpellingAndExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategory@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryName@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryText@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticFixIt@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticInSet@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumFixIts@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumRanges@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticOption@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSetFromTU@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSeverity@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getElementType@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclUnsignedValue@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclValue@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumDeclIntegerType@LLVM_@LLVM_VERSION@ 3.2 + clang_getExpansionLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getFieldDeclBitWidth@LLVM_@LLVM_VERSION@ 3.4 + clang_getFile@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileLocation@LLVM_@LLVM_VERSION@ 3.4 + clang_getFileName@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileTime@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileUniqueID@LLVM_@LLVM_VERSION@ 3.4 + clang_getFunctionTypeCallingConv@LLVM_@LLVM_VERSION@ 3.2 + clang_getIBOutletCollectionType@LLVM_@LLVM_VERSION@ 3.2 + clang_getIncludedFile@LLVM_@LLVM_VERSION@ 3.2 + clang_getInclusions@LLVM_@LLVM_VERSION@ 3.2 + clang_getInstantiationLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getLocationForOffset@LLVM_@LLVM_VERSION@ 3.2 + clang_getModuleForFile@LLVM_@LLVM_VERSION@ 3.6 + clang_getNullCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getNullLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getNullRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumArgTypes@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumCompletionChunks@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumDiagnosticsInSet@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumElements@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumOverloadedDecls@LLVM_@LLVM_VERSION@ 3.2 + clang_getOverloadedDecl@LLVM_@LLVM_VERSION@ 3.2 + clang_getOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_getPointeeType@LLVM_@LLVM_VERSION@ 3.2 + clang_getPresumedLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getRangeEnd@LLVM_@LLVM_VERSION@ 3.2 + clang_getRangeStart@LLVM_@LLVM_VERSION@ 3.2 + clang_getRemappings@LLVM_@LLVM_VERSION@ 3.2 + clang_getRemappingsFromFileList@LLVM_@LLVM_VERSION@ 3.2 + clang_getResultType@LLVM_@LLVM_VERSION@ 3.2 + clang_getSkippedRanges@LLVM_@LLVM_VERSION@ 3.6 + clang_getSpecializedCursorTemplate@LLVM_@LLVM_VERSION@ 3.2 + clang_getSpellingLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getTUResourceUsageName@LLVM_@LLVM_VERSION@ 3.2 + clang_getTemplateCursorKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTranslationUnitCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getTranslationUnitSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeDeclaration@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeKindSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeSpelling@LLVM_@LLVM_VERSION@ 3.4 + clang_getTypedefDeclUnderlyingType@LLVM_@LLVM_VERSION@ 3.2 + clang_hashCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_indexLoc_getCXSourceLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_indexLoc_getFileLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_indexSourceFile@LLVM_@LLVM_VERSION@ 3.2 + clang_indexSourceFileFullArgv@LLVM_@LLVM_VERSION@ 3.8 + clang_indexTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getCXXClassDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getClientContainer@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getClientEntity@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getIBOutletCollectionAttrInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCCategoryDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCContainerDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCInterfaceDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCPropertyDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCProtocolRefListInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_isEntityObjCContainerKind@LLVM_@LLVM_VERSION@ 3.2 + clang_index_setClientContainer@LLVM_@LLVM_VERSION@ 3.2 + clang_index_setClientEntity@LLVM_@LLVM_VERSION@ 3.2 + clang_isAttribute@LLVM_@LLVM_VERSION@ 3.2 + clang_isConstQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_isCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 + clang_isDeclaration@LLVM_@LLVM_VERSION@ 3.2 + clang_isExpression@LLVM_@LLVM_VERSION@ 3.2 + clang_isFileMultipleIncludeGuarded@LLVM_@LLVM_VERSION@ 3.2 + clang_isFunctionTypeVariadic@LLVM_@LLVM_VERSION@ 3.2 + clang_isInvalid@LLVM_@LLVM_VERSION@ 3.2 + clang_isPODType@LLVM_@LLVM_VERSION@ 3.2 + clang_isPreprocessing@LLVM_@LLVM_VERSION@ 3.2 + clang_isReference@LLVM_@LLVM_VERSION@ 3.2 + clang_isRestrictQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_isStatement@LLVM_@LLVM_VERSION@ 3.2 + clang_isTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_isUnexposed@LLVM_@LLVM_VERSION@ 3.2 + clang_isVirtualBase@LLVM_@LLVM_VERSION@ 3.2 + clang_isVolatileQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_loadDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_parseTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 + clang_parseTranslationUnit2FullArgv@LLVM_@LLVM_VERSION@ 3.8 + clang_parseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_getFilenames@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_getNumFiles@LLVM_@LLVM_VERSION@ 3.2 + clang_reparseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_saveTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_sortCodeCompletionResults@LLVM_@LLVM_VERSION@ 3.2 + clang_toggleCrashRecovery@LLVM_@LLVM_VERSION@ 3.2 + clang_tokenize@LLVM_@LLVM_VERSION@ 3.2 + clang_visitChildren@LLVM_@LLVM_VERSION@ 3.2 + clang_visitChildrenWithBlock@LLVM_@LLVM_VERSION@ 3.2 From b9e921b5217be08ab4b26884c19589b38c756019 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 22:07:06 +0000 Subject: [PATCH 73/89] update of the patch --- debian/patches/add_symbols_versioning.patch | 41 +++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 42 insertions(+) create mode 100644 debian/patches/add_symbols_versioning.patch diff --git a/debian/patches/add_symbols_versioning.patch b/debian/patches/add_symbols_versioning.patch new file mode 100644 index 00000000..7cd9b412 --- /dev/null +++ b/debian/patches/add_symbols_versioning.patch @@ -0,0 +1,41 @@ +Description: add a simple linker script to version LLVM symbols + +This patch adds a very simple linker script to version the lib's symbols +and thus trying to avoid crashes if an application loads two different +LLVM versions (as long as they do not share data between them). + +Note that we deliberately *don't* make LLVM_3.8 depend on LLVM_3.8: +they're incompatible and the whole point of this patch is +to tell the linker that. + +Author: Rebecca N. Palmer +Author: Lisandro Damían Nicanor Pérez Meyer +Bug-Debian: https://bugs.debian.org/848368 + +--- llvm-toolchain-3.8-3.8.1.orig/tools/llvm-shlib/CMakeLists.txt ++++ llvm-toolchain-3.8-3.8.1/tools/llvm-shlib/CMakeLists.txt +@@ -42,7 +42,7 @@ set_property(TARGET LLVM PROPERTY VERSIO + list(REMOVE_DUPLICATES LIB_NAMES) + if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "GNU" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "kFreeBSD") # FIXME: It should be "GNU ld for elf" + # GNU ld doesn't resolve symbols in the version script. +- set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) ++ set(LIB_NAMES -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") + set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) + endif() +--- /dev/null ++++ llvm-toolchain-3.8-3.8.1/tools/llvm-shlib/simple_version_script.map +@@ -0,0 +1 @@ ++LLVM_3.8 { global: *; }; +--- llvm-toolchain-3.8-3.8.1.orig/cmake/modules/AddLLVM.cmake ++++ llvm-toolchain-3.8-3.8.1/cmake/modules/AddLLVM.cmake +@@ -74,7 +74,7 @@ function(add_llvm_symbol_exports target_ + set(native_export_file "${target_name}.exports") + # FIXME: Don't write the "local:" line on OpenBSD. + add_custom_command(OUTPUT ${native_export_file} +- COMMAND echo "{" > ${native_export_file} ++ COMMAND echo "LLVM_3.8 {" > ${native_export_file} + COMMAND grep -q "[[:alnum:]]" ${export_file} && echo " global:" >> ${native_export_file} || : + COMMAND sed -e "s/$/;/" -e "s/^/ /" < ${export_file} >> ${native_export_file} + COMMAND echo " local: *;" >> ${native_export_file} + diff --git a/debian/patches/series b/debian/patches/series index 0c698349..6b5de5ff 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -56,3 +56,4 @@ lit-force-lang.diff clang-arm-default-vfp3-on-armv7a.patch lldb-server-path.diff lldb-server-link.diff +add_symbols_versioning.patch From 9b8817aecfc17f1a408eb39c9ea5e00efa50889f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 22:07:12 +0000 Subject: [PATCH 74/89] Use versioned symbols (Closes: #849098) --- debian/NEWS | 10 + debian/changelog | 7 + debian/libclang1-X.Y.symbols.in | 645 ++++++++++++++++---------------- 3 files changed, 340 insertions(+), 322 deletions(-) diff --git a/debian/NEWS b/debian/NEWS index 91160e68..3725ee54 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,3 +1,13 @@ +llvm-toolchain-3.8 (1:3.8.1-19~exp1) experimental; urgency=medium + + * Libraries ship with ELF symbols versions. This will address the issue of + a binary using to different versions of LLVM in parallel + This also means that every library using LLVM library or clang library + will have to be relinked against this new version + Thanks to Rebecca N. Palmer for the change (Closes: #848368) + + -- Sylvestre Ledru Sun, 19 Mar 2017 20:29:22 +0100 + llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium * clang is now co-instalable. Available on version 3.4, 3.5 and 3.6 diff --git a/debian/changelog b/debian/changelog index c7bac9b5..83fca340 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-3.8 (1:3.8.1-19~exp1) experimental; urgency=medium + + [ Rebecca N. Palmer ] + * Use versioned symbols (Closes: #849098) + + -- Sylvestre Ledru Sun, 19 Mar 2017 22:09:04 +0100 + llvm-toolchain-3.8 (1:3.8.1-18) unstable; urgency=medium * Fix the broken liblldb-3.8-dev links (Closes: #856864) diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index b0b34323..cd792e3e 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,323 +1,324 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - clang_BlockCommandComment_getArgText@Base 3.2 - clang_BlockCommandComment_getCommandName@Base 3.2 - clang_BlockCommandComment_getNumArgs@Base 3.2 - clang_BlockCommandComment_getParagraph@Base 3.2 - clang_CXCursorSet_contains@Base 3.2 - clang_CXCursorSet_insert@Base 3.2 - clang_CXIndex_getGlobalOptions@Base 3.2 - clang_CXIndex_setGlobalOptions@Base 3.2 - clang_CXXField_isMutable@Base 3.8 - clang_CXXMethod_isConst@Base 3.4 - clang_CXXMethod_isPureVirtual@Base 3.4 - clang_CXXMethod_isStatic@Base 3.2 - clang_CXXMethod_isVirtual@Base 3.2 - clang_Comment_getChild@Base 3.2 - clang_Comment_getKind@Base 3.2 - clang_Comment_getNumChildren@Base 3.2 - clang_Comment_isWhitespace@Base 3.2 - clang_CompilationDatabase_dispose@Base 3.2 - clang_CompilationDatabase_fromDirectory@Base 3.2 - clang_CompilationDatabase_getAllCompileCommands@Base 3.4 - clang_CompilationDatabase_getCompileCommands@Base 3.2 - clang_CompileCommand_getArg@Base 3.2 - clang_CompileCommand_getDirectory@Base 3.2 - clang_CompileCommand_getFilename@Base 3.8 - clang_CompileCommand_getMappedSourceContent@Base 3.8 - clang_CompileCommand_getMappedSourcePath@Base 3.8 - clang_CompileCommand_getNumArgs@Base 3.2 - clang_CompileCommands_dispose@Base 3.2 - clang_CompileCommands_getCommand@Base 3.2 - clang_CompileCommands_getSize@Base 3.2 - clang_Cursor_getArgument@Base 3.2 - clang_Cursor_getBriefCommentText@Base 3.2 - clang_Cursor_getCXXManglings@Base 3.8 - clang_Cursor_getCommentRange@Base 3.2 - clang_Cursor_getMangling@Base 3.6 - clang_Cursor_getModule@Base 3.2 - clang_Cursor_getNumArguments@Base 3.2 - clang_Cursor_getNumTemplateArguments@Base 3.6 - clang_Cursor_getObjCDeclQualifiers@Base 3.4 - clang_Cursor_getObjCPropertyAttributes@Base 3.4 - clang_Cursor_getObjCSelectorIndex@Base 3.2 - clang_Cursor_getOffsetOfField@Base 3.7 - clang_Cursor_getParsedComment@Base 3.2 - clang_Cursor_getRawCommentText@Base 3.2 - clang_Cursor_getReceiverType@Base 3.2 - clang_Cursor_getSpellingNameRange@Base 3.2 - clang_Cursor_getStorageClass@Base 3.6 - clang_Cursor_getTemplateArgumentKind@Base 3.6 - clang_Cursor_getTemplateArgumentType@Base 3.6 - clang_Cursor_getTemplateArgumentUnsignedValue@Base 3.6 - clang_Cursor_getTemplateArgumentValue@Base 3.6 - clang_Cursor_getTranslationUnit@Base 3.2 - clang_Cursor_isAnonymous@Base 3.7 - clang_Cursor_isBitField@Base 3.4 - clang_Cursor_isDynamicCall@Base 3.2 - clang_Cursor_isNull@Base 3.2 - clang_Cursor_isObjCOptional@Base 3.4 - clang_Cursor_isVariadic@Base 3.4 - clang_File_isEqual@Base 3.6 - clang_FullComment_getAsHTML@Base 3.2 - clang_FullComment_getAsXML@Base 3.2 - clang_HTMLStartTagComment_isSelfClosing@Base 3.2 - clang_HTMLStartTag_getAttrName@Base 3.2 - clang_HTMLStartTag_getAttrValue@Base 3.2 - clang_HTMLStartTag_getNumAttrs@Base 3.2 - clang_HTMLTagComment_getAsString@Base 3.2 - clang_HTMLTagComment_getTagName@Base 3.2 - clang_IndexAction_create@Base 3.2 - clang_IndexAction_dispose@Base 3.2 - clang_InlineCommandComment_getArgText@Base 3.2 - clang_InlineCommandComment_getCommandName@Base 3.2 - clang_InlineCommandComment_getNumArgs@Base 3.2 - clang_InlineCommandComment_getRenderKind@Base 3.2 - clang_InlineContentComment_hasTrailingNewline@Base 3.2 - clang_Location_isFromMainFile@Base 3.4 - clang_Location_isInSystemHeader@Base 3.4 - clang_ModuleMapDescriptor_create@Base 3.6 - clang_ModuleMapDescriptor_dispose@Base 3.6 - clang_ModuleMapDescriptor_setFrameworkModuleName@Base 3.6 - clang_ModuleMapDescriptor_setUmbrellaHeader@Base 3.6 - clang_ModuleMapDescriptor_writeToBuffer@Base 3.6 - clang_Module_getASTFile@Base 3.4 - clang_Module_getFullName@Base 3.2 - clang_Module_getName@Base 3.2 - clang_Module_getNumTopLevelHeaders@Base 3.2 - clang_Module_getParent@Base 3.2 - clang_Module_getTopLevelHeader@Base 3.2 - clang_Module_isSystem@Base 3.6 - clang_ParamCommandComment_getDirection@Base 3.2 - clang_ParamCommandComment_getParamIndex@Base 3.2 - clang_ParamCommandComment_getParamName@Base 3.2 - clang_ParamCommandComment_isDirectionExplicit@Base 3.2 - clang_ParamCommandComment_isParamIndexValid@Base 3.2 - clang_Range_isNull@Base 3.2 - clang_TParamCommandComment_getDepth@Base 3.2 - clang_TParamCommandComment_getIndex@Base 3.2 - clang_TParamCommandComment_getParamName@Base 3.2 - clang_TParamCommandComment_isParamPositionValid@Base 3.2 - clang_TextComment_getText@Base 3.2 - clang_Type_getAlignOf@Base 3.4 - clang_Type_getCXXRefQualifier@Base 3.4 - clang_Type_getClassType@Base 3.4 - clang_Type_getNumTemplateArguments@Base 3.6 - clang_Type_getOffsetOf@Base 3.4 - clang_Type_getSizeOf@Base 3.4 - clang_Type_getTemplateArgumentAsType@Base 3.6 - clang_Type_visitFields@Base 3.7 - clang_VerbatimBlockLineComment_getText@Base 3.2 - clang_VerbatimLineComment_getText@Base 3.2 - clang_VirtualFileOverlay_addFileMapping@Base 3.6 - clang_VirtualFileOverlay_create@Base 3.6 - clang_VirtualFileOverlay_dispose@Base 3.6 - clang_VirtualFileOverlay_setCaseSensitivity@Base 3.6 - clang_VirtualFileOverlay_writeToBuffer@Base 3.6 - clang_annotateTokens@Base 3.2 - clang_codeCompleteAt@Base 3.2 - clang_codeCompleteGetContainerKind@Base 3.2 - clang_codeCompleteGetContainerUSR@Base 3.2 - clang_codeCompleteGetContexts@Base 3.2 - clang_codeCompleteGetDiagnostic@Base 3.2 - clang_codeCompleteGetNumDiagnostics@Base 3.2 - clang_codeCompleteGetObjCSelector@Base 3.2 - clang_constructUSR_ObjCCategory@Base 3.2 - clang_constructUSR_ObjCClass@Base 3.2 - clang_constructUSR_ObjCIvar@Base 3.2 - clang_constructUSR_ObjCMethod@Base 3.2 - clang_constructUSR_ObjCProperty@Base 3.2 - clang_constructUSR_ObjCProtocol@Base 3.2 - clang_createCXCursorSet@Base 3.2 - clang_createIndex@Base 3.2 - clang_createTranslationUnit2@Base 3.6 - clang_createTranslationUnit@Base 3.2 - clang_createTranslationUnitFromSourceFile@Base 3.2 - clang_defaultCodeCompleteOptions@Base 3.2 - clang_defaultDiagnosticDisplayOptions@Base 3.2 - clang_defaultEditingTranslationUnitOptions@Base 3.2 - clang_defaultReparseOptions@Base 3.2 - clang_defaultSaveOptions@Base 3.2 - clang_disposeCXCursorSet@Base 3.2 - clang_disposeCXPlatformAvailability@Base 3.2 - clang_disposeCXTUResourceUsage@Base 3.2 - clang_disposeCodeCompleteResults@Base 3.2 - clang_disposeDiagnostic@Base 3.2 - clang_disposeDiagnosticSet@Base 3.2 - clang_disposeIndex@Base 3.2 - clang_disposeOverriddenCursors@Base 3.2 - clang_disposeSourceRangeList@Base 3.6 - clang_disposeString@Base 3.2 - clang_disposeStringSet@Base 3.8 - clang_disposeTokens@Base 3.2 - clang_disposeTranslationUnit@Base 3.2 - clang_enableStackTraces@Base 3.2 - clang_equalCursors@Base 3.2 - clang_equalLocations@Base 3.2 - clang_equalRanges@Base 3.2 - clang_equalTypes@Base 3.2 - clang_executeOnThread@Base 3.2 - clang_findIncludesInFile@Base 3.4 - clang_findIncludesInFileWithBlock@Base 3.4 - clang_findReferencesInFile@Base 3.2 - clang_findReferencesInFileWithBlock@Base 3.2 - clang_formatDiagnostic@Base 3.2 - clang_free@Base 3.7 - clang_getArgType@Base 3.2 - clang_getArrayElementType@Base 3.2 - clang_getArraySize@Base 3.2 - clang_getBuildSessionTimestamp@Base 3.6 - clang_getCString@Base 3.2 - clang_getCXTUResourceUsage@Base 3.2 - clang_getCXXAccessSpecifier@Base 3.2 - clang_getCanonicalCursor@Base 3.2 - clang_getCanonicalType@Base 3.2 - clang_getChildDiagnostics@Base 3.2 - clang_getClangVersion@Base 3.2 - clang_getCompletionAnnotation@Base 3.2 - clang_getCompletionAvailability@Base 3.2 - clang_getCompletionBriefComment@Base 3.2 - clang_getCompletionChunkCompletionString@Base 3.2 - clang_getCompletionChunkKind@Base 3.2 - clang_getCompletionChunkText@Base 3.2 - clang_getCompletionNumAnnotations@Base 3.2 - clang_getCompletionParent@Base 3.2 - clang_getCompletionPriority@Base 3.2 - clang_getCursor@Base 3.2 - clang_getCursorAvailability@Base 3.2 - clang_getCursorCompletionString@Base 3.2 - clang_getCursorDefinition@Base 3.2 - clang_getCursorDisplayName@Base 3.2 - clang_getCursorExtent@Base 3.2 - clang_getCursorKind@Base 3.2 - clang_getCursorKindSpelling@Base 3.2 - clang_getCursorLanguage@Base 3.2 - clang_getCursorLexicalParent@Base 3.2 - clang_getCursorLinkage@Base 3.2 - clang_getCursorLocation@Base 3.2 - clang_getCursorPlatformAvailability@Base 3.2 - clang_getCursorReferenceNameRange@Base 3.2 - clang_getCursorReferenced@Base 3.2 - clang_getCursorResultType@Base 3.2 - clang_getCursorSemanticParent@Base 3.2 - clang_getCursorSpelling@Base 3.2 - clang_getCursorType@Base 3.2 - clang_getCursorUSR@Base 3.2 - clang_getCursorVisibility@Base 3.8 - clang_getDeclObjCTypeEncoding@Base 3.2 - clang_getDefinitionSpellingAndExtent@Base 3.2 - clang_getDiagnostic@Base 3.2 - clang_getDiagnosticCategory@Base 3.2 - clang_getDiagnosticCategoryName@Base 3.2 - clang_getDiagnosticCategoryText@Base 3.2 - clang_getDiagnosticFixIt@Base 3.2 - clang_getDiagnosticInSet@Base 3.2 - clang_getDiagnosticLocation@Base 3.2 - clang_getDiagnosticNumFixIts@Base 3.2 - clang_getDiagnosticNumRanges@Base 3.2 - clang_getDiagnosticOption@Base 3.2 - clang_getDiagnosticRange@Base 3.2 - clang_getDiagnosticSetFromTU@Base 3.2 - clang_getDiagnosticSeverity@Base 3.2 - clang_getDiagnosticSpelling@Base 3.2 - clang_getElementType@Base 3.2 - clang_getEnumConstantDeclUnsignedValue@Base 3.2 - clang_getEnumConstantDeclValue@Base 3.2 - clang_getEnumDeclIntegerType@Base 3.2 - clang_getExpansionLocation@Base 3.2 - clang_getFieldDeclBitWidth@Base 3.4 - clang_getFile@Base 3.2 - clang_getFileLocation@Base 3.4 - clang_getFileName@Base 3.2 - clang_getFileTime@Base 3.2 - clang_getFileUniqueID@Base 3.4 - clang_getFunctionTypeCallingConv@Base 3.2 - clang_getIBOutletCollectionType@Base 3.2 - clang_getIncludedFile@Base 3.2 - clang_getInclusions@Base 3.2 - clang_getInstantiationLocation@Base 3.2 - clang_getLocation@Base 3.2 - clang_getLocationForOffset@Base 3.2 - clang_getModuleForFile@Base 3.6 - clang_getNullCursor@Base 3.2 - clang_getNullLocation@Base 3.2 - clang_getNullRange@Base 3.2 - clang_getNumArgTypes@Base 3.2 - clang_getNumCompletionChunks@Base 3.2 - clang_getNumDiagnostics@Base 3.2 - clang_getNumDiagnosticsInSet@Base 3.2 - clang_getNumElements@Base 3.2 - clang_getNumOverloadedDecls@Base 3.2 - clang_getOverloadedDecl@Base 3.2 - clang_getOverriddenCursors@Base 3.2 - clang_getPointeeType@Base 3.2 - clang_getPresumedLocation@Base 3.2 - clang_getRange@Base 3.2 - clang_getRangeEnd@Base 3.2 - clang_getRangeStart@Base 3.2 - clang_getRemappings@Base 3.2 - clang_getRemappingsFromFileList@Base 3.2 - clang_getResultType@Base 3.2 - clang_getSkippedRanges@Base 3.6 - clang_getSpecializedCursorTemplate@Base 3.2 - clang_getSpellingLocation@Base 3.2 - clang_getTUResourceUsageName@Base 3.2 - clang_getTemplateCursorKind@Base 3.2 - clang_getTokenExtent@Base 3.2 - clang_getTokenKind@Base 3.2 - clang_getTokenLocation@Base 3.2 - clang_getTokenSpelling@Base 3.2 - clang_getTranslationUnitCursor@Base 3.2 - clang_getTranslationUnitSpelling@Base 3.2 - clang_getTypeDeclaration@Base 3.2 - clang_getTypeKindSpelling@Base 3.2 - clang_getTypeSpelling@Base 3.4 - clang_getTypedefDeclUnderlyingType@Base 3.2 - clang_hashCursor@Base 3.2 - clang_indexLoc_getCXSourceLocation@Base 3.2 - clang_indexLoc_getFileLocation@Base 3.2 - clang_indexSourceFile@Base 3.2 - clang_indexSourceFileFullArgv@Base 3.8 - clang_indexTranslationUnit@Base 3.2 - clang_index_getCXXClassDeclInfo@Base 3.2 - clang_index_getClientContainer@Base 3.2 - clang_index_getClientEntity@Base 3.2 - clang_index_getIBOutletCollectionAttrInfo@Base 3.2 - clang_index_getObjCCategoryDeclInfo@Base 3.2 - clang_index_getObjCContainerDeclInfo@Base 3.2 - clang_index_getObjCInterfaceDeclInfo@Base 3.2 - clang_index_getObjCPropertyDeclInfo@Base 3.2 - clang_index_getObjCProtocolRefListInfo@Base 3.2 - clang_index_isEntityObjCContainerKind@Base 3.2 - clang_index_setClientContainer@Base 3.2 - clang_index_setClientEntity@Base 3.2 - clang_isAttribute@Base 3.2 - clang_isConstQualifiedType@Base 3.2 - clang_isCursorDefinition@Base 3.2 - clang_isDeclaration@Base 3.2 - clang_isExpression@Base 3.2 - clang_isFileMultipleIncludeGuarded@Base 3.2 - clang_isFunctionTypeVariadic@Base 3.2 - clang_isInvalid@Base 3.2 - clang_isPODType@Base 3.2 - clang_isPreprocessing@Base 3.2 - clang_isReference@Base 3.2 - clang_isRestrictQualifiedType@Base 3.2 - clang_isStatement@Base 3.2 - clang_isTranslationUnit@Base 3.2 - clang_isUnexposed@Base 3.2 - clang_isVirtualBase@Base 3.2 - clang_isVolatileQualifiedType@Base 3.2 - clang_loadDiagnostics@Base 3.2 - clang_parseTranslationUnit2@Base 3.6 - clang_parseTranslationUnit2FullArgv@Base 3.8 - clang_parseTranslationUnit@Base 3.2 - clang_remap_dispose@Base 3.2 - clang_remap_getFilenames@Base 3.2 - clang_remap_getNumFiles@Base 3.2 - clang_reparseTranslationUnit@Base 3.2 - clang_saveTranslationUnit@Base 3.2 - clang_sortCodeCompletionResults@Base 3.2 - clang_toggleCrashRecovery@Base 3.2 - clang_tokenize@Base 3.2 - clang_visitChildren@Base 3.2 - clang_visitChildrenWithBlock@Base 3.2 + LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 3.8 + clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getParagraph@LLVM_@LLVM_VERSION@ 3.2 + clang_CXCursorSet_contains@LLVM_@LLVM_VERSION@ 3.2 + clang_CXCursorSet_insert@LLVM_@LLVM_VERSION@ 3.2 + clang_CXIndex_getGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_CXIndex_setGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_CXXField_isMutable@LLVM_@LLVM_VERSION@ 3.8 + clang_CXXMethod_isConst@LLVM_@LLVM_VERSION@ 3.4 + clang_CXXMethod_isPureVirtual@LLVM_@LLVM_VERSION@ 3.4 + clang_CXXMethod_isStatic@LLVM_@LLVM_VERSION@ 3.2 + clang_CXXMethod_isVirtual@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getChild@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getKind@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getNumChildren@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_isWhitespace@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_fromDirectory@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_getAllCompileCommands@LLVM_@LLVM_VERSION@ 3.4 + clang_CompilationDatabase_getCompileCommands@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getArg@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getDirectory@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getFilename@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourceContent@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourcePath@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_getCommand@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_getSize@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getArgument@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getBriefCommentText@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getCXXManglings@LLVM_@LLVM_VERSION@ 3.8 + clang_Cursor_getCommentRange@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getMangling@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getModule@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getNumArguments@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getObjCDeclQualifiers@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCPropertyAttributes@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCSelectorIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getOffsetOfField@LLVM_@LLVM_VERSION@ 3.7 + clang_Cursor_getParsedComment@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getRawCommentText@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getReceiverType@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getSpellingNameRange@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getStorageClass@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentKind@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentType@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentUnsignedValue@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentValue@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_isAnonymous@LLVM_@LLVM_VERSION@ 3.7 + clang_Cursor_isBitField@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_isDynamicCall@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_isNull@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_isObjCOptional@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_isVariadic@LLVM_@LLVM_VERSION@ 3.4 + clang_File_isEqual@LLVM_@LLVM_VERSION@ 3.6 + clang_FullComment_getAsHTML@LLVM_@LLVM_VERSION@ 3.2 + clang_FullComment_getAsXML@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTagComment_isSelfClosing@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrName@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrValue@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getNumAttrs@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getAsString@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getTagName@LLVM_@LLVM_VERSION@ 3.2 + clang_IndexAction_create@LLVM_@LLVM_VERSION@ 3.2 + clang_IndexAction_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getRenderKind@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineContentComment_hasTrailingNewline@LLVM_@LLVM_VERSION@ 3.2 + clang_Location_isFromMainFile@LLVM_@LLVM_VERSION@ 3.4 + clang_Location_isInSystemHeader@LLVM_@LLVM_VERSION@ 3.4 + clang_ModuleMapDescriptor_create@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_dispose@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setFrameworkModuleName@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setUmbrellaHeader@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 + clang_Module_getASTFile@LLVM_@LLVM_VERSION@ 3.4 + clang_Module_getFullName@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getName@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getNumTopLevelHeaders@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getParent@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getTopLevelHeader@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_isSystem@LLVM_@LLVM_VERSION@ 3.6 + clang_ParamCommandComment_getDirection@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isDirectionExplicit@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isParamIndexValid@LLVM_@LLVM_VERSION@ 3.2 + clang_Range_isNull@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getDepth@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_isParamPositionValid@LLVM_@LLVM_VERSION@ 3.2 + clang_TextComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_Type_getAlignOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getCXXRefQualifier@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getClassType@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 + clang_Type_getOffsetOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getSizeOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getTemplateArgumentAsType@LLVM_@LLVM_VERSION@ 3.6 + clang_Type_visitFields@LLVM_@LLVM_VERSION@ 3.7 + clang_VerbatimBlockLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_VerbatimLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_VirtualFileOverlay_addFileMapping@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_create@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_dispose@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_setCaseSensitivity@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 + clang_annotateTokens@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteAt@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerKind@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerUSR@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContexts@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetObjCSelector@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCCategory@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCClass@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCIvar@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCMethod@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProperty@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProtocol@LLVM_@LLVM_VERSION@ 3.2 + clang_createCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 + clang_createIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_createTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 + clang_createTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_createTranslationUnitFromSourceFile@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultCodeCompleteOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultDiagnosticDisplayOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultEditingTranslationUnitOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultReparseOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultSaveOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCodeCompleteResults@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeDiagnosticSet@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeSourceRangeList@LLVM_@LLVM_VERSION@ 3.6 + clang_disposeString@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeStringSet@LLVM_@LLVM_VERSION@ 3.8 + clang_disposeTokens@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_enableStackTraces@LLVM_@LLVM_VERSION@ 3.2 + clang_equalCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_equalLocations@LLVM_@LLVM_VERSION@ 3.2 + clang_equalRanges@LLVM_@LLVM_VERSION@ 3.2 + clang_equalTypes@LLVM_@LLVM_VERSION@ 3.2 + clang_executeOnThread@LLVM_@LLVM_VERSION@ 3.2 + clang_findIncludesInFile@LLVM_@LLVM_VERSION@ 3.4 + clang_findIncludesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.4 + clang_findReferencesInFile@LLVM_@LLVM_VERSION@ 3.2 + clang_findReferencesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.2 + clang_formatDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_free@LLVM_@LLVM_VERSION@ 3.7 + clang_getArgType@LLVM_@LLVM_VERSION@ 3.2 + clang_getArrayElementType@LLVM_@LLVM_VERSION@ 3.2 + clang_getArraySize@LLVM_@LLVM_VERSION@ 3.2 + clang_getBuildSessionTimestamp@LLVM_@LLVM_VERSION@ 3.6 + clang_getCString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCXXAccessSpecifier@LLVM_@LLVM_VERSION@ 3.2 + clang_getCanonicalCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getCanonicalType@LLVM_@LLVM_VERSION@ 3.2 + clang_getChildDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_getClangVersion@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionAnnotation@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionBriefComment@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkCompletionString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkText@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionNumAnnotations@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionPriority@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorCompletionString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorDisplayName@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorKindSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLanguage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLexicalParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLinkage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorReferenceNameRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorReferenced@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorResultType@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorSemanticParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorType@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorUSR@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorVisibility@LLVM_@LLVM_VERSION@ 3.8 + clang_getDeclObjCTypeEncoding@LLVM_@LLVM_VERSION@ 3.2 + clang_getDefinitionSpellingAndExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategory@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryName@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryText@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticFixIt@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticInSet@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumFixIts@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumRanges@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticOption@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSetFromTU@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSeverity@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getElementType@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclUnsignedValue@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclValue@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumDeclIntegerType@LLVM_@LLVM_VERSION@ 3.2 + clang_getExpansionLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getFieldDeclBitWidth@LLVM_@LLVM_VERSION@ 3.4 + clang_getFile@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileLocation@LLVM_@LLVM_VERSION@ 3.4 + clang_getFileName@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileTime@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileUniqueID@LLVM_@LLVM_VERSION@ 3.4 + clang_getFunctionTypeCallingConv@LLVM_@LLVM_VERSION@ 3.2 + clang_getIBOutletCollectionType@LLVM_@LLVM_VERSION@ 3.2 + clang_getIncludedFile@LLVM_@LLVM_VERSION@ 3.2 + clang_getInclusions@LLVM_@LLVM_VERSION@ 3.2 + clang_getInstantiationLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getLocationForOffset@LLVM_@LLVM_VERSION@ 3.2 + clang_getModuleForFile@LLVM_@LLVM_VERSION@ 3.6 + clang_getNullCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getNullLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getNullRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumArgTypes@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumCompletionChunks@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumDiagnosticsInSet@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumElements@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumOverloadedDecls@LLVM_@LLVM_VERSION@ 3.2 + clang_getOverloadedDecl@LLVM_@LLVM_VERSION@ 3.2 + clang_getOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_getPointeeType@LLVM_@LLVM_VERSION@ 3.2 + clang_getPresumedLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getRangeEnd@LLVM_@LLVM_VERSION@ 3.2 + clang_getRangeStart@LLVM_@LLVM_VERSION@ 3.2 + clang_getRemappings@LLVM_@LLVM_VERSION@ 3.2 + clang_getRemappingsFromFileList@LLVM_@LLVM_VERSION@ 3.2 + clang_getResultType@LLVM_@LLVM_VERSION@ 3.2 + clang_getSkippedRanges@LLVM_@LLVM_VERSION@ 3.6 + clang_getSpecializedCursorTemplate@LLVM_@LLVM_VERSION@ 3.2 + clang_getSpellingLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getTUResourceUsageName@LLVM_@LLVM_VERSION@ 3.2 + clang_getTemplateCursorKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTranslationUnitCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getTranslationUnitSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeDeclaration@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeKindSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeSpelling@LLVM_@LLVM_VERSION@ 3.4 + clang_getTypedefDeclUnderlyingType@LLVM_@LLVM_VERSION@ 3.2 + clang_hashCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_indexLoc_getCXSourceLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_indexLoc_getFileLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_indexSourceFile@LLVM_@LLVM_VERSION@ 3.2 + clang_indexSourceFileFullArgv@LLVM_@LLVM_VERSION@ 3.8 + clang_indexTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getCXXClassDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getClientContainer@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getClientEntity@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getIBOutletCollectionAttrInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCCategoryDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCContainerDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCInterfaceDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCPropertyDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCProtocolRefListInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_isEntityObjCContainerKind@LLVM_@LLVM_VERSION@ 3.2 + clang_index_setClientContainer@LLVM_@LLVM_VERSION@ 3.2 + clang_index_setClientEntity@LLVM_@LLVM_VERSION@ 3.2 + clang_isAttribute@LLVM_@LLVM_VERSION@ 3.2 + clang_isConstQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_isCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 + clang_isDeclaration@LLVM_@LLVM_VERSION@ 3.2 + clang_isExpression@LLVM_@LLVM_VERSION@ 3.2 + clang_isFileMultipleIncludeGuarded@LLVM_@LLVM_VERSION@ 3.2 + clang_isFunctionTypeVariadic@LLVM_@LLVM_VERSION@ 3.2 + clang_isInvalid@LLVM_@LLVM_VERSION@ 3.2 + clang_isPODType@LLVM_@LLVM_VERSION@ 3.2 + clang_isPreprocessing@LLVM_@LLVM_VERSION@ 3.2 + clang_isReference@LLVM_@LLVM_VERSION@ 3.2 + clang_isRestrictQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_isStatement@LLVM_@LLVM_VERSION@ 3.2 + clang_isTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_isUnexposed@LLVM_@LLVM_VERSION@ 3.2 + clang_isVirtualBase@LLVM_@LLVM_VERSION@ 3.2 + clang_isVolatileQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_loadDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_parseTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 + clang_parseTranslationUnit2FullArgv@LLVM_@LLVM_VERSION@ 3.8 + clang_parseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_getFilenames@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_getNumFiles@LLVM_@LLVM_VERSION@ 3.2 + clang_reparseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_saveTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_sortCodeCompletionResults@LLVM_@LLVM_VERSION@ 3.2 + clang_toggleCrashRecovery@LLVM_@LLVM_VERSION@ 3.2 + clang_tokenize@LLVM_@LLVM_VERSION@ 3.2 + clang_visitChildren@LLVM_@LLVM_VERSION@ 3.2 + clang_visitChildrenWithBlock@LLVM_@LLVM_VERSION@ 3.2 From 34a975100d414b198220eb27189ab9b257836e67 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 19 Mar 2017 22:13:13 +0000 Subject: [PATCH 75/89] Use versioned symbols (Closes: #848368) --- debian/NEWS | 10 + debian/changelog | 7 + debian/libclang1-X.Y.symbols.in | 687 ++++++++++---------- debian/patches/add_symbols_versioning.patch | 41 ++ debian/patches/series | 1 + 5 files changed, 403 insertions(+), 343 deletions(-) create mode 100644 debian/patches/add_symbols_versioning.patch diff --git a/debian/NEWS b/debian/NEWS index 91160e68..ffdd637c 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,3 +1,13 @@ +llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium + + * Libraries ship with ELF symbols versions. This will address the issue of + a binary using to different versions of LLVM in parallel + This also means that every library using LLVM library or clang library + will have to be relinked against this new version + Thanks to Rebecca N. Palmer for the change (Closes: #848368) + + -- Sylvestre Ledru Sun, 19 Mar 2017 20:29:22 +0100 + llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium * clang is now co-instalable. Available on version 3.4, 3.5 and 3.6 diff --git a/debian/changelog b/debian/changelog index 88e6a2b1..b5cb1446 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +llvm-toolchain-4.0 (1:4.0-3) UNRELEASED; urgency=medium + + [ Rebecca N. Palmer ] + * Use versioned symbols (Closes: #848368) + + -- Sylvestre Ledru Sun, 19 Mar 2017 23:11:23 +0100 + llvm-toolchain-4.0 (1:4.0-2) unstable; urgency=medium * Fix the incorrect symlink to scan-build-py (Closes: #856869) diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index 06827b49..ef4669b0 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,344 +1,345 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - clang_BlockCommandComment_getArgText@Base 3.2 - clang_BlockCommandComment_getCommandName@Base 3.2 - clang_BlockCommandComment_getNumArgs@Base 3.2 - clang_BlockCommandComment_getParagraph@Base 3.2 - clang_CXCursorSet_contains@Base 3.2 - clang_CXCursorSet_insert@Base 3.2 - clang_CXIndex_getGlobalOptions@Base 3.2 - clang_CXIndex_setGlobalOptions@Base 3.2 - clang_CXXConstructor_isConvertingConstructor@Base 3.9 - clang_CXXConstructor_isCopyConstructor@Base 3.9 - clang_CXXConstructor_isDefaultConstructor@Base 3.9 - clang_CXXConstructor_isMoveConstructor@Base 3.9 - clang_CXXField_isMutable@Base 3.8 - clang_CXXMethod_isConst@Base 3.4 - clang_CXXMethod_isDefaulted@Base 3.9 - clang_CXXMethod_isPureVirtual@Base 3.4 - clang_CXXMethod_isStatic@Base 3.2 - clang_CXXMethod_isVirtual@Base 3.2 - clang_Comment_getChild@Base 3.2 - clang_Comment_getKind@Base 3.2 - clang_Comment_getNumChildren@Base 3.2 - clang_Comment_isWhitespace@Base 3.2 - clang_CompilationDatabase_dispose@Base 3.2 - clang_CompilationDatabase_fromDirectory@Base 3.2 - clang_CompilationDatabase_getAllCompileCommands@Base 3.4 - clang_CompilationDatabase_getCompileCommands@Base 3.2 - clang_CompileCommand_getArg@Base 3.2 - clang_CompileCommand_getDirectory@Base 3.2 - clang_CompileCommand_getFilename@Base 3.8 - clang_CompileCommand_getMappedSourceContent@Base 3.8 - clang_CompileCommand_getMappedSourcePath@Base 3.8 - clang_CompileCommand_getNumArgs@Base 3.2 - clang_CompileCommands_dispose@Base 3.2 - clang_CompileCommands_getCommand@Base 3.2 - clang_CompileCommands_getSize@Base 3.2 - clang_Cursor_Evaluate@Base 3.9 - clang_Cursor_getArgument@Base 3.2 - clang_Cursor_getBriefCommentText@Base 3.2 - clang_Cursor_getCXXManglings@Base 3.8 - clang_Cursor_getCommentRange@Base 3.2 - clang_Cursor_getMangling@Base 3.6 - clang_Cursor_getModule@Base 3.2 - clang_Cursor_getNumArguments@Base 3.2 - clang_Cursor_getNumTemplateArguments@Base 3.6 - clang_Cursor_getObjCDeclQualifiers@Base 3.4 - clang_Cursor_getObjCPropertyAttributes@Base 3.4 - clang_Cursor_getObjCSelectorIndex@Base 3.2 - clang_Cursor_getOffsetOfField@Base 3.7 - clang_Cursor_getParsedComment@Base 3.2 - clang_Cursor_getRawCommentText@Base 3.2 - clang_Cursor_getReceiverType@Base 3.2 - clang_Cursor_getSpellingNameRange@Base 3.2 - clang_Cursor_getStorageClass@Base 3.6 - clang_Cursor_getTemplateArgumentKind@Base 3.6 - clang_Cursor_getTemplateArgumentType@Base 3.6 - clang_Cursor_getTemplateArgumentUnsignedValue@Base 3.6 - clang_Cursor_getTemplateArgumentValue@Base 3.6 - clang_Cursor_getTranslationUnit@Base 3.2 - clang_Cursor_hasAttrs@Base 3.9 - clang_Cursor_isAnonymous@Base 3.7 - clang_Cursor_isBitField@Base 3.4 - clang_Cursor_isDynamicCall@Base 3.2 - clang_Cursor_isFunctionInlined@Base 3.9 - clang_Cursor_isMacroBuiltin@Base 3.9 - clang_Cursor_isMacroFunctionLike@Base 3.9 - clang_Cursor_isNull@Base 3.2 - clang_Cursor_isObjCOptional@Base 3.4 - clang_Cursor_isVariadic@Base 3.4 - clang_EvalResult_dispose@Base 3.9 - clang_EvalResult_getAsDouble@Base 3.9 - clang_EvalResult_getAsInt@Base 3.9 - clang_EvalResult_getAsLongLong@Base 4.0 - clang_EvalResult_getAsStr@Base 3.9 - clang_EvalResult_getAsUnsigned@Base 4.0 - clang_EvalResult_getKind@Base 3.9 - clang_EvalResult_isUnsignedInt@Base 4.0 - clang_File_isEqual@Base 3.6 - clang_FullComment_getAsHTML@Base 3.2 - clang_FullComment_getAsXML@Base 3.2 - clang_HTMLStartTagComment_isSelfClosing@Base 3.2 - clang_HTMLStartTag_getAttrName@Base 3.2 - clang_HTMLStartTag_getAttrValue@Base 3.2 - clang_HTMLStartTag_getNumAttrs@Base 3.2 - clang_HTMLTagComment_getAsString@Base 3.2 - clang_HTMLTagComment_getTagName@Base 3.2 - clang_IndexAction_create@Base 3.2 - clang_IndexAction_dispose@Base 3.2 - clang_InlineCommandComment_getArgText@Base 3.2 - clang_InlineCommandComment_getCommandName@Base 3.2 - clang_InlineCommandComment_getNumArgs@Base 3.2 - clang_InlineCommandComment_getRenderKind@Base 3.2 - clang_InlineContentComment_hasTrailingNewline@Base 3.2 - clang_Location_isFromMainFile@Base 3.4 - clang_Location_isInSystemHeader@Base 3.4 - clang_ModuleMapDescriptor_create@Base 3.6 - clang_ModuleMapDescriptor_dispose@Base 3.6 - clang_ModuleMapDescriptor_setFrameworkModuleName@Base 3.6 - clang_ModuleMapDescriptor_setUmbrellaHeader@Base 3.6 - clang_ModuleMapDescriptor_writeToBuffer@Base 3.6 - clang_Module_getASTFile@Base 3.4 - clang_Module_getFullName@Base 3.2 - clang_Module_getName@Base 3.2 - clang_Module_getNumTopLevelHeaders@Base 3.2 - clang_Module_getParent@Base 3.2 - clang_Module_getTopLevelHeader@Base 3.2 - clang_Module_isSystem@Base 3.6 - clang_ParamCommandComment_getDirection@Base 3.2 - clang_ParamCommandComment_getParamIndex@Base 3.2 - clang_ParamCommandComment_getParamName@Base 3.2 - clang_ParamCommandComment_isDirectionExplicit@Base 3.2 - clang_ParamCommandComment_isParamIndexValid@Base 3.2 - clang_Range_isNull@Base 3.2 - clang_TParamCommandComment_getDepth@Base 3.2 - clang_TParamCommandComment_getIndex@Base 3.2 - clang_TParamCommandComment_getParamName@Base 3.2 - clang_TParamCommandComment_isParamPositionValid@Base 3.2 - clang_TextComment_getText@Base 3.2 - clang_Type_getAlignOf@Base 3.4 - clang_Type_getCXXRefQualifier@Base 3.4 - clang_Type_getClassType@Base 3.4 - clang_Type_getNamedType@Base 3.9 - clang_Type_getNumTemplateArguments@Base 3.6 - clang_Type_getObjCEncoding@Base 3.9 - clang_Type_getOffsetOf@Base 3.4 - clang_Type_getSizeOf@Base 3.4 - clang_Type_getTemplateArgumentAsType@Base 3.6 - clang_Type_visitFields@Base 3.7 - clang_VerbatimBlockLineComment_getText@Base 3.2 - clang_VerbatimLineComment_getText@Base 3.2 - clang_VirtualFileOverlay_addFileMapping@Base 3.6 - clang_VirtualFileOverlay_create@Base 3.6 - clang_VirtualFileOverlay_dispose@Base 3.6 - clang_VirtualFileOverlay_setCaseSensitivity@Base 3.6 - clang_VirtualFileOverlay_writeToBuffer@Base 3.6 - clang_annotateTokens@Base 3.2 - clang_codeCompleteAt@Base 3.2 - clang_codeCompleteGetContainerKind@Base 3.2 - clang_codeCompleteGetContainerUSR@Base 3.2 - clang_codeCompleteGetContexts@Base 3.2 - clang_codeCompleteGetDiagnostic@Base 3.2 - clang_codeCompleteGetNumDiagnostics@Base 3.2 - clang_codeCompleteGetObjCSelector@Base 3.2 - clang_constructUSR_ObjCCategory@Base 3.2 - clang_constructUSR_ObjCClass@Base 3.2 - clang_constructUSR_ObjCIvar@Base 3.2 - clang_constructUSR_ObjCMethod@Base 3.2 - clang_constructUSR_ObjCProperty@Base 3.2 - clang_constructUSR_ObjCProtocol@Base 3.2 - clang_createCXCursorSet@Base 3.2 - clang_createIndex@Base 3.2 - clang_createTranslationUnit2@Base 3.6 - clang_createTranslationUnit@Base 3.2 - clang_createTranslationUnitFromSourceFile@Base 3.2 - clang_defaultCodeCompleteOptions@Base 3.2 - clang_defaultDiagnosticDisplayOptions@Base 3.2 - clang_defaultEditingTranslationUnitOptions@Base 3.2 - clang_defaultReparseOptions@Base 3.2 - clang_defaultSaveOptions@Base 3.2 - clang_disposeCXCursorSet@Base 3.2 - clang_disposeCXPlatformAvailability@Base 3.2 - clang_disposeCXTUResourceUsage@Base 3.2 - clang_disposeCodeCompleteResults@Base 3.2 - clang_disposeDiagnostic@Base 3.2 - clang_disposeDiagnosticSet@Base 3.2 - clang_disposeIndex@Base 3.2 - clang_disposeOverriddenCursors@Base 3.2 - clang_disposeSourceRangeList@Base 3.6 - clang_disposeString@Base 3.2 - clang_disposeStringSet@Base 3.8 - clang_disposeTokens@Base 3.2 - clang_disposeTranslationUnit@Base 3.2 - clang_enableStackTraces@Base 3.2 - clang_equalCursors@Base 3.2 - clang_equalLocations@Base 3.2 - clang_equalRanges@Base 3.2 - clang_equalTypes@Base 3.2 - clang_executeOnThread@Base 3.2 - clang_findIncludesInFile@Base 3.4 - clang_findIncludesInFileWithBlock@Base 3.4 - clang_findReferencesInFile@Base 3.2 - clang_findReferencesInFileWithBlock@Base 3.2 - clang_formatDiagnostic@Base 3.2 - clang_free@Base 3.7 - clang_getAllSkippedRanges@Base 4.0 - clang_getArgType@Base 3.2 - clang_getArrayElementType@Base 3.2 - clang_getArraySize@Base 3.2 - clang_getBuildSessionTimestamp@Base 3.6 - clang_getCString@Base 3.2 - clang_getCXTUResourceUsage@Base 3.2 - clang_getCXXAccessSpecifier@Base 3.2 - clang_getCanonicalCursor@Base 3.2 - clang_getCanonicalType@Base 3.2 - clang_getChildDiagnostics@Base 3.2 - clang_getClangVersion@Base 3.2 - clang_getCompletionAnnotation@Base 3.2 - clang_getCompletionAvailability@Base 3.2 - clang_getCompletionBriefComment@Base 3.2 - clang_getCompletionChunkCompletionString@Base 3.2 - clang_getCompletionChunkKind@Base 3.2 - clang_getCompletionChunkText@Base 3.2 - clang_getCompletionNumAnnotations@Base 3.2 - clang_getCompletionParent@Base 3.2 - clang_getCompletionPriority@Base 3.2 - clang_getCursor@Base 3.2 - clang_getCursorAvailability@Base 3.2 - clang_getCursorCompletionString@Base 3.2 - clang_getCursorDefinition@Base 3.2 - clang_getCursorDisplayName@Base 3.2 - clang_getCursorExtent@Base 3.2 - clang_getCursorKind@Base 3.2 - clang_getCursorKindSpelling@Base 3.2 - clang_getCursorLanguage@Base 3.2 - clang_getCursorLexicalParent@Base 3.2 - clang_getCursorLinkage@Base 3.2 - clang_getCursorLocation@Base 3.2 - clang_getCursorPlatformAvailability@Base 3.2 - clang_getCursorReferenceNameRange@Base 3.2 - clang_getCursorReferenced@Base 3.2 - clang_getCursorResultType@Base 3.2 - clang_getCursorSemanticParent@Base 3.2 - clang_getCursorSpelling@Base 3.2 - clang_getCursorType@Base 3.2 - clang_getCursorUSR@Base 3.2 - clang_getCursorVisibility@Base 3.8 - clang_getDeclObjCTypeEncoding@Base 3.2 - clang_getDefinitionSpellingAndExtent@Base 3.2 - clang_getDiagnostic@Base 3.2 - clang_getDiagnosticCategory@Base 3.2 - clang_getDiagnosticCategoryName@Base 3.2 - clang_getDiagnosticCategoryText@Base 3.2 - clang_getDiagnosticFixIt@Base 3.2 - clang_getDiagnosticInSet@Base 3.2 - clang_getDiagnosticLocation@Base 3.2 - clang_getDiagnosticNumFixIts@Base 3.2 - clang_getDiagnosticNumRanges@Base 3.2 - clang_getDiagnosticOption@Base 3.2 - clang_getDiagnosticRange@Base 3.2 - clang_getDiagnosticSetFromTU@Base 3.2 - clang_getDiagnosticSeverity@Base 3.2 - clang_getDiagnosticSpelling@Base 3.2 - clang_getElementType@Base 3.2 - clang_getEnumConstantDeclUnsignedValue@Base 3.2 - clang_getEnumConstantDeclValue@Base 3.2 - clang_getEnumDeclIntegerType@Base 3.2 - clang_getExpansionLocation@Base 3.2 - clang_getFieldDeclBitWidth@Base 3.4 - clang_getFile@Base 3.2 - clang_getFileLocation@Base 3.4 - clang_getFileName@Base 3.2 - clang_getFileTime@Base 3.2 - clang_getFileUniqueID@Base 3.4 - clang_getFunctionTypeCallingConv@Base 3.2 - clang_getIBOutletCollectionType@Base 3.2 - clang_getIncludedFile@Base 3.2 - clang_getInclusions@Base 3.2 - clang_getInstantiationLocation@Base 3.2 - clang_getLocation@Base 3.2 - clang_getLocationForOffset@Base 3.2 - clang_getModuleForFile@Base 3.6 - clang_getNullCursor@Base 3.2 - clang_getNullLocation@Base 3.2 - clang_getNullRange@Base 3.2 - clang_getNumArgTypes@Base 3.2 - clang_getNumCompletionChunks@Base 3.2 - clang_getNumDiagnostics@Base 3.2 - clang_getNumDiagnosticsInSet@Base 3.2 - clang_getNumElements@Base 3.2 - clang_getNumOverloadedDecls@Base 3.2 - clang_getOverloadedDecl@Base 3.2 - clang_getOverriddenCursors@Base 3.2 - clang_getPointeeType@Base 3.2 - clang_getPresumedLocation@Base 3.2 - clang_getRange@Base 3.2 - clang_getRangeEnd@Base 3.2 - clang_getRangeStart@Base 3.2 - clang_getRemappings@Base 3.2 - clang_getRemappingsFromFileList@Base 3.2 - clang_getResultType@Base 3.2 - clang_getSkippedRanges@Base 3.6 - clang_getSpecializedCursorTemplate@Base 3.2 - clang_getSpellingLocation@Base 3.2 - clang_getTUResourceUsageName@Base 3.2 - clang_getTemplateCursorKind@Base 3.2 - clang_getTokenExtent@Base 3.2 - clang_getTokenKind@Base 3.2 - clang_getTokenLocation@Base 3.2 - clang_getTokenSpelling@Base 3.2 - clang_getTranslationUnitCursor@Base 3.2 - clang_getTranslationUnitSpelling@Base 3.2 - clang_getTypeDeclaration@Base 3.2 - clang_getTypeKindSpelling@Base 3.2 - clang_getTypeSpelling@Base 3.4 - clang_getTypedefDeclUnderlyingType@Base 3.2 - clang_hashCursor@Base 3.2 - clang_indexLoc_getCXSourceLocation@Base 3.2 - clang_indexLoc_getFileLocation@Base 3.2 - clang_indexSourceFile@Base 3.2 - clang_indexSourceFileFullArgv@Base 3.8 - clang_indexTranslationUnit@Base 3.2 - clang_index_getCXXClassDeclInfo@Base 3.2 - clang_index_getClientContainer@Base 3.2 - clang_index_getClientEntity@Base 3.2 - clang_index_getIBOutletCollectionAttrInfo@Base 3.2 - clang_index_getObjCCategoryDeclInfo@Base 3.2 - clang_index_getObjCContainerDeclInfo@Base 3.2 - clang_index_getObjCInterfaceDeclInfo@Base 3.2 - clang_index_getObjCPropertyDeclInfo@Base 3.2 - clang_index_getObjCProtocolRefListInfo@Base 3.2 - clang_index_isEntityObjCContainerKind@Base 3.2 - clang_index_setClientContainer@Base 3.2 - clang_index_setClientEntity@Base 3.2 - clang_isAttribute@Base 3.2 - clang_isConstQualifiedType@Base 3.2 - clang_isCursorDefinition@Base 3.2 - clang_isDeclaration@Base 3.2 - clang_isExpression@Base 3.2 - clang_isFileMultipleIncludeGuarded@Base 3.2 - clang_isFunctionTypeVariadic@Base 3.2 - clang_isInvalid@Base 3.2 - clang_isPODType@Base 3.2 - clang_isPreprocessing@Base 3.2 - clang_isReference@Base 3.2 - clang_isRestrictQualifiedType@Base 3.2 - clang_isStatement@Base 3.2 - clang_isTranslationUnit@Base 3.2 - clang_isUnexposed@Base 3.2 - clang_isVirtualBase@Base 3.2 - clang_isVolatileQualifiedType@Base 3.2 - clang_loadDiagnostics@Base 3.2 - clang_parseTranslationUnit2@Base 3.6 - clang_parseTranslationUnit2FullArgv@Base 3.8 - clang_parseTranslationUnit@Base 3.2 - clang_remap_dispose@Base 3.2 - clang_remap_getFilenames@Base 3.2 - clang_remap_getNumFiles@Base 3.2 - clang_reparseTranslationUnit@Base 3.2 - clang_saveTranslationUnit@Base 3.2 - clang_sortCodeCompletionResults@Base 3.2 - clang_toggleCrashRecovery@Base 3.2 - clang_tokenize@Base 3.2 - clang_visitChildren@Base 3.2 - clang_visitChildrenWithBlock@Base 3.2 + LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 4.0 + clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_BlockCommandComment_getParagraph@LLVM_@LLVM_VERSION@ 3.2 + clang_CXCursorSet_contains@LLVM_@LLVM_VERSION@ 3.2 + clang_CXCursorSet_insert@LLVM_@LLVM_VERSION@ 3.2 + clang_CXIndex_getGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_CXIndex_setGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_CXXConstructor_isConvertingConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isCopyConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isDefaultConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXConstructor_isMoveConstructor@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXField_isMutable@LLVM_@LLVM_VERSION@ 3.8 + clang_CXXMethod_isConst@LLVM_@LLVM_VERSION@ 3.4 + clang_CXXMethod_isDefaulted@LLVM_@LLVM_VERSION@ 3.9 + clang_CXXMethod_isPureVirtual@LLVM_@LLVM_VERSION@ 3.4 + clang_CXXMethod_isStatic@LLVM_@LLVM_VERSION@ 3.2 + clang_CXXMethod_isVirtual@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getChild@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getKind@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_getNumChildren@LLVM_@LLVM_VERSION@ 3.2 + clang_Comment_isWhitespace@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_fromDirectory@LLVM_@LLVM_VERSION@ 3.2 + clang_CompilationDatabase_getAllCompileCommands@LLVM_@LLVM_VERSION@ 3.4 + clang_CompilationDatabase_getCompileCommands@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getArg@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getDirectory@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommand_getFilename@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourceContent@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getMappedSourcePath@LLVM_@LLVM_VERSION@ 3.8 + clang_CompileCommand_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_getCommand@LLVM_@LLVM_VERSION@ 3.2 + clang_CompileCommands_getSize@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_Evaluate@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_getArgument@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getBriefCommentText@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getCXXManglings@LLVM_@LLVM_VERSION@ 3.8 + clang_Cursor_getCommentRange@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getMangling@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getModule@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getNumArguments@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getObjCDeclQualifiers@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCPropertyAttributes@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_getObjCSelectorIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getOffsetOfField@LLVM_@LLVM_VERSION@ 3.7 + clang_Cursor_getParsedComment@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getRawCommentText@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getReceiverType@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getSpellingNameRange@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_getStorageClass@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentKind@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentType@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentUnsignedValue@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTemplateArgumentValue@LLVM_@LLVM_VERSION@ 3.6 + clang_Cursor_getTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_hasAttrs@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isAnonymous@LLVM_@LLVM_VERSION@ 3.7 + clang_Cursor_isBitField@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_isDynamicCall@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_isFunctionInlined@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isMacroBuiltin@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isMacroFunctionLike@LLVM_@LLVM_VERSION@ 3.9 + clang_Cursor_isNull@LLVM_@LLVM_VERSION@ 3.2 + clang_Cursor_isObjCOptional@LLVM_@LLVM_VERSION@ 3.4 + clang_Cursor_isVariadic@LLVM_@LLVM_VERSION@ 3.4 + clang_EvalResult_dispose@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsDouble@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsInt@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsLongLong@LLVM_@LLVM_VERSION@ 4.0 + clang_EvalResult_getAsStr@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_getAsUnsigned@LLVM_@LLVM_VERSION@ 4.0 + clang_EvalResult_getKind@LLVM_@LLVM_VERSION@ 3.9 + clang_EvalResult_isUnsignedInt@LLVM_@LLVM_VERSION@ 4.0 + clang_File_isEqual@LLVM_@LLVM_VERSION@ 3.6 + clang_FullComment_getAsHTML@LLVM_@LLVM_VERSION@ 3.2 + clang_FullComment_getAsXML@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTagComment_isSelfClosing@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrName@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getAttrValue@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLStartTag_getNumAttrs@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getAsString@LLVM_@LLVM_VERSION@ 3.2 + clang_HTMLTagComment_getTagName@LLVM_@LLVM_VERSION@ 3.2 + clang_IndexAction_create@LLVM_@LLVM_VERSION@ 3.2 + clang_IndexAction_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineCommandComment_getRenderKind@LLVM_@LLVM_VERSION@ 3.2 + clang_InlineContentComment_hasTrailingNewline@LLVM_@LLVM_VERSION@ 3.2 + clang_Location_isFromMainFile@LLVM_@LLVM_VERSION@ 3.4 + clang_Location_isInSystemHeader@LLVM_@LLVM_VERSION@ 3.4 + clang_ModuleMapDescriptor_create@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_dispose@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setFrameworkModuleName@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_setUmbrellaHeader@LLVM_@LLVM_VERSION@ 3.6 + clang_ModuleMapDescriptor_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 + clang_Module_getASTFile@LLVM_@LLVM_VERSION@ 3.4 + clang_Module_getFullName@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getName@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getNumTopLevelHeaders@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getParent@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_getTopLevelHeader@LLVM_@LLVM_VERSION@ 3.2 + clang_Module_isSystem@LLVM_@LLVM_VERSION@ 3.6 + clang_ParamCommandComment_getDirection@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isDirectionExplicit@LLVM_@LLVM_VERSION@ 3.2 + clang_ParamCommandComment_isParamIndexValid@LLVM_@LLVM_VERSION@ 3.2 + clang_Range_isNull@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getDepth@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 + clang_TParamCommandComment_isParamPositionValid@LLVM_@LLVM_VERSION@ 3.2 + clang_TextComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_Type_getAlignOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getCXXRefQualifier@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getClassType@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getNamedType@LLVM_@LLVM_VERSION@ 3.9 + clang_Type_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 + clang_Type_getObjCEncoding@LLVM_@LLVM_VERSION@ 3.9 + clang_Type_getOffsetOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getSizeOf@LLVM_@LLVM_VERSION@ 3.4 + clang_Type_getTemplateArgumentAsType@LLVM_@LLVM_VERSION@ 3.6 + clang_Type_visitFields@LLVM_@LLVM_VERSION@ 3.7 + clang_VerbatimBlockLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_VerbatimLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 + clang_VirtualFileOverlay_addFileMapping@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_create@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_dispose@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_setCaseSensitivity@LLVM_@LLVM_VERSION@ 3.6 + clang_VirtualFileOverlay_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 + clang_annotateTokens@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteAt@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerKind@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContainerUSR@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetContexts@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_codeCompleteGetObjCSelector@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCCategory@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCClass@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCIvar@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCMethod@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProperty@LLVM_@LLVM_VERSION@ 3.2 + clang_constructUSR_ObjCProtocol@LLVM_@LLVM_VERSION@ 3.2 + clang_createCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 + clang_createIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_createTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 + clang_createTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_createTranslationUnitFromSourceFile@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultCodeCompleteOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultDiagnosticDisplayOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultEditingTranslationUnitOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultReparseOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_defaultSaveOptions@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeCodeCompleteResults@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeDiagnosticSet@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeIndex@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeSourceRangeList@LLVM_@LLVM_VERSION@ 3.6 + clang_disposeString@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeStringSet@LLVM_@LLVM_VERSION@ 3.8 + clang_disposeTokens@LLVM_@LLVM_VERSION@ 3.2 + clang_disposeTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_enableStackTraces@LLVM_@LLVM_VERSION@ 3.2 + clang_equalCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_equalLocations@LLVM_@LLVM_VERSION@ 3.2 + clang_equalRanges@LLVM_@LLVM_VERSION@ 3.2 + clang_equalTypes@LLVM_@LLVM_VERSION@ 3.2 + clang_executeOnThread@LLVM_@LLVM_VERSION@ 3.2 + clang_findIncludesInFile@LLVM_@LLVM_VERSION@ 3.4 + clang_findIncludesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.4 + clang_findReferencesInFile@LLVM_@LLVM_VERSION@ 3.2 + clang_findReferencesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.2 + clang_formatDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_free@LLVM_@LLVM_VERSION@ 3.7 + clang_getAllSkippedRanges@LLVM_@LLVM_VERSION@ 4.0 + clang_getArgType@LLVM_@LLVM_VERSION@ 3.2 + clang_getArrayElementType@LLVM_@LLVM_VERSION@ 3.2 + clang_getArraySize@LLVM_@LLVM_VERSION@ 3.2 + clang_getBuildSessionTimestamp@LLVM_@LLVM_VERSION@ 3.6 + clang_getCString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCXXAccessSpecifier@LLVM_@LLVM_VERSION@ 3.2 + clang_getCanonicalCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getCanonicalType@LLVM_@LLVM_VERSION@ 3.2 + clang_getChildDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_getClangVersion@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionAnnotation@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionBriefComment@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkCompletionString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionChunkText@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionNumAnnotations@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCompletionPriority@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorCompletionString@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorDisplayName@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorKindSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLanguage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLexicalParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLinkage@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorReferenceNameRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorReferenced@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorResultType@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorSemanticParent@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorType@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorUSR@LLVM_@LLVM_VERSION@ 3.2 + clang_getCursorVisibility@LLVM_@LLVM_VERSION@ 3.8 + clang_getDeclObjCTypeEncoding@LLVM_@LLVM_VERSION@ 3.2 + clang_getDefinitionSpellingAndExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnostic@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategory@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryName@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticCategoryText@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticFixIt@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticInSet@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumFixIts@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticNumRanges@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticOption@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSetFromTU@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSeverity@LLVM_@LLVM_VERSION@ 3.2 + clang_getDiagnosticSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getElementType@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclUnsignedValue@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumConstantDeclValue@LLVM_@LLVM_VERSION@ 3.2 + clang_getEnumDeclIntegerType@LLVM_@LLVM_VERSION@ 3.2 + clang_getExpansionLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getFieldDeclBitWidth@LLVM_@LLVM_VERSION@ 3.4 + clang_getFile@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileLocation@LLVM_@LLVM_VERSION@ 3.4 + clang_getFileName@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileTime@LLVM_@LLVM_VERSION@ 3.2 + clang_getFileUniqueID@LLVM_@LLVM_VERSION@ 3.4 + clang_getFunctionTypeCallingConv@LLVM_@LLVM_VERSION@ 3.2 + clang_getIBOutletCollectionType@LLVM_@LLVM_VERSION@ 3.2 + clang_getIncludedFile@LLVM_@LLVM_VERSION@ 3.2 + clang_getInclusions@LLVM_@LLVM_VERSION@ 3.2 + clang_getInstantiationLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getLocationForOffset@LLVM_@LLVM_VERSION@ 3.2 + clang_getModuleForFile@LLVM_@LLVM_VERSION@ 3.6 + clang_getNullCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getNullLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getNullRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumArgTypes@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumCompletionChunks@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumDiagnosticsInSet@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumElements@LLVM_@LLVM_VERSION@ 3.2 + clang_getNumOverloadedDecls@LLVM_@LLVM_VERSION@ 3.2 + clang_getOverloadedDecl@LLVM_@LLVM_VERSION@ 3.2 + clang_getOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 + clang_getPointeeType@LLVM_@LLVM_VERSION@ 3.2 + clang_getPresumedLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getRange@LLVM_@LLVM_VERSION@ 3.2 + clang_getRangeEnd@LLVM_@LLVM_VERSION@ 3.2 + clang_getRangeStart@LLVM_@LLVM_VERSION@ 3.2 + clang_getRemappings@LLVM_@LLVM_VERSION@ 3.2 + clang_getRemappingsFromFileList@LLVM_@LLVM_VERSION@ 3.2 + clang_getResultType@LLVM_@LLVM_VERSION@ 3.2 + clang_getSkippedRanges@LLVM_@LLVM_VERSION@ 3.6 + clang_getSpecializedCursorTemplate@LLVM_@LLVM_VERSION@ 3.2 + clang_getSpellingLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getTUResourceUsageName@LLVM_@LLVM_VERSION@ 3.2 + clang_getTemplateCursorKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenExtent@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenKind@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_getTokenSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTranslationUnitCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_getTranslationUnitSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeDeclaration@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeKindSpelling@LLVM_@LLVM_VERSION@ 3.2 + clang_getTypeSpelling@LLVM_@LLVM_VERSION@ 3.4 + clang_getTypedefDeclUnderlyingType@LLVM_@LLVM_VERSION@ 3.2 + clang_hashCursor@LLVM_@LLVM_VERSION@ 3.2 + clang_indexLoc_getCXSourceLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_indexLoc_getFileLocation@LLVM_@LLVM_VERSION@ 3.2 + clang_indexSourceFile@LLVM_@LLVM_VERSION@ 3.2 + clang_indexSourceFileFullArgv@LLVM_@LLVM_VERSION@ 3.8 + clang_indexTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getCXXClassDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getClientContainer@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getClientEntity@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getIBOutletCollectionAttrInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCCategoryDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCContainerDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCInterfaceDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCPropertyDeclInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_getObjCProtocolRefListInfo@LLVM_@LLVM_VERSION@ 3.2 + clang_index_isEntityObjCContainerKind@LLVM_@LLVM_VERSION@ 3.2 + clang_index_setClientContainer@LLVM_@LLVM_VERSION@ 3.2 + clang_index_setClientEntity@LLVM_@LLVM_VERSION@ 3.2 + clang_isAttribute@LLVM_@LLVM_VERSION@ 3.2 + clang_isConstQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_isCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 + clang_isDeclaration@LLVM_@LLVM_VERSION@ 3.2 + clang_isExpression@LLVM_@LLVM_VERSION@ 3.2 + clang_isFileMultipleIncludeGuarded@LLVM_@LLVM_VERSION@ 3.2 + clang_isFunctionTypeVariadic@LLVM_@LLVM_VERSION@ 3.2 + clang_isInvalid@LLVM_@LLVM_VERSION@ 3.2 + clang_isPODType@LLVM_@LLVM_VERSION@ 3.2 + clang_isPreprocessing@LLVM_@LLVM_VERSION@ 3.2 + clang_isReference@LLVM_@LLVM_VERSION@ 3.2 + clang_isRestrictQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_isStatement@LLVM_@LLVM_VERSION@ 3.2 + clang_isTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_isUnexposed@LLVM_@LLVM_VERSION@ 3.2 + clang_isVirtualBase@LLVM_@LLVM_VERSION@ 3.2 + clang_isVolatileQualifiedType@LLVM_@LLVM_VERSION@ 3.2 + clang_loadDiagnostics@LLVM_@LLVM_VERSION@ 3.2 + clang_parseTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 + clang_parseTranslationUnit2FullArgv@LLVM_@LLVM_VERSION@ 3.8 + clang_parseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_dispose@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_getFilenames@LLVM_@LLVM_VERSION@ 3.2 + clang_remap_getNumFiles@LLVM_@LLVM_VERSION@ 3.2 + clang_reparseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_saveTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 + clang_sortCodeCompletionResults@LLVM_@LLVM_VERSION@ 3.2 + clang_toggleCrashRecovery@LLVM_@LLVM_VERSION@ 3.2 + clang_tokenize@LLVM_@LLVM_VERSION@ 3.2 + clang_visitChildren@LLVM_@LLVM_VERSION@ 3.2 + clang_visitChildrenWithBlock@LLVM_@LLVM_VERSION@ 3.2 diff --git a/debian/patches/add_symbols_versioning.patch b/debian/patches/add_symbols_versioning.patch new file mode 100644 index 00000000..da2fddc0 --- /dev/null +++ b/debian/patches/add_symbols_versioning.patch @@ -0,0 +1,41 @@ +Description: add a simple linker script to version LLVM symbols + +This patch adds a very simple linker script to version the lib's symbols +and thus trying to avoid crashes if an application loads two different +LLVM versions (as long as they do not share data between them). + +Note that we deliberately *don't* make LLVM_3.9 depend on LLVM_3.8: +they're incompatible and the whole point of this patch is +to tell the linker that. + +Author: Rebecca N. Palmer +Author: Lisandro Damían Nicanor Pérez Meyer +Bug-Debian: https://bugs.debian.org/848368 + +--- llvm-toolchain-3.9-3.9.1.orig/tools/llvm-shlib/CMakeLists.txt ++++ llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/CMakeLists.txt +@@ -42,7 +42,7 @@ set_property(TARGET LLVM PROPERTY VERSIO + list(REMOVE_DUPLICATES LIB_NAMES) + if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "GNU" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "kFreeBSD") # FIXME: It should be "GNU ld for elf" + # GNU ld doesn't resolve symbols in the version script. +- set(LIB_NAMES -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) ++ set(LIB_NAMES -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/simple_version_script.map -Wl,--whole-archive ${LIB_NAMES} -Wl,--no-whole-archive) + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") + set(LIB_NAMES -Wl,-all_load ${LIB_NAMES}) + endif() +--- /dev/null ++++ llvm-toolchain-3.9-3.9.1/tools/llvm-shlib/simple_version_script.map +@@ -0,0 +1 @@ ++LLVM_3.9 { global: *; }; +--- llvm-toolchain-3.9-3.9.1.orig/cmake/modules/AddLLVM.cmake ++++ llvm-toolchain-3.9-3.9.1/cmake/modules/AddLLVM.cmake +@@ -74,7 +74,7 @@ function(add_llvm_symbol_exports target_ + set(native_export_file "${target_name}.exports") + # FIXME: Don't write the "local:" line on OpenBSD. + add_custom_command(OUTPUT ${native_export_file} +- COMMAND echo "{" > ${native_export_file} ++ COMMAND echo "LLVM_4.0 {" > ${native_export_file} + COMMAND grep -q "[[:alnum:]]" ${export_file} && echo " global:" >> ${native_export_file} || : + COMMAND sed -e "s/$/;/" -e "s/^/ /" < ${export_file} >> ${native_export_file} + COMMAND echo " local: *;" >> ${native_export_file} + diff --git a/debian/patches/series b/debian/patches/series index b7baf634..0af13e9e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -45,3 +45,4 @@ lldb-missing-install.diff silent-test-failing-codeverage.diff silent-amdgpu-test-failing.diff pthread-link.diff +add_symbols_versioning.patch From 749937e1ed62428d651b9a3643ff06d0f7ebf2a6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 20 Mar 2017 13:49:26 +0000 Subject: [PATCH 76/89] fix changelog --- debian/NEWS | 10 ---------- debian/changelog | 10 +++++++--- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/debian/NEWS b/debian/NEWS index ffdd637c..91160e68 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,13 +1,3 @@ -llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium - - * Libraries ship with ELF symbols versions. This will address the issue of - a binary using to different versions of LLVM in parallel - This also means that every library using LLVM library or clang library - will have to be relinked against this new version - Thanks to Rebecca N. Palmer for the change (Closes: #848368) - - -- Sylvestre Ledru Sun, 19 Mar 2017 20:29:22 +0100 - llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium * clang is now co-instalable. Available on version 3.4, 3.5 and 3.6 diff --git a/debian/changelog b/debian/changelog index 44e69d2d..5f326b18 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,4 @@ -llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium - - * Fix the incorrect symlink to scan-build-py (Closes: #856869) +llvm-toolchain-3.9 (1:3.9.1-6~exp1) experimental; urgency=medium [ Rebecca N. Palmer ] * Allow '!pointer' in OpenCL (Closes: #857623) @@ -9,6 +7,12 @@ llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium -- Sylvestre Ledru Sun, 19 Mar 2017 10:12:03 +0100 +llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium + + * Fix the incorrect symlink to scan-build-py (Closes: #856869) + + -- Sylvestre Ledru Sun, 12 Mar 2017 10:01:10 +0100 + llvm-toolchain-3.9 (1:3.9.1-4) unstable; urgency=medium * d/p/amdgpu-regression.diff Fix a regression impacting mesa From 66508b8c33a6b2becba9b18b2b2c976fbfdb1e70 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 15:34:29 +0000 Subject: [PATCH 77/89] remove the news element --- debian/NEWS | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/debian/NEWS b/debian/NEWS index 3725ee54..91160e68 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,13 +1,3 @@ -llvm-toolchain-3.8 (1:3.8.1-19~exp1) experimental; urgency=medium - - * Libraries ship with ELF symbols versions. This will address the issue of - a binary using to different versions of LLVM in parallel - This also means that every library using LLVM library or clang library - will have to be relinked against this new version - Thanks to Rebecca N. Palmer for the change (Closes: #848368) - - -- Sylvestre Ledru Sun, 19 Mar 2017 20:29:22 +0100 - llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium * clang is now co-instalable. Available on version 3.4, 3.5 and 3.6 From 4071973c299df2fb578c277f0180b9b76bee2fdd Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 15:34:29 +0000 Subject: [PATCH 78/89] remove the news element --- debian/NEWS | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/debian/NEWS b/debian/NEWS index ffdd637c..91160e68 100644 --- a/debian/NEWS +++ b/debian/NEWS @@ -1,13 +1,3 @@ -llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium - - * Libraries ship with ELF symbols versions. This will address the issue of - a binary using to different versions of LLVM in parallel - This also means that every library using LLVM library or clang library - will have to be relinked against this new version - Thanks to Rebecca N. Palmer for the change (Closes: #848368) - - -- Sylvestre Ledru Sun, 19 Mar 2017 20:29:22 +0100 - llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium * clang is now co-instalable. Available on version 3.4, 3.5 and 3.6 From 6732e2d1f7fce34bbd8e3e591020d990bd0b2021 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 15:36:00 +0000 Subject: [PATCH 79/89] mark the first symbol as (optional) as it differs from ld and gold --- debian/libclang1-X.Y.symbols.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index cd792e3e..0875466d 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,5 +1,5 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 3.8 + (optional)LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 3.8 clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 From ab85de3e5e472f41f2e3989aa547692d4f6ec67d Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 15:36:00 +0000 Subject: [PATCH 80/89] mark the first symbol as (optional) as it differs from ld and gold --- debian/libclang1-X.Y.symbols.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index d85065b9..615960a9 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,5 +1,5 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 3.9 + (optional)LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 3.9 clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 From 39caf647a3a56ffe54b8d1aa1a58cd980cdcfb76 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 15:36:00 +0000 Subject: [PATCH 81/89] mark the first symbol as (optional) as it differs from ld and gold --- debian/libclang1-X.Y.symbols.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index ef4669b0..e600dd43 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,5 +1,5 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 4.0 + (optional)LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 4.0 clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 From 3c6c4774672a3b4333a91bda693c6ceb6aec54b6 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 15:38:35 +0000 Subject: [PATCH 82/89] mark the first symbol as (optional) as it differs from ld and gold --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 83fca340..4b55e56f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.8 (1:3.8.1-19~exp2) experimental; urgency=medium + + * mark the first symbol as (optional) as it differs from ld and gold + + -- Sylvestre Ledru Sat, 25 Mar 2017 16:37:44 +0100 + llvm-toolchain-3.8 (1:3.8.1-19~exp1) experimental; urgency=medium [ Rebecca N. Palmer ] From d30c4bd98b3caa81d613befc2111b134ad5df0e4 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 15:38:39 +0000 Subject: [PATCH 83/89] mark the first symbol as (optional) as it differs from ld and gold --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 5f326b18..977fe7dc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.9 (1:3.9.1-6~exp2) experimental; urgency=medium + + * mark the first symbol as (optional) as it differs from ld and gold + + -- Sylvestre Ledru Sat, 25 Mar 2017 16:37:44 +0100 + llvm-toolchain-3.9 (1:3.9.1-6~exp1) experimental; urgency=medium [ Rebecca N. Palmer ] From 1fc70cb75078d6a7d5b03b5dcfb0c315c25afd02 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 25 Mar 2017 21:38:27 +0000 Subject: [PATCH 84/89] remove the empty llvm package (Closes: #858626) --- debian/changelog | 1 + debian/control | 24 ++---------------------- debian/rules | 9 +-------- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4b55e56f..f9eb306c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,7 @@ llvm-toolchain-3.8 (1:3.8.1-19~exp2) experimental; urgency=medium * mark the first symbol as (optional) as it differs from ld and gold + * remove the empty llvm package (Closes: #858626) -- Sylvestre Ledru Sat, 25 Mar 2017 16:37:44 +0100 diff --git a/debian/control b/debian/control index 61e2cf7b..71f59456 100644 --- a/debian/control +++ b/debian/control @@ -6,9 +6,9 @@ Uploaders: Sylvestre Ledru Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, cmake, perl, libtool, chrpath, texinfo, sharutils, libffi-dev (>= 3.0.9), lsb-release, patchutils, diffstat, xz-utils, python-dev, - libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, + libedit-dev, swig, python-six, python-sphinx, binutils-dev, libjsoncpp-dev, - lcov, procps, help2man, dh-ocaml, zlib1g-dev, + lcov, procps, help2man, zlib1g-dev, g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev @@ -331,26 +331,6 @@ Description: Modular compiler and toolchain technologies, tools . This package provides tools for testing. -Package: libllvm-3.8-ocaml-dev -Section: ocaml -Architecture: any -Suggests: llvm-3.8-doc -Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-3.8-dev (= ${binary:Version}) -Provides: ${ocaml:Provides} -Description: Modular compiler and toolchain technologies, OCaml bindings - LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, just-in-time code generators, and many other - compiler-related programs. - . - LLVM uses a single, language-independent virtual instruction set both - as an offline code representation (to communicate code between - compiler phases and to run-time systems) and as the compiler internal - representation (to analyze and transform programs). This persistent - code representation allows a common set of sophisticated compiler - techniques to be applied at compile-time, link-time, install-time, - run-time, or "idle-time" (between program runs). - . - This package provides the OCaml bindings to develop applications using llvm. Package: llvm-3.8-doc Section: doc diff --git a/debian/rules b/debian/rules index 82469f3c..18c2aa77 100755 --- a/debian/rules +++ b/debian/rules @@ -27,8 +27,6 @@ DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_HOST_ARCH_BITS = $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) -OCAML_STDLIB_DIR ?= $(shell ocamlc -where) - LDFLAGS_EXTRA = CXXFLAGS_EXTRA = -std=c++0x -gsplit-dwarf CONFIGURE_EXTRA = @@ -138,7 +136,7 @@ endif %: - dh $@ --with ocaml + dh $@ @@ -147,15 +145,10 @@ preconfigure: f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \ echo "$$f => $$f2"; \ sed -e 's|@DEB_HOST_MULTIARCH@|$(DEB_HOST_MULTIARCH)|g' \ - -e "s|@OCAML_STDLIB_DIR@|$(OCAML_STDLIB_DIR)|g" \ -e "s|@LLVM_VERSION_FULL@|$(LLVM_VERSION_FULL)|g" \ -e "s|@LLVM_VERSION@|$(LLVM_VERSION)|g" $$f > $$f2; \ done -# Override this two targets. They are trying to manage the .in conversion for me -override_dh_ocamlinit: -override_dh_ocamlclean: - override_dh_auto_configure: preconfigure echo "Using gcc: " $(CC) -v From 5d836efc1563a03642525263e41d0aab5e4678f0 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 26 Mar 2017 17:55:53 +0000 Subject: [PATCH 85/89] change the min version of the libclang1 symbols to 1:3.8.1-19~ --- debian/changelog | 6 + debian/libclang1-X.Y.symbols.in | 646 ++++++++++++++++---------------- 2 files changed, 329 insertions(+), 323 deletions(-) diff --git a/debian/changelog b/debian/changelog index f9eb306c..c46c708e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.8 (1:3.8.1-19~exp3) experimental; urgency=medium + + * change the min version of the libclang1 symbols to 1:3.8.1-19~ + + -- Sylvestre Ledru Sun, 26 Mar 2017 17:19:38 +0200 + llvm-toolchain-3.8 (1:3.8.1-19~exp2) experimental; urgency=medium * mark the first symbol as (optional) as it differs from ld and gold diff --git a/debian/libclang1-X.Y.symbols.in b/debian/libclang1-X.Y.symbols.in index 0875466d..7ccf4bac 100644 --- a/debian/libclang1-X.Y.symbols.in +++ b/debian/libclang1-X.Y.symbols.in @@ -1,324 +1,324 @@ libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER# - (optional)LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 3.8 - clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 - clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 - clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 - clang_BlockCommandComment_getParagraph@LLVM_@LLVM_VERSION@ 3.2 - clang_CXCursorSet_contains@LLVM_@LLVM_VERSION@ 3.2 - clang_CXCursorSet_insert@LLVM_@LLVM_VERSION@ 3.2 - clang_CXIndex_getGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 - clang_CXIndex_setGlobalOptions@LLVM_@LLVM_VERSION@ 3.2 - clang_CXXField_isMutable@LLVM_@LLVM_VERSION@ 3.8 - clang_CXXMethod_isConst@LLVM_@LLVM_VERSION@ 3.4 - clang_CXXMethod_isPureVirtual@LLVM_@LLVM_VERSION@ 3.4 - clang_CXXMethod_isStatic@LLVM_@LLVM_VERSION@ 3.2 - clang_CXXMethod_isVirtual@LLVM_@LLVM_VERSION@ 3.2 - clang_Comment_getChild@LLVM_@LLVM_VERSION@ 3.2 - clang_Comment_getKind@LLVM_@LLVM_VERSION@ 3.2 - clang_Comment_getNumChildren@LLVM_@LLVM_VERSION@ 3.2 - clang_Comment_isWhitespace@LLVM_@LLVM_VERSION@ 3.2 - clang_CompilationDatabase_dispose@LLVM_@LLVM_VERSION@ 3.2 - clang_CompilationDatabase_fromDirectory@LLVM_@LLVM_VERSION@ 3.2 - clang_CompilationDatabase_getAllCompileCommands@LLVM_@LLVM_VERSION@ 3.4 - clang_CompilationDatabase_getCompileCommands@LLVM_@LLVM_VERSION@ 3.2 - clang_CompileCommand_getArg@LLVM_@LLVM_VERSION@ 3.2 - clang_CompileCommand_getDirectory@LLVM_@LLVM_VERSION@ 3.2 - clang_CompileCommand_getFilename@LLVM_@LLVM_VERSION@ 3.8 - clang_CompileCommand_getMappedSourceContent@LLVM_@LLVM_VERSION@ 3.8 - clang_CompileCommand_getMappedSourcePath@LLVM_@LLVM_VERSION@ 3.8 - clang_CompileCommand_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 - clang_CompileCommands_dispose@LLVM_@LLVM_VERSION@ 3.2 - clang_CompileCommands_getCommand@LLVM_@LLVM_VERSION@ 3.2 - clang_CompileCommands_getSize@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getArgument@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getBriefCommentText@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getCXXManglings@LLVM_@LLVM_VERSION@ 3.8 - clang_Cursor_getCommentRange@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getMangling@LLVM_@LLVM_VERSION@ 3.6 - clang_Cursor_getModule@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getNumArguments@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 - clang_Cursor_getObjCDeclQualifiers@LLVM_@LLVM_VERSION@ 3.4 - clang_Cursor_getObjCPropertyAttributes@LLVM_@LLVM_VERSION@ 3.4 - clang_Cursor_getObjCSelectorIndex@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getOffsetOfField@LLVM_@LLVM_VERSION@ 3.7 - clang_Cursor_getParsedComment@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getRawCommentText@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getReceiverType@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getSpellingNameRange@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_getStorageClass@LLVM_@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentKind@LLVM_@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentType@LLVM_@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentUnsignedValue@LLVM_@LLVM_VERSION@ 3.6 - clang_Cursor_getTemplateArgumentValue@LLVM_@LLVM_VERSION@ 3.6 - clang_Cursor_getTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_isAnonymous@LLVM_@LLVM_VERSION@ 3.7 - clang_Cursor_isBitField@LLVM_@LLVM_VERSION@ 3.4 - clang_Cursor_isDynamicCall@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_isNull@LLVM_@LLVM_VERSION@ 3.2 - clang_Cursor_isObjCOptional@LLVM_@LLVM_VERSION@ 3.4 - clang_Cursor_isVariadic@LLVM_@LLVM_VERSION@ 3.4 - clang_File_isEqual@LLVM_@LLVM_VERSION@ 3.6 - clang_FullComment_getAsHTML@LLVM_@LLVM_VERSION@ 3.2 - clang_FullComment_getAsXML@LLVM_@LLVM_VERSION@ 3.2 - clang_HTMLStartTagComment_isSelfClosing@LLVM_@LLVM_VERSION@ 3.2 - clang_HTMLStartTag_getAttrName@LLVM_@LLVM_VERSION@ 3.2 - clang_HTMLStartTag_getAttrValue@LLVM_@LLVM_VERSION@ 3.2 - clang_HTMLStartTag_getNumAttrs@LLVM_@LLVM_VERSION@ 3.2 - clang_HTMLTagComment_getAsString@LLVM_@LLVM_VERSION@ 3.2 - clang_HTMLTagComment_getTagName@LLVM_@LLVM_VERSION@ 3.2 - clang_IndexAction_create@LLVM_@LLVM_VERSION@ 3.2 - clang_IndexAction_dispose@LLVM_@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getArgText@LLVM_@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 3.2 - clang_InlineCommandComment_getRenderKind@LLVM_@LLVM_VERSION@ 3.2 - clang_InlineContentComment_hasTrailingNewline@LLVM_@LLVM_VERSION@ 3.2 - clang_Location_isFromMainFile@LLVM_@LLVM_VERSION@ 3.4 - clang_Location_isInSystemHeader@LLVM_@LLVM_VERSION@ 3.4 - clang_ModuleMapDescriptor_create@LLVM_@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_dispose@LLVM_@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_setFrameworkModuleName@LLVM_@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_setUmbrellaHeader@LLVM_@LLVM_VERSION@ 3.6 - clang_ModuleMapDescriptor_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 - clang_Module_getASTFile@LLVM_@LLVM_VERSION@ 3.4 - clang_Module_getFullName@LLVM_@LLVM_VERSION@ 3.2 - clang_Module_getName@LLVM_@LLVM_VERSION@ 3.2 - clang_Module_getNumTopLevelHeaders@LLVM_@LLVM_VERSION@ 3.2 - clang_Module_getParent@LLVM_@LLVM_VERSION@ 3.2 - clang_Module_getTopLevelHeader@LLVM_@LLVM_VERSION@ 3.2 - clang_Module_isSystem@LLVM_@LLVM_VERSION@ 3.6 - clang_ParamCommandComment_getDirection@LLVM_@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_getParamIndex@LLVM_@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_isDirectionExplicit@LLVM_@LLVM_VERSION@ 3.2 - clang_ParamCommandComment_isParamIndexValid@LLVM_@LLVM_VERSION@ 3.2 - clang_Range_isNull@LLVM_@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_getDepth@LLVM_@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_getIndex@LLVM_@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 3.2 - clang_TParamCommandComment_isParamPositionValid@LLVM_@LLVM_VERSION@ 3.2 - clang_TextComment_getText@LLVM_@LLVM_VERSION@ 3.2 - clang_Type_getAlignOf@LLVM_@LLVM_VERSION@ 3.4 - clang_Type_getCXXRefQualifier@LLVM_@LLVM_VERSION@ 3.4 - clang_Type_getClassType@LLVM_@LLVM_VERSION@ 3.4 - clang_Type_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 3.6 - clang_Type_getOffsetOf@LLVM_@LLVM_VERSION@ 3.4 - clang_Type_getSizeOf@LLVM_@LLVM_VERSION@ 3.4 - clang_Type_getTemplateArgumentAsType@LLVM_@LLVM_VERSION@ 3.6 - clang_Type_visitFields@LLVM_@LLVM_VERSION@ 3.7 - clang_VerbatimBlockLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 - clang_VerbatimLineComment_getText@LLVM_@LLVM_VERSION@ 3.2 - clang_VirtualFileOverlay_addFileMapping@LLVM_@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_create@LLVM_@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_dispose@LLVM_@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_setCaseSensitivity@LLVM_@LLVM_VERSION@ 3.6 - clang_VirtualFileOverlay_writeToBuffer@LLVM_@LLVM_VERSION@ 3.6 - clang_annotateTokens@LLVM_@LLVM_VERSION@ 3.2 - clang_codeCompleteAt@LLVM_@LLVM_VERSION@ 3.2 - clang_codeCompleteGetContainerKind@LLVM_@LLVM_VERSION@ 3.2 - clang_codeCompleteGetContainerUSR@LLVM_@LLVM_VERSION@ 3.2 - clang_codeCompleteGetContexts@LLVM_@LLVM_VERSION@ 3.2 - clang_codeCompleteGetDiagnostic@LLVM_@LLVM_VERSION@ 3.2 - clang_codeCompleteGetNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 - clang_codeCompleteGetObjCSelector@LLVM_@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCCategory@LLVM_@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCClass@LLVM_@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCIvar@LLVM_@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCMethod@LLVM_@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCProperty@LLVM_@LLVM_VERSION@ 3.2 - clang_constructUSR_ObjCProtocol@LLVM_@LLVM_VERSION@ 3.2 - clang_createCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 - clang_createIndex@LLVM_@LLVM_VERSION@ 3.2 - clang_createTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 - clang_createTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_createTranslationUnitFromSourceFile@LLVM_@LLVM_VERSION@ 3.2 - clang_defaultCodeCompleteOptions@LLVM_@LLVM_VERSION@ 3.2 - clang_defaultDiagnosticDisplayOptions@LLVM_@LLVM_VERSION@ 3.2 - clang_defaultEditingTranslationUnitOptions@LLVM_@LLVM_VERSION@ 3.2 - clang_defaultReparseOptions@LLVM_@LLVM_VERSION@ 3.2 - clang_defaultSaveOptions@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeCXCursorSet@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeCXPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeCodeCompleteResults@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeDiagnostic@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeDiagnosticSet@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeIndex@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeSourceRangeList@LLVM_@LLVM_VERSION@ 3.6 - clang_disposeString@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeStringSet@LLVM_@LLVM_VERSION@ 3.8 - clang_disposeTokens@LLVM_@LLVM_VERSION@ 3.2 - clang_disposeTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_enableStackTraces@LLVM_@LLVM_VERSION@ 3.2 - clang_equalCursors@LLVM_@LLVM_VERSION@ 3.2 - clang_equalLocations@LLVM_@LLVM_VERSION@ 3.2 - clang_equalRanges@LLVM_@LLVM_VERSION@ 3.2 - clang_equalTypes@LLVM_@LLVM_VERSION@ 3.2 - clang_executeOnThread@LLVM_@LLVM_VERSION@ 3.2 - clang_findIncludesInFile@LLVM_@LLVM_VERSION@ 3.4 - clang_findIncludesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.4 - clang_findReferencesInFile@LLVM_@LLVM_VERSION@ 3.2 - clang_findReferencesInFileWithBlock@LLVM_@LLVM_VERSION@ 3.2 - clang_formatDiagnostic@LLVM_@LLVM_VERSION@ 3.2 - clang_free@LLVM_@LLVM_VERSION@ 3.7 - clang_getArgType@LLVM_@LLVM_VERSION@ 3.2 - clang_getArrayElementType@LLVM_@LLVM_VERSION@ 3.2 - clang_getArraySize@LLVM_@LLVM_VERSION@ 3.2 - clang_getBuildSessionTimestamp@LLVM_@LLVM_VERSION@ 3.6 - clang_getCString@LLVM_@LLVM_VERSION@ 3.2 - clang_getCXTUResourceUsage@LLVM_@LLVM_VERSION@ 3.2 - clang_getCXXAccessSpecifier@LLVM_@LLVM_VERSION@ 3.2 - clang_getCanonicalCursor@LLVM_@LLVM_VERSION@ 3.2 - clang_getCanonicalType@LLVM_@LLVM_VERSION@ 3.2 - clang_getChildDiagnostics@LLVM_@LLVM_VERSION@ 3.2 - clang_getClangVersion@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionAnnotation@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionAvailability@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionBriefComment@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionChunkCompletionString@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionChunkKind@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionChunkText@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionNumAnnotations@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionParent@LLVM_@LLVM_VERSION@ 3.2 - clang_getCompletionPriority@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursor@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorAvailability@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorCompletionString@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorDisplayName@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorExtent@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorKind@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorKindSpelling@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorLanguage@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorLexicalParent@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorLinkage@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorPlatformAvailability@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorReferenceNameRange@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorReferenced@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorResultType@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorSemanticParent@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorSpelling@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorType@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorUSR@LLVM_@LLVM_VERSION@ 3.2 - clang_getCursorVisibility@LLVM_@LLVM_VERSION@ 3.8 - clang_getDeclObjCTypeEncoding@LLVM_@LLVM_VERSION@ 3.2 - clang_getDefinitionSpellingAndExtent@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnostic@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticCategory@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticCategoryName@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticCategoryText@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticFixIt@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticInSet@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticNumFixIts@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticNumRanges@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticOption@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticRange@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticSetFromTU@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticSeverity@LLVM_@LLVM_VERSION@ 3.2 - clang_getDiagnosticSpelling@LLVM_@LLVM_VERSION@ 3.2 - clang_getElementType@LLVM_@LLVM_VERSION@ 3.2 - clang_getEnumConstantDeclUnsignedValue@LLVM_@LLVM_VERSION@ 3.2 - clang_getEnumConstantDeclValue@LLVM_@LLVM_VERSION@ 3.2 - clang_getEnumDeclIntegerType@LLVM_@LLVM_VERSION@ 3.2 - clang_getExpansionLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getFieldDeclBitWidth@LLVM_@LLVM_VERSION@ 3.4 - clang_getFile@LLVM_@LLVM_VERSION@ 3.2 - clang_getFileLocation@LLVM_@LLVM_VERSION@ 3.4 - clang_getFileName@LLVM_@LLVM_VERSION@ 3.2 - clang_getFileTime@LLVM_@LLVM_VERSION@ 3.2 - clang_getFileUniqueID@LLVM_@LLVM_VERSION@ 3.4 - clang_getFunctionTypeCallingConv@LLVM_@LLVM_VERSION@ 3.2 - clang_getIBOutletCollectionType@LLVM_@LLVM_VERSION@ 3.2 - clang_getIncludedFile@LLVM_@LLVM_VERSION@ 3.2 - clang_getInclusions@LLVM_@LLVM_VERSION@ 3.2 - clang_getInstantiationLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getLocationForOffset@LLVM_@LLVM_VERSION@ 3.2 - clang_getModuleForFile@LLVM_@LLVM_VERSION@ 3.6 - clang_getNullCursor@LLVM_@LLVM_VERSION@ 3.2 - clang_getNullLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getNullRange@LLVM_@LLVM_VERSION@ 3.2 - clang_getNumArgTypes@LLVM_@LLVM_VERSION@ 3.2 - clang_getNumCompletionChunks@LLVM_@LLVM_VERSION@ 3.2 - clang_getNumDiagnostics@LLVM_@LLVM_VERSION@ 3.2 - clang_getNumDiagnosticsInSet@LLVM_@LLVM_VERSION@ 3.2 - clang_getNumElements@LLVM_@LLVM_VERSION@ 3.2 - clang_getNumOverloadedDecls@LLVM_@LLVM_VERSION@ 3.2 - clang_getOverloadedDecl@LLVM_@LLVM_VERSION@ 3.2 - clang_getOverriddenCursors@LLVM_@LLVM_VERSION@ 3.2 - clang_getPointeeType@LLVM_@LLVM_VERSION@ 3.2 - clang_getPresumedLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getRange@LLVM_@LLVM_VERSION@ 3.2 - clang_getRangeEnd@LLVM_@LLVM_VERSION@ 3.2 - clang_getRangeStart@LLVM_@LLVM_VERSION@ 3.2 - clang_getRemappings@LLVM_@LLVM_VERSION@ 3.2 - clang_getRemappingsFromFileList@LLVM_@LLVM_VERSION@ 3.2 - clang_getResultType@LLVM_@LLVM_VERSION@ 3.2 - clang_getSkippedRanges@LLVM_@LLVM_VERSION@ 3.6 - clang_getSpecializedCursorTemplate@LLVM_@LLVM_VERSION@ 3.2 - clang_getSpellingLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getTUResourceUsageName@LLVM_@LLVM_VERSION@ 3.2 - clang_getTemplateCursorKind@LLVM_@LLVM_VERSION@ 3.2 - clang_getTokenExtent@LLVM_@LLVM_VERSION@ 3.2 - clang_getTokenKind@LLVM_@LLVM_VERSION@ 3.2 - clang_getTokenLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_getTokenSpelling@LLVM_@LLVM_VERSION@ 3.2 - clang_getTranslationUnitCursor@LLVM_@LLVM_VERSION@ 3.2 - clang_getTranslationUnitSpelling@LLVM_@LLVM_VERSION@ 3.2 - clang_getTypeDeclaration@LLVM_@LLVM_VERSION@ 3.2 - clang_getTypeKindSpelling@LLVM_@LLVM_VERSION@ 3.2 - clang_getTypeSpelling@LLVM_@LLVM_VERSION@ 3.4 - clang_getTypedefDeclUnderlyingType@LLVM_@LLVM_VERSION@ 3.2 - clang_hashCursor@LLVM_@LLVM_VERSION@ 3.2 - clang_indexLoc_getCXSourceLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_indexLoc_getFileLocation@LLVM_@LLVM_VERSION@ 3.2 - clang_indexSourceFile@LLVM_@LLVM_VERSION@ 3.2 - clang_indexSourceFileFullArgv@LLVM_@LLVM_VERSION@ 3.8 - clang_indexTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getCXXClassDeclInfo@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getClientContainer@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getClientEntity@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getIBOutletCollectionAttrInfo@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getObjCCategoryDeclInfo@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getObjCContainerDeclInfo@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getObjCInterfaceDeclInfo@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getObjCPropertyDeclInfo@LLVM_@LLVM_VERSION@ 3.2 - clang_index_getObjCProtocolRefListInfo@LLVM_@LLVM_VERSION@ 3.2 - clang_index_isEntityObjCContainerKind@LLVM_@LLVM_VERSION@ 3.2 - clang_index_setClientContainer@LLVM_@LLVM_VERSION@ 3.2 - clang_index_setClientEntity@LLVM_@LLVM_VERSION@ 3.2 - clang_isAttribute@LLVM_@LLVM_VERSION@ 3.2 - clang_isConstQualifiedType@LLVM_@LLVM_VERSION@ 3.2 - clang_isCursorDefinition@LLVM_@LLVM_VERSION@ 3.2 - clang_isDeclaration@LLVM_@LLVM_VERSION@ 3.2 - clang_isExpression@LLVM_@LLVM_VERSION@ 3.2 - clang_isFileMultipleIncludeGuarded@LLVM_@LLVM_VERSION@ 3.2 - clang_isFunctionTypeVariadic@LLVM_@LLVM_VERSION@ 3.2 - clang_isInvalid@LLVM_@LLVM_VERSION@ 3.2 - clang_isPODType@LLVM_@LLVM_VERSION@ 3.2 - clang_isPreprocessing@LLVM_@LLVM_VERSION@ 3.2 - clang_isReference@LLVM_@LLVM_VERSION@ 3.2 - clang_isRestrictQualifiedType@LLVM_@LLVM_VERSION@ 3.2 - clang_isStatement@LLVM_@LLVM_VERSION@ 3.2 - clang_isTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_isUnexposed@LLVM_@LLVM_VERSION@ 3.2 - clang_isVirtualBase@LLVM_@LLVM_VERSION@ 3.2 - clang_isVolatileQualifiedType@LLVM_@LLVM_VERSION@ 3.2 - clang_loadDiagnostics@LLVM_@LLVM_VERSION@ 3.2 - clang_parseTranslationUnit2@LLVM_@LLVM_VERSION@ 3.6 - clang_parseTranslationUnit2FullArgv@LLVM_@LLVM_VERSION@ 3.8 - clang_parseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_remap_dispose@LLVM_@LLVM_VERSION@ 3.2 - clang_remap_getFilenames@LLVM_@LLVM_VERSION@ 3.2 - clang_remap_getNumFiles@LLVM_@LLVM_VERSION@ 3.2 - clang_reparseTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_saveTranslationUnit@LLVM_@LLVM_VERSION@ 3.2 - clang_sortCodeCompletionResults@LLVM_@LLVM_VERSION@ 3.2 - clang_toggleCrashRecovery@LLVM_@LLVM_VERSION@ 3.2 - clang_tokenize@LLVM_@LLVM_VERSION@ 3.2 - clang_visitChildren@LLVM_@LLVM_VERSION@ 3.2 - clang_visitChildrenWithBlock@LLVM_@LLVM_VERSION@ 3.2 + (optional)LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_BlockCommandComment_getParagraph@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXCursorSet_contains@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXCursorSet_insert@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXIndex_getGlobalOptions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXIndex_setGlobalOptions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXXField_isMutable@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXXMethod_isConst@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXXMethod_isPureVirtual@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXXMethod_isStatic@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CXXMethod_isVirtual@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Comment_getChild@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Comment_getKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Comment_getNumChildren@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Comment_isWhitespace@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompilationDatabase_dispose@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompilationDatabase_fromDirectory@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompilationDatabase_getAllCompileCommands@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompilationDatabase_getCompileCommands@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommand_getArg@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommand_getDirectory@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommand_getFilename@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommand_getMappedSourceContent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommand_getMappedSourcePath@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommand_getNumArgs@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommands_dispose@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommands_getCommand@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_CompileCommands_getSize@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getArgument@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getBriefCommentText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getCXXManglings@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getCommentRange@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getMangling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getModule@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getNumArguments@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getObjCDeclQualifiers@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getObjCPropertyAttributes@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getObjCSelectorIndex@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getOffsetOfField@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getParsedComment@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getRawCommentText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getReceiverType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getSpellingNameRange@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getStorageClass@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getTemplateArgumentKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getTemplateArgumentType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getTemplateArgumentUnsignedValue@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getTemplateArgumentValue@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_getTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_isAnonymous@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_isBitField@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_isDynamicCall@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_isNull@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_isObjCOptional@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Cursor_isVariadic@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_File_isEqual@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_FullComment_getAsHTML@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_FullComment_getAsXML@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_HTMLStartTagComment_isSelfClosing@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_HTMLStartTag_getAttrName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_HTMLStartTag_getAttrValue@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_HTMLStartTag_getNumAttrs@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_HTMLTagComment_getAsString@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_HTMLTagComment_getTagName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_IndexAction_create@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_IndexAction_dispose@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_InlineCommandComment_getArgText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_InlineCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_InlineCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_InlineCommandComment_getRenderKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_InlineContentComment_hasTrailingNewline@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Location_isFromMainFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Location_isInSystemHeader@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ModuleMapDescriptor_create@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ModuleMapDescriptor_dispose@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ModuleMapDescriptor_setFrameworkModuleName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ModuleMapDescriptor_setUmbrellaHeader@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ModuleMapDescriptor_writeToBuffer@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Module_getASTFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Module_getFullName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Module_getName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Module_getNumTopLevelHeaders@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Module_getParent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Module_getTopLevelHeader@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Module_isSystem@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ParamCommandComment_getDirection@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ParamCommandComment_getParamIndex@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ParamCommandComment_isDirectionExplicit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_ParamCommandComment_isParamIndexValid@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Range_isNull@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_TParamCommandComment_getDepth@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_TParamCommandComment_getIndex@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_TParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_TParamCommandComment_isParamPositionValid@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_TextComment_getText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_getAlignOf@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_getCXXRefQualifier@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_getClassType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_getOffsetOf@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_getSizeOf@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_getTemplateArgumentAsType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_Type_visitFields@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_VerbatimBlockLineComment_getText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_VerbatimLineComment_getText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_VirtualFileOverlay_addFileMapping@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_VirtualFileOverlay_create@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_VirtualFileOverlay_dispose@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_VirtualFileOverlay_setCaseSensitivity@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_VirtualFileOverlay_writeToBuffer@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_annotateTokens@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_codeCompleteAt@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_codeCompleteGetContainerKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_codeCompleteGetContainerUSR@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_codeCompleteGetContexts@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_codeCompleteGetDiagnostic@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_codeCompleteGetNumDiagnostics@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_codeCompleteGetObjCSelector@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_constructUSR_ObjCCategory@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_constructUSR_ObjCClass@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_constructUSR_ObjCIvar@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_constructUSR_ObjCMethod@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_constructUSR_ObjCProperty@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_constructUSR_ObjCProtocol@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_createCXCursorSet@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_createIndex@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_createTranslationUnit2@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_createTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_createTranslationUnitFromSourceFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_defaultCodeCompleteOptions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_defaultDiagnosticDisplayOptions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_defaultEditingTranslationUnitOptions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_defaultReparseOptions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_defaultSaveOptions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeCXCursorSet@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeCXPlatformAvailability@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeCXTUResourceUsage@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeCodeCompleteResults@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeDiagnostic@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeDiagnosticSet@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeIndex@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeOverriddenCursors@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeSourceRangeList@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeString@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeStringSet@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeTokens@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_disposeTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_enableStackTraces@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_equalCursors@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_equalLocations@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_equalRanges@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_equalTypes@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_executeOnThread@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_findIncludesInFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_findIncludesInFileWithBlock@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_findReferencesInFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_findReferencesInFileWithBlock@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_formatDiagnostic@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_free@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getArgType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getArrayElementType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getArraySize@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getBuildSessionTimestamp@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCString@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCXTUResourceUsage@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCXXAccessSpecifier@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCanonicalCursor@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCanonicalType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getChildDiagnostics@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getClangVersion@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionAnnotation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionAvailability@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionBriefComment@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionChunkCompletionString@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionChunkKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionChunkText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionNumAnnotations@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionParent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCompletionPriority@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursor@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorAvailability@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorCompletionString@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorDefinition@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorDisplayName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorExtent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorKindSpelling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorLanguage@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorLexicalParent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorLinkage@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorPlatformAvailability@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorReferenceNameRange@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorReferenced@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorResultType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorSemanticParent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorSpelling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorUSR@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getCursorVisibility@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDeclObjCTypeEncoding@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDefinitionSpellingAndExtent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnostic@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticCategory@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticCategoryName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticCategoryText@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticFixIt@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticInSet@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticNumFixIts@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticNumRanges@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticOption@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticRange@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticSetFromTU@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticSeverity@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getDiagnosticSpelling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getElementType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getEnumConstantDeclUnsignedValue@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getEnumConstantDeclValue@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getEnumDeclIntegerType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getExpansionLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getFieldDeclBitWidth@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getFileLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getFileName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getFileTime@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getFileUniqueID@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getFunctionTypeCallingConv@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getIBOutletCollectionType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getIncludedFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getInclusions@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getInstantiationLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getLocationForOffset@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getModuleForFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNullCursor@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNullLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNullRange@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNumArgTypes@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNumCompletionChunks@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNumDiagnostics@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNumDiagnosticsInSet@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNumElements@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getNumOverloadedDecls@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getOverloadedDecl@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getOverriddenCursors@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getPointeeType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getPresumedLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getRange@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getRangeEnd@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getRangeStart@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getRemappings@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getRemappingsFromFileList@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getResultType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getSkippedRanges@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getSpecializedCursorTemplate@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getSpellingLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTUResourceUsageName@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTemplateCursorKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTokenExtent@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTokenKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTokenLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTokenSpelling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTranslationUnitCursor@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTranslationUnitSpelling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTypeDeclaration@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTypeKindSpelling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTypeSpelling@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_getTypedefDeclUnderlyingType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_hashCursor@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_indexLoc_getCXSourceLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_indexLoc_getFileLocation@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_indexSourceFile@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_indexSourceFileFullArgv@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_indexTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getCXXClassDeclInfo@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getClientContainer@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getClientEntity@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getIBOutletCollectionAttrInfo@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getObjCCategoryDeclInfo@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getObjCContainerDeclInfo@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getObjCInterfaceDeclInfo@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getObjCPropertyDeclInfo@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_getObjCProtocolRefListInfo@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_isEntityObjCContainerKind@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_setClientContainer@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_index_setClientEntity@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isAttribute@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isConstQualifiedType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isCursorDefinition@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isDeclaration@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isExpression@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isFileMultipleIncludeGuarded@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isFunctionTypeVariadic@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isInvalid@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isPODType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isPreprocessing@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isReference@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isRestrictQualifiedType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isStatement@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isUnexposed@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isVirtualBase@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_isVolatileQualifiedType@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_loadDiagnostics@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_parseTranslationUnit2@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_parseTranslationUnit2FullArgv@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_parseTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_remap_dispose@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_remap_getFilenames@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_remap_getNumFiles@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_reparseTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_saveTranslationUnit@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_sortCodeCompletionResults@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_toggleCrashRecovery@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_tokenize@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_visitChildren@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ + clang_visitChildrenWithBlock@LLVM_@LLVM_VERSION@ 1:3.8.1-19~ From cc9911af6e6598c5b65ed67de3088bb50274f57c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 28 Mar 2017 07:22:31 +0000 Subject: [PATCH 86/89] * Add override_dh_makeshlibs for the libllvm or liblldb versions Thanks to Julien Cristau for the patch * Bring back the ocaml binding. thanks to Cyril Soldani for the patch (Closes: #858626) --- debian/changelog | 9 +++++++++ debian/control | 24 ++++++++++++++++++++++-- debian/libllvm-X.Y-ocaml-dev.install.in | 4 ++-- debian/rules | 11 +++++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index c46c708e..fbed497a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +llvm-toolchain-3.8 (1:3.8.1-19~exp4) experimental; urgency=medium + + * Add override_dh_makeshlibs for the libllvm or liblldb versions + Thanks to Julien Cristau for the patch + * Bring back the ocaml binding. thanks to Cyril Soldani for the patch + (Closes: #858626) + + -- Sylvestre Ledru Tue, 28 Mar 2017 06:32:40 +0200 + llvm-toolchain-3.8 (1:3.8.1-19~exp3) experimental; urgency=medium * change the min version of the libclang1 symbols to 1:3.8.1-19~ diff --git a/debian/control b/debian/control index 71f59456..61e2cf7b 100644 --- a/debian/control +++ b/debian/control @@ -6,9 +6,9 @@ Uploaders: Sylvestre Ledru Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, cmake, perl, libtool, chrpath, texinfo, sharutils, libffi-dev (>= 3.0.9), lsb-release, patchutils, diffstat, xz-utils, python-dev, - libedit-dev, swig, python-six, python-sphinx, binutils-dev, + libedit-dev, swig, python-six, python-sphinx, ocaml-nox, binutils-dev, libjsoncpp-dev, - lcov, procps, help2man, zlib1g-dev, + lcov, procps, help2man, dh-ocaml, zlib1g-dev, g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32] Build-Conflicts: oprofile, ocaml, libllvm-3.4-ocaml-dev, libllvm-3.5-ocaml-dev, libllvm-3.8-ocaml-dev @@ -331,6 +331,26 @@ Description: Modular compiler and toolchain technologies, tools . This package provides tools for testing. +Package: libllvm-3.8-ocaml-dev +Section: ocaml +Architecture: any +Suggests: llvm-3.8-doc +Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-3.8-dev (= ${binary:Version}) +Provides: ${ocaml:Provides} +Description: Modular compiler and toolchain technologies, OCaml bindings + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both + as an offline code representation (to communicate code between + compiler phases and to run-time systems) and as the compiler internal + representation (to analyze and transform programs). This persistent + code representation allows a common set of sophisticated compiler + techniques to be applied at compile-time, link-time, install-time, + run-time, or "idle-time" (between program runs). + . + This package provides the OCaml bindings to develop applications using llvm. Package: llvm-3.8-doc Section: doc diff --git a/debian/libllvm-X.Y-ocaml-dev.install.in b/debian/libllvm-X.Y-ocaml-dev.install.in index 8ea48335..b1e302d3 100644 --- a/debian/libllvm-X.Y-ocaml-dev.install.in +++ b/debian/libllvm-X.Y-ocaml-dev.install.in @@ -1,2 +1,2 @@ -#@OCAML_STDLIB_DIR@/llvm-@LLVM_VERSION@ @OCAML_STDLIB_DIR@/ -#usr/lib/llvm-@LLVM_VERSION@/docs/llvm/ocamldoc/html usr/share/doc/libllvm-@LLVM_VERSION@-ocaml-dev/ +@OCAML_STDLIB_DIR@/llvm-@LLVM_VERSION@ @OCAML_STDLIB_DIR@/ +usr/lib/llvm-@LLVM_VERSION@/docs/ocaml/html/html usr/share/doc/libllvm-@LLVM_VERSION@-ocaml-dev/ diff --git a/debian/rules b/debian/rules index 18c2aa77..cbb8732c 100755 --- a/debian/rules +++ b/debian/rules @@ -277,6 +277,7 @@ override_dh_prep: build_doc build_doc: cd $(CURDIR)/docs && make -f Makefile.sphinx && make -f Makefile.sphinx man cd $(CURDIR)/clang/docs && make -f Makefile.sphinx && make -f Makefile.sphinx man + $(PRE_PROCESS) $(MAKE) $(NJOBS) -C "$(TARGET_BUILD)/docs" ocaml_doc # Rename manpages d=$(CURDIR)/docs/_build/man/; \ @@ -434,11 +435,21 @@ endif $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/; \ fi +# Rename OCaml bindings + if test -d "$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ocaml"; then \ + mkdir -p "$(DEB_INST)$(OCAML_STDLIB_DIR)"; \ + mv -f "$(DEB_INST)usr/lib/llvm-$(LLVM_VERSION)/lib/ocaml" \ + "$(DEB_INST)$(OCAML_STDLIB_DIR)/llvm-$(LLVM_VERSION)"; \ + fi + # Delete the target build directory to save some space on the build systems # All the files have been installed in $(CURDIR)/debian/tmp/ already rm -rf $(TARGET_BUILD) +override_dh_makeshlibs: + dh_makeshlibs -V1:3.8.1-19~ + override_dh_shlibdeps: # cd $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ && ln -s libLLVM-$(LLVM_VERSION).so.1 libLLVM-$(LLVM_VERSION).so # Ignore asan libraries. They would trigger dependencies to multiarch libraries From a7d70b3891964aa77dc6a8219171dd5f43a13c93 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Tue, 28 Mar 2017 13:40:03 +0000 Subject: [PATCH 87/89] Explicit the dep of clang-tidy on same version of llvm to avoid undefined symbols --- debian/changelog | 3 +++ debian/control | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index b5cb1446..ccc7e806 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,8 @@ llvm-toolchain-4.0 (1:4.0-3) UNRELEASED; urgency=medium + * Explicit the dep of clang-tidy on same version of llvm to avoid + undefined symbols + [ Rebecca N. Palmer ] * Use versioned symbols (Closes: #848368) diff --git a/debian/control b/debian/control index 67d1ae12..7cac7fb6 100644 --- a/debian/control +++ b/debian/control @@ -62,7 +62,8 @@ Description: Tool to format C/C++/Obj-C code Package: clang-tidy-4.0 Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, python +Depends: ${shlibs:Depends}, ${misc:Depends}, python, + libllvm4.0 (= ${binary:Version}) Replaces: clang-modernize-4.0, clang-4.0 (<< 1:4.0~svn250696-1) Breaks: clang-modernize-4.0, clang-4.0 (<< 1:4.0~svn250696-1) Description: clang-based C++ linter tool From abe47e0d4a9bd34971b73b878ac53590ff3e894e Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 9 Apr 2017 08:02:13 +0000 Subject: [PATCH 88/89] fix changelog --- debian/changelog | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/debian/changelog b/debian/changelog index 40eb3335..b6ec2b20 100644 --- a/debian/changelog +++ b/debian/changelog @@ -45,23 +45,11 @@ llvm-toolchain-3.9 (1:3.9.1-2) unstable; urgency=medium * debian/orig-tar.sh: less verbose * Remove the info section from the generated manpages (Closes: #846269) * Disable libedit usage in lldb because of garbage (Closes: #846616) -<<<<<<< .working * Fix the path to lldb-server (to lldb-server-3.9) (Closes: #846638) * d/p/lldb-server-link.diff Fix the lldb hang. It was due to a linking issue. Thanks to Pavel Labath (Closes: #846640) -||||||| .merge-left.r2337 -======= - * d/p/lldb-server-link.diff Fix the lldb hang. It was due to a linking issue. - Thanks to Pavel Labath (Closes: #846640) ->>>>>>> .merge-right.r2514 -<<<<<<< .working -- Sylvestre Ledru Sat, 17 Dec 2016 17:55:44 +0100 -||||||| .merge-left.r2337 - -- Sylvestre Ledru Sun, 13 Nov 2016 13:38:01 +0100 -======= - -- Sylvestre Ledru Mon, 09 Jan 2017 21:24:17 +0100 ->>>>>>> .merge-right.r2514 llvm-toolchain-3.9 (1:3.9.1-1) unstable; urgency=medium From 6e1f4c0e954e0be84630ee48717ecc18b523fdbc Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 9 Apr 2017 08:02:54 +0000 Subject: [PATCH 89/89] bring back the ocaml stuff --- debian/rules | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index af45d0cd..c9b04a4c 100755 --- a/debian/rules +++ b/debian/rules @@ -22,6 +22,8 @@ DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_HOST_ARCH_BITS = $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS) DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) +OCAML_STDLIB_DIR ?= $(shell ocamlc -where) + LDFLAGS_EXTRA = CXXFLAGS_EXTRA = -std=c++0x CONFIGURE_EXTRA = @@ -132,7 +134,7 @@ endif LLD_ENABLE=NO %: - dh $@ + dh $@ --with ocaml @@ -142,9 +144,14 @@ preconfigure: echo "$$f => $$f2"; \ sed -e 's|@DEB_HOST_MULTIARCH@|$(DEB_HOST_MULTIARCH)|g' \ -e "s|@LLVM_VERSION_FULL@|$(LLVM_VERSION_FULL)|g" \ + -e "s|@OCAML_STDLIB_DIR@|$(OCAML_STDLIB_DIR)|g" \ -e "s|@LLVM_VERSION@|$(LLVM_VERSION)|g" $$f > $$f2; \ done +# Override this two targets. They are trying to manage the .in conversion for me +override_dh_ocamlinit: +override_dh_ocamlclean: + override_dh_auto_configure: preconfigure echo "Using gcc: " $(CC) -v