[dgit import tarball llvm-toolchain-8 1:8.0.1-9 llvm-toolchain-8_8.0.1-9.debian.tar.xz]
--- /dev/null
+llvm-toolchain-7 (1:7.0.1-1) unstable; urgency=medium
+
+ * llvm-toolchain packages are built using clang itself (stage2)
+ - stage1 = build clang with gcc
+ - stage2 = clang building itself
+ This could lead to some unexpected (but rare) ABI issues.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 16 Nov 2018 13:00:39 +0100
+
+llvm-toolchain-7 (1:7-1) unstable; urgency=medium
+
+ * From version 7, llvm-toolchain also provides libc++, libc++abi
+ and OpenMP packages. Non-coinstallable on purpose.
+ * Packages, binaries and libraries have been renamed.
+ Instead of the X.Y naming, we moved to X to match the
+ naming from upstream.
+ As example, clang version 7 is named clang-7 (unlike clang-6.0)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 17 Jan 2018 10:50:39 +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
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 02 Aug 2014 12:57:41 +0200
--- /dev/null
+Organization of the repository
+==============================
+
+The debian package for each LLVM point release is maintained as a git branch.
+For example, the 8 release lives at in the "8" branch.
+
+The current snapshot release is maintained in the "snapshot" branch.
+
+The easiest way to get all branches is probably to have one
+clone per version:
+
+for f in 7 8 9 snapshot; do
+ git clone git@salsa.debian.org:pkg-llvm-team/llvm-toolchain.git -b $f $f
+done
+
+Steps for manually building a snapshot release
+==============================================
+
+1) Retrieve the latest snapshot and create original tarballs.
+
+ Run the orig-tar.sh script,
+
+ $ sh snapshot/debian/orig-tar.sh
+
+ which will retrieve the latest version for each LLVM subproject (llvm,
+ clang, lldb, etc.) from the main development (upstream SVN). and repack it
+ as a set of tarballs.
+
+2) Unpack the original tarballs and apply quilt debian patches.
+
+ From the branches/ directory run the unpack.sh script,
+
+ $ sh unpack.sh
+
+ which will unpack the source tree inside a new directory such as
+ branches/llvm-toolchain-snapshot_3.9~svn268942. Depending on the current
+ snapshot version number and svn release, the directory name will be
+ different.
+
+ Quilt patches will then be applied.
+
+3) Build the binary packages using,
+
+ $ fakeroot debian/rules binary
+
+When debugging, successive builds can be recompiled faster by using tools such
+as ccache (PATH=/usr/lib/ccache:$PATH fakeroot debian/rules binary).
+
+Retrieving a specific branch or release candidate with orig-tar.sh
+==================================================================
+
+When using orig-tar.sh, if you need to retrieve a specific branch, you can pass
+the branch name as the first argument. For example, to get the 8 release
+branch at
+ http://llvm.org/svn/llvm-project/{llvm,...}/branches/release_80
+you should use,
+
+ $ sh 8/debian/orig-tar.sh release_80
+
+To retrieve a specific release candidate, you can pass the branch name as the
+first argument, and the tag rc number as the second argument. For example, to
+get the 8.0.1 release candidate rc3 at
+ http://llvm.org/svn/llvm-project/{llvm,...}/tags/RELEASE_801/rc3
+you should use,
+
+ $ sh 8/debian/orig-tar.sh RELEASE_801 rc3 8.0.1
+
+For a stable release, the syntax is:
+
+ $ sh 8/debian/orig-tar.sh RELEASE_800 final 8.0
+
+
+Additional maintainer scripts
+=============================
+
+The script qualify-clang.sh that is found at the git debian/ directory
+should be used to quickly test a newly built package. It runs a short
+set of sanity-check tests and regression tests.
+
+The script releases/snapshot/debian/prepare-new-release.sh is used when
+preparing a new point release. It automatically replaces version numbers
+in various files of the package.
+
+Making a change to all versions
+===============================
+
+Sometimes, we want to make a change on all branches.
+In that case, start to make the change from the older
+version (example: 8), then, change branch (example: 9) and
+$ git merge origin/8
+to retrieve the changes
+
+
+Change in major upstream version
+================================
+TODO update with the git commands
+
+$ svn copy snapshot VERSION
+$ svn commit -m "VERSION branched" VERSION
+$ cd VERSION
+$ sed -i -e '0,/llvm-toolchain-snapshot/s/llvm-toolchain-snapshot/llvm-toolchain-VERSION/' debian/changelog debian/control
+$ svn commit -m "snapshot => VERSION"
+$ cd ../snapshot
+$ emacs debian/prepare-new-release.sh
+# Change the version
+$ bash debian/prepare-new-release.sh
+$ svn commit -m "new snapshot release"
+
+Now, try build build it.
--- /dev/null
+All programs and libraries shipped in this package are trying to stay as close
+as possible from upstream.
+
+However, because of the objectives of Debian, besides paths, some changes are
+made.
+
+= File names =
+
+* To make sure that most of the llvm-toolchain packages are co-installable,
+files are installed in /usr/lib/llvm-X/
+and symlinks are managed by the other package llvm-defaults
+
+
+= CPU extensions =
+
+* For x86, SSE2 extensions are disabled (and the target CPU is i686 instead of
+ pentium4).
+
+* For armel, uses float ABI instead of hard.
+
+* For armv7-a, NEON extensions are disabled.
+
+* For mips, FPXX is enabled.
+
+
+= Libraries =
+
+* sonames are created
+
+* Build-ID are enabled
+
+
+ -- Sylvestre Ledru <sylvestre@debian.org>, Wed, 26 Dec 2018 22:56:30 +0100
+
--- /dev/null
+* add the support of libclang in llvm default (for now, it is
+called libclang1-3.3.so)
+
+* move the header at the right place in libclang-dev
+
+* In 1:7.0.1~+rc2-5, we did:
+ * Fix a baseline violation on armhf (Closes: #914268)
+ clang-arm-default-vfp3-on-armv7a.patch has been updated to disable
+ neon in another place
+It caused 200+ tests to fail on arm:
+https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-7&arch=amd64&ver=1%3A7.0.1%7E%2Brc2-4&stamp=1542503855&raw=0
+https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-7&arch=amd64&ver=1%3A7.0.1%7E%2Brc2-5&stamp=1542863723&raw=0
--- /dev/null
+llvm-toolchain-8 (1:8.0.1-9) unstable; urgency=medium
+
+ * debian/patches/947f9692440836dcb8d88b74b69dd379d85974ce.patch:
+ - usptream fix for new glibc 2.31
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 19 Mar 2020 09:50:20 +0100
+
+llvm-toolchain-8 (1:8.0.1-8) unstable; urgency=medium
+
+ * debian/patches/swig.patch
+ - cherry-pick and rebase upstream commit 89b658428bae3b749f174ca79f0fe390451d8f69
+ * debian/patches/no-cgi.patch
+ - patch to use html instead of cgi, deprecated in Python3.8
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 25 Feb 2020 15:08:36 +0100
+
+llvm-toolchain-8 (1:8.0.1-7) unstable; urgency=medium
+
+ * Add two new python autopkgtests to avoid regressions in the future
+ * Do not fail if lldb python binding is not built.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 23 Jan 2020 10:17:54 +0100
+
+llvm-toolchain-8 (1:8.0.1-6) unstable; urgency=medium
+
+ * fix lldb-8 -P path print (Closes: #945445)
+ * Fix lldb python installation path and symlinks
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 21 Jan 2020 12:34:48 +0100
+
+llvm-toolchain-8 (1:8.0.1-5) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * impl-path-hurd.diff: Rename to D69683-impl-path-hurd.diff
+ * hurd-cxx-paths.diff: Re-introduce patch to find C++ headers.
+
+ [ Sylvestre Ledru ]
+ * Update the apt.llvm.org repack script to increase the version
+ to be above the distro version. See
+ https://bugs.llvm.org/show_bug.cgi?id=44218 for more info
+
+ [ Gianfranco Costamagna ]
+ * Finish the porting to Python3
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 16 Jan 2020 19:12:33 +0100
+
+llvm-toolchain-8 (1:8.0.1-4) unstable; urgency=medium
+
+ * Add clangd-X => libclang-common-X-dev dependency
+ See https://bugs.llvm.org/show_bug.cgi?id=43152
+ * python-clang-8: missing dependency on libclang-8-dev
+ (Closes: #941890)
+ * Debian moved to gcc-9. This gcc version now refuses -flto="Thin"
+ Move from LLVM_ENABLE_LTO="Thin" to BOOTSTRAP_LLVM_ENABLE_LTO="Thin"
+ to mitigate the issue (the argument should be passed only at the
+ second stage of the build process)
+ See https://bugs.llvm.org/show_bug.cgi?id=43193
+ (Closes: #943920)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 12 Nov 2019 14:12:48 +0100
+
+llvm-toolchain-8 (1:8.0.1-3) unstable; urgency=medium
+
+ * llvm-tools: depend on python2 packages too, the move to python3 was
+ premature and broke opt-viewer.py
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 07 Aug 2019 15:11:36 +0200
+
+llvm-toolchain-8 (1:8.0.1-2) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * clangd: Fix breaks+replaces missing epoch (Closes: #934016)
+ * Add python to testsuite, still required by some test
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 06 Aug 2019 09:36:11 +0200
+
+llvm-toolchain-8 (1:8.0.1-1) unstable; urgency=medium
+
+ * New stable release
+ * Ship python3-lldb-8 as a new package
+ * Ship clangd-8 as a new package (Closes: #932432)
+
+ [ Gianfranco Costamagna ]
+ * Fixed wrong shlib generation of libomp5 library
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 03 Aug 2019 11:44:29 +0200
+
+llvm-toolchain-8 (1:8.0.1~+rc4-2) unstable; urgency=medium
+
+ * Compile against Python 3
+ (Closes: #931029)
+
+ -- Christian Biesinger <cbiesinger@google.com> Thu, 18 Jul 2019 14:13:56 -0500
+
+llvm-toolchain-8 (1:8.0.1~+rc4-1) unstable; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 11 Jul 2019 08:39:38 +0200
+
+llvm-toolchain-8 (1:8.0.1~+rc3-1) unstable; urgency=medium
+
+ * New testing release in unstable
+
+ [ Gianfranco Costamagna ]
+ * Enable thinlto everywhere except armhf
+ * Drop wrong exit 1 from testsuite
+
+ [ Andreas Beckmann ]
+ * For now, lld doesn't generate shared libs. Removing the files
+ (Closes: #857653, LP: #1829677)
+
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 28 Jun 2019 20:15:23 +0200
+
+llvm-toolchain-8 (1:8.0.1~+rc2-1~exp1) experimental; urgency=medium
+
+ * New testing release
+ * Only enable thinlto on archs with gold, should fix the ftbfs
+ * Add libpfm4-dev as build dep + -DLLVM_ENABLE_LIBPFM=ON as it is
+ needed for llvm-exegesis https://bugs.llvm.org/show_bug.cgi?id=42187
+ * Improve the rendering of the qualify-clang.sh testsuite
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 08 Jun 2019 11:11:39 +0200
+
+llvm-toolchain-8 (1:8.0.1~+rc1-1~exp2) experimental; urgency=medium
+
+ * Build using thinlto on non stretch, xenial and trusty
+ (fails with some undef symbols)
+ Option -DLLVM_ENABLE_LTO="Thin" added
+ * WebAssembly is now build by default, remove it from the
+ experimental list
+ * check-polly was executed twice
+ * Move the default ARM arch from arm1176jzf-s (armv6) to cortex-a7
+ (Closes: #930008)
+
+ [ John Paul Adrian Glaubitz ]
+ * Use dh-exec to exclude lib/LLVM*.so on powerpc and
+ powerpcspe from llvm-X.Y-dev.install.in
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 19 May 2019 13:31:37 +0200
+
+llvm-toolchain-8 (1:8.0.1~+rc1-1~exp1) experimental; urgency=medium
+
+ * New testing release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 17 May 2019 08:33:53 +0200
+
+llvm-toolchain-8 (1:8-5) unstable; urgency=medium
+
+ * Try another way to address the mips64el issue
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 13 May 2019 11:36:47 +0200
+
+llvm-toolchain-8 (1:8-4) unstable; urgency=medium
+
+ * Try to disable mips64el-fix.diff (struct_kernel_stat_sz)
+ to workaround a mips issue with some new C{XX}FLAGS
+ see https://reviews.llvm.org/D59702
+
+ [ Gianfranco Costamagna ]
+ * Add Ubuntu eoan to supported ubuntu distro
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 29 Apr 2019 08:58:57 +0200
+
+llvm-toolchain-8 (1:8-3) unstable; urgency=medium
+
+ * Fix the FTBFS on mips (introduced by my previous change)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 02 Apr 2019 11:57:08 +0200
+
+llvm-toolchain-8 (1:8-2) unstable; urgency=medium
+
+ * Fix the search path on mips64el (which is causing the stage2
+ build of mips64el to fail
+ See https://bugs.llvm.org/show_bug.cgi?id=41204
+
+ [ Timo Aaltonen ]
+ * import patches for intel-opencl-clang: they fix various issues
+ with opengl and clang-8, and are taken from llvm master branch.
+ - Fix pointer blocks on OpenCL functions, that never pointed to real
+ functions
+ - Fix assertion errors on some OpenCL functions
+ - Refactor a little bit OpenCL calls, by emitting direct block calls.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 20 Mar 2019 14:36:40 +0100
+
+llvm-toolchain-8 (1:8-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 19 Mar 2019 21:57:02 +0100
+
+llvm-toolchain-8 (1:8~+rc5-2) unstable; urgency=medium
+
+ * Try to fix a mips64el FTBFS
+ Cherry-pick of https://patches-gcc.linaro.org/patch/3032/
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 17 Mar 2019 20:18:19 +0100
+
+llvm-toolchain-8 (1:8~+rc5-1) unstable; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 12 Mar 2019 12:27:41 +0100
+
+llvm-toolchain-8 (1:8~+rc4-1) unstable; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 10 Mar 2019 11:06:14 +0100
+
+llvm-toolchain-8 (1:8~+rc3-1~exp1) unstable; urgency=medium
+
+ * New snapshot release
+ * Activate -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN for all
+ gcc
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 28 Feb 2019 12:33:57 +0100
+
+llvm-toolchain-8 (1:8~+rc2-1~exp3) UNRELEASED; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Commit Ubuntu delta to 8 and snapshot branches
+
+ [ Matthias Klose ]
+ * Remove the autopkg test for a genuine LLVM bug.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 06 Mar 2019 10:16:17 +0100
+
+llvm-toolchain-8 (1:8~+rc2-1~exp1) unstable; urgency=medium
+
+ * New snapshot release
+ * Add support for kfreebsd (Closes: #921246)
+ Many thanks to Svante Signell for all patches
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 07 Feb 2019 17:09:15 +0100
+
+llvm-toolchain-8 (1:8~+rc1-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Remove 'Multi-Arch: same' in libclang
+ (Closes: #874248)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 24 Jan 2019 08:49:34 +0100
+
+llvm-toolchain-8 (1:8~svn351401-1~exp2) experimental; urgency=medium
+
+ * Fix debian-changelog-line-too-long
+ * Silent source-contains-prebuilt-windows-binary
+ * Silent executable-not-elf-or-script
+ usr/lib/llvm-8/share/clang/bash-autocomplete.sh
+ * Remove unapplied patches:
+ - D52340-rustc-debuginfo.diff
+ - D54379-hurd-triple-clang.diff
+ - hurd-cxx-paths.diff
+ - openmp-jessie-missing-include.diff
+ - rustc-aarch64-test-failure.diff
+ - strip-ignore-deterministic-archives.diff
+ * Update the list of openmp symbols (added):
+ - omp_get_device_num
+ - omp_get_initial_device
+ - omp_get_num_devices
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 17 Jan 2019 10:23:10 +0100
+
+llvm-toolchain-8 (1:8~svn351401-1~exp1) experimental; urgency=medium
+
+ * New snapshot release (branch 8 created)
+ * Silent a source lintian warning
+ source: source-is-missing
+ lldb/lit/Modules/ELF/Inputs/PT_LOAD-overlap-section.elf
+ * Revert patch D55434 as it is breaking the build on old version of
+ debian/ubuntu
+ * Remove BugpointPasses.so & TestPlugin.so as they don't ship anymore
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 17 Jan 2019 08:24:19 +0100
+
+llvm-toolchain-8 (1:8~svn350834-1~exp2) UNRELEASED; urgency=medium
+
+ * Remove patch D55434-revert.diff as the regression has been fixed upstream
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 17 Jan 2019 09:16:03 +0100
+
+llvm-toolchain-snapshot (1:8~svn348749-1~exp2) experimental; urgency=medium
+
+ * New symbols in openmp:
+ - OMP_NULL_ALLOCATOR
+ - __kmpc_alloc
+ - __kmpc_free
+ - __kmpc_get_default_allocator
+ - __kmpc_omp_reg_task_with_affinity
+ - __kmpc_set_default_allocator
+ - omp_alloc
+ - omp_capture_affinity
+ - omp_cgroup_mem_alloc
+ - omp_const_mem_alloc
+ - omp_default_mem_alloc
+ - omp_display_affinity
+ - omp_free
+ - omp_get_affinity_format
+ - omp_get_default_allocator
+ - omp_high_bw_mem_alloc
+ - omp_large_cap_mem_alloc
+ - omp_low_lat_mem_alloc
+ - omp_pteam_mem_alloc
+ - omp_set_affinity_format
+ - omp_set_default_allocator
+ - omp_thread_mem_alloc
+ - ompc_capture_affinity
+ - ompc_display_affinity
+ - ompc_get_affinity_format
+ - ompc_set_affinity_format
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 18 Dec 2018 18:09:48 +0100
+
+llvm-toolchain-7 (1:7.0.1-4) unstable; urgency=medium
+
+ * On old Debian/Ubuntu, run dh_strip using fakeroot to mitigate
+ a permission issue
+ * Remove dbgsym packages from debci because of bug #917528
+
+ [ Gianfranco Costamagna ]
+ * Ignore a test result on i386, due to upstream bug 26580#c18
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 02 Jan 2019 12:37:45 +0100
+
+llvm-toolchain-7 (1:7.0.1-4) unstable; urgency=medium
+
+ * New snapshot release
+ * Merge changes from 7 into snapshot
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 10 Dec 2018 10:56:16 +0100
+
+llvm-toolchain-snapshot (1:8~svn346586-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Also install libOptRemarks.so
+ * Merge all the recent 7 changes into snapshot
+ (Closes: #913058) the co install issue with libc++ & openmp
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 10 Nov 2018 15:14:15 +0100
+
+llvm-toolchain-snapshot (1:8~svn345569-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Remove bat files https://bugs.llvm.org/show_bug.cgi?id=30755
+ * Fix the autopkgtest script (no gcc in the test)
+ * remove dep from lld to llvm-8-dev because lld
+ doesn't use LLVM LTO
+ * remove old Replaces/Breaks
+ * Standards-Version: 4.2.1
+ * Backport a fix to improve scan-build code error.
+ Thanks to Roman Lebedev for the fix(Closes: #909662)
+ * Remove bat files https://bugs.llvm.org/show_bug.cgi?id=30755
+ * Install bash-completion for clang
+ * Disable ocaml on armel
+
+ [ Gianfranco Costamagna ]
+ * Take option two in bug #877567 to fix FTBFS on mips and mipsel
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 30 Oct 2018 08:31:14 +0100
+
+llvm-toolchain-7 (1:7.0.1-3) unstable; urgency=medium
+
+ * Also install clang-7-dbgsym libclang1-7-dbgsym in autopkgtest
+ to verify that debug symbols are present
+ * Cherry-pick upstream fix D52340 to address a rustc debuginfo
+ (Closes: #917209)
+ * Change the jit debug path from $HOME/.debug/jit/ to
+ $TMPDIR/.debug/jit/ (Closes: #916393)
+ * Document in README.source some Debian/Ubuntu specific changes
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 26 Dec 2018 22:57:45 +0100
+
+llvm-toolchain-7 (1:7.0.1-2) unstable; urgency=medium
+
+ * Enable -DENABLE_LINKER_BUILD_ID:BOOL=ON as, unlike gcc, isn't enabled
+ by default in clang. Thanks to Adrian Bunk for the patch.
+ Once more, thanks to Rebecca Palmer (Closes: #916975)
+ * Build with -g1 also on 64bit architectures (thanks to Adrian too)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 21 Dec 2018 17:07:44 +0100
+
+llvm-toolchain-7 (1:7.0.1-1) unstable; urgency=medium
+
+ * New release
+ * Remove the dbg workaround. Hopefully, the new version of
+ binutils will fix it (Closes: #913946)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 16 Dec 2018 13:07:54 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc3-2) unstable; urgency=medium
+
+ * Fix llvm-config by stripping unnecessary flags
+ See also https://bugs.llvm.org/show_bug.cgi?id=8220
+ (Closes: #697755, #914838)
+ * Try to workaround the debug issues by adding -fno-addrsig to the *FLAGS
+ One more time, thanks to Rebecca Palmer (Closes: #913946)
+ The goal is to provide correct debug packages.
+ Workaround https://sourceware.org/bugzilla/show_bug.cgi?id=23788
+ * Force the chmod +x on llvm-X/bin/* because it was sometimes removed
+ by the strip process
+ * Force the link to atomic also for i386 as it fails on Debian jessie too
+ * Improved the debian/patches/series presentation by creating categories
+ * Improve the separation between *FLAGS for gcc and clang.
+ This is done for -fno-addrsig as it doesn't exit for gcc
+ This can be done with the BOOTSTRAP_CMAKE_CXX_FLAGS option
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 10 Dec 2018 03:49:59 -0500
+
+llvm-toolchain-7 (1:7.0.1~+rc3-1) unstable; urgency=medium
+
+ * New testing release
+ * disable the llvm-strip as it created too big llvm lib
+
+ [ John Paul Adrian Glaubitz ]
+ * Add patch to add powerpcspe support to clang
+ * Add patch to fix register spilling on powerpcspe
+ * Add patch to optimize double parameter calling setup on powerpcspe
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 08 Dec 2018 07:29:59 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-8) unstable; urgency=medium
+
+ * Use llvm-strip instead of binutils strip.
+ Two reasons:
+ - with clang stage2, the dbg packages were not generated
+ - strip fails on stretch and other ubuntu on some archives
+ For this, I had to silent the --enable-deterministic-archives
+ option (https://bugs.llvm.org/show_bug.cgi?id=39789).
+ Thanks to Rebecca Palmer for the idea
+ (Closes: #913946)
+ * Change the i386 base line to avoid using sse2 extension
+ This is more important now that llvm is built with clang
+ instead of gcc.
+ Thanks to Fanael Linithien for the patch
+ (Closes: #914770, #894840)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 01 Dec 2018 11:18:39 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-7) unstable; urgency=medium
+
+ * Bring back mips-rdhwr.diff as it isn't in rc2
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 25 Nov 2018 17:00:31 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-6) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * D53557-hurd-self-exe-realpath.diff: Fix paths returned by
+ llvm-config (See Bug#911817).
+
+ [ Sylvestre Ledru ]
+ * Fix the FTBFS on armhf for real! Thanks to Adrian Bunk
+ Force the activation of FeatureVFP3 & FeatureD16
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 24 Nov 2018 09:12:26 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-5) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * D54079-hurd-openmp.diff, D54338-hurd-libcxx-threads-build.diff,
+ D54339-hurd-libcxx-threads-detection.diff, D54378-hurd-triple.diff,
+ D54379-hurd-triple-clang.diff, D54677-hurd-path_max.diff,
+ hurd-cxx-paths.diff: New patches to fix hurd build.
+
+ [ Sylvestre Ledru ]
+ * Remove mips-rdhwr.diff as it has been applied upstream
+ * Fix a baseline violation on armhf (Closes: #914268)
+ clang-arm-default-vfp3-on-armv7a.patch has been updated to disable
+ neon in another place
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 21 Nov 2018 09:45:00 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-4) unstable; urgency=medium
+
+ * Workaround the build issues on armhf
+ Thanks to Adrian Bunk for the idea
+ * Remove useless symlink /usr/include/c++ -> ../lib/llvm-7/include/c++
+ (Closes: #913400)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 16 Nov 2018 22:46:29 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-3) unstable; urgency=medium
+
+ * Disable gold for sparc* (Closes: #913260)
+ * Hide a symbol in openmp for mips64el
+ * Try to integrate a patch to make pch reproducible
+ Thanks to Rebecca Palmer for the patch
+ (Closes: #877359)
+ * Fix the misscompilation issue causing rustc to crash (Closes: #913271)
+ Might cause some ABI issues but no real good solution.
+ See https://bugs.llvm.org/show_bug.cgi?id=39427
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 08 Nov 2018 20:50:39 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-2) unstable; urgency=medium
+
+ * Fix a non-break space in a patch (Closes: #913213)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 08 Nov 2018 09:28:36 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-1) unstable; urgency=medium
+
+ * Upload of 7.0.1 rc2 into unstable
+ * New testing release
+ * Enable the stage2 bootstrap:
+ - stage1 = build clang with gcc
+ - stage2 = clang building itself
+ (Closes: #909234)
+ * Bring back the Disable NEON generation on armhf patch which was gone
+ Should fix the FTBFS on armhf
+ (Closes: #842142)
+ * Update the clang manpage to remove osx specific options
+ and to add -arch (Closes: #743133)
+ * Bring back usr/lib/@DEB_HOST_MULTIARCH@/{libiomp5.so, libomp5.so}
+ symlink for gcc (Closes: #912641)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 07 Nov 2018 15:17:41 +0100
+
+llvm-toolchain-7 (1:7.0.1~+rc2-1~exp1) experimental; urgency=medium
+
+ * New testing release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 05 Nov 2018 23:38:34 +0100
+
+llvm-toolchain-7 (1:7-9) unstable; urgency=medium
+
+ * Remove the dump of cmake error file (too confusing)
+ * Try to fix the bootstrap FTBFS :
+ - on armel by forcing the link to -latomic
+ - mips-rdhwr.diff: backport D51773 to fix an
+ assembly issue on mips.
+ Thanks to jrtc27 for finding the issue.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 04 Nov 2018 18:07:23 +0100
+
+llvm-toolchain-7 (1:7-8) unstable; urgency=medium
+
+ * Update the watch file to display the right version
+ (even if the download will fail)
+ * clang-7 suggests libomp-7-dev instead of libomp-dev
+ * Make sure that we don't conflict openmp & libc++ with llvm-defaults's
+ (Closes: #912544)
+ * Handle better the non coinstability of openmp & libc++ (like we are doing
+ with python-clang-*)
+ * Backport upstream fix D51749 to address a rust aarch64 issues
+ (Closes: #909705)
+ * Add tests from old bugs to make sure they don't come back
+ (Closes: #889832, #827866)
+ * The sanitizers use the versioned llvm-symbolizer provided by the
+ llvm-X package (Closes: #753572)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 20 Oct 2018 16:00:58 +0200
+
+llvm-toolchain-7 (1:7-7~exp2) experimental; urgency=medium
+
+ * clangd-atomic-cmake.patch: Link against atomic for clangd in i386
+ * When the cmake configure of the stage2 is failing, dump the cmake error log
+ * Declare some variables (-Wno-*) for all platforms (was failing on mips)
+ * Update the watch file to display the right version
+ (even if the download will fail)
+ * clang-7 suggests libomp-7-dev instead of libomp-dev
+ * Make sure that we don't conflict openmp & libc++ with llvm-defaults's
+ (Closes: #912544)
+ * Handle better the non coinstability of openmp & libc++ (like we are doing
+ with python-clang-*)
+ * Backport upstream fix D51749 to address a rust aarch64 issues
+ (Closes: #909705)
+ * Add tests from old bugs to make sure they don't come back
+ (Closes: #889832, #827866)
+ * The sanitizers use the versioned llvm-symbolizer provided by the
+ llvm-X package (Closes: #753572)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 21 Oct 2018 18:34:20 +0200
+
+llvm-toolchain-7 (1:7-7~exp1) experimental; urgency=medium
+
+ * Experiment the clang bootstrap
+ * Try to bootstrap clang using clang
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 17 Oct 2018 20:15:57 +0200
+
+llvm-toolchain-7 (1:7-7) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * Apply hurd fixes (Closes: #908847).
+ - hurd-lib_Support_Unix_Path.inc.diff
+ - hurd-pathmax.diff
+ - hurd-tools_llvm-shlib_CMakeLists.txt.diff
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Oct 2018 16:50:58 +0200
+
+llvm-toolchain-7 (1:7-6) unstable; urgency=medium
+
+ * Team upload
+ * Upload to unstable
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 17 Oct 2018 11:00:09 +0200
+
+llvm-toolchain-7 (1:7-6~exp2) experimental; urgency=medium
+
+ * Disable for now the bootstrapping clang patches
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 16 Oct 2018 15:00:46 +0200
+
+llvm-toolchain-7 (1:7-6~exp1) experimental; urgency=medium
+
+ * Try to bootstrap (currently in a different branch)
+ * Split the builds in different make target
+ * Add python-pygments as dep of llvm-7-tools because
+ opt-viewer.py needs it
+ * Add back libomp5-X.Y.symbols.in (untested)
+ * Fix the install of clang bash completion
+ * Start the work on bootstraping clang
+ - bootstrap-with-openmp-version-export-missing.diff: fix a link issue
+ https://bugs.llvm.org/show_bug.cgi?id=39200
+ - bootstrap-fix-include-next.diff: Fix an include issue at bootstrap phase
+ https://bugs.llvm.org/show_bug.cgi?id=39162
+
+ [ Gianfranco Costamagna ]
+ * Take option two in bug #877567 to fix FTBFS on mips and mipsel
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 06 Oct 2018 23:04:24 +0200
+
+llvm-toolchain-7 (1:7-5) unstable; urgency=medium
+
+ * In debci, run qualify-clang.sh in verbose mode
+ * Only run the g++ test if g++ exist
+
+ [ Reshabh Sharma ]
+ * Run check-openmp to test OpenMP
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 06 Oct 2018 08:25:48 +0200
+
+llvm-toolchain-7 (1:7-4) unstable; urgency=medium
+
+ * Backport a fix to improve scan-build code error.
+ Thanks to Roman Lebedev for the fix(Closes: #909662)
+ * Remove bat files https://bugs.llvm.org/show_bug.cgi?id=30755
+ * Install bash-completion for clang
+ * Disable ocaml on armel
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 26 Sep 2018 14:32:41 +0100
+
+llvm-toolchain-7 (1:7-3) unstable; urgency=medium
+
+ * Fix a syntax issue in a scan-build patch
+ * Fix the autopkgtest script (no gcc in the test)
+ * remove dep from lld to llvm-7-dev because lld
+ doesn't use LLVM LTO
+ * remove old Replaces/Breaks
+ * Standards-Version: 4.2.1
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 21 Sep 2018 22:48:47 +0200
+
+llvm-toolchain-7 (1:7-2) unstable; urgency=medium
+
+ * Fix the ftbfs under armel on libc++ and enable openmp on armel.
+ Thanks to Adrian Bunk for the patch
+ * Make libc++, libc++abi & openmp NOT co-installable
+ Rational: the benefits are limited compared to the drawback.
+ We should have issues like:
+ - built with libc++-8-dev
+ - run with libc++1-7
+ (Closes: #903802)
+ * Remove circular dependency by removing python-lldb-7: Depends: liblldb-7-dev
+ (Closes: #888889)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 19 Sep 2018 14:12:34 +0200
+
+llvm-toolchain-snapshot (1:8~svn342269-1) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * libc++-8-dev doesn't provide libstdc++-dev anymore (Closes: #908738)
+ * Build llvm using -DLLVM_USE_PERF=yes (Closes: #908707)
+ * Only rename libomp when openmp is built
+
+ [ Gianfranco Costamagna ]
+ * Force polly cmake removal on arch:all because of --fail-missing
+
+ [ Reshabh Sharma ]
+ * Make OpenMP packages coinstallable from version 7
+ * Make libc++ packages coinstallable from version 7
+
+ [ John Paul Adrian Glaubitz ]
+ * Add patch to fix missing MultiArch include dir
+ on powerpcspe (Closes: #908791)
+ * Disable LLDB on riscv64
+ * Fix inverted logic in ifeq statement for POLLY_ENABLE
+ and OPENMP_ENABLE (Closes: #908646)
+ * Disable OpenMP on unsupported architecture x32
+ * Add patch to fix missing include and library paths on x32
+
+ [ Gianfranco Costamagna ]
+ * Install polly only on arch:all packages
+ * Drop gnustep and gnustep-devel suggestions (Closes: #902847)
+ * Enable polly on s390x
+ * Disable omp on armel mips and mipsel for now
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 14 Sep 2018 21:56:57 +0200
+
+llvm-toolchain-snapshot (1:8~svn340819-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Force sphinx to be >> 1.2.3
+ * also ignore libc++experimental.a on dh_strip (fails on stretch)
+ * Make libc++-8-dev & libc++abi-8-dev coinstallable
+ * Remove libtool flex, bison, dejagnu, tcl, expect,
+ and perl from the build deps (testing)
+ * Disable force-gcc-header-obj.diff as it is introducing
+ some regressions in the search headers
+ (Closes: #903709)
+ * branching to version 8
+ - New symbols in libclang:
+ clang_Cursor_getObjCPropertyGetterName
+ clang_Cursor_getObjCPropertySetterName
+ clang_Type_getModifiedType
+ clang_Type_getNullability
+ clang_Type_getNumObjCProtocolRefs
+ clang_Type_getNumObjCTypeArgs
+ clang_Type_getObjCObjectBaseType
+ clang_Type_getObjCProtocolDecl
+ clang_Type_getObjCTypeArg
+ * python-recommonmark is a new build dep for the sphinx doc
+ * dh_strip should be verbose
+ * On Stretch (binutils 2.28), do not run strip on libFuzzer.a, libc++.a
+ & libc++abi.a because it segfaults
+ * Fixed "weak-library-dev-dependency libc++-7-dev on libc++-7-helpers"
+ * Fixed "libomp5-7: shlibs-declares-dependency-on-other-package
+ libomp5-7) (>= 1:7~svn298832-1~)"
+ * Also use the local cmake binary if available (for trusty)
+ and take in account the PRE_PROCESS_CONF option
+ * Try to fix a FTBFS on jessie with openmp
+
+ [ Gianfranco Costamagna ]
+ * Add liblldb-8-dev to python-lldb runtime dependencies, needed to import it
+ * Enable lld on arm64, mips64el
+ * Enable lldb on mips64el
+ * Enable lld on ppc64el
+
+ [ John Paul Adrian Glaubitz ]
+ * Don't build with ld.gold on powerpcspe
+ * Disable polly on powerpcspe
+ * Add upstream patch to make rustc build on powerpc
+
+ [ Reshabh Sharma ]
+ * Integrate opemp as part of the llvm-toolchain packages (Closes: #813672)
+ As part of this work, the transition libiomp packages have been removed.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 28 Aug 2018 16:28:24 +0200
+
+llvm-toolchain-7 (1:7.1.0~svn353565-1~exp1) UNRELEASED; urgency=medium
+
+ * New stable release.
+ To be clear, this is the same as release 7.0.1
+ To be ABI compliant in Debian between 7 and 7.0.1,
+ I took the pr39427-misscompile.diff.
+ 7.1.0 is an official release for downstream users to bring
+ back the ABI comptability.
+ I am uploading this new version in the archive to:
+ - avoid question like "why we don't have 7.1.0 in the archive?"
+ - align with upstream
+ - clearly show that we kept the ABI
+ Upstream decided to rename the library from 7 to 7.1.0
+ As I kept the ABI, I reverted the patches (debian/patches/7.1.0/*)
+ More info on https://bugs.llvm.org/show_bug.cgi?id=39427
+ and https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913271
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 09 Feb 2019 16:34:12 +0100
+
+llvm-toolchain-7 (1:7.0.1-7) unstable; urgency=medium
+
+ * kfreebsd/kfreebsd-triple-clang.diff: update of the patch to fix
+ the kfreebsd FTBFS (Closes: #921246)
+ * Enable ld gold for kfreebsd-amd64 and kfreebsd-i386
+ Many thanks to Svante Signell for the two updates
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 07 Feb 2019 17:17:40 +0100
+
+llvm-toolchain-7 (1:7.0.1-6) unstable; urgency=medium
+
+ * Add support for kfreebsd (Closes: #921246)
+ Many thanks to Svante Signell for all patches
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 03 Feb 2019 17:27:51 +0100
+
+llvm-toolchain-7 (1:7.0.1-5) unstable; urgency=medium
+
+ * Add 'Rules-Requires-Root: no' in debian/control
+ * llvm-7-examples: Force the same version of llvm-7-dev to mitigate
+ a debci issue
+ https://ci.debian.net/data/autopkgtest/unstable/amd64/l/llvm-toolchain-7/1635547/log.gz
+ * Add 'Rules-Requires-Root: no' in debian/control
+ * Because more and more tools in clang-tools are in python, add
+ the dependency
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 04 Jan 2019 16:00:41 +0100
+
+llvm-toolchain-7 (1:7.0.1-4) unstable; urgency=medium
+
+ * On old Debian/Ubuntu, run dh_strip using fakeroot to mitigate
+ a permission issue
+
+ [ Gianfranco Costamagna ]
+ * Ignore a test result on i386, due to upstream bug 26580#c18
+
+ * Stable release
+ * Also manages clang-X as tool for scan-build
+ see https://reviews.llvm.org/D52151
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 17 Sep 2018 13:51:03 +0200
+
+llvm-toolchain-7 (1:7~+rc3-5) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Add patch to fix missing include and library paths on x32
+
+ [ Sylvestre Ledru ]
+ * Only rename libomp when openmp is built
+
+ -- John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Fri, 14 Sep 2018 19:54:38 +0200
+
+llvm-toolchain-7 (1:7~+rc3-4) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * libc++-7-dev doesn't provide libstdc++-dev anymore (Closes: #908738)
+
+ [ Gianfranco Costamagna ]
+ * Force polly cmake removal on arch:all because of --fail-missing
+
+ [ Reshabh Sharma ]
+ * Make OpenMP packages coinstallable from version 7
+ * Make libc++ packages coinstallable from version 7
+
+ [ John Paul Adrian Glaubitz ]
+ * Add patch to fix missing MultiArch include dir
+ on powerpcspe (Closes: #908791)
+ * Disable LLDB on riscv64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 14 Sep 2018 11:27:28 +0200
+
+llvm-toolchain-7 (1:7~+rc3-3) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable OpenMP on unsupported architecture x32
+
+ [ Sylvestre Ledru ]
+ * Build llvm using -DLLVM_USE_PERF=yes (Closes: #908707)
+
+ [ Gianfranco Costamagna ]
+ * Install polly only on arch:all packages
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 13 Sep 2018 09:31:29 +0200
+
+llvm-toolchain-7 (1:7~+rc3-2) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Fix inverted logic in ifeq statement for POLLY_ENABLE
+ and OPENMP_ENABLE (Closes: #908646)
+
+ [ Gianfranco Costamagna ]
+ * Drop gnustep and gnustep-devel suggestions (Closes: #902847)
+ * Enable polly on s390x
+ * Disable omp on armel mips and mipsel for now
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 12 Sep 2018 10:58:12 +0200
+
+llvm-toolchain-7 (1:7~+rc3-1) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable OpenMP on unsupported architectures powerpc,
+ powerpcspe, riscv64 and sparc64 (Closes: #907912)
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 10 Sep 2018 17:01:25 +0200
+
+llvm-toolchain-7 (1:7~+rc2-1~exp3) experimental; urgency=medium
+
+ * Remove libtool flex, bison, dejagnu, tcl, expect,
+ and perl from the build deps (testing)
+ * Disable force-gcc-header-obj.diff as it is introducing
+ some regressions in the search headers
+ (Closes: #903709)
+
+ [ Gianfranco Costamagna ]
+ * Fix build on armhf, by removing some installed package
+ * Fix build on s390x, by disabling OpenMP
+ * Add liblldb-7-dev to python-lldb runtime dependencies, needed to import it
+ * Enable lld on arm64, mips64el
+ * Enable lldb on mips64el
+
+ [ Reshabh Sharma ]
+ * Add version for libc++ and OpenMP packages breaks/replaces
+ * Remove libc++-helpers package
+ - No real value
+ - Just two scripts
+ - Command line arguments aren't that complex
+ * Fix autopkgtest support
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 03 Sep 2018 09:16:22 +0200
+
+llvm-toolchain-7 (1:7~+rc2-1~exp2) experimental; urgency=medium
+
+ * Force sphinx to be >> 1.2.3
+ * Also ignore libc++experimental.a on dh_strip (fails on stretch)
+ * Make libc++-7-dev & libc++abi-7-dev coinstallable
+
+ [ John Paul Adrian Glaubitz ]
+ * Don't build with ld.gold on powerpcspe
+ * Disable polly on powerpcspe
+ * Add upstream patch to make rustc build on powerpc
+
+ [ Gianfranco Costamagna ]
+ * Enable lld on ppc64el
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 27 Aug 2018 10:57:41 +0200
+
+llvm-toolchain-7 (1:7~+rc2-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * dh_strip should be verbose
+ * On Stretch (binutils 2.28), do not run strip on libFuzzer.a, libc++.a
+ & libc++abi.a because it segfaults
+ * Fixed "weak-library-dev-dependency libc++-7-dev on libc++-7-helpers"
+ * Fixed "libomp5-7: shlibs-declares-dependency-on-other-package
+ libomp5-7) (>= 1:7~svn298832-1~)"
+ * Also use the local cmake binary if available (for trusty)
+ and take in account the PRE_PROCESS_CONF option
+
+ [ Reshabh Sharma ]
+ * Fixed "Lintian warnings for libc++abi-7-dev package"
+ - Warning: libc++abi-7-dev: breaks-without-version libc++-dev
+ - Warning: libc++abi-7-dev: breaks-without-version libc++abi-dev
+ - Warning: llvm-toolchain-7 source: binaries-have-file-conflict
+ libc++abi-7-dev libc++abi1-7 usr/lib/llvm-7/lib/libc++abi.so
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 16 Aug 2018 17:49:31 +0200
+
+llvm-toolchain-7 (1:7~+rc1-1~exp2) experimental; urgency=medium
+
+ * Disable force-gcc-header-obj.diff as it is introducing
+ some regressions in the search headers
+ (Closes: #903709)
+ * libc++-7-dev should depend on libc++-7-helpers (and not
+ libc++-helpers)
+ * Fix the links in the helper package
+
+ [ Reshabh Sharma ]
+ * Fix the path to libc++ header
+ * libc++.so was in two packages
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 15 Aug 2018 15:27:57 +0200
+
+llvm-toolchain-7 (1:7~+rc1-1~exp1) experimental; urgency=medium
+
+ * First testing release of 7
+ - Rename packages
+ - Update the VCS-* URL
+ * Standards-Version to 4.2.0
+
+ [ Dimitri John Ledkov ]
+ * Enable lldb on ppc64el LP: #1777136
+
+ [ Reshabh Sharma ]
+ * Integrate libcxx and libcxxabi as part of the llvm-toolchain packages
+ Very similar to the previous packages
+ except that libc++abi-7-test & libc++-7-test are no longer shipped
+ Outcome of the LLVM GSoC 2018
+ (Closes: #813673)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 07 Aug 2018 19:25:09 +0200
+
+llvm-toolchain-snapshot (1:7~svn336894-1~exp1) experimental; urgency=medium
+
+ [ Reshabh Sharma ]
+ * Integrate opemp as part of the llvm-toolchain packages (Closes: #813672)
+ As part of this work, the transition libiomp packages have been removed.
+
+ [ Sylvestre Ledru ]
+ Bravo to Reshabh Sharma for his work
+ * Also ship diagtool in clang-tools-X
+ * Also ship hmaptool in clang-tools-X
+ * Enable WebAssembly & AVR as experimental archs (Closes: #899202)
+ * d/p/force-gcc-header-obj.diff Fix the detection of the objc path
+ * clang_getCompletionFixIt, clang_getCompletionNumFixIts & getTokenclang
+ added as new symbols of libclang1
+ * Fix the version with snapshot packages
+ Fixes upstream issue https://bugs.llvm.org/show_bug.cgi?id=37729
+
+ [ Gianfranco Costamagna ]
+ * Bump std-version to 4.1.5, no changes required
+
+ [ Reshabh Sharma ]
+ * Updated debian/control with breaks, provides and conflicts for OpenMP
+ packages (Closes: #903802)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 09 May 2018 14:23:49 +0200
+
+llvm-toolchain-snapshot (1:7~svn330801-1~exp2) experimental; urgency=medium
+
+ * d/p/force-gcc-header-obj.diff Fix the detection of the objc path
+ * Add python-yaml as dep for clang-tidy (Closes: #890514)
+ * d/p/impl-path-hurd.diff: Try to fix an issue with hurd
+
+ [ Peter Wu ]
+ * Make CMake find_package(Clang) work. Fixes upstream bug
+ https://bugs.llvm.org/show_bug.cgi?id=37128
+ - Move Clang*.cmake back to /usr/lib/llvm-X.Y/lib/cmake/clang and install a
+ symlink in /usr/lib/cmake/clang-X.Y.
+ - Ensure that the LLVM installation prefix is correctly discovered despire
+ symlinks (replaces fix-cmake-config-prefix.diff).
+ - Create /usr/lib/llvm-X.Y/bin/clang-X.Y symlink as required by
+ ClangTargets-relwithdebinfo.cmake.
+ - Remove useless LLVM_CMAKE_DIR sed command that did not match anything.
+ - Ignore missing binaries in ClangTargets-relwithdebinfo.cmake.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 07 May 2018 23:27:26 +0200
+
+llvm-toolchain-6.0 (1:6.0.1~+rc1-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Fix a typo in the debci
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 26 Apr 2018 08:02:09 +0200
+
+llvm-toolchain-6.0 (1:6.0-3) unstable; urgency=medium
+
+ * Remove sysconf_interceptor_bypass_test.cc because it makes
+ Debian unstable and Ubuntu bionic freeze
+ * Remove the info text from the manpages (Closes: #894734)
+ * Remove a bunch of old unused patches
+ * Fix debian-watch-uses-insecure-uri as upstream has now https
+ * Standards-Version updated to 4.1.3
+ * llvm-dsymutil has been renamed to dsymutil
+ * Remove sysconf_interceptor_bypass_test.cc because it makes
+ Debian unstable and Ubuntu bionic freeze
+ * library-binary-filename.diff removed (applied upstream)
+ * Add clang_File_tryGetRealPathName as new symbol in libclang
+
+ [ Reshabh Sharma ]
+ * Enable autopkgtest for amd64 & i386 on the llvm test suite
+ (Closes: #774294)
+
+ [ Nicholas D Steeves ]
+ * Fix the lintian error 'privacy-breach-uses-embedded-file'
+ (Closes: #829361)
+
+ [ Athos Ribeiro ]
+ * Create symlink to run-clang-tidy-X.Y.py to remove its .py extension
+ (Closes: #892089)
+
+ [ David Tenty ]
+ * Migrate to automatic debug packages (Closes: #893267)
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 25 Apr 2018 10:59:20 +0200
+
+llvm-toolchain-snapshot (1:7~svn327768-1) unstable; urgency=medium
+
+ * New snapshot release
+ * create the directory for the mips stuff
+ * Fail the build when new symbols are added
+ * 5 new symbols:
+ - clang_PrintingPolicy_dispose
+ - clang_PrintingPolicy_getProperty
+ - clang_PrintingPolicy_setProperty
+ - clang_getCursorPrettyPrinted
+ - clang_getCursorPrintingPolicy
+ * Use upstream ld.lld manpage instead of help2man
+ * Move the VCS to git.
+ Many thanks to James Clarke for doing the conversion
+ * Create the directory before having the manpages generated
+ * clang-tidy-7 also depends on clang-tools-7 for, at least
+ clang-apply-replacements
+ * Automatically update the debian/README
+ * clang-tidy-7: depends on libclang-common-7-dev
+ (Closes: #891999)
+
+ [ James Clarke ]
+ * Disable LLDB on powerpcspe
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 17 Mar 2018 14:56:19 +0100
+
+llvm-toolchain-snapshot (1:7~svn323616-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Fix llvm-config with the change of versioning (Closes: #888592)
+ * Update the creation of the README to unbreak the mips* FTBFS
+ * Update of the clang-tools-X.Y description
+ * ignore source: source-is-missing lldb/unittests/
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 28 Jan 2018 13:43:37 +0100
+
+llvm-toolchain-snapshot (1:7~svn322880-1) unstable; urgency=medium
+
+ * Change the versioning from X.Y to X as upstream is using
+ X.Y.Z and X
+ I am keeping the epoch because it would be too complex to manage
+ with the various updates scenario
+ * Two new symbols in libclang
+ - clang_getFileContents
+ - clang_isInvalidDeclaration
+ * Fix the VCS-* tags
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Jan 2018 20:50:03 +0100
+
+llvm-toolchain-6.0 (1:6.0.1-11) unstable; urgency=medium
+
+ * Remove 'Multi-Arch: same' in libclang
+ (Closes: #874248)
+ * Cherry-pick various llvm fixes for Julia
+ (Closes: #919628)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 09 Feb 2019 17:22:59 +0100
+
+llvm-toolchain-6.0 (1:6.0.1-10) unstable; urgency=medium
+
+ * Fix a baseline violation on armhf (Closes: #914268)
+ Thanks to Adrian Bunk
+ doing that for the Julia package.
+
+ [ John Paul Adrian Glaubitz ]
+ * Add patch to fix missing include and library paths on x32
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 23 Jan 2019 23:25:50 +0100
+
+llvm-toolchain-6.0 (1:6.0.1-9.2) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * debian/patches/D53557-hurd-self-exe-realpath.diff: Fix paths returned by
+ llvm-config (Closes: Bug#911817).
+
+ -- Samuel Thibault <sthibault@debian.org> Wed, 24 Oct 2018 22:44:54 +0000
+
+llvm-toolchain-6.0 (1:6.0.1-9.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Apply hurd fixes (Closes: #908847).
+ - hurd-lib_Support_Unix_Path.inc.diff
+ - hurd-pathmax.diff
+ - hurd-tools_llvm-shlib_CMakeLists.txt.diff
+
+ -- Samuel Thibault <sthibault@debian.org> Tue, 16 Oct 2018 20:18:39 +0000
+
+llvm-toolchain-6.0 (1:6.0.1-8) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Fix inverted logic in ifeq statement for POLLY_ENABLE (Closes: #908646)
+
+ [ Gianfranco Costamagna ]
+ * Fixup the polly installation failure where polly is not built
+ * Add s390x to polly architectures
+ * Fix typo in rules file
+
+ [ Sylvestre Ledru ]
+ * Disable sse2 on pentium4 arch (Closes: #632472)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 13 Sep 2018 10:04:42 +0200
+
+llvm-toolchain-snapshot (1:6.0~svn321385-1) unstable; urgency=medium
+
+ * Snapshot upload before rc1 (January)
+ * Create clang-tools-6.0 and move the various clang tools into it
+ clang-tools-6.0 depends on clang-6.0. This might affect some packages.
+ (Closes: #836397)
+ * Bring back the libedit support in lldb
+ Fix upstream bug https://bugs.llvm.org/show_bug.cgi?id=35291
+ * Also ship ld64.lld and wasm-ld in the lld-X.Y package
+ * Update d/rules to reflect the move of libfuzzer into compiler-rt
+ * Update of the copyright file (Closes: #878502)
+ Thanks to Nicholas D Steeves for the work
+ * Try to fix the mipsel FTBFS (Closes: #877567)
+ I am trying the first option from the bug:
+ - gsplit-dward on 32 bits archs
+ - -g everywhere
+ Many thanks to Adrian Bunk for that
+ * Use ?= for some variables declarations
+ * Remove the hardcoded declarations of llvm version in debian/rules
+ * add /usr/lib/cuda to the CUDA toolkit search paths
+ Thanks to Andreas Beckmann for the patch (Closes: #882505) (LP: #1706326)
+ * Fix the fix-scan-view-path.diff path
+ * Move libomp-dev from Suggests to Recommends (Closes: #882781)
+ * Add a symlink to fix lldb-X.Y (Closes: #881993)
+ * Remove update-cuda-search-path.patch (applied upstream)
+ * Also install usr/bin/lldb-test-6.0
+ * liblld-6.0-dev depends on liblld-6.0 (Closes: #856545)
+ * Add new symbols for libclang1:
+ - clang_CXIndex_setInvocationEmissionPathOption
+ - clang_CXXRecord_isAbstract
+ - clang_Cursor_getObjCManglings
+ - clang_getCursorTLSKind
+ * add test-keep-alive.diff to improve the keep alive for some
+ archs like mips*
+ * Standards-Version: 4.1.1
+ * remove liblld-6.0-dbg for now
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 22 Dec 2017 21:41:17 +0100
+
+llvm-toolchain-snapshot (1:6.0~svn315736-1) unstable; urgency=medium
+
+ * New snapshot
+ * Ship liblldMinGW lld lib
+ * Ship clang-refactor & clang-func-mapping in clang-X.Y
+ * Remove the -Wl option to call gold instead of the normal linker
+ (Closes: #876787)
+ * Force the deactivation of ocaml until the transition is done
+ * Standards Version 4.1.0
+
+ [ Gianfranco Costamagna ]
+ * Enable ocaml on release architectures.
+ * Add NDEBUG flag, lost in the -g -> -g1 switch
+
+ [ Matthias Klose ]
+ * Link with --no-keep-files-mapped --no-map-whole-files when using gold.
+ * build using gold on arm64 and s390x. For backports, arm64 might still
+ need the BFD linker, and building with only one or two processes in
+ parallel.
+ * On amd64, s390x, arm64 and ppc64el, build with -g1 instead of -g.
+ * Set CMAKE_CXX_FLAGS_RELWITHDEBINFO and pass opt_flags.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 11 Sep 2017 22:27:20 +0200
+
+llvm-toolchain-snapshot (1:6.0~svn311834-2) unstable; urgency=medium
+
+ * Fix the FTBFS because of -gsplit-dwarf:
+ - Only enable it on archs which needs it
+ - Only enable it when gcc supports it correctly
+ * Fail the build if the arch + gcc has a broken gsplit-dwarf support
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 31 Aug 2017 19:14:53 +0200
+
+llvm-toolchain-snapshot (1:6.0~svn311834-1) unstable; urgency=medium
+
+ * Link LLDB with -latomic on powerpcspe (Closes: #872267)
+ * Fix the C++ include path order (Closes: #859083)
+ * Disable -gsplit-dwarf when using gcc 7 for causing a linking issue
+ See https://bugs.llvm.org/show_bug.cgi?id=34140
+ (Closes: #853525)
+ * clang was producing unusable binaries on armv5tel (Closes: #873307)
+ Thanks to Adrian Bunk for the patch
+ * With Ubuntu Trusty (for apt.llvm.org), the build fails
+ on internal compiler error: in output_index_string, at dwarf2out.c:218
+ force the usage of gcc 4.9
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 26 Aug 2017 22:35:00 +0200
+
+llvm-toolchain-snapshot (1:6.0~svn310776-1) unstable; urgency=medium
+
+ * We moved from 5.0 to 6.0
+ * Ship the opt-viewer new program as part of llvm-6.0 tools
+ * ld.lld manpage wasn't installed
+ * Disable the clang-fix-cmpxchg8-detection-on-i386.patch patch
+ because breaks the build with
+ 'error: 'isCmpXChg8Supported' was not declared in this scope'
+ * Remove usr/bin/liblldb-intel-mpxtable.so-6.0 as it seems to be removed
+ from usptream
+ * Force the usage of gcc 6 until the link issues with gcc 7 are fixed
+ https://bugs.llvm.org/show_bug.cgi?id=34140
+
+ [ Katsuhiko Nishimra ]
+ * Ensure /usr/bin/g++-$(GCC_VERSION) exists (Closes: #871591)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 27 Jul 2017 23:16:06 +0200
+
+llvm-toolchain-snapshot (1:5.0~svn305653-1) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Re-add clang-doc documentation
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+ * Fix a hurd PATH_MAX issue
+ * Transform the lldb swig check from a error to a warning
+ * Add libomp-dev to the suggests of clang
+ * Add Provides on python-lldb-x.y & python-clang-x.y & libllvm-x.y-ocaml-dev
+ to avoid the recurring problem about conflicts
+ (Closes: #835546, #863739, #863742)
+ * Standards-Version => 4.0.0
+ * Generate the llvm-tblgen, clang-change-namespace, clang-offload-bundler
+ lld, clang++, clang-check, clang-cpp & clang-import-test manpages
+ * Remove the --no-discard-stderr option from help2man calls
+ * use -DPOLLY_BUNDLED_JSONCPP=OFF & add pkg-config as a dep (to help find
+ the files)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 09 Jun 2017 12:04:56 +0200
+
+llvm-toolchain-snapshot (1:5.0~svn302368-1~exp1) experimental; urgency=medium
+
+ * Only enable libfuzzer for Linux kernel.
+ Thanks to Pino Toscano for the patch
+ * Add option -DPOLLY_BUNDLED_JSONCPP=ON
+ to use the system lib instead of the patch d/p/use-deb-json.diff
+ * New symbols added in libclang
+ - clang_EvalResult_getAsLongLong
+ - clang_EvalResult_getAsUnsigned
+ - clang_EvalResult_isUnsignedInt
+ - clang_TargetInfo_dispose
+ - clang_TargetInfo_getPointerWidth
+ - clang_TargetInfo_getTriple
+ - clang_Type_isTransparentTagTypedef
+ - clang_getAllSkippedRanges
+ - clang_getTranslationUnitTargetInfo
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 07 May 2017 12:13:43 +0200
+
+llvm-toolchain-snapshot (1:5.0~svn298899-1) unstable; urgency=medium
+
+ * Limit the archs where the ocaml binding is built
+ Should fix the FTBFS
+ Currently amd64 arm64 armel armhf i386
+ * d/p/add_symbols_versioning.patch removed (applied upstream)
+ * Really fix "use versioned symbols" for llvm
+ Thanks to Julien Cristau for the patch (Closes: #849098)
+ * Explicit the dep of clang-tidy on same version of llvm to avoid
+ undefined symbols
+ * Add override_dh_makeshlibs for the libllvm or liblldb versions
+ Thanks to Julien Cristau for the patch
+ * change the min version of the libclang1 symbols to 1:4.0-3~
+ * Fix the symlink on scan-build-py
+ * add libncurses in the list of build deps (Closes: #861170)
+
+ [ Rebecca N. Palmer ]
+ * Use versioned symbols (Closes: #848368)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 09 Apr 2017 10:11:56 +0200
+
+llvm-toolchain-snapshot (1:5.0~svn294583-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * New library liblldb-intel-mpxtable.so
+ * 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
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 16 Jan 2017 09:03:48 +0100
+
+llvm-toolchain-snapshot (1:5.0~svn292017-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ snapshot is now 5.0
+ * 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-5.0 when installing lldb-5.0 (Closes: #851171)
+ * Bring back the content of llvm-5.0-doc (Closes: #844616)
+ * 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 <sylvestre@debian.org> Sat, 14 Jan 2017 16:36:51 +0100
+
+llvm-toolchain-snapshot (1:4.0~svn291344-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Disable libedit usage in lldb because of garbage (Closes: #846616, #850111)
+ * Build lld
+ - d/p/lld-arg-cmake-issue.diff fixes upstream bug #27685
+ * ship clang-tblgen
+ * Run clang extra test suite
+ * Fix the detection of lldb-server
+ * Fix the run of the check-lldb target
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 07 Jan 2017 12:24:32 +0100
+
+llvm-toolchain-snapshot (1:4.0~svn290810-1) unstable; urgency=medium
+
+ * New snapshot release
+ * d/p/kfreebsd-support.diff removed (applied upstream)
+ * debian/orig-tar.sh: less verbose
+ * d/p/lldb-missing-install.diff: For the install
+ of lldb-server and lldb-argdumper as they are not always installed
+ * Ship new binary in clang-X.Y: clang-import-test
+ * New symbols in libclang1:
+ - clang_EvalResult_getAsLongLong
+ - clang_EvalResult_getAsLongLong
+ - clang_EvalResult_isUnsignedInt
+ * Fix a regression in the test run for the code coverage
+ * Silent ThinLTO/X86/autoupgrade.ll, fails with code coverage (and maybe others)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 02 Jan 2017 13:51:06 +0100
+
+llvm-toolchain-snapshot (1:4.0~svn286225-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Remove the info section from the generated manpages (Closes: #846269)
+
+ [ Kai Wasserbäch ]
+ * debian/patches/{0003-Debian-version-info-and-bugreport.patch,
+ 0044-soname.diff,23-strlcpy_strlcat_warning_removed.diff,
+ 26-set-correct-float-abi.diff,atomic_library_[12].diff,
+ fix-clang-path-and-build.diff,fix-lldb-server-build,lldb-libname.diff,
+ lldb-soname.diff,mips-fpxx-enable.diff,removeduplicatedeclaration.diff}:
+ Refreshed.
+ * debian/patches/{silent-gold-utils,kfreebsd-support}.diff: Updated.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 08 Nov 2016 12:19:55 +0100
+
+llvm-toolchain-snapshot (1:4.0~svn282142-1~exp1) experimental; urgency=medium
+
+ * The libstdc++-6-dev & libobjc-6-dev are only install with clang-X.Y
+ and libclang-X.Y-dev and no longer with libclang1-X.Y
+ (Closes: #841309)
+ * Fix the VCS-* fields
+
+ [ Kai Wasserbäch ]
+ * debian/patches/{23-strlcpy_strlcat_warning_removed.diff,
+ 0003-Debian-version-info-and-bugreport.patch, atomic_library_[12].diff,
+ python-clangpath.diff,removeduplicatedeclaration.diff,
+ fix-clang-path-and-build.diff,mips-fpxx-enable.diff}: Refreshed.
+ * debian/patches/{silent-more-tests.diff,silent-MCJIIT-tests.diff}: Updated.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 24 Oct 2016 10:45:07 +0200
+
+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 <sylvestre@debian.org> 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
+ to fix some issues in rust (Closes: #842956)
+ Many thanks to Ximin Luo for the investigation
+
+ * libclang-common-4.0-dev: missing multilib binaries for the sanitizer
+ libraries (Closes: #841923)
+ Many thanks to Norbert Lange for the changes
+
+ [ Pauli ]
+ * d/p/clang-fix-cmpxchg8-detection-on-i386.patch:
+ libcxx atomic tests for old i386 fail with wrong Atomic inline width.
+ Needed for libc++
+ (See https://llvm.org/bugs/show_bug.cgi?id=19355)
+ * d/p lldb-addversion-suffix-to-llvm-server-exec.patch:
+ Fix the lldb-server call in some cases
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 04 Nov 2016 17:18:07 +0100
+
+llvm-toolchain-3.9 (1:3.9-4) unstable; urgency=medium
+
+ * LLVMConfig.cmake was installed into wrong location
+ Install a symlink from lib/cmake/llvm to share/llvm/cmake
+ (Closes: #839234)
+ * Fix a path issue in scan-view. Thanks Riccardo Magliocchetti
+ (Closes: #838572)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 31 Oct 2016 10:47:52 +0100
+
+llvm-toolchain-3.9 (1:3.9-3) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * The libstdc++-6-dev & libobjc-6-dev are only install with clang-X.Y
+ and libclang-X.Y-dev and no longer with libclang1-X.Y
+ (Closes: #841309)
+
+ [ Gianfranco Costamagna ]
+ * Team upload
+ * d/p/drop-wrong-hack-arm64.patch:
+ - drop hack that was preventing the package from building on
+ non-amd64 64bit architectures:
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 27 Oct 2016 11:45:28 +0200
+
+llvm-toolchain-snapshot (1:4.0~svn280796-1~exp1) experimental; urgency=medium
+
+ * Merge clang-include-fixer-4.0 into clang-4.0. Don't think
+ it deserves it own package
+ * python-lldb-4.0 archs "any" to a list like others pkg
+ * Fix a version issue with run-clang-tidy-4.0.py
+ * Also install clang-change-namespace-4.0
+
+ [ Kai Wasserbäch ]
+ * debian/clang-X.Y.install.in: Added clang-cpp.
+ * debian/patches: Refreshed.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 02 Sep 2016 13:11:56 +0200
+
+llvm-toolchain-3.9 (1:3.9-1) unstable; urgency=medium
+
+ * New stable release
+ * Port to kfreebsd. Many thanks to Pino Toscano
+ (Closes: #835665)
+ * clang_getAllSkippedRanges in the list of libclang1 symbols
+ * Try to disable the execution of the testsuite for scan-build & coverity
+ for real
+ * Also ship clang-reorder-fields as part of the clang-4.0 package
+ * Build lldb on arm64. Hopefully, works.
+ * New snapshot release
+ * Tentative fix for lldb-server build
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 07 Sep 2016 12:02:12 +0200
+
+llvm-toolchain-snapshot (1:4.0~svn279916-1) unstable; urgency=medium
+
+ * Snapshot is now 4.0
+ * Introduce clang-include-fixer-4.0
+ * Fix the usage of jsoncpp in polly. Thanks to James Clarke for the patch
+ (Closes: #835607)
+ * Fix the renaming of the manpages (Closes: #834077)
+ * Use the manpage from clang.rst instead of help2man
+ * Disable the build of lldb on mips64el, ppc64 and s390x for real
+ * Add symlink from ./build to ../share and ../lib etc
+ Thanks to Ximin Luo for the patch (Closes: #834144)
+ * Sync the 3.9 changes into 4.0
+ * Fix the cmake paths in llvm-4.0-dev deb package. Thanks to Brad King
+ for the patch (Closes: #819072)
+ * Bring back the lto (gone with the cmake migration)
+ (Closes: #819333) (upstream: #27223)
+ * LLVMConfig.cmake is now installed to <prefix>/lib/cmake/llvm instead of
+ <prefix>/share/llvm/cmake
+ Thanks to Brad King of the fix
+ * Disable lldb on sparc64 (Closes: #832371)
+ * Also install clang-rename.el & clang-rename.py in clang-4.0
+ * scan-build llvm results are built using --show-description
+ * Generate manpages for lli, lldb-mi & git-clang-format
+ * Fix some lintian overrides
+ * Generate more manpages
+ * Remove some garbage from the manpages (Closes: #815991, #804347)
+ * Disable -gsplit-dwarf on Ubuntu precise
+ * Update the coverity configuration (Debian has moved to gcc 6)
+ * remove compiler-rt-path.diff (file removed upstream, probably because
+ we moved to cmake)
+ * Ship clang-offload-bundler in clang 4.0
+ * Set the correct Conflicts for python-clang-4.0, python-lldb-4.0
+ (Closes: #832410)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 27 Aug 2016 14:19:41 +0200
+
+llvm-toolchain-snapshot (1:4.0~svn275970-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Bring back llvm-4.0-tools to life
+ * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev
+ package
+
+ * amd64 llvm testsuite is green, bring back the failure in case of error
+ * Fix the cmake paths in llvm-3.9-dev deb package. Thanks to Brad King
+ for the patch (Closes: #819072)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 25 Jul 2016 12:18:52 +0200
+
+llvm-toolchain-3.9 (1:3.9~svn275918-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Silent test CodeGen/SPARC/LeonInsertNOPsDoublePrecision.ll
+ * ship lli-child-target as part of the llvm-X.Y-runtime package
+ * Bring back llvm-3.9-tools to life
+ * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev
+ package
+ * ship lli-child-target as part of the llvm-X.Y-runtime package
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 19 Jul 2016 15:34:08 +0200
+
+llvm-toolchain-snapshot (1:3.9~svn274438-1) unstable; urgency=medium
+
+ * Remove the autoconf section
+ * Bring back the removal of the build dir
+ * Fix the coverage builds (didn't allow several cflags)
+ * Set the correct conflicts on python-lldb-3.8 (Closes: #817873)
+ * Set the correct conflicts on python-clang-3.8 (Closes: #817872)
+ * remove llvm26003-sanitizer-check-env.diff (merged upstream)
+ * Do not fail the build if the manpages cannot be built (failing on
+ Ubuntu precise)
+ * Install libfindAllSymbols.a as part of libclang-X.Y-dev
+ * Ship scan-build-py
+ * Use the libjsoncpp library embedded (fails to link otherwise)
+ * Standards-Version 3.9.8
+ * cmake files moved from usr/lib/llvm-3.9/share/llvm/cmake/
+ to usr/lib/llvm-3.9/lib/cmake/llvm/
+ (upstream change)
+ * Add a symlink from usr/lib/llvm-3.9/share/llvm/cmake
+ pointing to usr/share/llvm-3.9/cmake
+ * Disable the run of lldb testsuite because of LLVM_LINK_LLVM_DYLIB=ON:
+ https://llvm.org/bugs/show_bug.cgi?id=28127
+ * Add -gsplit-dwarf to CXXFLAGS to workaround the memory allocation
+ issue on i386
+ * Ignore the lintian override about embedded-library for json.
+ Doesn't link otherwise
+ * Fix the soname of libclang and libLLVM. Might cause some breakage with
+ existing app but no choice...
+
+ [ Pablo Oliveira ]
+ * Add python-six as a dependency of python-lldb (Closes: #825371)
+ (thanks to Askar Safin)
+ * Fix lldb symlinks
+ * Fix missing _lldb.so import during lldb testsuite
+
+ [ Ed Schouten ]
+ * Preparation of the support of lld (not ready yet)
+
+ [ Kai Wasserbäch ]
+ * debian/rules:
+ - Ensure ld-gold is used. CMake invokes the linker through g++ most of the
+ time, therefore we need to set -Wl,-fuse-ld=gold.
+ - Remove unused variable "confargs".
+
+ [ Brad King ]
+ * Install cmake files in usr/share/llvm-@LLVM_VERSION@/cmake/ instead of
+ usr/share/llvm-@LLVM_VERSION@/cmake/
+ * Also install libLLVM-3.8.so.1 as a symlink
+ * debian/patches/fix-cmake-config-prefix.diff:
+ cover the CMake build system too
+ (Closes: #819072)
+
+ [ Alexis La Goutte ]
+ * Fix an issue with scan-view (Closes: #825101)
+
+ [ YunQiang Su ]
+ * Enable FPXX by default on mips/mipsel (Closes: #826749)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 02 Jul 2016 20:46:05 +0200
+
+llvm-toolchain-snapshot (1:3.9~svn260851-1) unstable; urgency=medium
+
+ * New snapshot
+ * Switch to 3.9 (remove lldb-3.9-dev as it was a transitionnal pkg)
+ * Update the clang description for something more accurate (C++-11, 14, etc)
+ * Cmake migration. Done by Andrew Wilkins. Many thanks to him
+ - Update patches to set SONAME in CMake build
+ - Create symlinks with ".links", don't install from build tree
+ - Remove LLVM-internal tools (lit, FileCheck, not, tblgen, etc.)
+ - Remove llvm-X.Y-tools package, because it contained only
+ internal tools that are not intended for distribution.
+ - Remove autotools-specific artifacts from packages.
+ - Remove "dummy" documentation artifacts from llvm-X.Y-docs
+ package. Not built/installed by CMake, not useful.
+ - Update control/rules to support CMake
+ - Patch LLDB SWIG interfaces to workaround a bug in SWIG
+ See https://llvm.org/bugs/show_bug.cgi?id=25468
+ - add missing files to clang-format
+ - Add patch to fix sanitizer lit invocation
+ - removed LLVM-internal tools (lit, FileCheck, not, *-tblgen, etc.);
+ not installed by CMake, not intended for distribution
+ - removed llvm-X.Y-tools (contained only internal tools)
+ - removed autotools-specific artifacts (configure, Makefile, etc.)
+ - removed dummy documentation files
+ * Sync against 3.8
+ * Disable "Sphinx warnings treated as errors"
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 08 Mar 2016 09:50:29 +0100
+
+llvm-toolchain-3.8 (1:3.8-1) unstable; urgency=medium
+
+ * New upstream release
+ * Install a missing library to unbreak lldb (Closes: #815809)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 03 Mar 2016 21:16:21 +0100
+
+llvm-toolchain-3.8 (1:3.8~+rc3-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Update the clang description for something more accurate (C++-11, 14, etc)
+ * Update debian/orig-tar.sh to remove autoconf/config.sub autoconf/config.guess
+ in polly
+
+ [ Matthias Klose ]
+ * clang-tidy-3.8: Remove Breaks/Replaces on clang-modernize-3.8.
+ * Disable lldb on s390x.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 25 Feb 2016 14:26:14 +0100
+
+llvm-toolchain-3.8 (1:3.8~+rc2-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Remove build-llvm/ after the install step to save space.
+ Most of the rc1 builds failed because of hd space.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 03 Feb 2016 08:59:32 +0100
+
+llvm-toolchain-3.8 (1:3.8~+rc1-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Cmake migration. Done by Andrew Wilkins. Many thanks to him
+ - Update patches to set SONAME in CMake build
+ - Create symlinks with ".links", don't install from build tree
+ - Remove LLVM-internal tools (lit, FileCheck, not, tblgen, etc.)
+ - Remove llvm-X.Y-tools package, because it contained only
+ internal tools that are not intended for distribution.
+ - Remove autotools-specific artifacts from packages.
+ - Remove "dummy" documentation artifacts from llvm-X.Y-docs
+ package. Not built/installed by CMake, not useful.
+ - Update control/rules to support CMake
+ - Patch LLDB SWIG interfaces to workaround a bug in SWIG
+ See https://llvm.org/bugs/show_bug.cgi?id=25468
+ - add missing files to clang-format
+ - Add patch to fix sanitizer lit invocation
+ - removed LLVM-internal tools (lit, FileCheck, not, *-tblgen, etc.);
+ not installed by CMake, not intended for distribution
+ - removed llvm-X.Y-tools (contained only internal tools)
+ - removed autotools-specific artifacts (configure, Makefile, etc.)
+ - removed dummy documentation files
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 Jan 2016 16:09:01 +0100
+
+llvm-toolchain-3.8 (1:3.8.1-8) unstable; urgency=medium
+
+ * Disable the usage of ld gold on powerpc (Closes: #833583)
+ * Revert drop-avx512-from-skylake.diff, it is causing some regressions in the
+ testsuite
+ * Disable lldb on ppc64
+ * libfuzzer depends on the same version of clang (Closes: #833564)
+ * Use filter into of findstring in the gold usage. Thanks Doko for the
+ suggestion
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 07 Aug 2016 14:10:09 +0200
+
+llvm-toolchain-3.8 (1:3.8.1-7) unstable; urgency=medium
+
+ * Fix the detection of gcc. This broke the build on the latest unstable
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 05 Aug 2016 09:55:15 +0200
+
+llvm-toolchain-3.8 (1:3.8.1-6) unstable; urgency=medium
+
+ * Ship libFuzzer in its own package (libfuzzer-X.Y-dev) (Closes: #820159)
+ * Sync from Ubuntu. Many thanks to Matthias Klose
+ - drop-avx512-from-skylake.diff: Don't enable AVX512 on Skylake, as it's
+ a server cpu feature and breaks llvmpipe on workstations.
+ - Remove the build tree before calling dh_strip; at least the amd64 buildd
+ runs out of diskspace at this step.
+ - Add support for gcc's attribute abi_tag (needed for compatibility with
+ GCC 5's libstdc++); taken from the trunk (Closes: #797038)
+ (LP: #1510042, #1488254)
+ D17567-PR23529-Sema-part-of-attrbute-abi_tag-support.diff
+ D18035-PR23529-Mangler-part-of-attrbute-abi_tag-support.diff
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 28 Jul 2016 11:15:04 +0200
+
+llvm-toolchain-3.8 (1:3.8.1-5) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Try to fix mips64el build, by enabling the same
+ packages as the mips and mipsel versions
+ * Link mips* with latomic.
+
+ [ Sylvestre Ledru ]
+ * Disable lldb on sparc64 (Closes: #832371)
+ * Hopefully fix the FTBFS on armel
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Jul 2016 22:49:09 +0200
+
+llvm-toolchain-3.8 (1:3.8.1-4) unstable; urgency=medium
+
+ * Fix the FTBFS under mips/mipsel? (enable the link against atomic)
+ (Closes: #820537)
+ * Bring back llvm-3.8-tools to life
+ * ship clang-tblgen & yaml-bench as part of the libclang-common-X.Y-dev
+ package
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 Jul 2016 10:20:46 +0200
+
+llvm-toolchain-3.8 (1:3.8.1-3) unstable; urgency=medium
+
+ * Add -gsplit-dwarf to CXXFLAGS to workaround the memory allocation
+ issue on i386 (hopefully)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 02 Jul 2016 20:59:08 +0200
+
+llvm-toolchain-3.8 (1:3.8.1-2) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Add a symlink from usr/lib/llvm-3.8/share/llvm/cmake
+ pointing to usr/share/llvm-3.8/cmake
+
+ [ Gianfranco Costamagna ]
+ * Remove python-lldb-3.8 where liblldb-3.8-dev is not built
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 28 Jun 2016 14:44:48 +0200
+
+llvm-toolchain-3.8 (1:3.8.1-1) unstable; urgency=medium
+
+ * New maintenance release
+
+ [ Kai Wasserbäch ]
+ * debian/rules: Ensure ld-gold is used. CMake invokes the linker through
+ g++ most of the time, therefore we need to set -Wl,-fuse-ld=gold.
+
+ [ Brad King ]
+ * Followup to fix the cmake install (Closes: #819072)
+
+ [ YunQiang Su ]
+ * Enable FPXX by default on mips/mipsel (Closes: #826749)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 23 Jun 2016 08:49:29 +0200
+
+llvm-toolchain-3.8 (1:3.8.1~+rc1-1~exp1) experimental; urgency=medium
+
+ * New RC release
+ * Improve the cmake detection (used for llvm.org/apt)
+ * Standards-Version updated to 3.9.8
+ * Ignore outdated-autotools-helper-file
+
+ [ Brad King ]
+ * Install cmake files in usr/share/llvm-@LLVM_VERSION@/cmake/ instead of
+ usr/share/llvm-@LLVM_VERSION@/cmake/
+ * Also install libLLVM-3.8.so.1 as a symlink
+ * debian/patches/fix-cmake-config-prefix.diff:
+ cover the CMake build system too
+ (Closes: #819072)
+
+ [ Pablo Oliveira ]
+ * Fix python-lldb dependencies and make proper symlinks to libLLVM
+ and liblldb as suggested by Graham Inggs (Closes: #821022)
+ * Fix liblldb suffix in lldb/scripts/Python/finishSwigPythonLLDB.py
+ (Closes: #813798)
+ * Fix LLVM bug 26158 - clang packages don't provide man pages
+ * Add python-six as a dependency of python-lldb (thanks to Askar Safin).
+
+ [ Gianfranco Costamagna ]
+ * Make python-lldb-3.8 depend on lldb-3.8-dev, to pick all
+ the required dependencies
+ * Unbreak circular dependency by Suggesting the python binding from
+ liblldb-3.8-dev
+
+ [ Alexis La Goutte ]
+ * Fix an issue with scan-view (Closes: #825101)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 26 May 2016 17:30:00 +0200
+
+llvm-toolchain-3.8 (1:3.8-2) unstable; urgency=medium
+
+ * Team upload.
+ * Disable polly on s390x and fix polly check.
+ * Fix VCS fields.
+
+ [ Sylvestre Ledru ]
+ * Fix txt file installation issue, by putting a README.txt file
+ with some explanation.
+
+ [ Graham Inggs ]
+ * Tighten llvm dev dependency (Closes: #814142).
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 07 Mar 2016 10:56:05 +0100
+
+llvm-toolchain-3.8 (1:3.8-1) unstable; urgency=medium
+
+ * New upstream release
+ * Install a missing library to unbreak lldb (Closes: #815809)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 03 Mar 2016 21:16:21 +0100
+
+llvm-toolchain-3.8 (1:3.8~+rc3-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Update the clang description for something more accurate (C++-11, 14, etc)
+ * Update debian/orig-tar.sh to remove autoconf/config.sub autoconf/config.guess
+ in polly
+
+ [ Matthias Klose ]
+ * clang-tidy-3.8: Remove Breaks/Replaces on clang-modernize-3.8.
+ * Disable lldb on s390x.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 25 Feb 2016 14:26:14 +0100
+
+llvm-toolchain-3.8 (1:3.8~+rc2-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Remove build-llvm/ after the install step to save space.
+ Most of the rc1 builds failed because of hd space.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 03 Feb 2016 08:59:32 +0100
+
+llvm-toolchain-3.8 (1:3.8~+rc1-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Cmake migration. Done by Andrew Wilkins. Many thanks to him
+ - Update patches to set SONAME in CMake build
+ - Create symlinks with ".links", don't install from build tree
+ - Remove LLVM-internal tools (lit, FileCheck, not, tblgen, etc.)
+ - Remove llvm-X.Y-tools package, because it contained only
+ internal tools that are not intended for distribution.
+ - Remove autotools-specific artifacts from packages.
+ - Remove "dummy" documentation artifacts from llvm-X.Y-docs
+ package. Not built/installed by CMake, not useful.
+ - Update control/rules to support CMake
+ - Patch LLDB SWIG interfaces to workaround a bug in SWIG
+ See https://llvm.org/bugs/show_bug.cgi?id=25468
+ - add missing files to clang-format
+ - Add patch to fix sanitizer lit invocation
+ - removed LLVM-internal tools (lit, FileCheck, not, *-tblgen, etc.);
+ not installed by CMake, not intended for distribution
+ - removed llvm-X.Y-tools (contained only internal tools)
+ - removed autotools-specific artifacts (configure, Makefile, etc.)
+ - removed dummy documentation files
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 Jan 2016 16:09:01 +0100
+
+llvm-toolchain-snapshot (1:3.8~svn255217-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Fix an install issue with clang-tidy
+ * clang-modernize has been removed. Long live to clang-tidy, its
+ replacement
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 10 Dec 2015 05:18:29 +0100
+
+llvm-toolchain-snapshot (1:3.8~svn254193-2) UNRELEASED; urgency=medium
+
+ * disable lldb and polly on powerpc, currently ftbfs.
+ setting the lldb archs in debian/control in just one
+ place would be appreciated.
+ * quoting fixes in debian/rules, when make macros
+ are empty
+ Thanks to Doko for the two previous changes (Closes: #806729)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 30 Nov 2015 15:34:12 +0100
+
+llvm-toolchain-snapshot (1:3.8~svn254193-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Remove some warnings in the manpages generation (Closes: #795310)
+ * Also ship sancov in clang-3.8
+ * Fix the links to scan-build-3.8 & scan-view-3.8
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 20 Oct 2015 14:07:06 +0200
+
+llvm-toolchain-snapshot (1:3.8~svn250696-1) unstable; urgency=medium
+
+ * Remove macho-dump from LLVM (removed by upstream r248302)
+ * Introduce clang-tidy-3.8 as a separate package. Replaces clang-modernize
+ * Ship run-clang-tidy.py & clang-tidy-diff.py in clang-tidy-3.8
+ * Remove cpp11-migrate-3.8 package. Has been replaced by clang-modernize
+ for a while (which will be replaced by clang-tidy)
+ * Add three new symbols in libclang1
+ - clang_CompileCommand_getFilename@Base
+ - clang_CompileCommand_getMappedSourceContent@Base 3.8
+ - clang_CompileCommand_getMappedSourcePath@Base 3.8
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 21 Sep 2015 13:16:35 +0200
+
+llvm-toolchain-snapshot (1:3.8~svn247576-1) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+ * Remove CVE-2015-2305.patch. Already fixed upstream in a different
+ way
+ * remove patches merge upstream
+ - lit-lang.diff
+ - locale-issue-ld.diff
+ * Also generate liblldb-3.8-dbg
+ * Select LLVM OpenMP as the default backend
+
+ [ Gianfranco Costamagna ]
+ * d/control: Add more conflicting packages (python-clang and python-lldb)
+ (Closes: #796811, #796843)
+ * Remove an obsolete declaration about dragonegg
+ (cherry-pick from 3.7 branch)
+
+ [ James Price ]
+ * d/p/fix-cmake-config-prefix.diff: fix cmake path,
+ needs a change after upstream revision r241080
+ (Addresses: #794905)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 14 Sep 2015 18:29:09 +0200
+
+llvm-toolchain-snapshot (1:3.8~svn245286-1) unstable; urgency=medium
+
+ * New snapshot release (3.7 => 3.8)
+ No need to rename libllvm as 3.8 was not part of the debian archive
+
+ [ Gianfranco Costamagna ]
+ * Fix VCS fields.
+ * d/p/CVE-2015-2305.patch, fix security issue on regcomp.c
+ * Fix many lintian warning/errors
+ - copyright fixes
+ - control files
+ - disabled ocaml documentation
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 18 Aug 2015 14:28:36 +0200
+
+llvm-toolchain-snapshot (1:3.7~svn231060-1~exp2) UNRELEASED; urgency=medium
+
+ * Reflect upstream changes wrt vim package. Split the files into different
+ directories
+ * Disable the patch force-gcc-header-obj.diff. Seems to cause bug #23556
+ * Fix the CMake build. thanks to Paweł Bylica for the fix.
+ Fix upstream bug #23352
+ * No longer building some clang help page, removing them
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 21 Apr 2015 09:41:41 +0200
+
+llvm-toolchain-snapshot (1:3.7~svn231060-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Force the version of clang in the analyzer scripts
+ clang-analyzer-force-version.diff
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 03 Mar 2015 09:19:38 +0100
+
+llvm-toolchain-snapshot (1:3.7~svn230857-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Support of gcc 5.0 (Closes: #777988)
+ * compiler-rt-i586.diff: fix a build issue of compiler-rt under i386
+ * lldb-gdbserver & lldb-platform have been merged into lldb-server
+ * Bring back polly and remove libcloog-isl-dev & libisl-dev as build deps
+ (shipped in the polly source tree)
+ * Set the correct conflicts (Closes: #777580, #777581, #777582)
+ * lit-lang.diff: Force the call to ld to be in english
+ (was failing with a french locale)
+ * silent-MCJIIT-tests.diff: enable some tests and silents some other
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 28 Feb 2015 18:44:59 +0100
+
+llvm-toolchain-snapshot (1:3.7~svn227076-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Switch to version 3.7
+ * Standards-Version updated to 3.9.6
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 26 Jan 2015 09:23:41 +0100
+
+llvm-toolchain-snapshot (1:3.6~svn224810-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Update library filename declaration 3.5 => 3.6 (Closes: #772006)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 05 Dec 2014 17:46:56 -0800
+
+llvm-toolchain-snapshot (1:3.6~svn221998-1~exp1) experimental; urgency=medium
+
+ * Disable ocaml binding. Needs libctypes-ocaml 0.3.3 which is not available
+ * libllvm*.a is not longer built
+ * Update of the libclang symbols
+ * Improve the copyright file. Thanks to Dann Frazier (Closes: #766778)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 04 Nov 2014 14:43:28 +0100
+
+llvm-toolchain-snapshot (1:3.6~svn218612-1) unstable; urgency=medium
+
+ * Fix my screw up. Add .1 to the libclang soname to make
+ dpkg-shlibdeps happy
+ * Remove useless dependency on doxygen
+ * scan-build could not find clang binary (Closes: #758998)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 26 Sep 2014 17:05:26 +0200
+
+llvm-toolchain-snapshot (1:3.6~svn218446-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Upload in unstable
+ * Disable the co-instability of lldb & python-lldb
+ (Python stuff conflicts)
+ * Fix bad dependencies on lldb 3.6
+ * Refresh of the list of symbol in libclang
+ * Try to workaround the FTBFS under ppc64el (create an empty directory)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 24 Sep 2014 14:20:49 +0200
+
+llvm-toolchain-snapshot (1:3.6~svn216933-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * sync from 1:3.5~+rc4-2~exp1
+ * libclang-3.6.so should be used instead libclang.so. Update the soname
+ to match the new lib name (Closes: #759538)
+ * Rename liblldb.so to liblldb-3.6.so + update of the soname.
+ * python-clang-3.6 description updated
+ * liblldb-3.6 and python-lldb-3.6 added
+ * lldb-3.6-dev renamed to liblldb-3.6-dev to match the previous changes
+ * Manpages for llvm-ranlib, clang-apply-replacements, pp-trace and clang-tidy
+ added
+ * clang-3.6 should depends on binutils (for ld, at least)
+ (Closes: #751030)
+ * clang/www/analyzer/scripts/dbtree.js removed
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 30 Aug 2014 18:09:20 +0200
+
+llvm-toolchain-snapshot (1:3.6~svn215195-3) unstable; urgency=medium
+
+ * Just like in 3.4 & 3.5, bring back lldb & lldb-dev under mips & mipsel
+ * Ship clang-rename/clang-rename-3.6
+ * Disable libstdc++-header-i386.diff & include-target.diff (merged upstream)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 18 Aug 2014 09:02:30 +0200
+
+llvm-toolchain-snapshot (1:3.6~svn215195-2) unstable; urgency=medium
+
+ * try to build lldb-mi under kfreebsd (kfreebsd-lldb-mi.diff)
+ * kfreebsd-lldb-gdbserver.diff removed (applied upstream)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 11 Aug 2014 08:44:13 +0200
+
+llvm-toolchain-snapshot (1:3.6~svn215195-1) unstable; urgency=medium
+
+ * Upload in unstable
+ * Enable compressed debug sections (Closes: #757002)
+ * Force scan-build to use the same version of clang
+ * Old JIT has been removed. 0050-powerpcspe-fp.diff is useless
+ * try to build lldb-gdbserver under kfreebsd (kfreebsd-lldb-gdbserver.diff)
+ * Second try to fix build under HURD (hurd-EIEIO-undef.diff)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 04 Aug 2014 13:36:15 +0200
+
+llvm-toolchain-3.4 (1:3.4.2-8) unstable; urgency=medium
+
+ * Try to bring back lldb-3.4-dev on mips & mipsel (Closes: #758314)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 16 Aug 2014 22:39:13 +0200
+
+llvm-toolchain-3.4 (1:3.4.2-7) unstable; urgency=medium
+
+ * Upload in unstable
+ * Try to bring back lldb on mips & mipsel
+ * Force scan-build to use the same version of clang
+ * Try to fix hurd (hurd-EIEIO-undef.diff)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 05 Aug 2014 14:40:05 +0200
+
+llvm-toolchain-3.5 (1:3.5~+rc4-1) unstable; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Aug 2014 23:09:59 +0200
+
+llvm-toolchain-3.5 (1:3.5~+rc3-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Cherry-pick to commit from upstream (revisions 214906 214907)
+ to improve the gcc compat
+ * Remove scan-build-clang-path.diff (applied upstream)
+ * Just like in 3.4, bring back lldb & lldb-dev under mips & mipsel
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 Aug 2014 23:43:06 +0200
+
+llvm-toolchain-3.5 (1:3.5~+rc2-1) unstable; urgency=medium
+
+ * Fix the version
+ * try to build lldb-gdbserver under kfreebsd (kfreebsd-lldb-gdbserver.diff)
+ * Second try to fix build under HURD (hurd-EIEIO-undef.diff)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 08 Aug 2014 10:42:13 +0200
+
+llvm-toolchain-3.5 (1:3.5~+rc2-1~exp1) unstable; urgency=medium
+
+ * New snapshot release
+ * Enable compressed debug sections (Closes: #757002)
+ * Force scan-build to use the same version of clang
+ * Bring back scan-build-search-path.diff (Closes: #757219)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 04 Aug 2014 13:35:35 +0200
+
+llvm-toolchain-snapshot (1:3.6~svn214630-1~exp1) experimental; urgency=medium
+
+ * New snapshot release (3.5 => 3.6)
+ * Co installation of clang (Closes: #736057)
+ - scan-build => scan-build-3.6
+ - scan-view => scan-view-3.6
+ - asan_symbolize => asan_symbolize-3.6
+ * Refresh of the patches
+ * Install yaml2obj, obj2yaml & verify-uselistorder in llvm-3.6
+ * Remove of pollycc
+ * clang alternatives are managed by llvm-defaults
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 31 Jul 2014 18:12:59 +0200
+
+llvm-toolchain-3.5 (1:3.5~+rc1-2) unstable; urgency=medium
+
+ * Sync with 3.4 svn to retrieve some changes:
+ * Replace $(CURDIR)/debian/tmp by a variable
+ * Move the polly installation in the dh_auto_install rules instead
+ of using *.install files. In llvm.org/apt/, I have to sometime disable
+ polly
+ * hurd-EIEIO-undef.diff: try to undef an errno.h to fix the ftbfs
+ * clang-X suggests clang-X-doc (Closes: #755922)
+ * Manage all files using .in mechanism. It will simplify the upgrade of
+ version
+ * Disable lldb for ppc64el. Thanks to Dimitri John Ledkov (Closes: #756380)
+ * Fix the FTBFS under PowerPC. Thanks to Dimitri John Ledkov for the patch
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 24 Jul 2014 11:42:56 +0200
+
+llvm-toolchain-3.5 (1:3.5~+rc1-1) unstable; urgency=medium
+
+ * First RC release of the 3.5 llvm toolchain
+ * Apply lldb-kfreebsd.diff patch to fix FTBFS under KFreeBSD
+ Thanks to Ed Maste
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 23 Jul 2014 08:57:59 +0200
+
+llvm-toolchain-snapshot (1:3.5~svn213451-1) unstable; urgency=medium
+
+ * New snapshot release
+ * If the version of gcc is too old, force the usage of gcc 4.8
+ * Clang will now show the full version. Example: 3.5.0-svn213052-1~exp1
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 19 Jul 2014 15:27:11 +0200
+
+llvm-toolchain-snapshot (1:3.5~svn211669-2) unstable; urgency=medium
+
+ * Remove useless dependency on g++
+ * Use the option stable '-analyzer-config stable-report-filename=true'
+ to the llvm scan-build reports
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 29 Jun 2014 19:13:05 +0200
+
+llvm-toolchain-snapshot (1:3.5~svn211669-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Fix CVE-2014-2893 (Closes: #744817)
+ * Merge with 3.4/debian
+ * Ship lldb-mi in lldb
+ * Remove scan-build-fix-clang-detection.diff (applied upstream)
+ * Ship the compiler-rt static libraries
+ * Running tests respect DEB_BUILD_OPTIONS=parallel=X
+ (Closes: #751943)
+ * Fix FTBFS on powerpc and powerpcspe (Closes: #733890)
+ * Broken library symlink fixed in lldb-3.5 (Closes: #715130)
+ * Fix --use-cc when no absolute path is provided (Closes: #748777)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 25 Jun 2014 07:58:03 +0200
+
+llvm-toolchain-snapshot (1:3.5~svn209039-2) unstable; urgency=medium
+
+ * Provide a link as compatibility with previous lib name (Closes: #748569)
+ * Be less permissive when installing lldb. Remove duplication of the install
+ of liblldb.so.1
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 18 May 2014 20:01:40 +0200
+
+llvm-toolchain-snapshot (1:3.5~svn209039-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Fix the cmake install patch
+ * Disable profile_rt.diff for now
+ * Refresh of libclang1-3.5.symbols
+ * Fix path to /usr/lib/clang/3.5.0/ (Closes upstream #19088)
+ * Fix the wrong dependency declaration on llvm-3.5-tools
+ * Add gnustep & gnustep-devel as suggests of clang-3.5
+ * Add libc6-dev as an explicit dependency of clang-3.5
+ * Build with dh_install --fail-missing
+ * Start to use /usr/bin/foo-X.Y. First step to have several clang versions
+ installed together
+ * Add some missing files:
+ - lli-child-target - llvm-3.5-runtime
+ - count - llvm-3.5-tools
+ - html.tar.gz - llvm-3.5-doc
+ - ocamldoc.tar.gz - llvm-3.5-doc
+ - BugpointPasses.so - llvm-3.5-dev
+ - liblldb* - lldb-3.5-dev
+ - clang-apply-replacements - clang-3.5
+ - clang-tidy - clang-3.5
+ - clang-query - clang-3.5
+ - pp-trace - clang-3.5
+ - lldb-platform - lldb-3.5
+ - lldb-gdbserver - lldb-3.5
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 16 May 2014 23:23:50 +0200
+
+llvm-toolchain-3.4 (1:3.4.2-2) unstable; urgency=medium
+
+ * Improve the CVE-2014-2893 fix (Closes: #744817)
+ * Add a check to avoid an error on arch where compiler-rt is not available
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 16 Jun 2014 23:00:47 +0200
+
+llvm-toolchain-3.4 (1:3.4.2-1) unstable; urgency=medium
+
+ * New upstream release
+ * Add build conflict on libllvm-3.5-ocaml-dev
+ * Also disable lldb tests under armel (like armhf). Timeout
+ * Update of the repack script
+ * Use llvm-3.4-dev.links.in to manage the symlinks
+ * Fix the soname of liblldb.so to see it treated as a real library
+ (Closes: #750868)
+ * Switch to the default gcc/g++ compiler. Currently 4.9 (Closes: #751322)
+ * Fixes CVE-2014-2893 (Closes: #744817)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 06 Jun 2014 15:55:57 +0200
+
+llvm-toolchain-3.4 (1:3.4.1-4) unstable; urgency=medium
+
+ * Be less permissive when installing lldb. Remove duplication of the install
+ of liblldb.so.1
+ * Add symlinks lldb-3.4, lldb-platform-3.4 & lldb-gdbserver-3.4 without 3.4
+ * Clang was unusable with libstdc++ from gcc 4.9 (Closes: #744792)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 18 May 2014 20:18:19 +0200
+
+llvm-toolchain-3.4 (1:3.4.1-3) unstable; urgency=medium
+
+ * Fix path for arch without support of compiler-rt. Should fix most of the
+ FTBFS
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 16 May 2014 15:27:37 +0200
+
+llvm-toolchain-3.4 (1:3.4.1-2) unstable; urgency=medium
+
+ * Fix the soname. No changes in the ABI, so, no need to update the soname
+ (Closes: #747701)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 11 May 2014 17:29:22 +0200
+
+llvm-toolchain-3.4 (1:3.4.1-1) unstable; urgency=medium
+
+ * New upstream release. Note that only LLVM & Clang had a new release.
+ I just copied the 3.4 tarballs for clang-extra-tools, polly, lldb and
+ compiler-rt.
+ * Symlink for current build mode missing (Closes upstream #18836)
+ * Add link usr/lib/llvm-3.4/ to usr/lib/llvm-3.4/build/Debug+Asserts
+ * Backport of a r201586 from upstream. scan-build was failing on some project
+ like firefox build system. (Yeh, advantage to be the packager of a software
+ that I use ;) ). See scan-build-fix-clang-detection.diff
+ * Fix the version in the symbol list (libclang1-3.4.symbols)
+ * Update the path regarding upstream changed (3.4 => 3.4.1)
+ (Patch improved also by Martin Nowack)
+ * Remove generated file libllvm3.4.install
+ * Add gnustep & gnustep-devel as suggests of clang-3.4
+ * Add libc6-dev as an explicit dependency of clang-3.4
+ * Build with dh_install --fail-missing
+ * Start to use /usr/bin/foo-X.Y. First step to have several clang versions
+ installed together
+ * Add some missing files:
+ - lli-child-target - llvm-3.4-runtime
+ - count - llvm-3.4-tools
+ - html.tar.gz - llvm-3.4-doc
+ - ocamldoc.tar.gz - llvm-3.4-doc
+ - BugpointPasses.so - llvm-3.4-dev
+ - liblldb* - lldb-3.4-dev
+ - lldb-platform-3.4 - lldb-3.4
+ - clang-apply-replacements - clang-3.4
+ - clang-tidy - clang-3.4
+ - pp-trace - clang-3.4
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 09 May 2014 19:57:33 +0200
+
+llvm-toolchain-snapshot (1:3.5~svn200375-1) unstable; urgency=medium
+
+ * New snapshot release
+ * polly unnopstream is now using the isl trunk. Disabling it for now.
+ * Only explicit the link against atomic when running mips & mipsel
+ * Fix the cindex.py declaration (3.3 => 3.5). Closes upstream bug #18365
+ * Bring back the dependency on gcc 4.8. It breaks the nightly snapshot
+ packages and it should be the norm now...
+
+ [ Martin Nowack ]
+ * Fixed build directory for llvm-config
+ * Add Unittests for running tests for llvm-based projects
+ * Install FileCheck and not for testing
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 29 Jan 2014 07:36:29 -0800
+
+llvm-toolchain-snapshot (1:3.5~svn199601-1) unstable; urgency=low
+
+ * New snapshot release
+ * Update clang-format declaration from 3.4 => 3.5. Closes upstream bug #18451
+ * Fix the cindex.py declaration (3.3 => 3.5). Closes upstream bug #18365
+ * Force gcc 4.8. LLVM & Co are now in C++ 11.
+ * Also make clang-3.5 breaks/replaces clang. Conflicts on
+ /usr/share/clang/scan-view/ScanView.py (Closes: #730266)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 15 Jan 2014 15:08:03 +0100
+
+llvm-toolchain-snapshot (1:3.5~svn197556-1) unstable; urgency=low
+
+ * New snapshot release
+ * Merge changes from 1:3.4~+rc3-1
+ * Disable much of the display of the lldb display
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 17 Dec 2013 12:02:52 +0100
+
+llvm-toolchain-snapshot (1:3.5~svn195337-1) unstable; urgency=low
+
+ * Sync from 3.4~+rc2-1
+ * Make lldb 3.5 also conflict with 3.4 (Closes: #730163)
+ * Make python-clang 3.5 also conflict with 3.4 (Closes: #730164)
+ * Fix a FTBFS with clang
+ * Refresh the /usr/include/clang mess
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 10 Dec 2013 09:57:15 +0100
+
+llvm-toolchain-snapshot (1:3.5~svn195337-1) unstable; urgency=low
+
+ * Switch from 3.4 to 3.5
+ * Remove patch 0046-Revert-Patch-to-set-is_stmt-a-little-better-for-prol.patch
+ Useless now and misleading
+ * Standards-Version updated to 3.9.5
+ * kfreebsd.diff remove (applied upstream)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 Nov 2013 21:24:28 +0100
+
+llvm-toolchain-3.4 (1:3.4-2) unstable; urgency=medium
+
+ * Only explicit the link against atomic when running mips & mipsel
+ * Fix the cindex.py declaration (3.3 => 3.5). Closes upstream bug #18365
+ * Bring back the dependency on gcc 4.8. It breaks the nightly snapshot
+ packages and it should be the norm now...
+ * Introduce llvm-3.4-tools to contain the new files needed by Martin
+
+ [ Matthias Klose ]
+ * Disable the lldb build for AArch64.
+ * Don't run the lldb tests on armhf (time out on the buildd).
+
+ [ Martin Nowack ]
+ * Fixed build directory for llvm-config
+ * Add Unittests for running tests for llvm-based projects
+ * Install FileCheck and not for testing
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 11 Feb 2014 11:19:21 +0100
+
+llvm-toolchain-3.4 (1:3.4-1) unstable; urgency=medium
+
+ * New upstream release
+ * Remove explicit dep on gcc 4.8
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 20 Dec 2013 18:36:58 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu4) trusty; urgency=medium
+
+ * Rebuild for ocaml-4.01.
+
+ -- Matthias Klose <doko@ubuntu.com> Mon, 23 Dec 2013 12:11:17 +0000
+
+llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu3) trusty; urgency=low
+
+ * Bring over Ubuntu changes from 3.3:
+ - Revert to using the static copy of libjsoncpp, since the shared
+ library lacks sane versioning, and this is only a few thousand
+ lines of cargo-culted code from a reasonably stagnant upstream.
+ - Drop lcov build-dep to avoid pulling it into main, due to its
+ being fundamentally incompatibe with our newer GCC versions.
+
+ -- Matthias Klose <doko@ubuntu.com> Fri, 20 Dec 2013 12:59:01 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu2) trusty; urgency=low
+
+ * Don't run the lldb tests on armhf (time out on the buildd).
+
+ -- Matthias Klose <doko@ubuntu.com> Wed, 18 Dec 2013 12:29:56 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc3-1ubuntu1) trusty; urgency=low
+
+ * Disable the lldb build for AArch64.
+ * Build-depend on gcc-multilib on amd64 and i386.
+
+ -- Matthias Klose <doko@ubuntu.com> Tue, 17 Dec 2013 18:44:50 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc3-1) unstable; urgency=low
+
+ * New testing upstream release
+ * Relative call in the chroot without proc failed.
+ See: fix-an-issue-in-chroot-witout-proc.diff
+ * Bring back lldb-link-atomic.diff to make sure lldb builds under
+ powerpc
+ * Also limit the number of archs for liblldb-dev
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 17 Dec 2013 11:27:40 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc2-3) unstable; urgency=low
+
+ * Fix the bad declaration on the lldb desactivation
+ * Also disable lldb under powerpc
+ * Hopefully, fix lldb under Kfreebsd-* (thanks to Ed Maste if it works)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 04 Dec 2013 23:53:49 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc2-2) unstable; urgency=low
+
+ * Add the Ocaml ABI dependency (Closes: #731344)
+ * Disable LLDB also for ia64, mips & mipsel
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 04 Dec 2013 15:37:39 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc2-1) unstable; urgency=low
+
+ * New testing upstream release
+ * 0047-version-name.diff ocamldoc.diff removed (applied upstream)
+ * r600 is now compiled by default (remove the configure arg)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 03 Dec 2013 10:25:59 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc1-3) unstable; urgency=low
+
+ * Remove the usage of --with-c-include-dirs, --with-cxx-include-root,
+ --with-cxx-include-arch and --with-cxx-include-64bit-dir
+ It was blocking the automatic detection of the path of clang.
+ In particular in the context of the usage of -target.
+ However, it does not completely fix the detection of the i386 C++ path.
+ See the next item.
+ (Closes: #729933)
+ * Bring back the path to libstdc++ under i386. Still not fixed upstream
+ (Closes: #730857)
+ * Define also MAXPATHLEN in Path.inc for HURD.
+ * Silent the trillion of warnings in the LLDB Python wrapper (swig generated)
+ See silent-swig-warning.diff
+ * Silent some i386 tests failing (it is expected)
+ See silent-MCJIIT-tests.diff
+ * Make lldb 3.4 also conflict with 3.5 (Closes: #730163)
+ * Make python-clang 3.4 also conflict with 3.5 (Closes: #730164)
+ * Port LLVM to mips64el. Thanks to YunQiang Su. Initially done for
+ 3.3 and ported on the 3.4 (Closes: #730808)
+ * If we get an unexpected pass, do not break the tests
+ do-not-fail-on-unexpected-pass.diff (I am disabling some tests)
+ * Fix the path detection of the objective h headers.
+ * Also add usr/lib/llvm-3.4/lib/clang/3.4/include =>
+ usr/lib/clang/3.4/include symlink to simplify the path detection
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 01 Dec 2013 17:49:46 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc1-2) unstable; urgency=low
+
+ * Force the build to gcc 4.8... gcc 4.6 used on some Debian archs does not
+ support some C++ features.
+ * Fail the build when llvm tests are failing under amd64 + i386. More to come.
+ * Fix a libclang.so.1 issue during the clang tests
+ * Improve the patch 23-strlcpy_strlcat_warning_removed.diff
+ (also remove the tests)
+ * Make lldb 3.4 also conflict with 3.5 (Closes: #730163)
+ * Make python-clang 3.4 also conflict with 3.5 (Closes: #730164)
+ * Remove usr/lib/llvm-3.4/build/autoconf/LICENSE.TXT
+ * silent warning "manpage-has-useless-whatis-entry" in lldb-3.4
+ * silent warning "package-name-doesnt-match-sonames libclang1"
+ * Refresh patch kfreebsd_v2.diff to, maybe, fix lldb build under kfreebsd.
+ Thanks to Ed Maste for the patch.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 26 Nov 2013 18:32:49 +0100
+
+llvm-toolchain-3.4 (1:3.4~+rc1-1) unstable; urgency=low
+
+ * New testing upstream release
+ * kfreebsd.diff removed. Applied upstream
+ * Remove patch 0046-Revert-Patch-to-set-is_stmt-a-little-better-for-prol.patch
+ Useless now and misleading
+ * Branch from llvm-toolchain-snapshot
+ * Standards-Version updated to 3.9.5
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 Nov 2013 21:24:28 +0100
+
+llvm-toolchain-snapshot (1:3.4~svn194079-1) unstable; urgency=low
+
+ * New snapshot release
+ * Also install clang 3.4 examples (clang-3.4-examples) (Closes: #728260)
+ * Move c-index-test* from llvm-3.4 => clang-3.4. It was triggering an
+ unnecessary dependency from llvm-3.4 to libclang
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 01 Nov 2013 05:19:55 +0100
+
+llvm-toolchain-snapshot (1:3.4~svn193628-1) unstable; urgency=low
+
+ * New snapshot release
+ - Fix the scan-build warning (Closes: #725332)
+ * Merge changes from the 3.3 branch (see 1:3.3-12)
+ * Add lldb-3.4-dev package
+ * Remove mipsel-ftbfs.diff (applied upstream)
+ * Add support of coverity checker (non-free and not packaged)
+ * libprofile_rt and runtime has been removed upstream (r191835)
+ Features are provided by compiler-rt
+ * Update the build dependency from tcl8.5 to tcl (Closes: #725954)
+ * clang-modernize-3.4 was not coinstallable with clang 3.4
+ (Closes: #724245)
+ * The package wasn't cleaned correctly (Closes: #722155)
+ * libtinfo-dev is now a dependency of llvm-3.4-dev (Closes: #727129)
+ * Install libclang.so in /usr/lib/*/libclang-3.4.so
+ * Install libclang.so.1 in /usr/lib/*/libclang-3.4.so.1
+ * Also ship the python clang binding (python-clang-3.4)
+ * Enable polly if the dependencies are OK (only Debian unstable for now)
+ * Bring back /usr/lib/llvm-3.4/lib/libclang.so (libclang-3.4-dev) and
+ /usr/lib/llvm-3.4/lib/libclang.so.1 (libclang1-3.4)
+ * Honor the option "nocheck"
+ * Disable the build of lldb under HURD
+ * Ship the lldb headers into lldb-X.Y-dev (Closes: #723743)
+ I might create a liblldb-X.Y library at some point but I think it is too
+ early.
+ * Update the build dependency from tcl8.5 to tcl (Closes: #725953)
+ * Update of the clang descriptions (Closes: #727684)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 29 Oct 2013 17:56:18 +0100
+
+llvm-toolchain-snapshot (1:3.4~svn190846-1) unstable; urgency=low
+
+ * New snapshot release
+ * Merge changes from the 3.3 branch (see 1:3.3-9)
+ * Remove ia64-fix.diff (applied upstream)
+ * cpp11-migrate renamed to clang-modernize
+ * lldb-3.4 is back to Architectures: any
+ * Patch lldb-hurd.diff removed (applied upstream)
+ * Directory www/ from tarballs polly & lldb removed
+ * Update of the description of LLVM packages
+ (LLVM no longer mean Low Level Virtual Machine)
+
+ [ Luca Falavigna ]
+ * debian/control:
+ - Add llvm-3.4-dev to lldb-3.4 Depends field.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 05 Sep 2013 12:04:35 +0200
+
+llvm-toolchain-3.3 (1:3.3-9) unstable; urgency=low
+
+ [ Luca Falavigna ]
+ * debian/control:
+ - Add llvm-3.3-dev to lldb-3.3 Depends field (Closes: #715129).
+
+ [ Sylvestre Ledru ]
+ * Only use -fuse-ld=gold on supported distribution. Simplify the
+ backports.
+ * Fix 'bits/c++config.h' file not found under i386
+ See libstdc++-header-i386.diff. (Closes: #714890)
+ * Add more fixes for the HURD port... (but still fails)
+
+ [ Robert Millan ]
+ * clang under KfFreeBSD was not exporting the correct defines
+ (Closes: #721880)
+
+ [ Jon Severinsson ]
+ * Merge from llvm-toolchain-3.2 branch up to 3.2repack-11.
+ * Drop auto-generated file debian/libllvm3.3.install.
+ * Automatically determine GCC_VERSION and dep:devlibs based on g++ package
+ version.
+ * Automatically determine if -fuse-ld=gold is supported based on binutils
+ package version.
+
+ [ Adam Conrad ]
+ * debian/patches/lldb-link-atomic.diff: Link lldb with -latomic to get
+ builtin GCC atomic helpers on arches (like powerpc) that need them.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 26 Aug 2013 14:48:42 +0200
+
+llvm-toolchain-3.3 (1:3.3-8) unstable; urgency=low
+
+ [ Sylvestre Ledru ]
+ * Fix another issues under HURD...
+
+ [ Luca Falavigna ]
+ * debian/patches/libprofile_rt_sparc.patch:
+ - Re-enable libprofile_rt on Sparc, fix FTBFS.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 23 Aug 2013 15:02:05 +0200
+
+llvm-toolchain-3.3 (1:3.3-7) unstable; urgency=low
+
+ * debhelper version 9.20130720 fails on the call to dh_auto_clean
+ Remove it. It was anyway useless.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 22 Aug 2013 14:28:25 +0200
+
+llvm-toolchain-3.3 (1:3.3-6) unstable; urgency=low
+
+ * Fix the FTBFS under hurd and KFreeBSD
+ * Do not remove all *.o in tests. Some of them are from upstream source
+ tarball. Thanks to Maarten Lankhorst for the fix.
+ * Fix the lintian error 'lldb-3.3: postinst-must-call-ldconfig'
+ * Add the manpages of clang-format-3.3
+ * Overrides the manpages warnings
+ * Also apply unwind-chain-inclusion.diff from the snapshot branch to make sure
+ we can build the package locally even if libclang-dev is installed
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 22 Aug 2013 09:01:04 +0200
+
+llvm-toolchain-3.3 (1:3.3-5) unstable; urgency=low
+
+ * Install llvm-c headers also in usr/include/llvm-3.3/llvm-c
+ * Fix the FTBFS under mips & mipsel
+ * Refresh of the kfreebsd i386 patch
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 07 Aug 2013 13:12:23 +0200
+
+llvm-toolchain-3.3 (1:3.3-4) unstable; urgency=low
+
+ * Use the static library libjsoncpp.a instead of the ship library in polly
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 11 Aug 2013 09:54:17 +0200
+
+llvm-toolchain-snapshot (1:3.4~svn185325-1) unstable; urgency=low
+
+ * binutils-gold no longer exists. Use -fuse-ld=gold instead.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 01 Aug 2013 14:06:38 +0200
+
+llvm-toolchain-snapshot (1:3.3-2) unstable; urgency=low
+
+ * Fix warning python-script-but-no-python-dep on clang-format-X.Y
+ * manpages are generated during build time (simplifies maintenance)
+ * Fix duplicate underscore.js and jquery.js
+ * Move libjs-jquery & libjs-underscore dependencies to llvm-X.Y-doc
+ * Add lldb-X.Y manpage
+ * Hopefully fix the ftbfs under mipsel (mipsel-ftbfs.diff)
+ * Disable the usage of binutils-gold under armel. It currently fails with:
+ "attempt to map 2752512 bytes at offset 2066666 exceeds size of file;
+ the file may be corrupt"
+
+ [ Léo Cavaillé ]
+ * Add patch to find correctly LLVMGold.so with -O4 (Closes: #712437)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 20 Jun 2013 15:39:11 +0200
+
+llvm-toolchain-snapshot (1:3.4~svn184294-1~exp1) experimental; urgency=low
+
+ * New snapshot release
+ * Improve some scripts and fix cpp11-migrate install from
+ clang-tools-extra.
+ * Fix "versionless" clang manpages install.
+ * Fix Toolchain patch from change of scope (add namespaces).
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 19 Jun 2013 14:20:12 +0200
+
+llvm-toolchain-snapshot (1:3.4~svn183914-1) unstable; urgency=low
+
+ * New snapshot release
+ * Upload to unstable (will be blocked by a RC bug)
+ * Sync changes from llvm-toolchain-3.3:
+ - Introduce cpp11-migrate-3.4 and clang-format-3.4
+ - Install the vim llvm script at the right place
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 13 Jun 2013 18:47:08 +0200
+
+llvm-toolchain-snapshot (1:3.4~svn182733-1~exp1) experimental; urgency=low
+
+ * New snapshot release (3.4 release)
+ * Add a symlink of libLLVM-3.4.so.1 to usr/lib/llvm-3.4/lib/libLLVM-3.4.so
+ to fix make the llvm-config-3.4 --libdir work (Closes: #708677)
+ * Various packages rename to allow co installations:
+ * libclang1 => libclang1-3.4
+ * libclang1-dbg => libclang1-3.4-dbg
+ * libclang-dev => libclang-3.4-dev
+ * libclang-common-dev => libclang-common-3.4-dev
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 27 May 2013 15:01:57 +0200
+
+llvm-toolchain-snapshot (1:3.3~svn179851-1~exp1) experimental; urgency=low
+
+ * Draft of a snapshot release (3.3)
+ * Enable r600 experimental backend
+ * Improve the dependencies:
+ * clang-3.3 depends on the exact same libllvm3.3 release
+ * idem for lldb-3.3
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 19 Apr 2013 09:31:38 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-11) unstable; urgency=low
+
+ * dh_auto_clean removed, just like in the 3.3
+ * Use the static library libjsoncpp.a instead of shipping library in polly
+ Backport of the modification of 3.3
+
+ [ Adam Conrad ]
+ * Revive deltas from the previous Ubuntu versions of llvm and clang:
+ - debian/patches/35-ubuntu-releases.diff: Add UbuntuSaucy to table.
+ - debian/patches/JITEmitter.patch: Fix a segfault in the exception
+ table of the JIT code emitter (See Launchpad bug #1160587)
+
+ [ Luca Falavigna ]
+ * debian/patches/libprofile_rt_sparc.patch:
+ - Re-enable libprofile_rt on Sparc, fix FTBFS.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 23 Aug 2013 11:49:09 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-10) unstable; urgency=low
+
+ * Fix the wrong package declaration on libstdc++-4.8-dev (Closes: #713944)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 24 Jun 2013 23:00:47 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-9) unstable; urgency=low
+
+ * Switch to libstdc++ 4.8 instead of 4.7 for the headers (Closes: #712520)
+ * Depends against libobjc-4.8-dev and libgcc-4.8-dev
+ * Disable the usage of binutils-gold under armel. It currently fails with:
+ "attempt to map 2752512 bytes at offset 2066666 exceeds size of file;
+ the file may be corrupt"
+ * Add DEBUGMAKE=1 to get information about compiler-rt compilation
+ * Fix "libclang-common-dev: missing-depends-line"
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 22 Jun 2013 07:38:41 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-8) unstable; urgency=low
+
+ * Fix the build under ia64. Thanks to Luca Falavigna for the patch
+ (ia64-fix.diff)
+ * Disable lldb-3.2:
+ - the quality is not good enough
+ - We have lldb-3.3 now in the archive
+ - Too many backported patches would be necessary for lldb-3.2 to work
+ - It blocks some important transitions (mesa)
+ * Add the detection of Ubuntu saucy
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 03 Jun 2013 11:32:29 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-7) unstable; urgency=low
+
+ * For now, enable only lldb for amd64 and i386 (blocks too many things)
+ (Bis) (Closes: #707866)
+ * Add a symlink of libLLVM-3.2.so.1 to usr/lib/llvm-3.2/lib/libLLVM-3.2.so
+ to fix make the llvm-config-3.2 --libdir work (Closes: #708677)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 27 May 2013 13:20:30 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-6) unstable; urgency=low
+
+ * Create the compiler-rt directory to make the install of compiler-rt works
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 18 May 2013 18:08:52 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-5) unstable; urgency=low
+
+ * For now, enable only lldb for amd64 and i386 (blocks too many things)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 18 May 2013 10:24:04 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-4) unstable; urgency=low
+
+ * Add several patches which, hopefully, will fix the build under ARM, S390,
+ S390X, etc (lldb-apple_only.diff, lldb-user-remove.diff & lldb-hurd.diff)
+ * Include sys/wait.h also under kfreebsd (kfreebsd-thread.diff)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 15 May 2013 12:04:24 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-3) unstable; urgency=low
+
+ * Before the configure, show which version of CC is being used.
+ * Add support of kfreebsd and hurd in lldb (kfreebsd-hurd-lldb.diff)
+ * Force the usage of gcc 4.7 for all archs. Should fix some FTBFS
+ (Closes: #707866)
+ * Fix the symlink on clang++.1.gz llvm-clang.1.gz (Closes: #707832)
+
+ [ Jon Severinsson ]
+ * Re-enable the r600 backend and update it to the mesa-9.1.1 tag.
+ (Closes: #708009)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 14 May 2013 12:10:07 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-2) unstable; urgency=low
+
+ * Do not depend on libobjc-4.7-dev & libgcc-4.7-dev.
+ They are still only in experimental
+ * Disable the usage of binutils-gold under [powerpc powerpcspe ppc64 sparc
+ sparc64] to fix FTBFS
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 07 May 2013 13:15:20 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-1) unstable; urgency=low
+
+ * Upload to unstable
+ * Standards-Version update to 3.9.4
+ * clang pure virtual function call crash with binaries built with C++11's
+ std::thread. Upstream commit 178816 (Closes: #705838)
+ * Introduce a symbols file for libclang1 (Closes: #705672)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 21 Apr 2013 14:06:23 +0200
+
+llvm-toolchain-3.2 (1:3.2repack-1~exp4) experimental; urgency=low
+
+ * Build using binutls-gold to improve the quality of the binaries.
+ See: http://allievi.sssup.it/techblog/?p=791
+ * Detect the vendor (Debian or Ubuntu) and update the configuration
+ * Port to powerpcspe. Thanks to Roland Stigge (Closes: #701587)
+ See: 31-powerpcspe.diff
+ * Fix the path detection of scan-build (Closes: #698352)
+ See: 32-scan-build-path.diff
+ * debian/patches/r600-snapshot.diff: Move backports into individual patches.
+ * debian/patches/r600-snapshot.diff: Update to mesa-9.1 git tag.
+ (Closes: #703671, #697356)
+ * Fix a typo in the detection of the vendor
+
+ [ Peter Michael Green ]
+ * Use binutils-gold only on architectures where it is actually available
+ * 33-armhf-defaults.diff Fix defaults to use correct CPU and FPU for
+ debian armhf (Closes: #704111)
+ * 34-powerpc-no-altivec.diff disable altivec by default on powerpc because
+ debian powerpc does not require altivec (patch cherry picked from ubuntu)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 14 Mar 2013 17:47:12 +0100
+
+llvm-toolchain-3.2 (1:3.2repack-1~exp3) experimental; urgency=low
+
+ * Remove package "clang". It is now provided by llvm-defaults.
+ * Fix some issues relative to the epoch change
+ * Fix a wrong path in the _lldb.so Python symlink
+ * Install cmake files to build LLVM extensions (Closes: #701153)
+ * Remove the embedded copy of libjs-jquery (Closes: #701087)
+ * Fix the install of lli manpage (Closes: #697117)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 17 Feb 2013 12:05:15 +0100
+
+llvm-toolchain-3.2 (1:3.2repack-1~exp2) experimental; urgency=low
+
+ * Install the python files for lldb. Thanks to Daniel Malea for spotting this.
+ * Update of the clean target
+ * Introduce an epoch to match the changes in bug #699899
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 13 Feb 2013 12:22:30 +0100
+
+llvm-toolchain-3.2 (3.2repack-1~exp1) experimental; urgency=low
+
+ * Build the whole LLVM toolchain at once. This includes:
+ - LLVM
+ - Clang
+ - compiler-rt
+ - lldb
+ - polly
+ * Also install clang-check & clang-tblgen in the clang-3.2 package
+ * Fix the patch detection of clang from scan-build (Closes: #698352)
+ * debian/patches/0050-powerpcspe-fp.diff: Add, hopefully fix FTBFS on
+ powerpcspe, by disabling save / restore of floating point registers which
+ don't exist on powerpcspe. Thanks to Roland Stigge for the patch.
+ (Closes: #696474)
+ * libLLVM-3.2.so.1 is now shipped only once (Closes: #696913)
+ * Enable RTTI (Closes: #697754)
+ * Introduce lldb as a new package (Closes: #698601)
+ * Add a script pollycc which will call clang with the right arguments.
+ * Use __builtin___clear_cache on ARM to fix a clang bug.
+ Thanks to Matthias Klose.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 09 Feb 2013 12:14:10 +0100
--- /dev/null
+tools/clang/docs/_build/html/
+
--- /dev/null
+clang/examples/*
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/clang
+usr/lib/llvm-@LLVM_VERSION@/bin/clang++
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-cpp
+
+#usr/share/man/man1/clang.1 usr/share/man/man1/
+usr/lib/llvm-@LLVM_VERSION@/lib/cmake/clang/*.cmake
+usr/lib/llvm-@LLVM_VERSION@/share/clang/bash-autocomplete.sh
+
+usr/bin/clang-@LLVM_VERSION@
+usr/bin/clang++-@LLVM_VERSION@
+usr/bin/clang-cpp-@LLVM_VERSION@
+
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/clang usr/lib/llvm-@LLVM_VERSION@/bin/clang-@LLVM_VERSION@
+usr/lib/llvm-@LLVM_VERSION@/lib/cmake/clang usr/lib/cmake/clang-@LLVM_VERSION@
+usr/lib/llvm-@LLVM_VERSION@/share/clang/bash-autocomplete.sh usr/share/bash-completion/completions/clang-@LLVM_VERSION@
--- /dev/null
+# Does not link otherwise
+clang-@LLVM_VERSION@: embedded-library usr/lib/llvm-@LLVM_VERSION@/bin/clang: libjsoncpp
+# expected
+clang-@LLVM_VERSION@: executable-not-elf-or-script usr/lib/llvm-@LLVM_VERSION@/share/clang/bash-autocomplete.sh
--- /dev/null
+clang/docs/_build/man/clang-@LLVM_VERSION@.1
--- /dev/null
+clang/tools/clang-format/clang-format-@LLVM_VERSION@.py usr/share/vim/addons/syntax/
+clang/tools/clang-format/clang-format-diff-@LLVM_VERSION@ /usr/bin/
+usr/bin/clang-format-@LLVM_VERSION@
+usr/bin/git-clang-format-@LLVM_VERSION@
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-format
+usr/lib/llvm-@LLVM_VERSION@/bin/git-clang-format
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format-diff.py usr/share/clang/clang-format-@LLVM_VERSION@/
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format.py usr/share/clang/clang-format-@LLVM_VERSION@/
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format.el usr/share/emacs/site-lisp/clang-format-@LLVM_VERSION@/
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-format-sublime.py usr/share/clang/clang-format-@LLVM_VERSION@/
--- /dev/null
+# I know but well...
+clang-format-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-format-diff-@LLVM_VERSION@.1.gz
+clang-format-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-format-@LLVM_VERSION@.1.gz
+
--- /dev/null
+debian/man/clang-format-diff-@LLVM_VERSION@.1
+debian/man/clang-format-@LLVM_VERSION@.1
+
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-tidy
+usr/lib/llvm-@LLVM_VERSION@/share/clang/run-clang-tidy.py
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-tidy-diff.py
+
+usr/bin/clang-tidy-@LLVM_VERSION@
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/share/clang/run-clang-tidy.py usr/bin/run-clang-tidy-@LLVM_VERSION@.py
+usr/lib/llvm-@LLVM_VERSION@/share/clang/run-clang-tidy.py usr/bin/run-clang-tidy-@LLVM_VERSION@
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-tidy-diff.py usr/bin/clang-tidy-diff-@LLVM_VERSION@.py
+
--- /dev/null
+# I know but well...
+clang-tidy-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-tidy-@LLVM_VERSION@.1.gz
+
--- /dev/null
+debian/man/clang-tidy-@LLVM_VERSION@.1
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-check
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-apply-replacements
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-query
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-rename
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-rename.el
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-rename.py
+usr/lib/llvm-@LLVM_VERSION@/bin/scan-view
+usr/lib/llvm-@LLVM_VERSION@/bin/scan-build
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-cl
+usr/lib/llvm-@LLVM_VERSION@/bin/sancov
+usr/lib/llvm-@LLVM_VERSION@/share/scan-view/
+usr/lib/llvm-@LLVM_VERSION@/share/scan-build/
+usr/lib/llvm-@LLVM_VERSION@/share/man/man1/scan-build.1
+usr/lib/llvm-@LLVM_VERSION@/libexec/ccc-analyzer
+usr/lib/llvm-@LLVM_VERSION@/libexec/c++-analyzer
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-offload-bundler
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-reorder-fields
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-change-namespace
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-import-test
+usr/lib/llvm-@LLVM_VERSION@/bin/modularize
+usr/lib/llvm-@LLVM_VERSION@/bin/c-index-test
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-include-fixer
+usr/lib/llvm-@LLVM_VERSION@/bin/find-all-symbols
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-refactor
+usr/lib/llvm-@LLVM_VERSION@/bin/diagtool
+usr/lib/llvm-@LLVM_VERSION@/bin/hmaptool
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-extdef-mapping
+
+tools/clang/tools/scan-build-@LLVM_VERSION@ usr/share/clang/
+tools/clang/tools/scan-build-py-@LLVM_VERSION@ usr/share/clang/
+tools/clang/tools/scan-view-@LLVM_VERSION@ usr/share/clang/
+
+usr/lib/llvm-@LLVM_VERSION@/share/clang/run-find-all-symbols.py
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-include-fixer.py
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-include-fixer.el
+usr/bin/clang-check-@LLVM_VERSION@
+usr/bin/clang-apply-replacements-@LLVM_VERSION@
+usr/bin/clang-query-@LLVM_VERSION@
+usr/bin/clang-rename-@LLVM_VERSION@
+usr/bin/sancov-@LLVM_VERSION@
+usr/bin/clang-cl-@LLVM_VERSION@
+usr/bin/modularize-@LLVM_VERSION@
+usr/bin/scan-build-@LLVM_VERSION@
+usr/bin/scan-view-@LLVM_VERSION@
+usr/bin/c-index-test-@LLVM_VERSION@
+usr/bin/clang-offload-bundler-@LLVM_VERSION@
+usr/bin/clang-reorder-fields-@LLVM_VERSION@
+usr/bin/find-all-symbols-@LLVM_VERSION@
+usr/bin/clang-include-fixer-@LLVM_VERSION@
+usr/bin/clang-change-namespace-@LLVM_VERSION@
+usr/bin/clang-import-test-@LLVM_VERSION@
+usr/bin/clang-refactor-@LLVM_VERSION@
+usr/bin/diagtool-@LLVM_VERSION@
+usr/bin/hmaptool-@LLVM_VERSION@
+usr/bin/clang-extdef-mapping-@LLVM_VERSION@
--- /dev/null
+usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-@LLVM_VERSION@
+usr/share/clang/scan-build-py-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-py-@LLVM_VERSION@
+usr/share/clang/scan-view-@LLVM_VERSION@/bin/scan-view usr/bin/scan-view-@LLVM_VERSION@
--- /dev/null
+# I know but well...
+clang-tools-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-check.1.gz
+clang-tools-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/scan-view.1.gz
+clang-tools-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-apply-replacements-@LLVM_VERSION@.1.gz
+clang-tools-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/clang-check-@LLVM_VERSION@.1.gz
+clang-tools-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/scan-view-@LLVM_VERSION@.1.gz
--- /dev/null
+clang/tools/scan-build/man/scan-build-@LLVM_VERSION@.1
+debian/man/clang-check-@LLVM_VERSION@.1
+debian/man/clang-rename-@LLVM_VERSION@.1
+debian/man/clang-query-@LLVM_VERSION@.1
+debian/man/clang-apply-replacements-@LLVM_VERSION@.1
+debian/man/sancov-@LLVM_VERSION@.1
+debian/man/scan-view-@LLVM_VERSION@.1
+debian/man/modularize-@LLVM_VERSION@.1
+debian/man/find-all-symbols-@LLVM_VERSION@.1
+debian/man/clang-include-fixer-@LLVM_VERSION@.1
+debian/man/clang-reorder-fields-@LLVM_VERSION@.1
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/clangd
+usr/bin/clangd-@LLVM_VERSION@
+
--- /dev/null
+debian/man/clangd-@LLVM_VERSION@.1
\ No newline at end of file
--- /dev/null
+Source: llvm-toolchain-8
+Section: devel
+Priority: optional
+Rules-Requires-Root: no
+Maintainer: LLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
+Uploaders: Sylvestre Ledru <sylvestre@debian.org>, Gianfranco Costamagna <locutusofborg@debian.org>
+Build-Depends: debhelper (>= 9.0), cmake, chrpath, texinfo, sharutils,
+ libffi-dev (>= 3.0.9),
+ lsb-release, patchutils, diffstat, xz-utils, python3-dev,
+ libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 1.3.6),
+ binutils-dev,
+ libjsoncpp-dev, pkg-config,
+ lcov, procps, help2man, zlib1g-dev,
+ g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32],
+ libjs-mathjax, python3-recommonmark,
+ doxygen, gfortran,
+ ocaml-nox [amd64 arm64 armhf i386 ppc64el s390x],
+ ocaml-findlib [amd64 arm64 armhf i386 ppc64el s390x],
+ libctypes-ocaml-dev [amd64 arm64 armhf i386 ppc64el s390x],
+ dh-exec, dh-ocaml [amd64 arm64 armhf i386 ppc64el s390x],
+ libpfm4-dev [linux-any], python3-setuptools,
+ g++-8 | g++-7 | g++-6 | g++-5 | g++-4.7
+Build-Conflicts: oprofile, ocaml
+Standards-Version: 4.2.1
+Homepage: https://www.llvm.org/
+Vcs-Git: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain.git -b 8
+Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/8
+
+# ------------- clang -------------
+
+Package: clang-8
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
+ ${dep:devlibs-objc}, libclang-common-8-dev (= ${binary:Version}),
+ libclang1-8 (= ${binary:Version}), libc6-dev, binutils
+Provides: c-compiler, objc-compiler, c++-compiler
+Recommends: llvm-8-dev, python3, libomp-8-dev
+Suggests: clang-8-doc
+Description: C, C++ and Objective-C compiler
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+
+Package: clang-tools-8
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, clang-8 (= ${binary:Version}),
+ python3
+Description: clang-based tools for C/C++ developments
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+ .
+ This package contains some clang-based tools like scan-build, clang-cl, etc.
+
+Package: clang-format-8
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
+ libllvm8 (= ${binary:Version})
+Description: Tool to format C/C++/Obj-C code
+ Clang-format is both a library and a stand-alone tool with the goal of
+ automatically reformatting C++ sources files according to configurable
+ style guides. To do so, clang-format uses Clang's Lexer to transform an
+ input file into a token stream and then changes all the whitespace around
+ those tokens. The goal is for clang-format to both serve both as a user
+ tool (ideally with powerful IDE integrations) and part of other
+ refactoring tools, e.g. to do a reformatting of all the lines changed
+ during a renaming.
+ .
+ This package also provides vim and emacs plugins.
+
+Package: clang-tidy-8
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
+ libllvm8 (= ${binary:Version}), libclang-common-8-dev,
+ clang-tools-8, python3-yaml
+Description: clang-based C++ linter tool
+ Provide an extensible framework for diagnosing and fixing typical programming
+ errors, like style violations, interface misuse, or bugs that can be deduced
+ via static analysis. clang-tidy is modular and provides a convenient interface
+ for writing new checks.
+
+Package: clangd-8
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libclang-common-8-dev (= ${binary:Version})
+Replaces: clang-tools-8 (<< 1:8.0.1-1)
+Breaks: clang-tools-8 (<< 1:8.0.1-1)
+Description: Language server that provides IDE-like features to editors
+ clangd understands your C++ code and adds smart features to your editor:
+ - code completion
+ - compile errors
+ - go-to-definition
+ - and more.
+ .
+ clangd is a language server that implements the Language Server Protocol;
+ it can work with many editors through a plugin.
+
+Package: clang-8-doc
+Architecture: all
+Section: doc
+Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-mathjax
+Description: C, C++ and Objective-C compiler - Documentation
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+ .
+ This package contains the documentation.
+
+Package: libclang1-8
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Description: C interface to the Clang library
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+ .
+ This package contains the Clang library.
+ .
+ The C Interface to Clang provides a relatively small API that exposes
+ facilities for parsing source code into an abstract syntax tree (AST),
+ loading already-parsed ASTs, traversing the AST, associating physical source
+ locations with elements within the AST, and other facilities that support
+ Clang-based development tools.
+
+Package: libclang-8-dev
+Architecture: any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
+ ${dep:devlibs-objc}, libclang1-8 (= ${binary:Version}),
+ libclang-common-8-dev (= ${binary:Version})
+Description: Clang library - Development package
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+ .
+ This package contains the Clang headers to develop extensions over
+ libclang1-8.
+
+Package: libclang-common-8-dev
+Architecture: any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm8 (= ${binary:Version})
+Description: Clang library - Common development package
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+ .
+ This package contains the Clang generic headers and some libraries
+ (profiling, etc).
+
+
+Package: libfuzzer-8-dev
+Architecture: linux-any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, clang-8 (= ${binary:Version})
+Description: Library for coverage-guided fuzz testing
+ LibFuzzer is a library for in-process, coverage-guided, evolutionary fuzzing
+ of other libraries.
+ .
+ LibFuzzer is similar in concept to American Fuzzy Lop (AFL), but it performs
+ all of its fuzzing inside a single process. This in-process fuzzing can be
+ more restrictive and fragile, but is potentially much faster as there is no
+ overhead for process start-up.
+ .
+ The fuzzer is linked with the library under test, and feeds fuzzed inputs to
+ the library via a specific fuzzing entrypoint (aka 'target function'); the
+ fuzzer then tracks which areas of the code are reached, and generates mutations
+ on the corpus of input data in order to maximize the code coverage. The code
+ coverage information for libFuzzer is provided by LLVM's SanitizerCoverage
+ instrumentation.
+
+
+Package: python3-clang-8
+Section: python
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3, libclang-8-dev
+Replaces: python-clang-x.y, python-clang-8 (<< 1:8.0.1-4)
+Conflicts: python-clang-x.y
+Provides: python-clang-x.y
+Breaks: python-clang-8 (<< 1:8.0.1-4)
+Description: Clang Python Bindings
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+ .
+ This binding package provides access to the Clang compiler and libraries.
+
+Package: python-clang-8
+Depends: python3-clang-8, ${misc:Depends}
+Architecture: any
+Priority: optional
+Section: oldlibs
+Description: transitional package to python3-clang-8
+ This is a transitional package. It can safely be removed.
+
+Package: clang-8-examples
+Architecture: any
+Section: doc
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Clang examples
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ based on the LLVM compiler. Its goal is to offer a replacement to the
+ GNU Compiler Collection (GCC).
+ .
+ Clang implements all of the ISO C++ 1998, 11 and 14 standards and also
+ provides most of the support of C++17.
+ .
+ This package contains the Clang examples.
+
+# ------------- LLVM -------------
+
+Package: libllvm8
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Breaks: libllvm3.9v4
+Replaces: libllvm3.9v4
+Description: Modular compiler and toolchain technologies, runtime library
+ 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.
+ .
+ This package contains the LLVM runtime library.
+
+Package: llvm-8
+Architecture: any
+Suggests: llvm-8-doc
+Depends: llvm-8-runtime (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Recommends: llvm-8-dev
+Description: Modular compiler and toolchain technologies
+ 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).
+ .
+ The strengths of the LLVM infrastructure are its extremely
+ simple design (which makes it easy to understand and use),
+ source-language independence, powerful mid-level optimizer, automated
+ compiler debugging support, extensibility, and its stability and
+ reliability. LLVM is currently being used to host a wide variety of
+ academic research projects and commercial projects. LLVM includes C
+ and C++ front-ends, a front-end for a Forth-like language (Stacker),
+ a young scheme front-end, and Java support is in development. LLVM can
+ generate code for X86, SparcV9, PowerPC or many other architectures.
+
+Package: llvm-8-runtime
+Architecture: any
+Depends: binfmt-support, ${shlibs:Depends}, ${misc:Depends}
+Description: Modular compiler and toolchain technologies, IR interpreter
+ 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 minimal required to execute programs in LLVM
+ format.
+
+Package: llvm-8-dev
+Architecture: any
+Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends},
+ llvm-8 (= ${binary:Version}), libllvm8 (= ${binary:Version}), libtinfo-dev
+Description: Modular compiler and toolchain technologies, libraries and headers
+ 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 libraries and headers to develop applications
+ using llvm.
+
+Package: llvm-8-tools
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
+ python3-pygments, python3-yaml,
+ llvm-8-dev (= ${binary:Version})
+Description: Modular compiler and toolchain technologies, tools
+ 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 tools for testing.
+
+Package: libllvm-8-ocaml-dev
+Section: ocaml
+Architecture: amd64 arm64 armhf i386 ppc64el s390x
+Suggests: llvm-8-doc
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-8-dev (= ${binary:Version})
+Replaces: libllvm-x.y-ocaml-dev
+Conflicts: libllvm-x.y-ocaml-dev
+Provides: ${ocaml:Provides}, libllvm-x.y-ocaml-dev
+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-8-doc
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}, libjs-jquery, libjs-underscore
+Description: Modular compiler and toolchain technologies, documentation
+ 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 contains all documentation (extensive).
+
+Package: llvm-8-examples
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}, llvm-8-dev (>= ${source:Version}), llvm-8-dev (<< ${source:Version}+c~)
+Description: Modular compiler and toolchain technologies, examples
+ 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 contains examples for using LLVM, both in developing
+ extensions to LLVM and in using it to compile code.
+
+
+# ------------- lld -------------
+
+Package: lld-8
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32
+# ia64 hurd powerpc have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm8 (= ${binary:Version})
+Pre-Depends: ${misc:Pre-Depends}
+Description: LLVM-based linker
+ LLD is a new, high-performance linker. It is built as a set of reusable
+ components which highly leverage existing libraries in the larger LLVM
+ Project.
+
+Package: liblld-8
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32
+# ia64 hurd powerpc have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm8 (= ${binary:Version})
+Pre-Depends: ${misc:Pre-Depends}
+Section: libs
+Description: LLVM-based linker, library
+ LLD is a new, high-performance linker. It is built as a set of reusable
+ components which highly leverage existing libraries in the larger LLVM
+ Project.
+ .
+ This package contains the LLD runtime library.
+
+Package: liblld-8-dev
+Section: libdevel
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32
+# ia64 hurd powerpc have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, lld-8 (= ${binary:Version}),
+ liblld-8 (= ${binary:Version})
+Pre-Depends: ${misc:Pre-Depends}
+Description: LLVM-based linker, header files
+ LLD is a new, high-performance linker. It is built as a set of reusable
+ components which highly leverage existing libraries in the larger LLVM
+ Project.
+ .
+ This package provides the header files to build extension over lld.
+
+
+# ------------- lldb -------------
+
+Package: lldb-8
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm8 (= ${binary:Version}), llvm-8-dev,
+ python3-lldb-8
+Pre-Depends: ${misc:Pre-Depends}
+Description: Next generation, high-performance debugger
+ LLDB is a next generation, high-performance debugger. It is built as a set of
+ reusable components which highly leverage existing libraries in the larger LLVM
+ Project, such as the Clang expression parser and LLVM disassembler.
+
+Package: liblldb-8
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm8 (= ${binary:Version})
+Pre-Depends: ${misc:Pre-Depends}
+Section: libs
+Description: Next generation, high-performance debugger, library
+ LLDB is a next generation, high-performance debugger. It is built as a set of
+ reusable components which highly leverage existing libraries in the larger LLVM
+ Project, such as the Clang expression parser and LLVM disassembler.
+ .
+ This package contains the LLDB runtime library.
+
+Package: python-lldb-8
+Depends: python3-lldb-8, ${misc:Depends}
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
+Priority: optional
+Section: oldlibs
+Description: transitional package to python3-lldb-8
+ This is a transitional package. It can safely be removed.
+
+Package: python3-lldb-8
+Section: python
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m69k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, liblldb-8 (= ${binary:Version}), python3-six
+Conflicts: python3-lldb-x.y
+Replaces: python3-lldb-x.y, python-lldb-8 (<< 1:8.0.1-4)
+Provides: python3-lldb-x.y
+Breaks: python-lldb-8 (<< 1:8.0.1-4)
+Pre-Depends: ${misc:Pre-Depends}
+Description: Next generation, high-performance debugger, python3 lib
+ LLDB is a next generation, high-performance debugger. It is built as a set of
+ reusable components which highly leverage existing libraries in the larger LLVM
+ Project, such as the Clang expression parser and LLVM disassembler.
+ .
+ This binding package provides access to lldb.
+
+Package: liblldb-8-dev
+Section: libdevel
+Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-8 (= ${binary:Version})
+Pre-Depends: ${misc:Pre-Depends}
+Description: Next generation, high-performance debugger, header files
+ LLDB is a next generation, high-performance debugger. It is built as a set of
+ reusable components which highly leverage existing libraries in the larger LLVM
+ Project, such as the Clang expression parser and LLVM disassembler.
+ .
+ This package provides the header files to build extension over lldb.
+
+
+# ------------- openmp -------------
+# 44 because it was the first version in which openmp & libc++ have been
+# managed in llvm-defaults
+
+Package: libomp-8-dev
+Section: libdevel
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64
+Depends: libomp5-8 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Suggests: libomp-8-doc
+Breaks: libiomp-dev (<< 3.7-1), libomp-dev (<< 44)
+Provides: libomp-x.y-dev
+Conflicts: libomp-x.y-dev
+Replaces: libomp-x.y-dev
+Description: LLVM OpenMP runtime - dev package
+ The runtime is the part of the OpenMP implementation that your code is
+ linked against, and that manages the multiple threads in an OpenMP program
+ while it is executing.
+
+Package: libomp5-8
+Multi-Arch: same
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: libomp5 (<< 44)
+Provides: libomp-x.y
+Conflicts: libomp-x.y
+Replaces: libomp-x.y
+Description: LLVM OpenMP runtime
+ The runtime is the part of the OpenMP implementation that your code is
+ linked against, and that manages the multiple threads in an OpenMP program
+ while it is executing.
+
+Package: libomp-8-doc
+Section: doc
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}, libjs-jquery
+Replaces: libiomp-x.y-doc
+Breaks: libiomp-x.y-doc
+Description: LLVM OpenMP runtime - Documentation
+ The runtime is the part of the OpenMP implementation that your code is
+ linked against, and that manages the multiple threads in an OpenMP program
+ while it is executing.
+ .
+ This package contains the documentation of this package.
+
+# ------------- libcxx -------------
+
+Package: libc++1-8
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Suggests: clang
+Breaks: libc++1 (<< 44)
+Provides: libc++-x.y
+Conflicts: libc++-x.y
+Replaces: libc++-x.y
+Description: LLVM C++ Standard library
+ libc++ is another implementation of the C++ standard library.
+ .
+ Features and Goals
+ .
+ * Correctness as defined by the C++ standards.
+ * Fast execution.
+ * Minimal memory use.
+ * Fast compile times.
+ * ABI compatibility with gcc's libstdc++ for some low-level features such
+ as exception objects, rtti and memory allocation.
+ * Extensive unit tests.
+
+Package: libc++-8-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: libc++1-8 (= ${binary:Version}), ${misc:Depends}
+Breaks: libc++-dev (<< 44)
+Provides: libc++-x.y-dev
+Conflicts: libc++-x.y-dev
+Replaces: libc++-x.y-dev
+Description: LLVM C++ Standard library (development files)
+ libc++ is another implementation of the C++ standard library
+ .
+ Features and Goals
+ .
+ * Correctness as defined by the C++ standards.
+ * Fast execution.
+ * Minimal memory use.
+ * Fast compile times.
+ * ABI compatibility with gcc's libstdc++ for some low-level features such
+ as exception objects, rtti and memory allocation.
+ * Extensive unit tests.
+
+# ------------- libcxxabi -------------
+
+Package: libc++abi1-8
+Section: libs
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: libc++abi1 (<< 44)
+Provides: libc++abi-x.y
+Conflicts: libc++abi-x.y
+Replaces: libc++abi-x.y
+Description: LLVM low level support for a standard C++ library
+ libc++abi is another implementation of low level support for a standard C++
+ library.
+ .
+ Features and Goals
+ .
+ * Correctness as defined by the C++ standards.
+ * Provide a portable sublayer to ease the porting of libc++
+
+Package: libc++abi-8-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: libc++abi1-8 (= ${binary:Version}), ${misc:Depends}
+Breaks: libc++abi-dev (<= 44)
+Provides: libc++abi-x.y-dev
+Conflicts: libc++abi-x.y-dev
+Replaces: libc++abi-x.y-dev
+Description: LLVM low level support for a standard C++ library (development files)
+ libc++abi is another implementation of low level support for a standard C++
+ library.
+ .
+ Features and Goals
+ .
+ * Correctness as defined by the C++ standards.
+ * Provide a portable sublayer to ease the porting of libc++
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: LLVM/Clang
+Source: https://llvm.org/releases/download.html
+
+Files: *
+Copyright: 2003-2017 University of Illinois at Urbana-Champaign.
+License: U-OF-I-BSD-LIKE
+
+Files: */install-sh
+Copyright: 1994 X Consortium
+License: LLVM
+ This script is licensed under the LLVM license, with the following
+ additional copyrights and restrictions:
+ .
+ Copyright 1991 by the Massachusetts Institute of Technology
+ .
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation, and that the name of M.I.T. not be used in advertising or
+ publicity pertaining to distribution of the software without specific,
+ written prior permission. M.I.T. makes no representations about the
+ suitability of this software for any purpose. It is provided "as is"
+ without express or implied warranty.
+ .
+ ==============================================================================
+ LLVM Release License
+ ==============================================================================
+ University of Illinois/NCSA
+ Open Source License
+ .
+ Copyright (c) 2003-2013 University of Illinois at Urbana-Champaign.
+ All rights reserved.
+ .
+ Developed by:
+ .
+ LLVM Team
+ .
+ University of Illinois at Urbana-Champaign
+ .
+ http://llvm.org
+ .
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software and associated documentation files (the "Software"), to deal with
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
+ .
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+ .
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+ SOFTWARE.
+
+Files: clang/lib/Headers/*
+Copyright: 2003-2007 University of Illinois at Urbana-Champaign
+License: Expat
+
+Files: clang/lib/Headers/iso646.h
+Copyright: 2008 Eli Friedman
+License: Expat
+
+Files: clang/lib/Headers/limits.h
+Copyright: 2009 Chris Lattner
+License: Expat
+
+Files: clang/lib/Headers/stdarg.h
+Copyright: 2008 Eli Friedman
+License: Expat
+
+Files: clang/lib/Headers/stdbool.h
+Copyright: 2008 Eli Friedman
+License: Expat
+
+Files: clang/lib/Headers/stddef.h
+Copyright: 2008 Eli Friedman
+License: Expat
+
+Files: clang/lib/Headers/stdint.h
+Copyright: 2009 Chris Lattner
+License: Expat
+
+Files: clang/lib/Headers/tgmath.h
+Copyright: 2009 Howard Hinnant
+License: Expat
+
+Files: compiler-rt/*
+Copyright: 2009-2013 Craig van Vliet
+ 2009-2013 Edward O'Callaghan
+ 2009-2013 Howard Hinnant
+License: U-OF-I-BSD-LIKE or MIT
+
+Files: compiler-rt/lib/BlocksRuntime/Block.h
+Copyright: 2008-2010 Apple, Inc.
+License: MIT
+
+Files: compiler-rt/lib/BlocksRuntime/Block_private.h
+Copyright: 2008-2010 Apple, Inc.
+License: MIT
+
+Files: compiler-rt/lib/BlocksRuntime/data.c
+Copyright: 2008-2010 Apple, Inc.
+License: MIT
+
+Files: compiler-rt/lib/BlocksRuntime/runtime.c
+Copyright: 2008-2010 Apple, Inc.
+License: MIT
+
+Files: include/llvm/Support/*
+Copyright: 2003-2013 University of Illinois at Urbana-Champaign.
+ Copyright (C) 2004 eXtensible Systems, Inc.
+License: U-OF-I-BSD-LIKE
+
+Files: lib/Support/reg*
+Copyright: 1992, 1993, 1994 Henry Spencer
+ 1992, 1993, 1994 The Regents of the University of California
+License: BSD-3-clause
+
+Files: lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h
+Copyright: 2001 Alexander Peslyak aka Solar Designer <solar at openwall.com>
+License: solar-public-domain
+ This software was written by Alexander Peslyak in 2001. No copyright is
+ claimed, and the software is hereby placed in the public domain.
+ In case this attempt to disclaim copyright and place the software in the
+ public domain is deemed null and void, then the software is
+ Copyright (c) 2001 Alexander Peslyak and it is hereby released to the
+ general public under the following terms:
+ .
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted.
+ .
+ * There's ABSOLUTELY NO WARRANTY, express or implied.
+
+Files: lib/Target/ARM/*
+Copyright: ARM Limited
+License: ARM
+ ARM Limited
+ .
+ Software Grant License Agreement ("Agreement")
+ .
+ Except for the license granted herein to you, ARM Limited ("ARM") reserves all
+ right, title, and interest in and to the Software (defined below).
+ .
+ Definition
+ .
+ "Software" means the code and documentation as well as any original work of
+ authorship, including any modifications or additions to an existing work, that
+ is intentionally submitted by ARM to llvm.org (http://llvm.org) ("LLVM") for
+ inclusion in, or documentation of, any of the products owned or managed by LLVM
+ (the "Work"). For the purposes of this definition, "submitted" means any form of
+ electronic, verbal, or written communication sent to LLVM or its
+ representatives, including but not limited to communication on electronic
+ mailing lists, source code control systems, and issue tracking systems that are
+ managed by, or on behalf of, LLVM for the purpose of discussing and improving
+ the Work, but excluding communication that is conspicuously marked otherwise.
+ .
+ 1. Grant of Copyright License. Subject to the terms and conditions of this
+ Agreement, ARM hereby grants to you and to recipients of the Software
+ distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge,
+ royalty-free, irrevocable copyright license to reproduce, prepare derivative
+ works of, publicly display, publicly perform, sublicense, and distribute the
+ Software and such derivative works.
+ .
+ 2. Grant of Patent License. Subject to the terms and conditions of this
+ Agreement, ARM hereby grants you and to recipients of the Software
+ distributed by LLVM a perpetual, worldwide, non-exclusive, no-charge,
+ royalty-free, irrevocable (except as stated in this section) patent license
+ to make, have made, use, offer to sell, sell, import, and otherwise transfer
+ the Work, where such license applies only to those patent claims licensable
+ by ARM that are necessarily infringed by ARM's Software alone or by
+ combination of the Software with the Work to which such Software was
+ submitted. If any entity institutes patent litigation against ARM or any
+ other entity (including a cross-claim or counterclaim in a lawsuit) alleging
+ that ARM's Software, or the Work to which ARM has contributed constitutes
+ direct or contributory patent infringement, then any patent licenses granted
+ to that entity under this Agreement for the Software or Work shall terminate
+ as of the date such litigation is filed.
+ .
+ Unless required by applicable law or agreed to in writing, the software is
+ provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ either express or implied, including, without limitation, any warranties or
+ conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE.
+
+Files: lldb/*
+Copyright: 2010, 2012 Apple Inc.
+License: NCSA
+ University of Illinois/NCSA
+ Open Source License
+ .
+ Copyright (c) 2010 Apple Inc.
+ All rights reserved.
+ .
+ Developed by:
+ .
+ LLDB Team
+ .
+ http://lldb.llvm.org/
+ .
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software and associated documentation files (the "Software"), to deal with
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
+ .
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+ .
+ * Neither the names of the LLDB Team, copyright holders, nor the names of
+ its contributors may be used to endorse or promote products derived from
+ this Software without specific prior written permission.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+ SOFTWARE.
+
+Files: lldb/test/pexpect-2.4/*
+Copyright: 2008 Noah Spurrier
+License: Expat
+
+License: Expat
+ .
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+ USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Files: lldb/test/unittest2/*
+Copyright: 1999-2003 Steve Purcell
+ 2003-2010 Python Software Foundation
+License: Python
+ This module is free software, and you may redistribute it and/or modify
+ it under the same terms as Python itself, so long as this copyright message
+ and disclaimer are retained in their original form.
+ .
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
+ SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF
+ THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ .
+ THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS,
+ AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
+ SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+Files: polly/*
+Copyright: 2009-2013 Polly Team
+License: Polly
+ ==============================================================================
+ Polly Release License
+ ==============================================================================
+ University of Illinois/NCSA
+ Open Source License
+ .
+ Copyright (c) 2009-2013 Polly Team
+ All rights reserved.
+ .
+ Developed by:
+ .
+ Polly Team
+ .
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software and associated documentation files (the "Software"), to deal with
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
+ .
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+ .
+ * Neither the names of the Polly Team, copyright holders, nor the names of
+ its contributors may be used to endorse or promote products derived from
+ this Software without specific prior written permission.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+ SOFTWARE.
+
+Files: polly/lib/JSON/*
+Copyright: Polly Team
+License: public-domain
+ **FIXME**
+ polly/lib/JSON/LICENSE.txt claims that these files are in the public domain, but
+ the machine-readable copyright spec requires additional clarification.
+
+Files: polly/tools/GPURuntime/*
+Copyright: Polly Team
+License: U-OF-I-BSD-LIKE or MIT
+
+Files: test/YAMLParser/*
+Copyright: 2006 Kirill Simonov
+License: MIT
+
+Files: lldb/tools/debugserver/source/MacOSX/stack_logging.h
+Copyright: 1999-2007 Apple Inc.
+License: Apple
+ This file contains Original Code and/or Modifications of Original Code
+ as defined in and that are subject to the Apple Public Source License
+ Version 2.0 (the 'License'). You may not use this file except in
+ compliance with the License. Please obtain a copy of the License at
+ http://www.opensource.apple.com/apsl/ and read it before using this
+ file.
+ .
+ The Original Code and all software distributed under the License are
+ distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ Please see the License for the specific language governing rights and
+ limitations under the License.
+
+Files: utils/unittest/googletest/*
+Copyright: 2006-2008, Google Inc.
+License: BSD-3-Clause
+
+Files: libcxx/*
+License: BSD-3-Clause
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+ .
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+ .
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+Files: libcxx*/*
+Copyright: 2009-2012 by the contributors listed below
+ N: Howard Hinnant
+ E: hhinnant@apple.com
+ D: Architect and primary author of libc++
+ .
+ N: Marshall Clow
+ E: marshall@idio.com
+ E: mclow@qualcomm.com
+ D: Minor patches and bug fixes.
+ .
+ N: Bjorn Reese
+ E: breese@users.sourceforge.net
+ D: Initial regex prototype
+ .
+ N: David Chisnall
+ E: theraven at theravensnest dot org
+ D: FreeBSD and Solaris ports, libcxxrt support, some atomics work.
+ .
+ N: Ruben Van Boxem
+ E: vanboxem dot ruben at gmail dot com
+ D: Initial Windows patches.
+ .
+ N: Arvid Picciani
+ E: aep at exys dot org
+ D: Minor patches and musl port.
+ .
+ N: Craig Silverstein
+ E: csilvers@google.com
+ D: Implemented Cityhash as the string hash function on 64-bit machines
+ .
+ N: Google Inc.
+ D: Copyright owner and contributor of the CityHash algorithm
+ .
+ N: Jeffrey Yasskin
+ E: jyasskin@gmail.com
+ E: jyasskin@google.com
+ D: Linux fixes.
+ .
+ N: Jonathan Sauer
+ D: Minor patches, mostly related to constexpr
+ .
+ N: Richard Smith
+ D: Minor patches.
+ .
+ The list is sorted by surname and formatted to allow easy grepping and
+ beautification by scripts. The fields are: name (N), email (E), web-address
+ (W), PGP key ID and fingerprint (P), description (D), and snail-mail address
+ (S).
+ .
+License: NCSA or MIT
+
+Files: openmp/*
+Copyright: 1997-2015 Intel Corporation
+License: U-OF-I-BSD-LIKE
+
+License: U-OF-I-BSD-LIKE
+ ==============================================================================
+ LLVM Release License
+ ==============================================================================
+ University of Illinois/NCSA
+ Open Source License
+ .
+ Copyright (c) 2003-2017 University of Illinois at Urbana-Champaign.
+ All rights reserved.
+ .
+ Developed by:
+ .
+ LLVM Team
+ .
+ University of Illinois at Urbana-Champaign
+ .
+ http://llvm.org
+ .
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
+ this software and associated documentation files (the "Software"), to deal with
+ the Software without restriction, including without limitation the rights to
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ of the Software, and to permit persons to whom the Software is furnished to do
+ so, subject to the following conditions:
+ .
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+ .
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+ .
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+ SOFTWARE.
+
+License: MIT
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+ .
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
--- /dev/null
+//===----------------------------------------------------------------------===//
+//
+// Debian paths declaration management
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef DEBIAN_PATH_H
+#define DEBIAN_PATH_H
+
+// Provides the debian revision
+#define DEB_PATCHSETVERSION "@DEB_PATCHSETVERSION@"
+
+#endif
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++fs.a
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++experimental.a
+usr/lib/llvm-@LLVM_VERSION@/include/c++/
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so /usr/lib/x86_64-linux-gnu/libc++.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a /usr/lib/x86_64-linux-gnu/libc++.a
--- /dev/null
+libc++-@LLVM_VERSION@-dev: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a
+libc++-@LLVM_VERSION@-dev: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++fs.a
+libc++-@LLVM_VERSION@-dev: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++experimental.a
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.*
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++.so.1.0
+/usr/lib/@DEB_HOST_MULTIARCH@/libc++.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++.so.1
--- /dev/null
+libc++1-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.1.0
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi*so
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.a
+libcxxabi/include/* usr/lib/llvm-@LLVM_VERSION@/include/
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so
--- /dev/null
+libc++abi-@LLVM_VERSION@-dev: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.a
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.*
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so.1.0
+/usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so.1
--- /dev/null
+libc++abi1-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.1.0
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/include/clang
+usr/lib/llvm-@LLVM_VERSION@/include/clang-c
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang*a
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang*so
+usr/lib/llvm-@LLVM_VERSION@/lib/libfindAllSymbols.a
+
+#usr/include/clang /usr/include/
+#usr/include/clang-c /usr/include/
+#usr/lib/libclang.so /usr/lib/
+#usr/lib/libclang*a /usr/lib/
--- /dev/null
+usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so
+usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so
+usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include
+
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/*.txt
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/share/*.txt
+
+#usr/lib/clang/@LLVM_VERSION_FULL@/lib /usr/lib/clang/@LLVM_VERSION@/
+#usr/lib/clang/@LLVM_VERSION_FULL@/include/ /usr/include/clang/@LLVM_VERSION@/
+
+usr/lib/llvm-@LLVM_VERSION@/bin/yaml-bench
+
+usr/bin/yaml-bench-@LLVM_VERSION@
+
+
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION@/lib
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION_FULL@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION_FULL@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION_FULL@/lib
+
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1
--- /dev/null
+# as upstream
+usr/lib/@DEB_HOST_MULTIARCH@/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so.1
--- /dev/null
+# I know and I am not planning to change that yet.
+libclang1-@LLVM_VERSION@: package-name-doesnt-match-sonames libclang1-@LLVM_VERSION@-1
+# Provided as transition
+libclang1-@LLVM_VERSION@: dev-pkg-without-shlib-symlink usr/lib/*/libclang-@LLVM_VERSION@.so.1 usr/lib/*/libclang.so
+libclang1-@LLVM_VERSION@: ldconfig-symlink-missing-for-shlib usr/lib/*/libclang-LLVM_VERSION@.so usr/lib/*/libclang-LLVM_VERSION@.so.1 libclang-LLVM_VERSION@.so
--- /dev/null
+libclang-@LLVM_VERSION@.so.1 libclang1-@LLVM_VERSION@ #MINVER#
+ (optional)LLVM_@LLVM_VERSION@@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getArgText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getParagraph@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXCursorSet_contains@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXCursorSet_insert@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXIndex_getGlobalOptions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXIndex_setGlobalOptions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXIndex_setInvocationEmissionPathOption@LLVM_@LLVM_VERSION@ 1:6.0~svn320926-1~
+ clang_CXXConstructor_isConvertingConstructor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXConstructor_isCopyConstructor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXConstructor_isDefaultConstructor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXConstructor_isMoveConstructor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXField_isMutable@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXMethod_isConst@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXMethod_isDefaulted@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXMethod_isPureVirtual@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXMethod_isStatic@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXMethod_isVirtual@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CXXRecord_isAbstract@LLVM_@LLVM_VERSION@ 1:6.0~svn320926-1~
+ clang_Comment_getChild@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Comment_getKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Comment_getNumChildren@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Comment_isWhitespace@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompilationDatabase_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompilationDatabase_fromDirectory@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompilationDatabase_getAllCompileCommands@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompilationDatabase_getCompileCommands@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommand_getArg@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommand_getDirectory@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommand_getFilename@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommand_getMappedSourceContent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommand_getMappedSourcePath@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommand_getNumArgs@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommands_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommands_getCommand@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_CompileCommands_getSize@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_Evaluate@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getArgument@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getBriefCommentText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getCXXManglings@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getCommentRange@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getMangling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getModule@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getNumArguments@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getObjCDeclQualifiers@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getObjCManglings@LLVM_@LLVM_VERSION@ 1:6.0~svn320926-1~
+ clang_Cursor_getObjCPropertyAttributes@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getObjCPropertyGetterName@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Cursor_getObjCPropertySetterName@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Cursor_getObjCSelectorIndex@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getOffsetOfField@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getParsedComment@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getRawCommentText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getReceiverType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getSpellingNameRange@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getStorageClass@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentUnsignedValue@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentValue@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_getTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_hasAttrs@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isAnonymous@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isBitField@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isDynamicCall@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isExternalSymbol@LLVM_@LLVM_VERSION@ 1:5.0~+rc1~
+ clang_Cursor_isFunctionInlined@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isMacroBuiltin@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isMacroFunctionLike@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isNull@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isObjCOptional@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Cursor_isVariadic@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_EnumDecl_isScoped@LLVM_@LLVM_VERSION@ 1:5.0~+rc1~
+ clang_EvalResult_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_EvalResult_getAsDouble@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_EvalResult_getAsInt@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_EvalResult_getAsLongLong@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_EvalResult_getAsStr@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_EvalResult_getAsUnsigned@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_EvalResult_getKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_EvalResult_isUnsignedInt@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_File_isEqual@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_File_tryGetRealPathName@LLVM_@LLVM_VERSION@ 1:7~svn329516-1~
+ clang_FullComment_getAsHTML@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_FullComment_getAsXML@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_HTMLStartTagComment_isSelfClosing@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_HTMLStartTag_getAttrName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_HTMLStartTag_getAttrValue@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_HTMLStartTag_getNumAttrs@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_HTMLTagComment_getAsString@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_HTMLTagComment_getTagName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_IndexAction_create@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_IndexAction_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getArgText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getCommandName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getNumArgs@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getRenderKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_InlineContentComment_hasTrailingNewline@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Location_isFromMainFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Location_isInSystemHeader@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_create@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_setFrameworkModuleName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_setUmbrellaHeader@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_writeToBuffer@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Module_getASTFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Module_getFullName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Module_getName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Module_getNumTopLevelHeaders@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Module_getParent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Module_getTopLevelHeader@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Module_isSystem@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ParamCommandComment_getDirection@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ParamCommandComment_getParamIndex@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ParamCommandComment_isDirectionExplicit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_ParamCommandComment_isParamIndexValid@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_PrintingPolicy_dispose@LLVM_@LLVM_VERSION@ 1:7~svn324835-1~
+ clang_PrintingPolicy_getProperty@LLVM_@LLVM_VERSION@ 1:7~svn324835-1~
+ clang_PrintingPolicy_setProperty@LLVM_@LLVM_VERSION@ 1:7~svn324835-1~
+ clang_Range_isNull@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_TParamCommandComment_getDepth@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_TParamCommandComment_getIndex@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_TParamCommandComment_getParamName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_TParamCommandComment_isParamPositionValid@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_TargetInfo_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_TargetInfo_getPointerWidth@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_TargetInfo_getTriple@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_TextComment_getText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getAlignOf@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getCXXRefQualifier@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getClassType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getModifiedType@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Type_getNamedType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getNullability@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Type_getNumObjCProtocolRefs@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Type_getNumObjCTypeArgs@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Type_getNumTemplateArguments@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getObjCEncoding@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getObjCObjectBaseType@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Type_getObjCProtocolDecl@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Type_getObjCTypeArg@LLVM_@LLVM_VERSION@ 1:8~svn339515-1~
+ clang_Type_getOffsetOf@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getSizeOf@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_getTemplateArgumentAsType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_Type_isTransparentTagTypedef@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_Type_visitFields@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_VerbatimBlockLineComment_getText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_VerbatimLineComment_getText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_addFileMapping@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_create@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_setCaseSensitivity@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_writeToBuffer@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_annotateTokens@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_codeCompleteAt@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_codeCompleteGetContainerKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_codeCompleteGetContainerUSR@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_codeCompleteGetContexts@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_codeCompleteGetDiagnostic@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_codeCompleteGetNumDiagnostics@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_codeCompleteGetObjCSelector@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCCategory@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCClass@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCIvar@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCMethod@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCProperty@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCProtocol@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_createCXCursorSet@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_createIndex@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_createTranslationUnit2@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_createTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_createTranslationUnitFromSourceFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_defaultCodeCompleteOptions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_defaultDiagnosticDisplayOptions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_defaultEditingTranslationUnitOptions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_defaultReparseOptions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_defaultSaveOptions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeCXCursorSet@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeCXPlatformAvailability@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeCXTUResourceUsage@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeCodeCompleteResults@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeDiagnostic@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeDiagnosticSet@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeIndex@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeOverriddenCursors@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeSourceRangeList@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeString@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeStringSet@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeTokens@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_disposeTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_enableStackTraces@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_equalCursors@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_equalLocations@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_equalRanges@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_equalTypes@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_executeOnThread@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_findIncludesInFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_findIncludesInFileWithBlock@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_findReferencesInFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_findReferencesInFileWithBlock@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_formatDiagnostic@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_free@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getAddressSpace@LLVM_@LLVM_VERSION@ 1:5.0~+rc1~
+ clang_getAllSkippedRanges@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_getArgType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getArrayElementType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getArraySize@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getBuildSessionTimestamp@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCString@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCXTUResourceUsage@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCXXAccessSpecifier@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCanonicalCursor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCanonicalType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getChildDiagnostics@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getClangVersion@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionAnnotation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionAvailability@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionBriefComment@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionChunkCompletionString@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionChunkKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionChunkText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionFixIt@LLVM_@LLVM_VERSION@ 1:7~svn334604-1~
+ clang_getCompletionNumAnnotations@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionNumFixIts@LLVM_@LLVM_VERSION@ 1:7~svn334604-1~+0~
+ clang_getCompletionParent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCompletionPriority@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorAvailability@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorCompletionString@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorDefinition@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorDisplayName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorExceptionSpecificationType@LLVM_@LLVM_VERSION@ 1:5.0~+rc1~
+ clang_getCursorExtent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorKindSpelling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorLanguage@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorLexicalParent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorLinkage@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorPlatformAvailability@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorPrettyPrinted@LLVM_@LLVM_VERSION@ 1:7~svn324835-1~
+ clang_getCursorPrintingPolicy@LLVM_@LLVM_VERSION@ 1:7~svn324835-1~
+ clang_getCursorReferenceNameRange@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorReferenced@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorResultType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorSemanticParent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorSpelling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorTLSKind@LLVM_@LLVM_VERSION@ 1:6.0~svn320926-1~
+ clang_getCursorType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorUSR@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getCursorVisibility@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDeclObjCTypeEncoding@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDefinitionSpellingAndExtent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnostic@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticCategory@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticCategoryName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticCategoryText@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticFixIt@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticInSet@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticNumFixIts@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticNumRanges@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticOption@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticRange@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticSetFromTU@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticSeverity@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getDiagnosticSpelling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getElementType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getEnumConstantDeclUnsignedValue@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getEnumConstantDeclValue@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getEnumDeclIntegerType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getExceptionSpecificationType@LLVM_@LLVM_VERSION@ 1:5.0~+rc1~
+ clang_getExpansionLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getFieldDeclBitWidth@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getFileContents@LLVM_@LLVM_VERSION@ 1:6.0~svn321745-1~
+ clang_getFileLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getFileName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getFileTime@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getFileUniqueID@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getFunctionTypeCallingConv@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getIBOutletCollectionType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getIncludedFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getInclusions@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getInstantiationLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getLocationForOffset@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getModuleForFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNullCursor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNullLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNullRange@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNumArgTypes@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNumCompletionChunks@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNumDiagnostics@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNumDiagnosticsInSet@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNumElements@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getNumOverloadedDecls@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getOverloadedDecl@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getOverriddenCursors@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getPointeeType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getPresumedLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getRange@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getRangeEnd@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getRangeStart@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getRemappings@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getRemappingsFromFileList@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getResultType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getSkippedRanges@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getSpecializedCursorTemplate@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getSpellingLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTUResourceUsageName@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTemplateCursorKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getToken@LLVM_@LLVM_VERSION@ 1:7~svn334604-1~
+ clang_getTokenExtent@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTokenKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTokenLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTokenSpelling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTranslationUnitCursor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTranslationUnitSpelling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTranslationUnitTargetInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn302377-1~
+ clang_getTypeDeclaration@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTypeKindSpelling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTypeSpelling@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTypedefDeclUnderlyingType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_getTypedefName@LLVM_@LLVM_VERSION@ 1:5.0~+rc1~
+ clang_hashCursor@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_indexLoc_getCXSourceLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_indexLoc_getFileLocation@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_indexSourceFile@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_indexSourceFileFullArgv@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_indexTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getCXXClassDeclInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getClientContainer@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getClientEntity@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getIBOutletCollectionAttrInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getObjCCategoryDeclInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getObjCContainerDeclInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getObjCInterfaceDeclInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getObjCPropertyDeclInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_getObjCProtocolRefListInfo@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_isEntityObjCContainerKind@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_setClientContainer@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_index_setClientEntity@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isAttribute@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isConstQualifiedType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isCursorDefinition@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isDeclaration@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isExpression@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isFileMultipleIncludeGuarded@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isFunctionTypeVariadic@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isInvalid@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isInvalidDeclaration@LLVM_@LLVM_VERSION@ 1:7~svn321385-1~
+ clang_isPODType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isPreprocessing@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isReference@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isRestrictQualifiedType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isStatement@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isUnexposed@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isVirtualBase@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_isVolatileQualifiedType@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_loadDiagnostics@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_parseTranslationUnit2@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_parseTranslationUnit2FullArgv@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_parseTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_remap_dispose@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_remap_getFilenames@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_remap_getNumFiles@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_reparseTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_saveTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_sortCodeCompletionResults@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_suspendTranslationUnit@LLVM_@LLVM_VERSION@ 1:5.0~+rc1~
+ clang_toggleCrashRecovery@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_tokenize@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_visitChildren@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
+ clang_visitChildrenWithBlock@LLVM_@LLVM_VERSION@ 1:5.0~svn298832-1~
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/include/lld
+
--- /dev/null
+#usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/
+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/liblldMinGW.a
+usr/lib/llvm-@LLVM_VERSION@/lib/liblldCommon.a
+usr/lib/llvm-@LLVM_VERSION@/lib/liblldWasm.a
--- /dev/null
+#usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so
+#usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so usr/lib/python3/dist-packages/lld-@LLVM_VERSION@/_lld.so
+#usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblld.so.1
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/include/lldb
+/usr/lib/llvm-@LLVM_VERSION@/lib/liblldb*a
+/usr/lib/llvm-@LLVM_VERSION@/lib/liblldb*so
--- /dev/null
+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
+usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblldb-@LLVM_VERSION@.so.1
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/liblldb-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/
+usr/lib/llvm-@LLVM_VERSION@/lib/python*/dist-packages/readline.so
+
+usr/lib/llvm-@LLVM_VERSION@/lib/liblldbIntelFeatures.so.*
--- /dev/null
+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
--- /dev/null
+# That is normal. The lib is not (yet?) shipped as a new package
+liblldb-@LLVM_VERSION@: package-name-doesnt-match-sonames liblldb-@LLVM_VERSION@-1
+# For now, override this warning. We might create a -dev at some point
+liblldb-@LLVM_VERSION@: non-dev-pkg-with-shlib-symlink usr/lib/*/liblldb.so.1 usr/lib/*/liblldb.so
+liblldb-@LLVM_VERSION@: non-dev-pkg-with-shlib-symlink usr/lib/*/liblldb-@LLVM_VERSION@.so.1 usr/lib/*/liblldb-@LLVM_VERSION@.so
--- /dev/null
+description = "Low Level Virtual Machine bindings"
+version = "@LLVM_VERSION@"
+
+directory = "+llvm-@LLVM_VERSION@"
+
+archive(byte) = "llvm.cma"
+archive(native) = "llvm.cmxa"
+linkopts = "-cclib -lstdc++ -cclib -lllvm"
+
+package "executionengine"
+(
+ requires = "llvm-@LLVM_VERSION@"
+ version = "@LLVM_VERSION@"
+ archive(native) = "llvm_executionengine.cmxa"
+ archive(byte) = "llvm_executionengine.cma"
+ linkopts = "-cclib -lllvm_executionengine"
+)
+
+package "target"
+(
+ requires = "llvm-@LLVM_VERSION@"
+ version = "@LLVM_VERSION@"
+ archive(native) = "llvm_target.cmxa"
+ archive(byte) = "llvm_target.cma"
+ linkopts = "-cclib -lllvm_target"
+)
+
+package "scalar_opts"
+(
+ requires = "llvm-@LLVM_VERSION@ llvm-@LLVM_VERSION@.target"
+ version = "@LLVM_VERSION@"
+ archive(native) = "llvm_scalar_opts.cmxa"
+ archive(byte) = "llvm_scalar_opts.cma"
+ linkopts = "-cclib -lllvm_scalar_opts"
+)
+
+package "analysis"
+(
+ requires = "llvm-@LLVM_VERSION@"
+ version = "@LLVM_VERSION@"
+ archive(native) = "llvm_analysis.cmxa"
+ archive(byte) = "llvm_analysis.cma"
+ linkopts = "-cclib -lllvm_analysis"
+)
+
+package "bitwriter"
+(
+ requires = "llvm-@LLVM_VERSION@"
+ version = "@LLVM_VERSION@"
+ archive(native) = "llvm_bitwriter.cmxa"
+ archive(byte) = "llvm_bitwriter.cma"
+ linkopts = "-cclib -lllvm_bitwriter"
+)
+
+package "bitreader"
+(
+ requires = "llvm-@LLVM_VERSION@ llvm-@LLVM_VERSION@.bitwriter"
+ version = "@LLVM_VERSION@"
+ archive(native) = "llvm_bitreader.cmxa"
+ archive(byte) = "llvm_bitreader.cma"
+ linkopts = "-cclib -lllvm_bitreader"
+)
+
--- /dev/null
+@OCAML_STDLIB_DIR@/META/
+
--- /dev/null
+@OCAML_STDLIB_DIR@
+usr/lib/llvm-@LLVM_VERSION@/share/doc/llvm/ocaml-html/ usr/share/doc/libllvm-@LLVM_VERSION@-ocaml-dev/
--- /dev/null
+# It is in the section ocaml which is fine.
+libllvm-@LLVM_VERSION@-ocaml-dev: wrong-section-according-to-package-name libllvm-@LLVM_VERSION@-ocaml-dev => libdevel
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/
--- /dev/null
+# Should be uncommented for @LLVM_VERSION@.1 and other
+# usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so
+
--- /dev/null
+# That is normal. Upstream does not match the debian convention
+libllvm@LLVM_VERSION@: package-name-doesnt-match-sonames libLLVM-@LLVM_VERSION@-1
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/include/openmp/omp*.h
+/usr/lib/llvm-@LLVM_VERSION@/lib/libgomp.so
+/usr/lib/llvm-@LLVM_VERSION@/lib/libiomp5.so
+/usr/lib/llvm-@LLVM_VERSION@/lib/libomp*.so
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so usr/lib/@DEB_HOST_MULTIARCH@/libomp5.so
+/usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so usr/lib/@DEB_HOST_MULTIARCH@/libiomp5.so
+
--- /dev/null
+openmp/runtime/doc/doxygen/generated/html/
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 usr/lib/@DEB_HOST_MULTIARCH@/libomp.so.5
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libomp*.so.5
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5 /usr/lib/@DEB_HOST_MULTIARCH@/libomp.so.5
+
+
--- /dev/null
+libomp5-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libomp.so.5
--- /dev/null
+libomp.so.5 libomp5-@LLVM_VERSION@ #MINVER#
+ GOMP_1.0@GOMP_1.0 0.20131209
+ GOMP_2.0@GOMP_2.0 0.20131209
+ GOMP_3.0@GOMP_3.0 0.20131209
+ GOMP_4.0@GOMP_4.0 0.20131209
+ GOMP_4.5@GOMP_4.5 7
+ GOMP_atomic_end@GOMP_1.0 0.20131209
+ GOMP_atomic_end@VERSION 0.20130412
+ GOMP_atomic_start@GOMP_1.0 0.20131209
+ GOMP_atomic_start@VERSION 0.20130412
+ GOMP_barrier@GOMP_1.0 0.20131209
+ GOMP_barrier@VERSION 0.20130412
+ GOMP_barrier_cancel@GOMP_4.0 0.20140926
+ GOMP_barrier_cancel@VERSION 0.20140926
+ GOMP_cancel@GOMP_4.0 0.20140926
+ GOMP_cancel@VERSION 0.20140926
+ GOMP_cancellation_point@GOMP_4.0 0.20140926
+ GOMP_cancellation_point@VERSION 0.20140926
+ GOMP_critical_end@GOMP_1.0 0.20131209
+ GOMP_critical_end@VERSION 0.20130412
+ GOMP_critical_name_end@GOMP_1.0 0.20131209
+ GOMP_critical_name_end@VERSION 0.20130412
+ GOMP_critical_name_start@GOMP_1.0 0.20131209
+ GOMP_critical_name_start@VERSION 0.20130412
+ GOMP_critical_start@GOMP_1.0 0.20131209
+ GOMP_critical_start@VERSION 0.20130412
+ GOMP_doacross_post@GOMP_4.5 7
+ GOMP_doacross_post@VERSION 7
+ GOMP_doacross_ull_post@GOMP_4.5 7
+ GOMP_doacross_ull_post@VERSION 7
+ GOMP_doacross_ull_wait@GOMP_4.5 7
+ GOMP_doacross_ull_wait@VERSION 7
+ GOMP_doacross_wait@GOMP_4.5 7
+ GOMP_doacross_wait@VERSION 7
+ GOMP_loop_doacross_dynamic_start@GOMP_4.5 7
+ GOMP_loop_doacross_dynamic_start@VERSION 7
+ GOMP_loop_doacross_guided_start@GOMP_4.5 7
+ GOMP_loop_doacross_guided_start@VERSION 7
+ GOMP_loop_doacross_runtime_start@GOMP_4.5 7
+ GOMP_loop_doacross_runtime_start@VERSION 7
+ GOMP_loop_doacross_static_start@GOMP_4.5 7
+ GOMP_loop_doacross_static_start@VERSION 7
+ GOMP_loop_dynamic_next@GOMP_1.0 0.20131209
+ GOMP_loop_dynamic_next@VERSION 0.20130412
+ GOMP_loop_dynamic_start@GOMP_1.0 0.20131209
+ GOMP_loop_dynamic_start@VERSION 0.20130412
+ GOMP_loop_end@GOMP_1.0 0.20131209
+ GOMP_loop_end@VERSION 0.20130412
+ GOMP_loop_end_cancel@GOMP_4.0 0.20140926
+ GOMP_loop_end_cancel@VERSION 0.20140926
+ GOMP_loop_end_nowait@GOMP_1.0 0.20131209
+ GOMP_loop_end_nowait@VERSION 0.20130412
+ GOMP_loop_guided_next@GOMP_1.0 0.20131209
+ GOMP_loop_guided_next@VERSION 0.20130412
+ GOMP_loop_guided_start@GOMP_1.0 0.20131209
+ GOMP_loop_guided_start@VERSION 0.20130412
+ GOMP_loop_ordered_dynamic_next@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_dynamic_next@VERSION 0.20130412
+ GOMP_loop_ordered_dynamic_start@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_dynamic_start@VERSION 0.20130412
+ GOMP_loop_ordered_guided_next@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_guided_next@VERSION 0.20130412
+ GOMP_loop_ordered_guided_start@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_guided_start@VERSION 0.20130412
+ GOMP_loop_ordered_runtime_next@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_runtime_next@VERSION 0.20130412
+ GOMP_loop_ordered_runtime_start@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_runtime_start@VERSION 0.20130412
+ GOMP_loop_ordered_static_next@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_static_next@VERSION 0.20130412
+ GOMP_loop_ordered_static_start@GOMP_1.0 0.20131209
+ GOMP_loop_ordered_static_start@VERSION 0.20130412
+ GOMP_loop_runtime_next@GOMP_1.0 0.20131209
+ GOMP_loop_runtime_next@VERSION 0.20130412
+ GOMP_loop_runtime_start@GOMP_1.0 0.20131209
+ GOMP_loop_runtime_start@VERSION 0.20130412
+ GOMP_loop_static_next@GOMP_1.0 0.20131209
+ GOMP_loop_static_next@VERSION 0.20130412
+ GOMP_loop_static_start@GOMP_1.0 0.20131209
+ GOMP_loop_static_start@VERSION 0.20130412
+ GOMP_loop_ull_doacross_dynamic_start@GOMP_4.5 7
+ GOMP_loop_ull_doacross_dynamic_start@VERSION 7
+ GOMP_loop_ull_doacross_guided_start@GOMP_4.5 7
+ GOMP_loop_ull_doacross_guided_start@VERSION 7
+ GOMP_loop_ull_doacross_runtime_start@GOMP_4.5 7
+ GOMP_loop_ull_doacross_runtime_start@VERSION 7
+ GOMP_loop_ull_doacross_static_start@GOMP_4.5 7
+ GOMP_loop_ull_doacross_static_start@VERSION 7
+ GOMP_loop_ull_dynamic_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_dynamic_next@VERSION 0.20130412
+ GOMP_loop_ull_dynamic_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_dynamic_start@VERSION 0.20130412
+ GOMP_loop_ull_guided_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_guided_next@VERSION 0.20130412
+ GOMP_loop_ull_guided_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_guided_start@VERSION 0.20130412
+ GOMP_loop_ull_ordered_dynamic_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_dynamic_next@VERSION 0.20130412
+ GOMP_loop_ull_ordered_dynamic_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_dynamic_start@VERSION 0.20130412
+ GOMP_loop_ull_ordered_guided_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_guided_next@VERSION 0.20130412
+ GOMP_loop_ull_ordered_guided_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_guided_start@VERSION 0.20130412
+ GOMP_loop_ull_ordered_runtime_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_runtime_next@VERSION 0.20130412
+ GOMP_loop_ull_ordered_runtime_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_runtime_start@VERSION 0.20130412
+ GOMP_loop_ull_ordered_static_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_static_next@VERSION 0.20130412
+ GOMP_loop_ull_ordered_static_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_ordered_static_start@VERSION 0.20130412
+ GOMP_loop_ull_runtime_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_runtime_next@VERSION 0.20130412
+ GOMP_loop_ull_runtime_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_runtime_start@VERSION 0.20130412
+ GOMP_loop_ull_static_next@GOMP_2.0 0.20131209
+ GOMP_loop_ull_static_next@VERSION 0.20130412
+ GOMP_loop_ull_static_start@GOMP_2.0 0.20131209
+ GOMP_loop_ull_static_start@VERSION 0.20130412
+ GOMP_ordered_end@GOMP_1.0 0.20131209
+ GOMP_ordered_end@VERSION 0.20130412
+ GOMP_ordered_start@GOMP_1.0 0.20131209
+ GOMP_ordered_start@VERSION 0.20130412
+ GOMP_parallel@GOMP_4.0 0.20140926
+ GOMP_parallel@VERSION 0.20140926
+ GOMP_parallel_end@GOMP_1.0 0.20131209
+ GOMP_parallel_end@VERSION 0.20130412
+ GOMP_parallel_loop_dynamic@GOMP_4.0 0.20140926
+ GOMP_parallel_loop_dynamic@VERSION 0.20140926
+ GOMP_parallel_loop_dynamic_start@GOMP_1.0 0.20131209
+ GOMP_parallel_loop_dynamic_start@VERSION 0.20130412
+ GOMP_parallel_loop_guided@GOMP_4.0 0.20140926
+ GOMP_parallel_loop_guided@VERSION 0.20140926
+ GOMP_parallel_loop_guided_start@GOMP_1.0 0.20131209
+ GOMP_parallel_loop_guided_start@VERSION 0.20130412
+ GOMP_parallel_loop_runtime@GOMP_4.0 0.20140926
+ GOMP_parallel_loop_runtime@VERSION 0.20140926
+ GOMP_parallel_loop_runtime_start@GOMP_1.0 0.20131209
+ GOMP_parallel_loop_runtime_start@VERSION 0.20130412
+ GOMP_parallel_loop_static@GOMP_4.0 0.20140926
+ GOMP_parallel_loop_static@VERSION 0.20140926
+ GOMP_parallel_loop_static_start@GOMP_1.0 0.20131209
+ GOMP_parallel_loop_static_start@VERSION 0.20130412
+ GOMP_parallel_sections@GOMP_4.0 0.20140926
+ GOMP_parallel_sections@VERSION 0.20140926
+ GOMP_parallel_sections_start@GOMP_1.0 0.20131209
+ GOMP_parallel_sections_start@VERSION 0.20130412
+ GOMP_parallel_start@GOMP_1.0 0.20131209
+ GOMP_parallel_start@VERSION 0.20130412
+ GOMP_sections_end@GOMP_1.0 0.20131209
+ GOMP_sections_end@VERSION 0.20130412
+ GOMP_sections_end_cancel@GOMP_4.0 0.20140926
+ GOMP_sections_end_cancel@VERSION 0.20140926
+ GOMP_sections_end_nowait@GOMP_1.0 0.20131209
+ GOMP_sections_end_nowait@VERSION 0.20130412
+ GOMP_sections_next@GOMP_1.0 0.20131209
+ GOMP_sections_next@VERSION 0.20130412
+ GOMP_sections_start@GOMP_1.0 0.20131209
+ GOMP_sections_start@VERSION 0.20130412
+ GOMP_single_copy_end@GOMP_1.0 0.20131209
+ GOMP_single_copy_end@VERSION 0.20130412
+ GOMP_single_copy_start@GOMP_1.0 0.20131209
+ GOMP_single_copy_start@VERSION 0.20130412
+ GOMP_single_start@GOMP_1.0 0.20131209
+ GOMP_single_start@VERSION 0.20130412
+ GOMP_target@GOMP_4.0 0.20140926
+ GOMP_target@VERSION 0.20140926
+ GOMP_target_data@GOMP_4.0 0.20140926
+ GOMP_target_data@VERSION 0.20140926
+ GOMP_target_end_data@GOMP_4.0 0.20140926
+ GOMP_target_end_data@VERSION 0.20140926
+ GOMP_target_update@GOMP_4.0 0.20140926
+ GOMP_target_update@VERSION 0.20140926
+ GOMP_task@GOMP_2.0 0.20131209
+ GOMP_task@VERSION 0.20130412
+ GOMP_taskgroup_end@GOMP_4.0 0.20140926
+ GOMP_taskgroup_end@VERSION 0.20140926
+ GOMP_taskgroup_start@GOMP_4.0 0.20140926
+ GOMP_taskgroup_start@VERSION 0.20140926
+ GOMP_taskloop@GOMP_4.5 7
+ GOMP_taskloop@VERSION 7
+ GOMP_taskloop_ull@GOMP_4.5 7
+ GOMP_taskloop_ull@VERSION 7
+ GOMP_taskwait@GOMP_2.0 0.20131209
+ GOMP_taskwait@VERSION 0.20130412
+ GOMP_taskyield@GOMP_3.0 0.20131209
+ GOMP_taskyield@VERSION 0.20131209
+ GOMP_teams@GOMP_4.0 0.20140926
+ GOMP_teams@VERSION 0.20140926
+ OMP_1.0@OMP_1.0 0.20131209
+ OMP_2.0@OMP_2.0 0.20131209
+ OMP_3.0@OMP_3.0 0.20131209
+ OMP_3.1@OMP_3.1 0.20131209
+ OMP_4.0@OMP_4.0 0.20131209
+ OMP_4.5@OMP_4.5 7
+ OMP_NULL_ALLOCATOR@VERSION 8
+ VERSION@VERSION 0.20130412
+ _You_must_link_with_Intel_OpenMP_library@VERSION 0.20130412
+ _You_must_link_with_exactly_one_OpenMP_library@VERSION 0.20130412
+ ___kmp_allocate@VERSION 0.20130412
+ ___kmp_free@VERSION 0.20130412
+ __kmp_acquire_drdpa_lock@VERSION 0.20130715
+ __kmp_acquire_nested_drdpa_lock@VERSION 0.20130715
+ __kmp_acquire_nested_queuing_lock@VERSION 0.20130715
+ __kmp_acquire_nested_tas_lock@VERSION 0.20130715
+ __kmp_acquire_nested_ticket_lock@VERSION 0.20130715
+ __kmp_acquire_queuing_lock@VERSION 0.20130715
+ __kmp_acquire_tas_lock@VERSION 0.20130715
+ __kmp_acquire_ticket_lock@VERSION 0.20130715
+ __kmp_fork_call@VERSION 0.20130715
+ __kmp_get_reduce_method@VERSION 0.20130412
+ __kmp_invoke_microtask@VERSION 0.20130715
+ __kmp_itt_fini_ittlib@VERSION 0.20130715
+ __kmp_itt_init_ittlib@VERSION 0.20130715
+#MISSING: 4.0# __kmp_reap_monitor@VERSION 0.20130715
+ __kmp_reap_worker@VERSION 0.20130715
+#MISSING: 0.20140926# __kmp_release@VERSION 0.20130715
+#MISSING: 3.9.0-1# __kmp_release_32@VERSION 0.20140926
+ __kmp_release_64@VERSION 0.20140926
+#MISSING: 3.9.0-1# __kmp_release_oncore@VERSION 0.20140926
+ __kmp_thread_pool@VERSION 0.20130412
+ __kmp_thread_pool_nth@VERSION 0.20130412
+#MISSING: 3.9.0-1# __kmp_wait_32@VERSION 0.20140926
+ __kmp_wait_64@VERSION 0.20140926
+#MISSING: 3.9.0-1# __kmp_wait_oncore@VERSION 0.20140926
+#MISSING: 0.20140926# __kmp_wait_sleep@VERSION 0.20130715
+ __kmp_wait_yield_4@VERSION 0.20130715
+#MISSING: 3.8.0# __kmp_wait_yield_8@VERSION 0.20130715
+ __kmpc_alloc@VERSION 8
+ __kmpc_atomic_10@VERSION 0.20130412
+ __kmpc_atomic_16@VERSION 0.20130412
+ __kmpc_atomic_1@VERSION 0.20130412
+ __kmpc_atomic_20@VERSION 0.20130412
+ __kmpc_atomic_2@VERSION 0.20130412
+ __kmpc_atomic_32@VERSION 0.20130412
+ __kmpc_atomic_4@VERSION 0.20130412
+ __kmpc_atomic_8@VERSION 0.20130412
+ __kmpc_atomic_cmplx10_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_add_cpt@VERSION 0.20130412
+ __kmpc_atomic_cmplx10_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_div_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_div_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_div_rev@VERSION 0.20130412
+ __kmpc_atomic_cmplx10_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_mul_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_rd@VERSION 0.20130412
+ __kmpc_atomic_cmplx10_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_sub_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_sub_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_sub_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx10_wr@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_cmplx16_add@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_cmplx16_div@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_cmplx16_mul@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_rd@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_cmplx16_sub@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_swp@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx16_wr@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_add@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_add_cmplx8@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_add_cpt@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_div@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_div_cmplx8@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_div_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_div_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_div_rev@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_mul@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_mul_cmplx8@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_mul_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_rd@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_sub@VERSION 0.20130412
+ __kmpc_atomic_cmplx4_sub_cmplx8@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_sub_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_sub_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_sub_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx4_wr@VERSION 0.20130412
+ __kmpc_atomic_cmplx8_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_add_cpt@VERSION 0.20130412
+ __kmpc_atomic_cmplx8_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_div_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_div_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_div_rev@VERSION 0.20130412
+ __kmpc_atomic_cmplx8_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_mul_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_rd@VERSION 0.20130412
+ __kmpc_atomic_cmplx8_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_sub_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_sub_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_sub_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_cmplx8_wr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_end@VERSION 0.20130412
+ (arch=!ppc64 !ppc64el)__kmpc_atomic_fixed1_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed1_add_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed1_andb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_andb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed1_andl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_andl_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed1_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_div_cpt_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed1_div_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed1_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_div_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed1_eqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_eqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed1_max@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_max_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed1_min@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_min_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed1_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_mul_cpt_fp@VERSION 4.0
+ __kmpc_atomic_fixed1_mul_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed1_mul_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed1_neqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_neqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed1_orb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_orb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed1_orl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed1_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_shl_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed1_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_shr_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed1_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_sub_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed1_sub_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_sub_rev_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed1_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1_xor_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed1u_add_fp@VERSION 4.0
+ __kmpc_atomic_fixed1u_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_div_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed1u_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_div_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_mul_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed1u_mul_fp@VERSION 4.0
+ __kmpc_atomic_fixed1u_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_shr_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_sub_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed1u_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed1u_sub_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf !arm64)__kmpc_atomic_fixed1u_sub_rev_fp@VERSION 5.0
+ __kmpc_atomic_fixed2_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed2_add_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed2_andb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_andb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed2_andl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_andl_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed2_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_div_cpt_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed2_div_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed2_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_div_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed2_eqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_eqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed2_max@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_max_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed2_min@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_min_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed2_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_mul_cpt_fp@VERSION 4.0
+ __kmpc_atomic_fixed2_mul_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed2_mul_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed2_neqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_neqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed2_orb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_orb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed2_orl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed2_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_shl_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed2_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_shr_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed2_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_sub_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed2_sub_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_sub_rev_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed2_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2_xor_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed2u_add_fp@VERSION 4.0
+ __kmpc_atomic_fixed2u_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_div_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed2u_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_div_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_mul_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed2u_mul_fp@VERSION 4.0
+ __kmpc_atomic_fixed2u_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_shr_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_sub_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed2u_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed2u_sub_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf !arm64)__kmpc_atomic_fixed2u_sub_rev_fp@VERSION 5.0
+ __kmpc_atomic_fixed4_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed4_add_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed4_andb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_andb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed4_andl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_andl_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed4_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_div_cpt_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed4_div_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed4_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_div_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed4_eqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_eqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed4_max@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_max_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed4_min@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_min_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed4_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_mul_cpt_fp@VERSION 4.0
+ __kmpc_atomic_fixed4_mul_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed4_mul_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed4_neqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_neqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed4_orb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_orb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed4_orl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed4_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_shl_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed4_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_shr_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed4_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_sub_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed4_sub_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_sub_rev_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed4_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4_xor_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed4u_add_fp@VERSION 4.0
+ (arch=!ppc64 !ppc64el)__kmpc_atomic_fixed4u_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_div_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed4u_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_div_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_mul_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed4u_mul_fp@VERSION 4.0
+ __kmpc_atomic_fixed4u_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_shr_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_sub_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed4u_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed4u_sub_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf !arm64)__kmpc_atomic_fixed4u_sub_rev_fp@VERSION 5.0
+ (arch=!ppc64 !ppc64el)__kmpc_atomic_fixed8_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed8_add_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed8_andb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_andb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed8_andl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_andl_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed8_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_div_cpt_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed8_div_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed8_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_div_rev_fp@VERSION 4.0
+ __kmpc_atomic_fixed8_eqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_eqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed8_max@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_max_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed8_min@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_min_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed8_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_mul_cpt_fp@VERSION 4.0
+ __kmpc_atomic_fixed8_mul_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed8_mul_fp@VERSION 0.20130412
+ __kmpc_atomic_fixed8_neqv@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_neqv_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed8_orb@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_orb_cpt@VERSION 0.20130412
+ __kmpc_atomic_fixed8_orl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed8_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_shl_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed8_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_shr_rev@VERSION 0.20130412
+ __kmpc_atomic_fixed8_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_sub_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed8_sub_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_sub_rev_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed8_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8_xor_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed8u_add_fp@VERSION 4.0
+ __kmpc_atomic_fixed8u_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_div_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_fixed8u_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_div_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_mul_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed8u_mul_fp@VERSION 4.0
+ __kmpc_atomic_fixed8u_shr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_shr_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_sub_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_fixed8u_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)__kmpc_atomic_fixed8u_sub_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf !arm64)__kmpc_atomic_fixed8u_sub_rev_fp@VERSION 5.0
+ __kmpc_atomic_float10_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float10_add_fp@VERSION 0.20130412
+ __kmpc_atomic_float10_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_div_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float10_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_div_rev_fp@VERSION 4.0
+ __kmpc_atomic_float10_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_mul_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float10_mul_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_rd@VERSION 0.20130412
+ __kmpc_atomic_float10_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_sub_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float10_sub_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_sub_rev_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float10_wr@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float16_add@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float16_div@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float16_max@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_max_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float16_min@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_min_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float16_mul@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_rd@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float16_sub@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_swp@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float16_wr@VERSION 0.20130412
+ __kmpc_atomic_float4_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_add_cpt_fp@VERSION 4.0
+ (arch=!ppc64 !ppc64el)__kmpc_atomic_float4_add_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float4_add_fp@VERSION 0.20130412
+ __kmpc_atomic_float4_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_div_cpt_rev_fp@VERSION 4.0
+ __kmpc_atomic_float4_div_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float4_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_div_rev_fp@VERSION 4.0
+ __kmpc_atomic_float4_max@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_max_cpt@VERSION 0.20130412
+ __kmpc_atomic_float4_min@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_min_cpt@VERSION 0.20130412
+ __kmpc_atomic_float4_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_mul_cpt_fp@VERSION 4.0
+ __kmpc_atomic_float4_mul_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float4_mul_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_rd@VERSION 0.20130412
+ __kmpc_atomic_float4_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_sub_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_sub_cpt_rev_fp@VERSION 4.0
+ __kmpc_atomic_float4_sub_float8@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float4_sub_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_sub_rev_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float4_wr@VERSION 0.20130412
+ __kmpc_atomic_float8_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_add_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_add_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float8_add_fp@VERSION 0.20130412
+ __kmpc_atomic_float8_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_div_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_div_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_div_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_div_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float8_div_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_div_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_div_rev_fp@VERSION 4.0
+ __kmpc_atomic_float8_max@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_max_cpt@VERSION 0.20130412
+ __kmpc_atomic_float8_min@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_min_cpt@VERSION 0.20130412
+ __kmpc_atomic_float8_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_mul_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_mul_cpt_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float8_mul_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_rd@VERSION 0.20130412
+ __kmpc_atomic_float8_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_sub_cpt@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_sub_cpt_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_sub_cpt_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_sub_cpt_rev_fp@VERSION 4.0
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !armel !armhf)__kmpc_atomic_float8_sub_fp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_sub_rev@VERSION 0.20130412
+#MISSING: 7# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_sub_rev_fp@VERSION 4.0
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_float8_wr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)__kmpc_atomic_start@VERSION 0.20130412
+ __kmpc_barrier@VERSION 0.20130412
+ __kmpc_barrier_master@VERSION 0.20130412
+ __kmpc_barrier_master_nowait@VERSION 0.20130412
+ __kmpc_begin@VERSION 0.20130412
+ __kmpc_bound_num_threads@VERSION 0.20130412
+ __kmpc_bound_thread_num@VERSION 0.20130412
+ __kmpc_cancel@VERSION 0.20131209
+ __kmpc_cancel_barrier@VERSION 0.20131209
+ __kmpc_cancellationpoint@VERSION 0.20131209
+ __kmpc_copyprivate@VERSION 0.20130412
+ __kmpc_critical@VERSION 0.20130412
+ __kmpc_critical_with_hint@VERSION 3.8.0
+ __kmpc_destroy_lock@VERSION 0.20130412
+ __kmpc_destroy_nest_lock@VERSION 0.20130412
+ __kmpc_dispatch_fini_4@VERSION 0.20130412
+ __kmpc_dispatch_fini_4u@VERSION 0.20130412
+ __kmpc_dispatch_fini_8@VERSION 0.20130412
+ __kmpc_dispatch_fini_8u@VERSION 0.20130412
+ __kmpc_dispatch_init_4@VERSION 0.20130412
+ __kmpc_dispatch_init_4u@VERSION 0.20130412
+ __kmpc_dispatch_init_8@VERSION 0.20130412
+ __kmpc_dispatch_init_8u@VERSION 0.20130412
+ __kmpc_dispatch_next_4@VERSION 0.20130412
+ __kmpc_dispatch_next_4u@VERSION 0.20130412
+ __kmpc_dispatch_next_8@VERSION 0.20130412
+ __kmpc_dispatch_next_8u@VERSION 0.20130412
+ __kmpc_dist_dispatch_init_4@VERSION 0.20140926
+ __kmpc_dist_dispatch_init_4u@VERSION 0.20140926
+ __kmpc_dist_dispatch_init_8@VERSION 0.20140926
+ __kmpc_dist_dispatch_init_8u@VERSION 0.20140926
+ __kmpc_dist_for_static_init_4@VERSION 0.20140926
+ __kmpc_dist_for_static_init_4u@VERSION 0.20140926
+ __kmpc_dist_for_static_init_8@VERSION 0.20140926
+ __kmpc_dist_for_static_init_8u@VERSION 0.20140926
+ __kmpc_doacross_fini@VERSION 3.9.0
+ __kmpc_doacross_init@VERSION 3.9.0
+ __kmpc_doacross_post@VERSION 3.9.0
+ __kmpc_doacross_wait@VERSION 3.9.0
+ __kmpc_end@VERSION 0.20130412
+ __kmpc_end_barrier_master@VERSION 0.20130412
+ __kmpc_end_critical@VERSION 0.20130412
+ __kmpc_end_master@VERSION 0.20130412
+ __kmpc_end_ordered@VERSION 0.20130412
+ __kmpc_end_reduce@VERSION 0.20130412
+ __kmpc_end_reduce_nowait@VERSION 0.20130412
+ __kmpc_end_serialized_parallel@VERSION 0.20130412
+ __kmpc_end_single@VERSION 0.20130412
+ __kmpc_end_taskgroup@VERSION 0.20130412
+ __kmpc_end_taskq@VERSION 0.20130412
+ __kmpc_end_taskq_task@VERSION 0.20130412
+ __kmpc_flush@VERSION 0.20130412
+ __kmpc_for_static_fini@VERSION 0.20130412
+ __kmpc_for_static_init_4@VERSION 0.20130412
+ __kmpc_for_static_init_4u@VERSION 0.20130412
+ __kmpc_for_static_init_8@VERSION 0.20130412
+ __kmpc_for_static_init_8u@VERSION 0.20130412
+ __kmpc_fork_call@VERSION 0.20130412
+ __kmpc_fork_teams@VERSION 0.20130715
+ __kmpc_free@VERSION 8
+ __kmpc_get_default_allocator@VERSION 8
+ __kmpc_get_parent_taskid@VERSION 0.20130412
+ __kmpc_get_target_offload@VERSION 7
+ __kmpc_get_taskid@VERSION 0.20130412
+ __kmpc_global_num_threads@VERSION 0.20130412
+ __kmpc_global_thread_num@VERSION 0.20130412
+ __kmpc_in_parallel@VERSION 0.20130412
+ __kmpc_init_lock@VERSION 0.20130412
+ __kmpc_init_lock_with_hint@VERSION 3.8.0
+ __kmpc_init_nest_lock@VERSION 0.20130412
+ __kmpc_init_nest_lock_with_hint@VERSION 3.8.0
+ __kmpc_invoke_task_func@VERSION 0.20130412
+ __kmpc_master@VERSION 0.20130412
+ __kmpc_ok_to_fork@VERSION 0.20130412
+ __kmpc_omp_reg_task_with_affinity@VERSION 8
+ __kmpc_omp_task@VERSION 0.20130412
+ __kmpc_omp_task_alloc@VERSION 0.20130412
+ __kmpc_omp_task_begin_if0@VERSION 0.20130412
+ __kmpc_omp_task_complete_if0@VERSION 0.20130412
+ __kmpc_omp_task_parts@VERSION 0.20130412
+ __kmpc_omp_task_with_deps@VERSION 0.20130912
+ __kmpc_omp_taskwait@VERSION 0.20130412
+ __kmpc_omp_taskyield@VERSION 0.20130412
+ __kmpc_omp_wait_deps@VERSION 0.20130912
+ __kmpc_ordered@VERSION 0.20130412
+ __kmpc_pop_num_threads@VERSION 0.20130412
+ __kmpc_proxy_task_completed@VERSION 0.20150401
+ __kmpc_proxy_task_completed_ooo@VERSION 0.20150401
+ __kmpc_push_num_teams@VERSION 0.20130715
+ __kmpc_push_num_threads@VERSION 0.20130412
+ __kmpc_push_proc_bind@VERSION 0.20130412
+ __kmpc_reduce@VERSION 0.20130412
+ __kmpc_reduce_nowait@VERSION 0.20130412
+ __kmpc_serialized_parallel@VERSION 0.20130412
+ __kmpc_set_default_allocator@VERSION 8
+ __kmpc_set_lock@VERSION 0.20130412
+ __kmpc_set_nest_lock@VERSION 0.20130412
+ __kmpc_single@VERSION 0.20130412
+ __kmpc_task@VERSION 0.20130412
+ __kmpc_task_buffer@VERSION 0.20130412
+ __kmpc_task_reduction_get_th_data@VERSION 5.0
+ __kmpc_task_reduction_init@VERSION 5.0
+ __kmpc_taskgroup@VERSION 0.20130412
+ __kmpc_taskloop@VERSION 3.9.0
+ __kmpc_taskq@VERSION 0.20130412
+ __kmpc_taskq_task@VERSION 0.20130412
+ __kmpc_team_static_init_4@VERSION 0.20140926
+ __kmpc_team_static_init_4u@VERSION 0.20140926
+ __kmpc_team_static_init_8@VERSION 0.20140926
+ __kmpc_team_static_init_8u@VERSION 0.20140926
+ __kmpc_test_lock@VERSION 0.20130412
+ __kmpc_test_nest_lock@VERSION 0.20130412
+ __kmpc_threadprivate@VERSION 0.20130412
+ __kmpc_threadprivate_cached@VERSION 0.20130412
+ __kmpc_threadprivate_register@VERSION 0.20130412
+ __kmpc_threadprivate_register_vec@VERSION 0.20130412
+ __kmpc_unset_lock@VERSION 0.20130412
+ __kmpc_unset_nest_lock@VERSION 0.20130412
+ kmp_a_debug@VERSION 7
+ kmp_aligned_malloc@VERSION 3.9.0
+ kmp_aligned_malloc_@VERSION 3.9.0
+ kmp_b_debug@VERSION 7
+ kmp_c_debug@VERSION 7
+ kmp_calloc@VERSION 0.20130412
+ kmp_calloc_@VERSION 0.20130412
+ kmp_create_affinity_mask@VERSION 0.20130412
+ kmp_create_affinity_mask_@VERSION 0.20130412
+ kmp_d_debug@VERSION 7
+ kmp_destroy_affinity_mask@VERSION 0.20130412
+ kmp_destroy_affinity_mask_@VERSION 0.20130412
+ kmp_diag@VERSION 7
+ kmp_e_debug@VERSION 7
+ kmp_f_debug@VERSION 7
+ kmp_free@VERSION 0.20130412
+ kmp_free_@VERSION 0.20130412
+ kmp_get_affinity@VERSION 0.20130412
+ kmp_get_affinity_@VERSION 0.20130412
+ kmp_get_affinity_mask_proc@VERSION 0.20130412
+ kmp_get_affinity_mask_proc_@VERSION 0.20130412
+ kmp_get_affinity_max_proc@VERSION 0.20130412
+ kmp_get_affinity_max_proc_@VERSION 0.20130412
+ kmp_get_blocktime@VERSION 0.20130412
+ kmp_get_blocktime_@VERSION 0.20130412
+ kmp_get_cancellation_status@VERSION 0.20131209
+ kmp_get_cancellation_status_@VERSION 0.20131209
+ kmp_get_library@VERSION 0.20130412
+ kmp_get_library_@VERSION 0.20130412
+ kmp_get_num_known_threads@VERSION 0.20130412
+ kmp_get_num_known_threads_@VERSION 0.20130412
+ kmp_get_stacksize@VERSION 0.20130412
+ kmp_get_stacksize_@VERSION 0.20130412
+ kmp_get_stacksize_s@VERSION 0.20130412
+ kmp_get_stacksize_s_@VERSION 0.20130412
+ kmp_malloc@VERSION 0.20130412
+ kmp_malloc_@VERSION 0.20130412
+ (arch=!armhf !mips64el)kmp_mutex_impl_info@VERSION 7
+ kmp_realloc@VERSION 0.20130412
+ kmp_realloc_@VERSION 0.20130412
+ kmp_set_affinity@VERSION 0.20130412
+ kmp_set_affinity_@VERSION 0.20130412
+ kmp_set_affinity_mask_proc@VERSION 0.20130412
+ kmp_set_affinity_mask_proc_@VERSION 0.20130412
+ kmp_set_blocktime@VERSION 0.20130412
+ kmp_set_blocktime_@VERSION 0.20130412
+ kmp_set_defaults@VERSION 0.20130412
+ kmp_set_defaults_@VERSION 0.20130412
+ kmp_set_disp_num_buffers@VERSION 3.9.0
+ kmp_set_disp_num_buffers_@VERSION 3.9.0
+ kmp_set_library@VERSION 0.20130412
+ kmp_set_library_@VERSION 0.20130412
+ kmp_set_library_serial@VERSION 0.20130412
+ kmp_set_library_serial_@VERSION 0.20130412
+ kmp_set_library_throughput@VERSION 0.20130412
+ kmp_set_library_throughput_@VERSION 0.20130412
+ kmp_set_library_turnaround@VERSION 0.20130412
+ kmp_set_library_turnaround_@VERSION 0.20130412
+ kmp_set_stacksize@VERSION 0.20130412
+ kmp_set_stacksize_@VERSION 0.20130412
+ kmp_set_stacksize_s@VERSION 0.20130412
+ kmp_set_stacksize_s_@VERSION 0.20130412
+ (arch=!ppc64 !ppc64el)kmp_set_thread_affinity_mask_initial@VERSION 3.8.0
+ kmp_set_warnings_off@VERSION 0.20130412
+ kmp_set_warnings_off_@VERSION 0.20130412
+ kmp_set_warnings_on@VERSION 0.20130412
+ kmp_set_warnings_on_@VERSION 0.20130412
+ kmp_threadprivate_insert@VERSION 0.20130412
+ kmp_threadprivate_insert_private_data@VERSION 0.20130412
+ kmp_unset_affinity_mask_proc@VERSION 0.20130412
+ kmp_unset_affinity_mask_proc_@VERSION 0.20130412
+ kmpc_aligned_malloc@VERSION 3.9.0
+ kmpc_calloc@VERSION 0.20130412
+ kmpc_free@VERSION 0.20130412
+ kmpc_get_affinity_mask_proc@VERSION 0.20130412
+ kmpc_malloc@VERSION 0.20130412
+ kmpc_realloc@VERSION 0.20130412
+ kmpc_set_affinity_mask_proc@VERSION 0.20130412
+ kmpc_set_blocktime@VERSION 0.20130412
+ kmpc_set_defaults@VERSION 0.20130412
+ kmpc_set_disp_num_buffers@VERSION 3.9.0
+ kmpc_set_library@VERSION 0.20130412
+ kmpc_set_stacksize@VERSION 0.20130412
+ kmpc_set_stacksize_s@VERSION 0.20130412
+ kmpc_unset_affinity_mask_proc@VERSION 0.20130412
+ omp_alloc@VERSION 8
+ omp_alloc_@VERSION 8
+ omp_capture_affinity@VERSION 8
+ omp_capture_affinity_@VERSION 8
+ omp_cgroup_mem_alloc@VERSION 8
+ omp_const_mem_alloc@VERSION 8
+ omp_control_tool@VERSION 6.0
+ omp_control_tool_@VERSION 8
+ omp_default_mem_alloc@VERSION 8
+ omp_destroy_lock@OMP_1.0 0.20131209
+ omp_destroy_lock@OMP_3.0 0.20131209
+ omp_destroy_lock@VERSION 0.20130412
+ omp_destroy_lock_@OMP_1.0 0.20131209
+ omp_destroy_lock_@OMP_3.0 0.20131209
+ omp_destroy_lock_@VERSION 0.20130412
+ omp_destroy_nest_lock@OMP_1.0 0.20131209
+ omp_destroy_nest_lock@OMP_3.0 0.20131209
+ omp_destroy_nest_lock@VERSION 0.20130412
+ omp_destroy_nest_lock_@OMP_1.0 0.20131209
+ omp_destroy_nest_lock_@OMP_3.0 0.20131209
+ omp_destroy_nest_lock_@VERSION 0.20130412
+ omp_display_affinity@VERSION 8
+ omp_display_affinity_@VERSION 8
+ omp_free@VERSION 8
+ omp_free_@VERSION 8
+ omp_get_active_level@OMP_3.0 0.20131209
+ omp_get_active_level@VERSION 0.20130412
+ omp_get_active_level_@OMP_3.0 0.20131209
+ omp_get_active_level_@VERSION 0.20130412
+ omp_get_affinity_format@VERSION 8
+ omp_get_affinity_format_@VERSION 8
+ omp_get_ancestor_thread_num@OMP_3.0 0.20131209
+ omp_get_ancestor_thread_num@VERSION 0.20130412
+ omp_get_ancestor_thread_num_@OMP_3.0 0.20131209
+ omp_get_ancestor_thread_num_@VERSION 0.20130412
+ omp_get_cancellation@OMP_4.0 0.20131209
+ omp_get_cancellation@VERSION 0.20131209
+ omp_get_cancellation_@OMP_4.0 0.20131209
+ omp_get_cancellation_@VERSION 0.20131209
+ omp_get_default_allocator@VERSION 8
+ omp_get_default_allocator_@VERSION 8
+ omp_get_default_device@OMP_4.0 4.0
+ omp_get_default_device@VERSION 4.0
+ omp_get_default_device_@OMP_4.0 4.0
+ omp_get_default_device_@VERSION 4.0
+ omp_get_device_num@VERSION 8
+ omp_get_device_num_@VERSION 8
+ omp_get_dynamic@OMP_1.0 0.20131209
+ omp_get_dynamic@VERSION 0.20130412
+ omp_get_dynamic_@OMP_1.0 0.20131209
+ omp_get_dynamic_@VERSION 0.20130412
+ omp_get_initial_device@VERSION 8
+ omp_get_initial_device_@VERSION 8
+ omp_get_level@OMP_3.0 0.20131209
+ omp_get_level@VERSION 0.20130412
+ omp_get_level_@OMP_3.0 0.20131209
+ omp_get_level_@VERSION 0.20130412
+ omp_get_max_active_levels@OMP_3.0 0.20131209
+ omp_get_max_active_levels@VERSION 0.20130412
+ omp_get_max_active_levels_@OMP_3.0 0.20131209
+ omp_get_max_active_levels_@VERSION 0.20130412
+ omp_get_max_task_priority@OMP_4.5 7
+ omp_get_max_task_priority@VERSION 3.9.0
+ omp_get_max_task_priority_@OMP_4.5 7
+ omp_get_max_task_priority_@VERSION 3.9.0
+ omp_get_max_threads@OMP_1.0 0.20131209
+ omp_get_max_threads@VERSION 0.20130412
+ omp_get_max_threads_@OMP_1.0 0.20131209
+ omp_get_max_threads_@VERSION 0.20130412
+ omp_get_nested@OMP_1.0 0.20131209
+ omp_get_nested@VERSION 0.20130412
+ omp_get_nested_@OMP_1.0 0.20131209
+ omp_get_nested_@VERSION 0.20130412
+ omp_get_num_devices@OMP_4.0 8
+ omp_get_num_devices@VERSION 8
+ omp_get_num_devices_@OMP_4.0 8
+ omp_get_num_devices_@VERSION 8
+ omp_get_num_places@OMP_4.5 7
+ omp_get_num_places@VERSION 3.9.0
+ omp_get_num_places_@OMP_4.5 7
+ omp_get_num_places_@VERSION 3.9.0
+ omp_get_num_procs@OMP_1.0 0.20131209
+ omp_get_num_procs@VERSION 0.20130412
+ omp_get_num_procs_@OMP_1.0 0.20131209
+ omp_get_num_procs_@VERSION 0.20130412
+ omp_get_num_teams@OMP_4.0 0.20131209
+ omp_get_num_teams@VERSION 0.20130715
+ omp_get_num_teams_@OMP_4.0 0.20131209
+ omp_get_num_teams_@VERSION 0.20130715
+ omp_get_num_threads@OMP_1.0 0.20131209
+ omp_get_num_threads@VERSION 0.20130412
+ omp_get_num_threads_@OMP_1.0 0.20131209
+ omp_get_num_threads_@VERSION 0.20130412
+ omp_get_partition_num_places@OMP_4.5 7
+ omp_get_partition_num_places@VERSION 3.9.0
+ omp_get_partition_num_places_@OMP_4.5 7
+ omp_get_partition_num_places_@VERSION 3.9.0
+ omp_get_partition_place_nums@OMP_4.5 7
+ omp_get_partition_place_nums@VERSION 3.9.0
+ omp_get_partition_place_nums_@OMP_4.5 7
+ omp_get_partition_place_nums_@VERSION 3.9.0
+ omp_get_place_num@OMP_4.5 7
+ omp_get_place_num@VERSION 3.9.0
+ omp_get_place_num_@OMP_4.5 7
+ omp_get_place_num_@VERSION 3.9.0
+ omp_get_place_num_procs@OMP_4.5 7
+ omp_get_place_num_procs@VERSION 3.9.0
+ omp_get_place_num_procs_@OMP_4.5 7
+ omp_get_place_num_procs_@VERSION 3.9.0
+ omp_get_place_proc_ids@OMP_4.5 7
+ omp_get_place_proc_ids@VERSION 3.9.0
+ omp_get_place_proc_ids_@OMP_4.5 7
+ omp_get_place_proc_ids_@VERSION 3.9.0
+ omp_get_proc_bind@OMP_4.0 0.20131209
+ omp_get_proc_bind@VERSION 0.20130412
+ omp_get_proc_bind_@OMP_4.0 0.20131209
+ omp_get_proc_bind_@VERSION 0.20130412
+ omp_get_schedule@OMP_3.0 0.20131209
+ omp_get_schedule@VERSION 0.20130412
+ omp_get_schedule_@OMP_3.0 0.20131209
+ omp_get_schedule_@VERSION 0.20130412
+ omp_get_team_num@OMP_4.0 0.20131209
+ omp_get_team_num@VERSION 0.20130715
+ omp_get_team_num_@OMP_4.0 0.20131209
+ omp_get_team_num_@VERSION 0.20130715
+ omp_get_team_size@OMP_3.0 0.20131209
+ omp_get_team_size@VERSION 0.20130412
+ omp_get_team_size_@OMP_3.0 0.20131209
+ omp_get_team_size_@VERSION 0.20130412
+ omp_get_thread_limit@OMP_3.0 0.20131209
+ omp_get_thread_limit@VERSION 0.20130412
+ omp_get_thread_limit_@OMP_3.0 0.20131209
+ omp_get_thread_limit_@VERSION 0.20130412
+ omp_get_thread_num@OMP_1.0 0.20131209
+ omp_get_thread_num@VERSION 0.20130412
+ omp_get_thread_num_@OMP_1.0 0.20131209
+ omp_get_thread_num_@VERSION 0.20130412
+ omp_get_wtick@OMP_2.0 0.20131209
+ omp_get_wtick@VERSION 0.20130412
+ omp_get_wtick_@OMP_2.0 0.20131209
+ omp_get_wtick_@VERSION 0.20130412
+ omp_get_wtime@OMP_2.0 0.20131209
+ omp_get_wtime@VERSION 0.20130412
+ omp_get_wtime_@OMP_2.0 0.20131209
+ omp_get_wtime_@VERSION 0.20130412
+ omp_high_bw_mem_alloc@VERSION 8
+ omp_in_final@OMP_3.1 0.20131209
+ omp_in_final@VERSION 0.20130412
+ omp_in_final_@OMP_3.1 0.20131209
+ omp_in_final_@VERSION 0.20130412
+ omp_in_parallel@OMP_1.0 0.20131209
+ omp_in_parallel@VERSION 0.20130412
+ omp_in_parallel_@OMP_1.0 0.20131209
+ omp_in_parallel_@VERSION 0.20130412
+ omp_init_lock@OMP_1.0 0.20131209
+ omp_init_lock@OMP_3.0 0.20131209
+ omp_init_lock@VERSION 0.20130412
+ omp_init_lock_@OMP_1.0 0.20131209
+ omp_init_lock_@OMP_3.0 0.20131209
+ omp_init_lock_@VERSION 0.20130412
+ omp_init_lock_with_hint@VERSION 3.8.0
+ omp_init_lock_with_hint_@VERSION 3.8.0
+ omp_init_nest_lock@OMP_1.0 0.20131209
+ omp_init_nest_lock@OMP_3.0 0.20131209
+ omp_init_nest_lock@VERSION 0.20130412
+ omp_init_nest_lock_@OMP_1.0 0.20131209
+ omp_init_nest_lock_@OMP_3.0 0.20131209
+ omp_init_nest_lock_@VERSION 0.20130412
+ omp_init_nest_lock_with_hint@VERSION 3.8.0
+ omp_init_nest_lock_with_hint_@VERSION 3.8.0
+ omp_is_initial_device@OMP_4.0 0.20141212
+ omp_is_initial_device@VERSION 0.20141212
+ omp_is_initial_device_@OMP_4.0 0.20141212
+ omp_is_initial_device_@VERSION 0.20141212
+ omp_large_cap_mem_alloc@VERSION 8
+ omp_low_lat_mem_alloc@VERSION 8
+ omp_pteam_mem_alloc@VERSION 8
+ omp_set_affinity_format@VERSION 8
+ omp_set_affinity_format_@VERSION 8
+ omp_set_default_allocator@VERSION 8
+ omp_set_default_allocator_@VERSION 8
+ omp_set_default_device@OMP_4.0 4.0
+ omp_set_default_device@VERSION 4.0
+ omp_set_default_device_@OMP_4.0 4.0
+ omp_set_default_device_@VERSION 4.0
+ omp_set_dynamic@OMP_1.0 0.20131209
+ omp_set_dynamic@VERSION 0.20130412
+ omp_set_dynamic_@OMP_1.0 0.20131209
+ omp_set_dynamic_@VERSION 0.20130412
+ omp_set_lock@OMP_1.0 0.20131209
+ omp_set_lock@OMP_3.0 0.20131209
+ omp_set_lock@VERSION 0.20130412
+ omp_set_lock_@OMP_1.0 0.20131209
+ omp_set_lock_@OMP_3.0 0.20131209
+ omp_set_lock_@VERSION 0.20130412
+ omp_set_max_active_levels@OMP_3.0 0.20131209
+ omp_set_max_active_levels@VERSION 0.20130412
+ omp_set_max_active_levels_@OMP_3.0 0.20131209
+ omp_set_max_active_levels_@VERSION 0.20130412
+ omp_set_nest_lock@OMP_1.0 0.20131209
+ omp_set_nest_lock@OMP_3.0 0.20131209
+ omp_set_nest_lock@VERSION 0.20130412
+ omp_set_nest_lock_@OMP_1.0 0.20131209
+ omp_set_nest_lock_@OMP_3.0 0.20131209
+ omp_set_nest_lock_@VERSION 0.20130412
+ omp_set_nested@OMP_1.0 0.20131209
+ omp_set_nested@VERSION 0.20130412
+ omp_set_nested_@OMP_1.0 0.20131209
+ omp_set_nested_@VERSION 0.20130412
+ omp_set_num_threads@OMP_1.0 0.20131209
+ omp_set_num_threads@VERSION 0.20130412
+ omp_set_num_threads_@OMP_1.0 0.20131209
+ omp_set_num_threads_@VERSION 0.20130412
+ omp_set_schedule@OMP_3.0 0.20131209
+ omp_set_schedule@VERSION 0.20130412
+ omp_set_schedule_@OMP_3.0 0.20131209
+ omp_set_schedule_@VERSION 0.20130412
+#MISSING: 8# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf)omp_state_info@VERSION 6.0
+ omp_test_lock@OMP_1.0 0.20131209
+ omp_test_lock@OMP_3.0 0.20131209
+ omp_test_lock@VERSION 0.20130412
+ omp_test_lock_@OMP_1.0 0.20131209
+ omp_test_lock_@OMP_3.0 0.20131209
+ omp_test_lock_@VERSION 0.20130412
+ omp_test_nest_lock@OMP_1.0 0.20131209
+ omp_test_nest_lock@OMP_3.0 0.20131209
+ omp_test_nest_lock@VERSION 0.20130412
+ omp_test_nest_lock_@OMP_1.0 0.20131209
+ omp_test_nest_lock_@OMP_3.0 0.20131209
+ omp_test_nest_lock_@VERSION 0.20130412
+ omp_thread_mem_alloc@VERSION 8
+ omp_unset_lock@OMP_1.0 0.20131209
+ omp_unset_lock@OMP_3.0 0.20131209
+ omp_unset_lock@VERSION 0.20130412
+ omp_unset_lock_@OMP_1.0 0.20131209
+ omp_unset_lock_@OMP_3.0 0.20131209
+ omp_unset_lock_@VERSION 0.20130412
+ omp_unset_nest_lock@OMP_1.0 0.20131209
+ omp_unset_nest_lock@OMP_3.0 0.20131209
+ omp_unset_nest_lock@VERSION 0.20130412
+ omp_unset_nest_lock_@OMP_1.0 0.20131209
+ omp_unset_nest_lock_@OMP_3.0 0.20131209
+ omp_unset_nest_lock_@VERSION 0.20130412
+ ompc_capture_affinity@VERSION 8
+ ompc_display_affinity@VERSION 8
+ ompc_get_affinity_format@VERSION 8
+ ompc_get_ancestor_thread_num@VERSION 0.20130412
+ ompc_get_team_size@VERSION 0.20130412
+ ompc_set_affinity_format@VERSION 8
+ ompc_set_dynamic@VERSION 0.20130412
+ ompc_set_max_active_levels@VERSION 0.20130412
+ ompc_set_nested@VERSION 0.20130412
+ ompc_set_num_threads@VERSION 0.20130412
+ ompc_set_schedule@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)ompt_start_tool@VERSION 6.0
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/ld.lld*
+usr/lib/llvm-@LLVM_VERSION@/bin/ld64.lld
+usr/lib/llvm-@LLVM_VERSION@/bin/lld-*
+usr/lib/llvm-@LLVM_VERSION@/bin/lld
+usr/lib/llvm-@LLVM_VERSION@/bin/wasm-ld
+
+usr/bin/lld-link-@LLVM_VERSION@
+usr/bin/ld.lld-@LLVM_VERSION@
+usr/bin/ld64.lld-@LLVM_VERSION@
+usr/bin/lld-@LLVM_VERSION@*
+usr/bin/wasm-ld-@LLVM_VERSION@
--- /dev/null
+lld/docs/ld.lld-@LLVM_VERSION@.1
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/lldb*
+usr/lib/llvm-@LLVM_VERSION@/bin/lldb-mi*
+usr/lib/llvm-@LLVM_VERSION@/bin/lldb-server*
+usr/lib/llvm-@LLVM_VERSION@/bin/lldb-argdumper
+
+usr/bin/lldb-@LLVM_VERSION@*
+usr/bin/lldb-server-@LLVM_VERSION@*
+usr/bin/lldb-mi-@LLVM_VERSION@*
+usr/bin/lldb-argdumper-@LLVM_VERSION@
+usr/bin/lldb-test-@LLVM_VERSION@
+usr/bin/lldb-vscode-@LLVM_VERSION@
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/lldb-server usr/lib/llvm-@LLVM_VERSION@/bin/lldb-server-@LLVM_VERSION_FULL@
+usr/lib/llvm-@LLVM_VERSION@/bin/lldb-server usr/lib/llvm-@LLVM_VERSION@/bin/lldb-server-@LLVM_VERSION@
--- /dev/null
+lldb-@LLVM_VERSION@: non-dev-pkg-with-shlib-symlink usr/lib/*/liblldb.so.1 usr/lib/*/liblldb.so
+# Does not really matter
+lldb-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/lldb-@LLVM_VERSION@.1.gz
--- /dev/null
+debian/man/lldb-@LLVM_VERSION@.1
+debian/man/lldb-mi-@LLVM_VERSION@.1
--- /dev/null
+#!/bin/sh -e
+
+if [ "$1" = "configure" ]
+then
+ ldconfig
+fi
+
+#DEBHELPER#
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/lib
+/usr/lib/llvm-@LLVM_VERSION@/build
+/usr/lib/llvm-@LLVM_VERSION@/include
+usr/share/doc/llvm-@LLVM_VERSION@-dev
+usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@
--- /dev/null
+#!/usr/bin/dh-exec
+
+usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM*.a
+#usr/lib/llvm-@LLVM_VERSION@/lib/libllvm*.a
+[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/LLVM*.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.*
+usr/lib/llvm-@LLVM_VERSION@/lib/libOptRemarks.*
+usr/lib/llvm-@LLVM_VERSION@/include/llvm/ usr/include/llvm-@LLVM_VERSION@/
+usr/lib/llvm-@LLVM_VERSION@/include/llvm-c/ usr/include/llvm-c-@LLVM_VERSION@/
+# Explicit debian/tmp since there are multiple declarations
+debian/tmp/usr/lib/llvm-@LLVM_VERSION@/lib/cmake/llvm/*.cmake
+
+utils/vim/indent/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/indent/
+
+utils/vim/syntax/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/syntax/
+utils/vim/syntax/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/syntax/
+
+utils/vim/ftdetect/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/ftdetect/
+utils/vim/ftdetect/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/ftdetect/
+
+utils/vim/ftplugin/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/ftplugin/
+utils/vim/ftplugin/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/ftplugin/
+
+utils/vim/llvm-@LLVM_VERSION@-vimrc usr/share/vim/addons
+
+
+utils/emacs/emacs.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/
+utils/emacs/llvm-mode.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/
+utils/emacs/tablegen-mode.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/
+
--- /dev/null
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@.so.1
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so.1
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION_FULL@.so
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1
+
+usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/include/llvm-c
+usr/include/llvm-@LLVM_VERSION@/llvm usr/lib/llvm-@LLVM_VERSION@/include/llvm
+usr/include/llvm-c-@LLVM_VERSION@/llvm-c usr/lib/llvm-@LLVM_VERSION@/build/include/llvm-c
+usr/include/llvm-@LLVM_VERSION@/llvm usr/lib/llvm-@LLVM_VERSION@/build/include/llvm
+
+usr/lib/llvm-@LLVM_VERSION@/include/ usr/lib/llvm-@LLVM_VERSION@/build/include
+usr/lib/llvm-@LLVM_VERSION@/lib/ usr/lib/llvm-@LLVM_VERSION@/build/lib
+usr/lib/llvm-@LLVM_VERSION@/share/ usr/lib/llvm-@LLVM_VERSION@/build/share
+usr/lib/llvm-@LLVM_VERSION@/ usr/lib/llvm-@LLVM_VERSION@/build/Release
+usr/lib/llvm-@LLVM_VERSION@/ usr/lib/llvm-@LLVM_VERSION@/build/Debug+Asserts
+
+usr/lib/llvm-@LLVM_VERSION@/lib/cmake/llvm usr/lib/llvm-@LLVM_VERSION@/cmake
+usr/lib/llvm-@LLVM_VERSION@/lib/cmake/llvm usr/lib/llvm-@LLVM_VERSION@/share/llvm/cmake
--- /dev/null
+usr/share/doc/llvm-@LLVM_VERSION@-doc
--- /dev/null
+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
--- /dev/null
+usr/share/doc/llvm-@LLVM_VERSION@-examples
--- /dev/null
+examples/*
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/build/Makefile.common usr/share/doc/llvm-@LLVM_VERSION@-examples/Makefile.common
+/usr/lib/llvm-@LLVM_VERSION@/build/Makefile.config usr/share/doc/llvm-@LLVM_VERSION@-examples/Makefile.config
+/usr/lib/llvm-@LLVM_VERSION@/build/Makefile.rules usr/share/doc/llvm-@LLVM_VERSION@-examples/Makefile.rules
--- /dev/null
+package llvm-@LLVM_VERSION@-runtime
+interpreter /usr/bin/lli-@LLVM_VERSION@
+magic BC
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/lli
+usr/lib/llvm-@LLVM_VERSION@/bin/lli-child-target
+
+usr/bin/lli-@LLVM_VERSION@
+usr/bin/lli-child-target-@LLVM_VERSION@
+
+debian/llvm-@LLVM_VERSION@-runtime.binfmt usr/share/binfmts/
+
--- /dev/null
+llvm-@LLVM_VERSION@-runtime: binary-without-manpage usr/bin/lli-child-target-@LLVM_VERSION@
--- /dev/null
+debian/man/lli*
--- /dev/null
+#!/bin/sh
+
+set -e
+
+if test "$1" = "configure"; then
+ if test -x /usr/sbin/update-binfmts; then
+ update-binfmts --import llvm-@LLVM_VERSION@-runtime.binfmt || true
+ fi
+fi
+
+#DEBHELPER#
--- /dev/null
+#!/bin/sh
+
+set -e
+
+if test "$1" = "remove"; then
+ if test -x /usr/sbin/update-binfmts; then
+ update-binfmts --package llvm-@LLVM_VERSION@-runtime \
+ --remove llvm-@LLVM_VERSION@-runtime.binfmt /usr/bin/lli-@LLVM_VERSION@ || true
+ if test -f /var/lib/binfmts/llvm-@LLVM_VERSION@.binfmt; then
+ # Purge old file
+ update-binfmts --package llvm-@LLVM_VERSION@-runtime \
+ --remove llvm-@LLVM_VERSION@.binfmt /usr/bin/lli-@LLVM_VERSION@ || true
+ fi
+ fi
+fi
+
+#DEBHELPER#
+
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/build/unittests
+/usr/lib/llvm-@LLVM_VERSION@/build/utils/lit/
--- /dev/null
+
+usr/lib/llvm-@LLVM_VERSION@/bin/count
+usr/lib/llvm-@LLVM_VERSION@/bin/FileCheck
+usr/lib/llvm-@LLVM_VERSION@/bin/not
+usr/lib/llvm-@LLVM_VERSION@/share/opt-viewer/opt-viewer.py
+usr/lib/llvm-@LLVM_VERSION@/share/opt-viewer/optrecord.py
+usr/lib/llvm-@LLVM_VERSION@/share/opt-viewer/style.css
+usr/lib/llvm-@LLVM_VERSION@/share/opt-viewer/opt-diff.py
+usr/lib/llvm-@LLVM_VERSION@/share/opt-viewer/optpmap.py
+usr/lib/llvm-@LLVM_VERSION@/share/opt-viewer/opt-stats.py
+
+utils/lit/* /usr/lib/llvm-@LLVM_VERSION@/build/utils/lit/
+
+usr/bin/count-@LLVM_VERSION@
+usr/bin/FileCheck-@LLVM_VERSION@
+usr/bin/not-@LLVM_VERSION@
+
--- /dev/null
+/usr/lib/llvm-@LLVM_VERSION@/bin
+usr/share/man/man1
+usr/share/doc/llvm-@LLVM_VERSION@
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-*
+usr/lib/llvm-@LLVM_VERSION@/bin/opt*
+usr/lib/llvm-@LLVM_VERSION@/bin/bugpoint*
+usr/lib/llvm-@LLVM_VERSION@/bin/llc*
+usr/lib/llvm-@LLVM_VERSION@/bin/obj2yaml
+usr/lib/llvm-@LLVM_VERSION@/bin/yaml2obj
+usr/lib/llvm-@LLVM_VERSION@/bin/verify-uselistorder
+usr/lib/llvm-@LLVM_VERSION@/bin/sanstats
+usr/lib/llvm-@LLVM_VERSION@/bin/dsymutil
+usr/bin/llvm-*
+usr/bin/opt*
+usr/bin/bugpoint*
+usr/bin/llc*
+usr/bin/obj2yaml-*
+usr/bin/yaml2obj-*
+usr/bin/verify-uselistorder-*
+usr/bin/sanstats-*
+usr/bin/dsymutil-*
--- /dev/null
+# I know but well...
+llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-dwarfdump-@LLVM_VERSION@.1.gz
+llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-mc-@LLVM_VERSION@.1.gz
+llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-mcmarkup-@LLVM_VERSION@.1.gz
+llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-objdump-@LLVM_VERSION@.1.gz
+llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-rtdyld-@LLVM_VERSION@.1.gz
+llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-size-@LLVM_VERSION@.1.gz
+llvm-@LLVM_VERSION@: manpage-has-useless-whatis-entry usr/share/man/man1/llvm-ranlib-@LLVM_VERSION@.1.gz
+# Does not link otherwise
+llvm-@LLVM_VERSION@: embedded-library usr/lib/llvm-@LLVM_VERSION@/bin/bugpoint: libjsoncpp
+llvm-@LLVM_VERSION@: embedded-library usr/lib/llvm-@LLVM_VERSION@/bin/opt: libjsoncpp
+
--- /dev/null
+docs/_build/man/*
+debian/man/llvm-dwarfdump-@LLVM_VERSION@.1
+debian/man/llvm-mc-@LLVM_VERSION@.1
+debian/man/llvm-mcmarkup-@LLVM_VERSION@.1
+debian/man/llvm-objdump-@LLVM_VERSION@.1
+debian/man/llvm-rtdyld-@LLVM_VERSION@.1
+debian/man/llvm-size-@LLVM_VERSION@.1
+debian/man/llvm-ranlib-@LLVM_VERSION@.1
--- /dev/null
+/usr/lib/llvm-3.1/build
--- /dev/null
+#!/bin/sh
+# This script will create the following tarballs:
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-clang.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-clang-extra.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-compiler-rt.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-lld.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-lldb.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-polly.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-openmp.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-libcxx.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig-libcxxabi.tar.bz2
+# llvm-toolchain-snapshot-3.2_3.2repack.orig.tar.bz2
+
+set -e
+
+# TODO rest of the options
+
+# To create an rc1 release:
+# sh 4.0/debian/orig-tar.sh RELEASE_40 rc1
+
+SVN_BASE_URL=https://llvm.org/svn/llvm-project/
+MAJOR_VERSION=8
+CURRENT_VERSION=8.0.1 # Should be changed to 3.5.1 later
+
+if test -n "$1"; then
+# https://llvm.org/svn/llvm-project/{cfe,llvm,compiler-rt,...}/branches/google/stable/
+# For example: sh 4.0/debian/orig-tar.sh release_400
+ BRANCH=$1
+fi
+
+if test -n "$1" -a -n "$2"; then
+# https://llvm.org/svn/llvm-project/{cfe,llvm,compiler-rt,...}/tags/RELEASE_34/rc1/
+# For example: sh 4.0/debian/orig-tar.sh RELEASE_401 rc3 4.0.1
+ BRANCH=$1
+ TAG=$2
+ RCRELEASE="true"
+ if test -z "$3"; then
+ echo "Please provide the exact version. Used for the tarball name Ex: 4.0.1"
+ fi
+ EXACT_VERSION=$3
+fi
+
+get_svn_url() {
+ MODULE=$1
+ BRANCH=$2
+ TAG=$3
+ if test -n "$TAG"; then
+ SVN_URL="$SVN_BASE_URL/$MODULE/tags/$BRANCH/$TAG"
+ else
+ if test -n "$BRANCH"; then
+ SVN_URL="$SVN_BASE_URL/$MODULE/branches/$BRANCH"
+ else
+ SVN_URL="$SVN_BASE_URL/$MODULE/trunk/"
+ fi
+ fi
+ echo $SVN_URL
+}
+
+get_higher_revision() {
+ PROJECTS="llvm cfe compiler-rt polly lld lldb clang-tools-extra"
+ REVISION_MAX=0
+ for f in $PROJECTS; do
+ REVISION=$(LANG=C svn info $(get_svn_url $f $BRANCH $TAG)|grep "^Last Changed Rev:"|awk '{print $4}')
+ if test $REVISION -gt $REVISION_MAX; then
+ REVISION_MAX=$REVISION
+ fi
+ done
+ echo $REVISION_MAX
+}
+
+SVN_ARCHIVES=svn-archives
+
+checkout_sources() {
+ PROJECT=$1
+ URL=$2
+ TARGET=$3
+ BRANCH=$4
+ if test -n "$BRANCH"; then
+ REVISION=$5
+ fi
+ echo "$PROJECT / $URL / $BRANCH / $TARGET / $REVISION"
+
+ cd $SVN_ARCHIVES/
+ DEST=$PROJECT-$BRANCH
+ if test -n "$TAG"; then
+ DEST=$DEST-$TAG
+ fi
+ if test -d $DEST; then
+ cd $DEST
+ if test -n "$BRANCH"; then
+ svn cleanup
+ svn up
+ else
+ svn cleanup
+ svn up -r $REVISION
+ fi
+ cd ..
+ else
+ if test -n "$BRANCH"; then
+ svn co $URL $DEST
+ else
+ svn co -r $REVISION $URL $DEST
+ fi
+ fi
+ rm -rf ../$TARGET
+ rsync -r --exclude=.svn $DEST/ ../$TARGET
+ cd ..
+}
+
+if test -n "$BRANCH"; then
+ REVISION=$(get_higher_revision)
+ # Do not use the revision when exporting branch. We consider that all the
+ # branch are sync
+ SVN_CMD="svn export"
+else
+ REVISION=$(LANG=C svn info $(get_svn_url llvm)|grep "^Revision:"|awk '{print $2}')
+ SVN_CMD="svn export -r $REVISION"
+fi
+
+if test -n "$RCRELEASE"; then
+ if test "$TAG" = "final"; then
+ VERSION=$EXACT_VERSION
+ else
+ VERSION=$EXACT_VERSION"~"$TAG
+ fi
+ FULL_VERSION="llvm-toolchain-"$MAJOR_VERSION"_"$VERSION
+else
+ VERSION=$CURRENT_VERSION"+svn"$REVISION
+ if echo $BRANCH|grep -q release_; then
+ FULL_VERSION="llvm-toolchain-"$MAJOR_VERSION"_"$VERSION
+ else
+ FULL_VERSION="llvm-toolchain-snapshot_"$VERSION
+ fi
+fi
+
+mkdir -p $SVN_ARCHIVES
+
+# LLVM
+LLVM_TARGET=$FULL_VERSION
+checkout_sources llvm $(get_svn_url llvm $BRANCH $TAG) $LLVM_TARGET "$BRANCH" $REVISION
+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 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 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 jcf $FULL_VERSION.orig-compiler-rt.tar.bz2 $COMPILER_RT_TARGET
+rm -rf $COMPILER_RT_TARGET
+
+# Polly
+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 jcf $FULL_VERSION.orig-polly.tar.bz2 $POLLY_TARGET
+rm -rf $POLLY_TARGET
+
+# LLD
+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 jcf $FULL_VERSION.orig-lld.tar.bz2 $LLD_TARGET
+rm -rf $LLD_TARGET
+
+# LLDB
+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 jcf $FULL_VERSION.orig-lldb.tar.bz2 $LLDB_TARGET
+rm -rf $LLDB_TARGET
+
+# OPENMP
+OPENMP_TARGET=openmp_$VERSION
+checkout_sources openmp $(get_svn_url openmp $BRANCH $TAG) $OPENMP_TARGET "$BRANCH" $REVISION
+rm -rf $OPENMP_TARGET/www/
+tar jcf $FULL_VERSION.orig-openmp.tar.bz2 $OPENMP_TARGET
+rm -rf $OPENMP_TARGET
+
+# LIBCXX
+LIBCXX_TARGET=libcxx_$VERSION
+checkout_sources libcxx $(get_svn_url libcxx $BRANCH $TAG) $LIBCXX_TARGET "$BRANCH" $REVISION
+rm -rf $LIBCXX_TARGET/www/
+tar jcf $FULL_VERSION.orig-libcxx.tar.bz2 $LIBCXX_TARGET
+rm -rf $LIBCXX_TARGET
+
+# LIBCXXABI
+LIBCXXABI_TARGET=libcxxabi_$VERSION
+checkout_sources libcxxabi $(get_svn_url libcxxabi $BRANCH $TAG) $LIBCXXABI_TARGET "$BRANCH" $REVISION
+rm -rf $LIBCXXABI_TARGET/www/
+tar jcf $FULL_VERSION.orig-libcxxabi.tar.bz2 $LIBCXXABI_TARGET
+rm -rf $LIBCXXABI_TARGET
+
+
+PATH_DEBIAN="$(pwd)/$(dirname $0)/../"
+echo "going into $PATH_DEBIAN"
+export DEBFULLNAME="Sylvestre Ledru"
+export DEBEMAIL="sylvestre@debian.org"
+cd $PATH_DEBIAN
+
+if test -z "$DISTRIBUTION"; then
+ DISTRIBUTION="experimental"
+fi
+
+if test -n "$RCRELEASE" -o -n "$BRANCH"; then
+ EXTRA_DCH_FLAGS="--force-bad-version --allow-lower-version"
+fi
+
+dch $EXTRA_DCH_FLAGS --distribution $DISTRIBUTION --newversion 1:$VERSION-1~exp1 "New snapshot release"
+
+exit 0
--- /dev/null
+From d0d969074f6e0f975ad53d21e7ce6c7b40cf2957 Mon Sep 17 00:00:00 2001
+From: Peter Wu <peter@lekensteyn.nl>
+Date: Fri, 4 May 2018 15:43:06 +0200
+Subject: [PATCH] [llvm] cmake: resolve symlinks in LLVMConfig.cmake
+
+Ensure that symlinks such as /usr/lib/llvm-X.Y/cmake (pointing to
+lib/cmake/llvm) are resolved. This ensures that LLVM_INSTALL_PREFIX
+becomes /usr/lib/llvm-X.Y instead of /usr.
+
+Partially addresses PR37128
+---
+ cmake/modules/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn342269/cmake/modules/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/cmake/modules/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn342269/cmake/modules/CMakeLists.txt
+@@ -82,10 +82,10 @@ file(COPY .
+ # Generate LLVMConfig.cmake for the install tree.
+ set(LLVM_CONFIG_CODE "
+ # Compute the installation prefix from this LLVMConfig.cmake file location.
+-get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
++get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" REALPATH)")
+ # Construct the proper number of get_filename_component(... PATH)
+ # calls to compute the installation prefix.
+-string(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}")
++string(REGEX REPLACE "/" ";" _count "prefix/${LLVM_INSTALL_PACKAGE_DIR}")
+ foreach(p ${_count})
+ set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
+ get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
--- /dev/null
+From c830d84bc802ca1e9219415a5784c4ad97a34819 Mon Sep 17 00:00:00 2001
+From: Peter Wu <peter@lekensteyn.nl>
+Date: Fri, 4 May 2018 15:55:26 +0200
+Subject: [PATCH] [clang] cmake: resolve symlinks in ClangConfig.cmake
+
+Ensure that symlinks such as /usr/lib/cmake/clang-X.Y (pointing to
+/usr/lib/llvm-X.Y/lib/cmake/llvm) are resolved. This ensures that
+CLANG_INSTALL_PREFIX ends up to be /usr/lib/llvm-X.Y instead of /usr.
+
+Partially addresses PR37128
+---
+ cmake/modules/CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
+index be6d1d7257..bcb61f6cc8 100644
+--- a/clang/cmake/modules/CMakeLists.txt
++++ b/clang/cmake/modules/CMakeLists.txt
+@@ -30,10 +30,10 @@ set(CLANG_CONFIG_EXPORTS_FILE)
+ # Generate ClangConfig.cmake for the install tree.
+ set(CLANG_CONFIG_CODE "
+ # Compute the installation prefix from this LLVMConfig.cmake file location.
+-get_filename_component(CLANG_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
++get_filename_component(CLANG_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" REALPATH)")
+ # Construct the proper number of get_filename_component(... PATH)
+ # calls to compute the installation prefix.
+-string(REGEX REPLACE "/" ";" _count "${CLANG_INSTALL_PACKAGE_DIR}")
++string(REGEX REPLACE "/" ";" _count "prefix/${CLANG_INSTALL_PACKAGE_DIR}")
+ foreach(p ${_count})
+ set(CLANG_CONFIG_CODE "${CLANG_CONFIG_CODE}
+ get_filename_component(CLANG_INSTALL_PREFIX \"\${CLANG_INSTALL_PREFIX}\" PATH)")
+--
+2.17.0
+
--- /dev/null
+---
+ lib/Support/CommandLine.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: llvm-toolchain-snapshot_8~svn342269/lib/Support/CommandLine.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/lib/Support/CommandLine.cpp
++++ llvm-toolchain-snapshot_8~svn342269/lib/Support/CommandLine.cpp
+@@ -2127,6 +2127,10 @@ public:
+ OS << " " << LLVM_VERSION_INFO;
+ #endif
+ OS << "\n ";
++#ifdef LLVM_DEBIAN_INFO
++ OS << LLVM_DEBIAN_INFO;
++#endif
++ OS << "\n ";
+ #ifndef __OPTIMIZE__
+ OS << "DEBUG build";
+ #else
--- /dev/null
+---
+ clang/tools/libclang/CMakeLists.txt | 2 +-
+ tools/llvm-shlib/CMakeLists.txt | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_8~svn349138/clang/tools/libclang/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/tools/libclang/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn349138/clang/tools/libclang/CMakeLists.txt
+@@ -88,7 +88,7 @@ else()
+ set(output_name "clang")
+ endif()
+
+-add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC}
++add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} SONAME
+ OUTPUT_NAME ${output_name}
+ ${SOURCES}
+ DEPENDS clang-headers
+Index: llvm-toolchain-snapshot_8~svn349138/tools/llvm-shlib/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/tools/llvm-shlib/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn349138/tools/llvm-shlib/CMakeLists.txt
+@@ -41,6 +41,8 @@ if(LLVM_BUILD_LLVM_DYLIB)
+
+ add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${SOURCES})
+
++ set_property(TARGET LLVM PROPERTY VERSION "1") # Append .1 to SONAME
++
+ list(REMOVE_DUPLICATES LIB_NAMES)
+ if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU)
+ OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
--- /dev/null
+From: Nicholas D Steeves <nsteeves@gmail.com>
+Date: Sat, 10 Feb 2018 21:00:55 -0500
+Subject: Set html_static_path = ['_static'] everywhere.
+
+---
+ clang-tools-extra/docs/conf.py | 2 +-
+ clang/docs/analyzer/conf.py | 2 +-
+ clang/docs/conf.py | 2 +-
+ polly/docs/conf.py | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+Index: llvm-toolchain-snapshot_9~svn355080/clang/docs/analyzer/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_9~svn355080.orig/clang/docs/analyzer/conf.py
++++ llvm-toolchain-snapshot_9~svn355080/clang/docs/analyzer/conf.py
+@@ -121,7 +121,7 @@ html_theme = 'haiku'
+ # Add any paths that contain custom static files (such as style sheets) here,
+ # relative to this directory. They are copied after the builtin static files,
+ # so a file named "default.css" will overwrite the builtin "default.css".
+-html_static_path = []
++html_static_path = ['_static']
+
+ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+ # using the given strftime format.
+Index: llvm-toolchain-snapshot_9~svn355080/clang/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_9~svn355080.orig/clang/docs/conf.py
++++ llvm-toolchain-snapshot_9~svn355080/clang/docs/conf.py
+@@ -122,7 +122,7 @@ html_theme = 'haiku'
+ # Add any paths that contain custom static files (such as style sheets) here,
+ # relative to this directory. They are copied after the builtin static files,
+ # so a file named "default.css" will overwrite the builtin "default.css".
+-html_static_path = []
++html_static_path = ['_static']
+
+ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+ # using the given strftime format.
+Index: llvm-toolchain-snapshot_9~svn355080/polly/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_9~svn355080.orig/polly/docs/conf.py
++++ llvm-toolchain-snapshot_9~svn355080/polly/docs/conf.py
+@@ -127,7 +127,7 @@ except ImportError:
+ # Add any paths that contain custom static files (such as style sheets) here,
+ # relative to this directory. They are copied after the builtin static files,
+ # so a file named "default.css" will overwrite the builtin "default.css".
+-html_static_path = []
++html_static_path = ['_static']
+
+ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+ # using the given strftime format.
--- /dev/null
+From: Nicholas D Steeves <nsteeves@gmail.com>
+Date: Sat, 10 Feb 2018 21:02:17 -0500
+Subject: Use Debian-provided MathJax everywhere.
+
+---
+ clang-tools-extra/docs/Doxyfile | 2 +-
+ clang-tools-extra/docs/conf.py | 3 +++
+ clang-tools-extra/docs/doxygen.cfg.in | 2 +-
+ clang/docs/analyzer/conf.py | 3 +++
+ clang/docs/conf.py | 3 +++
+ clang/docs/doxygen.cfg.in | 2 +-
+ docs/doxygen.cfg.in | 2 +-
+ polly/docs/doxygen.cfg.in | 2 +-
+ 8 files changed, 14 insertions(+), 5 deletions(-)
+
+Index: llvm-toolchain-8_8~svn353935/clang-tools-extra/docs/conf.py
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/clang-tools-extra/docs/conf.py
++++ llvm-toolchain-8_8~svn353935/clang-tools-extra/docs/conf.py
+@@ -123,6 +123,9 @@ html_theme = 'haiku'
+ # so a file named "default.css" will overwrite the builtin "default.css".
+ html_static_path = ['_static']
+
++# Use Debian-provided MathJax
++mathjax_path = '/usr/share/javascript/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML'
++
+ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+ # using the given strftime format.
+ #html_last_updated_fmt = '%b %d, %Y'
+Index: llvm-toolchain-8_8~svn353935/clang-tools-extra/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/clang-tools-extra/docs/doxygen.cfg.in
++++ llvm-toolchain-8_8~svn353935/clang-tools-extra/docs/doxygen.cfg.in
+@@ -1443,7 +1443,7 @@ MATHJAX_FORMAT = HTML-CSS
+ # The default value is: http://cdn.mathjax.org/mathjax/latest.
+ # This tag requires that the tag USE_MATHJAX is set to YES.
+
+-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
++MATHJAX_RELPATH = /usr/share/javascript/mathjax
+
+ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+ # extension names that should be enabled during MathJax rendering. For example
+Index: llvm-toolchain-8_8~svn353935/clang/docs/analyzer/conf.py
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/clang/docs/analyzer/conf.py
++++ llvm-toolchain-8_8~svn353935/clang/docs/analyzer/conf.py
+@@ -123,6 +123,9 @@ html_theme = 'haiku'
+ # so a file named "default.css" will overwrite the builtin "default.css".
+ html_static_path = ['_static']
+
++# Use Debian-provided MathJax
++mathjax_path = '/usr/share/javascript/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML'
++
+ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+ # using the given strftime format.
+ #html_last_updated_fmt = '%b %d, %Y'
+Index: llvm-toolchain-8_8~svn353935/clang/docs/conf.py
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/clang/docs/conf.py
++++ llvm-toolchain-8_8~svn353935/clang/docs/conf.py
+@@ -124,6 +124,9 @@ html_theme = 'haiku'
+ # so a file named "default.css" will overwrite the builtin "default.css".
+ html_static_path = ['_static']
+
++# Use Debian-provided MathJax
++mathjax_path = '/usr/share/javascript/mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML'
++
+ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+ # using the given strftime format.
+ #html_last_updated_fmt = '%b %d, %Y'
+Index: llvm-toolchain-8_8~svn353935/clang/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/clang/docs/doxygen.cfg.in
++++ llvm-toolchain-8_8~svn353935/clang/docs/doxygen.cfg.in
+@@ -1432,7 +1432,7 @@ MATHJAX_FORMAT = HTML-CSS
+ # The default value is: http://cdn.mathjax.org/mathjax/latest.
+ # This tag requires that the tag USE_MATHJAX is set to YES.
+
+-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
++MATHJAX_RELPATH = /usr/share/javascript/mathjax
+
+ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+ # extension names that should be enabled during MathJax rendering. For example
+Index: llvm-toolchain-8_8~svn353935/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/docs/doxygen.cfg.in
++++ llvm-toolchain-8_8~svn353935/docs/doxygen.cfg.in
+@@ -1433,7 +1433,7 @@ MATHJAX_FORMAT = HTML-CSS
+ # The default value is: http://cdn.mathjax.org/mathjax/latest.
+ # This tag requires that the tag USE_MATHJAX is set to YES.
+
+-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
++MATHJAX_RELPATH = /usr/share/javascript/mathjax
+
+ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+ # extension names that should be enabled during MathJax rendering. For example
+Index: llvm-toolchain-8_8~svn353935/polly/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/polly/docs/doxygen.cfg.in
++++ llvm-toolchain-8_8~svn353935/polly/docs/doxygen.cfg.in
+@@ -1433,7 +1433,7 @@ MATHJAX_FORMAT = HTML-CSS
+ # The default value is: http://cdn.mathjax.org/mathjax/latest.
+ # This tag requires that the tag USE_MATHJAX is set to YES.
+
+-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
++MATHJAX_RELPATH = /usr/share/javascript/mathjax
+
+ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+ # extension names that should be enabled during MathJax rendering. For example
--- /dev/null
+From 61caa3a0c61fd4f2a049e9a14b5f4f74354dbb29 Mon Sep 17 00:00:00 2001
+From: Christian Biesinger <cbiesinger@chromium.org>
+Date: Thu, 18 Jul 2019 14:52:36 -0500
+Subject: [PATCH] Remove explicit python version list
+
+This is required to make -DPYTHON_EXECUTABLE work correctly
+---
+ llvm/CMakeLists.txt | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 81c2bab39ec..e2222d42aae 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -603,10 +603,6 @@ message(STATUS "LLVM default target triple: ${LLVM_DEFAULT_TARGET_TRIPLE}")
+
+ include(HandleLLVMOptions)
+
+-# Verify that we can find a Python 2 interpreter. Python 3 is unsupported.
+-# FIXME: We should support systems with only Python 3, but that requires work
+-# on LLDB.
+-set(Python_ADDITIONAL_VERSIONS 2.7)
+ include(FindPythonInterp)
+ if( NOT PYTHONINTERP_FOUND )
+ message(FATAL_ERROR
+--
+2.22.0.510.g264f2c817a-goog
+
--- /dev/null
+Index: llvm-toolchain-snapshot_3.5~svn210337/clang/lib/Basic/Version.cpp
+===================================================================
+--- llvm-toolchain-snapshot_3.5~svn210337.orig/clang/lib/Basic/Version.cpp
++++ llvm-toolchain-snapshot_3.5~svn210337/clang/lib/Basic/Version.cpp
+@@ -15,6 +15,7 @@
+ #include "clang/Basic/LLVM.h"
+ #include "clang/Config/config.h"
+ #include "llvm/Support/raw_ostream.h"
++#include "clang/Debian/debian_path.h"
+ #include <cstdlib>
+ #include <cstring>
+
+@@ -125,7 +126,7 @@ std::string getClangToolFullVersion(Stri
+ #ifdef CLANG_VENDOR
+ OS << CLANG_VENDOR;
+ #endif
+- OS << ToolName << " version " CLANG_VERSION_STRING " "
++ OS << ToolName << " version " CLANG_VERSION_STRING "-" DEB_PATCHSETVERSION " "
+ << getClangFullRepositoryVersion();
+
+ // If vendor supplied, include the base LLVM version as well.
--- /dev/null
+---
+ clang/include/clang/Basic/Builtins.def | 8 +-
+ clang/lib/AST/Decl.cpp | 12 +--
+ clang/lib/Sema/SemaChecking.cpp | 11 +-
+ clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp | 6 -
+ clang/test/Sema/builtins.c | 11 +-
+ clang/test/Sema/warn-strlcpycat-size.c | 55 --------------
+ 6 files changed, 25 insertions(+), 78 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/include/clang/Basic/Builtins.def
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/include/clang/Basic/Builtins.def
++++ llvm-toolchain-snapshot_8~svn342269/clang/include/clang/Basic/Builtins.def
+@@ -517,8 +517,8 @@ BUILTIN(__builtin___memset_chk, "v*v*izz
+ BUILTIN(__builtin___stpcpy_chk, "c*c*cC*z", "nF")
+ BUILTIN(__builtin___strcat_chk, "c*c*cC*z", "nF")
+ BUILTIN(__builtin___strcpy_chk, "c*c*cC*z", "nF")
+-BUILTIN(__builtin___strlcat_chk, "zc*cC*zz", "nF")
+-BUILTIN(__builtin___strlcpy_chk, "zc*cC*zz", "nF")
++//BUILTIN(__builtin___strlcat_chk, "zc*cC*zz", "nF")
++//BUILTIN(__builtin___strlcpy_chk, "zc*cC*zz", "nF")
+ BUILTIN(__builtin___strncat_chk, "c*c*cC*zz", "nF")
+ BUILTIN(__builtin___strncpy_chk, "c*c*cC*zz", "nF")
+ BUILTIN(__builtin___stpncpy_chk, "c*c*cC*zz", "nF")
+@@ -968,8 +968,8 @@ LIBBUILTIN(getcontext, "iK*", "fj",
+ LIBBUILTIN(_longjmp, "vJi", "fr", "setjmp.h", ALL_GNU_LANGUAGES)
+ LIBBUILTIN(siglongjmp, "vSJi", "fr", "setjmp.h", ALL_GNU_LANGUAGES)
+ // non-standard but very common
+-LIBBUILTIN(strlcpy, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES)
+-LIBBUILTIN(strlcat, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES)
++//LIBBUILTIN(strlcpy, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES)
++//LIBBUILTIN(strlcat, "zc*cC*z", "f", "string.h", ALL_GNU_LANGUAGES)
+ // id objc_msgSend(id, SEL, ...)
+ LIBBUILTIN(objc_msgSend, "GGH.", "f", "objc/message.h", OBJC_LANG)
+ // long double objc_msgSend_fpret(id self, SEL op, ...)
+Index: llvm-toolchain-snapshot_8~svn342269/clang/lib/AST/Decl.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/lib/AST/Decl.cpp
++++ llvm-toolchain-snapshot_8~svn342269/clang/lib/AST/Decl.cpp
+@@ -3639,13 +3639,13 @@ unsigned FunctionDecl::getMemoryFunction
+ case Builtin::BImemmove:
+ return Builtin::BImemmove;
+
+- case Builtin::BIstrlcpy:
+- case Builtin::BI__builtin___strlcpy_chk:
+- return Builtin::BIstrlcpy;
++// case Builtin::BIstrlcpy:
++// case Builtin::BI__builtin___strlcpy_chk:
++// return Builtin::BIstrlcpy;
+
+- case Builtin::BIstrlcat:
+- case Builtin::BI__builtin___strlcat_chk:
+- return Builtin::BIstrlcat;
++// case Builtin::BIstrlcat:
++// case Builtin::BI__builtin___strlcat_chk:
++// return Builtin::BIstrlcat;
+
+ case Builtin::BI__builtin_memcmp:
+ case Builtin::BImemcmp:
+Index: llvm-toolchain-snapshot_8~svn342269/clang/lib/Sema/SemaChecking.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/lib/Sema/SemaChecking.cpp
++++ llvm-toolchain-snapshot_8~svn342269/clang/lib/Sema/SemaChecking.cpp
+@@ -1241,12 +1241,12 @@ Sema::CheckBuiltinFunctionCall(FunctionD
+ case Builtin::BI__builtin___memset_chk:
+ SemaBuiltinMemChkCall(*this, FDecl, TheCall, 2, 3, "memset");
+ break;
+- case Builtin::BI__builtin___strlcat_chk:
++/* case Builtin::BI__builtin___strlcat_chk:
+ SemaBuiltinMemChkCall(*this, FDecl, TheCall, 2, 3, "strlcat");
+ break;
+ case Builtin::BI__builtin___strlcpy_chk:
+ SemaBuiltinMemChkCall(*this, FDecl, TheCall, 2, 3, "strlcpy");
+- break;
++ break;*/
+ case Builtin::BI__builtin___strncat_chk:
+ SemaBuiltinMemChkCall(*this, FDecl, TheCall, 2, 3, "strncat");
+ break;
+@@ -4098,9 +4098,10 @@ bool Sema::CheckFunctionCall(FunctionDec
+ return false;
+
+ // Handle memory setting and copying functions.
+- if (CMId == Builtin::BIstrlcpy || CMId == Builtin::BIstrlcat)
+- CheckStrlcpycatArguments(TheCall, FnInfo);
+- else if (CMId == Builtin::BIstrncat)
++// if (CMId == Builtin::BIstrlcpy || CMId == Builtin::BIstrlcat)
++// CheckStrlcpycatArguments(TheCall, FnInfo);
++// else
++ if (CMId == Builtin::BIstrncat)
+ CheckStrncatArguments(TheCall, FnInfo);
+ else
+ CheckMemaccessArguments(TheCall, CMId, FnInfo);
+Index: llvm-toolchain-snapshot_8~svn342269/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
++++ llvm-toolchain-snapshot_8~svn342269/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
+@@ -240,9 +240,9 @@ GenericTaintChecker::TaintPropagationRul
+ case Builtin::BIstrncpy:
+ case Builtin::BIstrncat:
+ return TaintPropagationRule(1, 2, 0, true);
+- case Builtin::BIstrlcpy:
+- case Builtin::BIstrlcat:
+- return TaintPropagationRule(1, 2, 0, false);
++// case Builtin::BIstrlcpy:
++// case Builtin::BIstrlcat:
++// return TaintPropagationRule(1, 2, 0, false);
+ case Builtin::BIstrndup:
+ return TaintPropagationRule(0, 1, ReturnValueIndex);
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/test/Sema/builtins.c
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/test/Sema/builtins.c
++++ llvm-toolchain-snapshot_8~svn342269/clang/test/Sema/builtins.c
+@@ -190,11 +190,11 @@ void test18() {
+
+ ptr = __builtin___memccpy_chk(dst, src, '\037', sizeof(src), sizeof(dst));
+ result = __builtin___strlcpy_chk(dst, src, sizeof(dst), sizeof(dst));
+- result = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst));
++// result = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst));
+
+ ptr = __builtin___memccpy_chk(dst, src, '\037', sizeof(src)); // expected-error {{too few arguments to function call}}
+ ptr = __builtin___strlcpy_chk(dst, src, sizeof(dst), sizeof(dst)); // expected-warning {{incompatible integer to pointer conversion}}
+- ptr = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst)); // expected-warning {{incompatible integer to pointer conversion}}
++// ptr = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst)); // expected-warning {{incompatible integer to pointer conversion}}
+ }
+
+ void no_ms_builtins() {
+@@ -209,12 +209,12 @@ void unavailable() {
+ }
+
+ // rdar://18259539
+-size_t strlcpy(char * restrict dst, const char * restrict src, size_t size);
+-size_t strlcat(char * restrict dst, const char * restrict src, size_t size);
++//size_t strlcpy(char * restrict dst, const char * restrict src, size_t size);
++//size_t strlcat(char * restrict dst, const char * restrict src, size_t size);
+
+ void Test19(void)
+ {
+- static char b[40];
++/* static char b[40];
+ static char buf[20];
+
+ strlcpy(buf, b, sizeof(b)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} \\
+@@ -223,12 +223,13 @@ void Test19(void)
+ // expected-note {{change size argument to be the size of the destination}} \
+ // expected-warning {{'__builtin___strlcpy_chk' will always overflow; destination buffer has size 20, but size argument is 40}}
+
+- strlcat(buf, b, sizeof(b)); // expected-warning {{size argument in 'strlcat' call appears to be size of the source; expected the size of the destination}} \
++/* strlcat(buf, b, sizeof(b)); // expected-warning {{size argument in 'strlcat' call appears to be size of the source; expected the size of the destination}} \
+ // expected-note {{change size argument to be the size of the destination}}
+
+ __builtin___strlcat_chk(buf, b, sizeof(b), __builtin_object_size(buf, 0)); // expected-warning {{size argument in '__builtin___strlcat_chk' call appears to be size of the source; expected the size of the destination}} \
+ // expected-note {{change size argument to be the size of the destination}} \
+ // expected-warning {{'__builtin___strlcat_chk' will always overflow; destination buffer has size 20, but size argument is 40}}
++*/
+ }
+
+ // rdar://11076881
+Index: llvm-toolchain-snapshot_8~svn342269/clang/test/Sema/warn-strlcpycat-size.c
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/test/Sema/warn-strlcpycat-size.c
++++ /dev/null
+@@ -1,55 +0,0 @@
+-// RUN: %clang_cc1 -Wstrlcpy-strlcat-size -verify -fsyntax-only %s
+-
+-typedef __SIZE_TYPE__ size_t;
+-size_t strlcpy (char * restrict dst, const char * restrict src, size_t size);
+-size_t strlcat (char * restrict dst, const char * restrict src, size_t size);
+-size_t strlen (const char *s);
+-
+-char s1[100];
+-char s2[200];
+-char * s3;
+-
+-struct {
+- char f1[100];
+- char f2[100][3];
+-} s4, **s5;
+-
+-int x;
+-
+-void f(void)
+-{
+- strlcpy(s1, s2, sizeof(s1)); // no warning
+- strlcpy(s1, s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}}
+- strlcpy(s1, s3, strlen(s3)+1); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}}
+- strlcat(s2, s3, sizeof(s3)); // expected-warning {{size argument in 'strlcat' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}}
+- strlcpy(s4.f1, s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}}
+- strlcpy((*s5)->f2[x], s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}}
+- strlcpy(s1+3, s2, sizeof(s2)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}}
+-}
+-
+-// Don't issue FIXIT for flexible arrays.
+-struct S {
+- int y;
+- char x[];
+-};
+-
+-void flexible_arrays(struct S *s) {
+- char str[] = "hi";
+- strlcpy(s->x, str, sizeof(str)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}}
+-}
+-
+-// Don't issue FIXIT for destinations of size 1.
+-void size_1() {
+- char z[1];
+- char str[] = "hi";
+-
+- strlcpy(z, str, sizeof(str)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}}
+-}
+-
+-// Support VLAs.
+-void vlas(int size) {
+- char z[size];
+- char str[] = "hi";
+-
+- strlcpy(z, str, sizeof(str)); // expected-warning {{size argument in 'strlcpy' call appears to be size of the source; expected the size of the destination}} expected-note {{change size argument to be the size of the destination}}
+-}
--- /dev/null
+Description: set correct float abi settings for armel and armhf
+ debian armel supports systems that don't have a fpu so should use a "float abi"
+ setting of soft by default.
+
+ Debian armhf needs a float abi setting of "hard"
+Author: Peter Michael Green <plugwash@debian.org>
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: <vendor|upstream|other>, <url of original patch>
+Bug: <url in upstream bugtracker>
+Bug-Debian: http://bugs.debian.org/<bugnumber>
+Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
+Forwarded: <no|not-needed|url proving that it has been forwarded>
+Reviewed-By: <name and email of someone who approved the patch>
+Last-Update: <YYYY-MM-DD>
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/lib/Driver/ToolChains/Arch/ARM.cpp
++++ llvm-toolchain-snapshot_8~svn342269/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+@@ -246,7 +246,7 @@ arm::FloatABI arm::getARMFloatABI(const
+ case llvm::Triple::MuslEABI:
+ case llvm::Triple::EABI:
+ // EABI is always AAPCS, and if it was not marked 'hard', it's softfp
+- ABI = FloatABI::SoftFP;
++ ABI = FloatABI::Soft;
+ break;
+ case llvm::Triple::Android:
+ ABI = (SubArch == 7) ? FloatABI::SoftFP : FloatABI::Soft;
--- /dev/null
+Index: llvm-toolchain-snapshot_5.0~svn301630/clang/lib/Headers/stdint.h
+===================================================================
+--- llvm-toolchain-snapshot_5.0~svn301630.orig/clang/lib/Headers/stdint.h
++++ llvm-toolchain-snapshot_5.0~svn301630/clang/lib/Headers/stdint.h
+@@ -22,8 +22,6 @@
+ *
+ \*===----------------------------------------------------------------------===*/
+
+-#ifndef __CLANG_STDINT_H
+-#define __CLANG_STDINT_H
+
+ /* If we're hosted, fall back to the system's stdint.h, which might have
+ * additional definitions.
+@@ -72,6 +70,8 @@
+ # endif
+
+ #else
++#ifndef __CLANG_STDINT_H
++#define __CLANG_STDINT_H
+
+ /* C99 7.18.1.1 Exact-width integer types.
+ * C99 7.18.1.2 Minimum-width integer types.
+@@ -700,5 +700,5 @@ typedef __UINTMAX_TYPE__ uintmax_t;
+ #define INTMAX_C(v) __int_c(v, __INTMAX_C_SUFFIX__)
+ #define UINTMAX_C(v) __int_c(v, __UINTMAX_C_SUFFIX__)
+
+-#endif /* __STDC_HOSTED__ */
+ #endif /* __CLANG_STDINT_H */
++#endif /* __STDC_HOSTED__ */
--- /dev/null
+Index: llvm-toolchain-8-8.0.1~+rc1/lib/Support/Triple.cpp
+===================================================================
+--- llvm-toolchain-8-8.0.1~+rc1.orig/lib/Support/Triple.cpp
++++ llvm-toolchain-8-8.0.1~+rc1/lib/Support/Triple.cpp
+@@ -1620,7 +1620,7 @@ StringRef Triple::getARMCPUForArch(Strin
+ case llvm::Triple::EABIHF:
+ case llvm::Triple::GNUEABIHF:
+ case llvm::Triple::MuslEABIHF:
+- return "arm1176jzf-s";
++ return "cortex-a7";
+ default:
+ return "arm7tdmi";
+ }
--- /dev/null
+From 947f9692440836dcb8d88b74b69dd379d85974ce Mon Sep 17 00:00:00 2001
+From: Evgenii Stepanov <eugenis@google.com>
+Date: Mon, 25 Nov 2019 13:52:17 -0800
+Subject: [PATCH] Fix sanitizer-common build with glibc 2.31
+
+Summary:
+As mentioned in D69104, glibc changed ABI recently with the [[ https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=2f959dfe849e0646e27403f2e4091536496ac0f0| 2f959dfe ]] change.
+D69104 dealt with just 32-bit ARM, but that is just one of the many affected architectures.
+E.g. x86_64, i?86, riscv64, sparc 32-bit, s390 31-bit are affected too (and various others).
+
+This patch instead of adding a long list of further architectures that wouldn't be checked ever next to arm 32-bit changes the structures to match the 2.31 layout and performs the checking on Linux for ipc_perm mode position/size only on non-Linux or on Linux with glibc 2.31 or later. I think this matches what is done for aarch64 already.
+If needed, we could list architectures that haven't changed ABI (e.g. powerpc), so that they would be checked even with older glibcs. AFAIK sanitizers don't actually use ipc_perm.mode and
+so all they care about is the size and alignment of the whole structure.
+
+Note, s390 31-bit and arm 32-bit big-endian changed ABI even further, there will now be shmctl with old symbol version and shmctl@@GLIBC_2.31 which will be incompatible. I'm afraid this isn't really solvable unless the sanitizer libraries are symbol versioned and use matching symbol versions to glibc symbols for stuff they intercept, plus use dlvsym.
+This patch doesn't try to address that.
+
+Patch by Jakub Jelinek.
+
+Reviewers: kcc, eugenis, dvyukov
+
+Reviewed By: eugenis
+
+Subscribers: jyknight, kristof.beyls, fedor.sergeev, simoncook, PkmX, s.egerton, steven.zhang, #sanitizers, llvm-commits
+
+Tags: #sanitizers, #llvm
+
+Differential Revision: https://reviews.llvm.org/D70662
+---
+ .../sanitizer_platform_limits_posix.cpp | 8 +++-----
+ .../sanitizer_platform_limits_posix.h | 15 +--------------
+ 2 files changed, 4 insertions(+), 19 deletions(-)
+
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+index b4f8f67b664c..aa845df4dde4 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1127,8 +1127,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
++ on many architectures. */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+index 7789bc5887a4..5337b26b29b8 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -206,26 +206,13 @@ namespace __sanitizer {
+ u64 __unused1;
+ u64 __unused2;
+ #elif defined(__sparc__)
+-#if defined(__arch64__)
+ unsigned mode;
+- unsigned short __pad1;
+-#else
+- unsigned short __pad1;
+- unsigned short mode;
+ unsigned short __pad2;
+-#endif
+ unsigned short __seq;
+ unsigned long long __unused1;
+ unsigned long long __unused2;
+-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
+- unsigned int mode;
+- unsigned short __seq;
+- unsigned short __pad1;
+- unsigned long __unused1;
+- unsigned long __unused2;
+ #else
+- unsigned short mode;
+- unsigned short __pad1;
++ unsigned int mode;
+ unsigned short __seq;
+ unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
--- /dev/null
+Index: llvm-toolchain-8-8/compiler-rt/cmake/base-config-ix.cmake
+===================================================================
+--- llvm-toolchain-8-8.orig/compiler-rt/cmake/base-config-ix.cmake
++++ llvm-toolchain-8-8/compiler-rt/cmake/base-config-ix.cmake
+@@ -195,10 +195,10 @@ macro(test_targets)
+ # clang's default CPU's. In the 64-bit case, we must also specify the ABI
+ # since the default ABI differs between gcc and clang.
+ # FIXME: Ideally, we would build the N32 library too.
+- test_target_arch(mipsel "" "-mips32r2" "-mabi=32")
++ test_target_arch(mipsel "" "-mips32r2" "-mabi=32" "-D_LARGEFILE_SOURCE" "-D_FILE_OFFSET_BITS=64")
+ test_target_arch(mips64el "" "-mips64r2" "-mabi=64")
+ elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "mips")
+- test_target_arch(mips "" "-mips32r2" "-mabi=32")
++ test_target_arch(mips "" "-mips32r2" "-mabi=32" "-D_LARGEFILE_SOURCE" "-D_FILE_OFFSET_BITS=64")
+ test_target_arch(mips64 "" "-mips64r2" "-mabi=64")
+ elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "arm")
+ if(WIN32)
--- /dev/null
+From 39a3ac0065c23d1e2d55dfd8792cc28a146a4307 Mon Sep 17 00:00:00 2001
+From: Alexey Bader <alexey.bader@intel.com>
+Date: Tue, 19 Feb 2019 15:19:06 +0000
+Subject: [PATCH 1/2] [OpenCL] Change type of block pointer for OpenCL
+
+Summary:
+
+For some reason OpenCL blocks in LLVM IR are represented as function pointers.
+These pointers do not point to any real function and never get called. Actually
+they point to some structure, which in turn contains pointer to the real block
+invoke function.
+This patch changes represntation of OpenCL blocks in LLVM IR from function
+pointers to pointers to `%struct.__block_literal_generic`.
+Such representation allows to avoid unnecessary bitcasts and simplifies
+further processing (e.g. translation to SPIR-V ) of the module for targets
+which do not support function pointers.
+
+Patch by: Alexey Sotkin.
+
+Reviewers: Anastasia, yaxunl, svenvh
+
+Reviewed By: Anastasia
+
+Subscribers: alexbatashev, cfe-commits
+
+Tags: #clang
+
+Differential Revision: https://reviews.llvm.org/D58277
+
+git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354337 91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ lib/CodeGen/CodeGenTypes.cpp | 4 +++-
+ test/CodeGenOpenCL/blocks.cl | 18 ++++++++----------
+ test/CodeGenOpenCL/cl20-device-side-enqueue.cl | 18 +++++++++---------
+ 3 files changed, 20 insertions(+), 20 deletions(-)
+
+diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp
+index 2acf1ac..93b3ebf 100644
+--- a/clang/lib/CodeGen/CodeGenTypes.cpp
++++ b/clang/lib/CodeGen/CodeGenTypes.cpp
+@@ -637,7 +637,9 @@ llvm::Type *CodeGenTypes::ConvertType(QualType T) {
+
+ case Type::BlockPointer: {
+ const QualType FTy = cast<BlockPointerType>(Ty)->getPointeeType();
+- llvm::Type *PointeeType = ConvertTypeForMem(FTy);
++ llvm::Type *PointeeType = CGM.getLangOpts().OpenCL
++ ? CGM.getGenericBlockLiteralType()
++ : ConvertTypeForMem(FTy);
+ unsigned AS = Context.getTargetAddressSpace(FTy);
+ ResultType = llvm::PointerType::get(PointeeType, AS);
+ break;
+diff --git a/test/CodeGenOpenCL/blocks.cl b/test/CodeGenOpenCL/blocks.cl
+index 675240c..19aacc3 100644
+--- a/clang/test/CodeGenOpenCL/blocks.cl
++++ b/clang/test/CodeGenOpenCL/blocks.cl
+@@ -35,11 +35,10 @@ void foo(){
+ // SPIR: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 }>, <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]], i32 0, i32 3
+ // SPIR: %[[i_value:.*]] = load i32, i32* %i
+ // SPIR: store i32 %[[i_value]], i32* %[[block_captured]],
+- // SPIR: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]] to i32 ()*
+- // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast i32 ()* %[[blk_ptr]] to i32 () addrspace(4)*
+- // SPIR: store i32 () addrspace(4)* %[[blk_gen_ptr]], i32 () addrspace(4)** %[[block_B:.*]],
+- // SPIR: %[[blk_gen_ptr:.*]] = load i32 () addrspace(4)*, i32 () addrspace(4)** %[[block_B]]
+- // SPIR: %[[block_literal:.*]] = bitcast i32 () addrspace(4)* %[[blk_gen_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)*
++ // SPIR: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]] to %struct.__opencl_block_literal_generic*
++ // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic* %[[blk_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)*
++ // SPIR: store %struct.__opencl_block_literal_generic addrspace(4)* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B:.*]],
++ // SPIR: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic addrspace(4)*, %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B]]
+ // SPIR: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]], i32 0, i32 2
+ // SPIR: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]] to i8 addrspace(4)*
+ // SPIR: %[[invoke_func_ptr:.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* %[[invoke_addr]]
+@@ -50,11 +49,10 @@ void foo(){
+ // AMDGCN: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]], i32 0, i32 3
+ // AMDGCN: %[[i_value:.*]] = load i32, i32 addrspace(5)* %i
+ // AMDGCN: store i32 %[[i_value]], i32 addrspace(5)* %[[block_captured]],
+- // AMDGCN: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]] to i32 () addrspace(5)*
+- // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast i32 () addrspace(5)* %[[blk_ptr]] to i32 ()*
+- // AMDGCN: store i32 ()* %[[blk_gen_ptr]], i32 ()* addrspace(5)* %[[block_B:.*]],
+- // AMDGCN: %[[blk_gen_ptr:.*]] = load i32 ()*, i32 ()* addrspace(5)* %[[block_B]]
+- // AMDGCN: %[[block_literal:.*]] = bitcast i32 ()* %[[blk_gen_ptr]] to %struct.__opencl_block_literal_generic*
++ // AMDGCN: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]] to %struct.__opencl_block_literal_generic addrspace(5)*
++ // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic addrspace(5)* %[[blk_ptr]] to %struct.__opencl_block_literal_generic*
++ // AMDGCN: store %struct.__opencl_block_literal_generic* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B:.*]],
++ // AMDGCN: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic*, %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B]]
+ // AMDGCN: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic* %[[block_literal]], i32 0, i32 2
+ // AMDGCN: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic* %[[block_literal]] to i8*
+ // AMDGCN: %[[invoke_func_ptr:.*]] = load i8*, i8** %[[invoke_addr]]
+diff --git a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
+index 4732194..8445016 100644
+--- a/clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
++++ b/clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
+@@ -11,7 +11,7 @@ typedef struct {int a;} ndrange_t;
+
+ // For a block global variable, first emit the block literal as a global variable, then emit the block variable itself.
+ // COMMON: [[BL_GLOBAL:@__block_literal_global[^ ]*]] = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 {{[0-9]+}}, i32 {{[0-9]+}}, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* [[INV_G:@[^ ]+]] to i8*) to i8 addrspace(4)*) }
+-// COMMON: @block_G = addrspace(1) constant void (i8 addrspace(3)*) addrspace(4)* addrspacecast (void (i8 addrspace(3)*) addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to void (i8 addrspace(3)*) addrspace(1)*) to void (i8 addrspace(3)*) addrspace(4)*)
++// COMMON: @block_G = addrspace(1) constant %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*)
+
+ // For anonymous blocks without captures, emit block literals as global variable.
+ // COMMON: [[BLG1:@__block_literal_global[^ ]*]] = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 {{[0-9]+}}, i32 {{[0-9]+}}, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* {{@[^ ]+}} to i8*) to i8 addrspace(4)*) }
+@@ -77,9 +77,9 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
+ // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue
+ // COMMON: [[FLAGS:%[0-9]+]] = load i32, i32* %flags
+ // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL1:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
+- // B32: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block to void ()*
+- // B64: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32 addrspace(1)*, i32 }>* %block to void ()*
+- // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* [[BL]] to i8 addrspace(4)*
++ // B32: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block to %struct.__opencl_block_literal_generic*
++ // B64: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32 addrspace(1)*, i32 }>* %block to %struct.__opencl_block_literal_generic*
++ // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[BL]] to i8 addrspace(4)*
+ // COMMON-LABEL: call i32 @__enqueue_kernel_basic(
+ // COMMON-SAME: %opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* byval [[NDR]]{{([0-9]+)?}},
+ // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK1:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
+@@ -95,8 +95,8 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
+ // COMMON: [[WAIT_EVNT:%[0-9]+]] = addrspacecast %opencl.clk_event_t{{.*}}** %event_wait_list to %opencl.clk_event_t{{.*}}* addrspace(4)*
+ // COMMON: [[EVNT:%[0-9]+]] = addrspacecast %opencl.clk_event_t{{.*}}** %clk_event to %opencl.clk_event_t{{.*}}* addrspace(4)*
+ // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL2:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
+- // COMMON: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* %block3 to void ()*
+- // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* [[BL]] to i8 addrspace(4)*
++ // COMMON: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* %block3 to %struct.__opencl_block_literal_generic*
++ // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[BL]] to i8 addrspace(4)*
+ // COMMON-LABEL: call i32 @__enqueue_kernel_basic_events
+ // COMMON-SAME: (%opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t{{.*}}* addrspace(4)* [[WAIT_EVNT]], %opencl.clk_event_t{{.*}}* addrspace(4)* [[EVNT]],
+ // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK2:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
+@@ -300,13 +300,13 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
+ // Emits global block literal [[BLG8]] and invoke function [[INVG8]].
+ // The full type of these expressions are long (and repeated elsewhere), so we
+ // capture it as part of the regex for convenience and clarity.
+- // COMMON: store void () addrspace(4)* addrspacecast (void () addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to void () addrspace(1)*) to void () addrspace(4)*), void () addrspace(4)** %block_A
++ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %block_A
+ void (^const block_A)(void) = ^{
+ return;
+ };
+
+ // Emits global block literal [[BLG9]] and invoke function [[INVG9]].
+- // COMMON: store void (i8 addrspace(3)*) addrspace(4)* addrspacecast (void (i8 addrspace(3)*) addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG9]] to void (i8 addrspace(3)*) addrspace(1)*) to void (i8 addrspace(3)*) addrspace(4)*), void (i8 addrspace(3)*) addrspace(4)** %block_B
++ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG9]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %block_B
+ void (^const block_B)(local void *) = ^(local void *a) {
+ return;
+ };
+@@ -346,7 +346,7 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
+ // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL3:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
+ // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue
+ // COMMON: [[FLAGS:%[0-9]+]] = load i32, i32* %flags
+- // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* {{.*}} to i8 addrspace(4)*
++ // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* {{.*}} to i8 addrspace(4)*
+ // COMMON-LABEL: call i32 @__enqueue_kernel_basic(
+ // COMMON-SAME: %opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* byval [[NDR]]{{([0-9]+)?}},
+ // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK3:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
+--
+1.8.3.1
+
--- /dev/null
+From 29e2813a2ab7d5569860bb07892dfef7b5374d96 Mon Sep 17 00:00:00 2001
+From: Yaxun Liu <Yaxun.Liu@amd.com>
+Date: Tue, 26 Feb 2019 16:20:41 +0000
+Subject: [PATCH] [OpenCL] Fix assertion due to blocks
+
+A recent change caused assertion in CodeGenFunction::EmitBlockCallExpr when a block is called.
+
+There is code
+
+ Func = CGM.getOpenCLRuntime().getInvokeFunction(E->getCallee());
+getCalleeDecl calls Expr::getReferencedDeclOfCallee, which does not handle
+BlockExpr and returns nullptr, which causes isa to assert.
+
+This patch fixes that.
+
+Differential Revision: https://reviews.llvm.org/D58658
+
+
+git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354893 91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ lib/AST/Expr.cpp | 2 ++
+ test/CodeGenOpenCL/blocks.cl | 6 ++++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp
+index aef1eab..85690c7 100644
+--- a/clang/lib/AST/Expr.cpp
++++ b/clang/lib/AST/Expr.cpp
+@@ -1358,6 +1358,8 @@ Decl *Expr::getReferencedDeclOfCallee() {
+ return DRE->getDecl();
+ if (MemberExpr *ME = dyn_cast<MemberExpr>(CEE))
+ return ME->getMemberDecl();
++ if (auto *BE = dyn_cast<BlockExpr>(CEE))
++ return BE->getBlockDecl();
+
+ return nullptr;
+ }
+diff --git a/clang/test/CodeGenOpenCL/blocks.cl b/clang/test/CodeGenOpenCL/blocks.cl
+index ab5a2c6..c3e2685 100644
+--- a/clang/test/CodeGenOpenCL/blocks.cl
++++ b/clang/test/CodeGenOpenCL/blocks.cl
+@@ -90,6 +90,12 @@ int get42() {
+ return blockArgFunc(^{return 42;});
+ }
+
++// COMMON-LABEL: define {{.*}}@call_block
++// call {{.*}}@__call_block_block_invoke
++int call_block() {
++ return ^int(int num) { return num; } (11);
++}
++
+ // CHECK-DEBUG: !DIDerivedType(tag: DW_TAG_member, name: "__size"
+ // CHECK-DEBUG: !DIDerivedType(tag: DW_TAG_member, name: "__align"
+
+--
+1.8.3.1
+
--- /dev/null
+From c94ec28600255098ffb9d73d1b386a7c8a535590 Mon Sep 17 00:00:00 2001
+From: Andrew Savonichev <andrew.savonichev@intel.com>
+Date: Thu, 21 Feb 2019 11:02:10 +0000
+Subject: [PATCH 2/2] [OpenCL] Simplify LLVM IR generated for OpenCL blocks
+
+Summary:
+Emit direct call of block invoke functions when possible, i.e. in case the
+block is not passed as a function argument.
+Also doing some refactoring of `CodeGenFunction::EmitBlockCallExpr()`
+
+Reviewers: Anastasia, yaxunl, svenvh
+
+Reviewed By: Anastasia
+
+Subscribers: cfe-commits
+
+Tags: #clang
+
+Differential Revision: https://reviews.llvm.org/D58388
+
+git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354568 91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ lib/CodeGen/CGBlocks.cpp | 77 +++++++++++++-------------
+ lib/CodeGen/CGOpenCLRuntime.cpp | 30 +++++++---
+ lib/CodeGen/CGOpenCLRuntime.h | 4 ++
+ test/CodeGenOpenCL/blocks.cl | 10 +---
+ test/CodeGenOpenCL/cl20-device-side-enqueue.cl | 34 +++++++++---
+ 5 files changed, 91 insertions(+), 64 deletions(-)
+
+diff --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp
+index fa3c3ee..10a0238 100644
+--- a/clang/lib/CodeGen/CGBlocks.cpp
++++ b/clang/lib/CodeGen/CGBlocks.cpp
+@@ -1261,52 +1261,49 @@ RValue CodeGenFunction::EmitBlockCallExpr(const CallExpr *E,
+ ReturnValueSlot ReturnValue) {
+ const BlockPointerType *BPT =
+ E->getCallee()->getType()->getAs<BlockPointerType>();
+-
+ llvm::Value *BlockPtr = EmitScalarExpr(E->getCallee());
+-
+- // Get a pointer to the generic block literal.
+- // For OpenCL we generate generic AS void ptr to be able to reuse the same
+- // block definition for blocks with captures generated as private AS local
+- // variables and without captures generated as global AS program scope
+- // variables.
+- unsigned AddrSpace = 0;
+- if (getLangOpts().OpenCL)
+- AddrSpace = getContext().getTargetAddressSpace(LangAS::opencl_generic);
+-
+- llvm::Type *BlockLiteralTy =
+- llvm::PointerType::get(CGM.getGenericBlockLiteralType(), AddrSpace);
+-
+- // Bitcast the callee to a block literal.
+- BlockPtr =
+- Builder.CreatePointerCast(BlockPtr, BlockLiteralTy, "block.literal");
+-
+- // Get the function pointer from the literal.
+- llvm::Value *FuncPtr =
+- Builder.CreateStructGEP(CGM.getGenericBlockLiteralType(), BlockPtr,
+- CGM.getLangOpts().OpenCL ? 2 : 3);
+-
+- // Add the block literal.
++ llvm::Type *GenBlockTy = CGM.getGenericBlockLiteralType();
++ llvm::Value *Func = nullptr;
++ QualType FnType = BPT->getPointeeType();
++ ASTContext &Ctx = getContext();
+ CallArgList Args;
+
+- QualType VoidPtrQualTy = getContext().VoidPtrTy;
+- llvm::Type *GenericVoidPtrTy = VoidPtrTy;
+ if (getLangOpts().OpenCL) {
+- GenericVoidPtrTy = CGM.getOpenCLRuntime().getGenericVoidPointerType();
+- VoidPtrQualTy =
+- getContext().getPointerType(getContext().getAddrSpaceQualType(
+- getContext().VoidTy, LangAS::opencl_generic));
+- }
+-
+- BlockPtr = Builder.CreatePointerCast(BlockPtr, GenericVoidPtrTy);
+- Args.add(RValue::get(BlockPtr), VoidPtrQualTy);
+-
+- QualType FnType = BPT->getPointeeType();
++ // For OpenCL, BlockPtr is already casted to generic block literal.
++
++ // First argument of a block call is a generic block literal casted to
++ // generic void pointer, i.e. i8 addrspace(4)*
++ llvm::Value *BlockDescriptor = Builder.CreatePointerCast(
++ BlockPtr, CGM.getOpenCLRuntime().getGenericVoidPointerType());
++ QualType VoidPtrQualTy = Ctx.getPointerType(
++ Ctx.getAddrSpaceQualType(Ctx.VoidTy, LangAS::opencl_generic));
++ Args.add(RValue::get(BlockDescriptor), VoidPtrQualTy);
++ // And the rest of the arguments.
++ EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
++
++ // We *can* call the block directly unless it is a function argument.
++ if (!isa<ParmVarDecl>(E->getCalleeDecl()))
++ Func = CGM.getOpenCLRuntime().getInvokeFunction(E->getCallee());
++ else {
++ llvm::Value *FuncPtr = Builder.CreateStructGEP(GenBlockTy, BlockPtr, 2);
++ Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign());
++ }
++ } else {
++ // Bitcast the block literal to a generic block literal.
++ BlockPtr = Builder.CreatePointerCast(
++ BlockPtr, llvm::PointerType::get(GenBlockTy, 0), "block.literal");
++ // Get pointer to the block invoke function
++ llvm::Value *FuncPtr = Builder.CreateStructGEP(GenBlockTy, BlockPtr, 3);
+
+- // And the rest of the arguments.
+- EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
++ // First argument is a block literal casted to a void pointer
++ BlockPtr = Builder.CreatePointerCast(BlockPtr, VoidPtrTy);
++ Args.add(RValue::get(BlockPtr), Ctx.VoidPtrTy);
++ // And the rest of the arguments.
++ EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments());
+
+- // Load the function.
+- llvm::Value *Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign());
++ // Load the function.
++ Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign());
++ }
+
+ const FunctionType *FuncTy = FnType->castAs<FunctionType>();
+ const CGFunctionInfo &FnInfo =
+diff --git a/clang/lib/CodeGen/CGOpenCLRuntime.cpp b/clang/lib/CodeGen/CGOpenCLRuntime.cpp
+index 7f6f595..75003e5 100644
+--- a/clang/lib/CodeGen/CGOpenCLRuntime.cpp
++++ b/clang/lib/CodeGen/CGOpenCLRuntime.cpp
+@@ -123,6 +123,23 @@ llvm::PointerType *CGOpenCLRuntime::getGenericVoidPointerType() {
+ CGM.getContext().getTargetAddressSpace(LangAS::opencl_generic));
+ }
+
++// Get the block literal from an expression derived from the block expression.
++// OpenCL v2.0 s6.12.5:
++// Block variable declarations are implicitly qualified with const. Therefore
++// all block variables must be initialized at declaration time and may not be
++// reassigned.
++static const BlockExpr *getBlockExpr(const Expr *E) {
++ const Expr *Prev = nullptr; // to make sure we do not stuck in infinite loop.
++ while(!isa<BlockExpr>(E) && E != Prev) {
++ Prev = E;
++ E = E->IgnoreCasts();
++ if (auto DR = dyn_cast<DeclRefExpr>(E)) {
++ E = cast<VarDecl>(DR->getDecl())->getInit();
++ }
++ }
++ return cast<BlockExpr>(E);
++}
++
+ /// Record emitted llvm invoke function and llvm block literal for the
+ /// corresponding block expression.
+ void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E,
+@@ -137,20 +154,17 @@ void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E,
+ EnqueuedBlockMap[E].Kernel = nullptr;
+ }
+
++llvm::Function *CGOpenCLRuntime::getInvokeFunction(const Expr *E) {
++ return EnqueuedBlockMap[getBlockExpr(E)].InvokeFunc;
++}
++
+ CGOpenCLRuntime::EnqueuedBlockInfo
+ CGOpenCLRuntime::emitOpenCLEnqueuedBlock(CodeGenFunction &CGF, const Expr *E) {
+ CGF.EmitScalarExpr(E);
+
+ // The block literal may be assigned to a const variable. Chasing down
+ // to get the block literal.
+- if (auto DR = dyn_cast<DeclRefExpr>(E)) {
+- E = cast<VarDecl>(DR->getDecl())->getInit();
+- }
+- E = E->IgnoreImplicit();
+- if (auto Cast = dyn_cast<CastExpr>(E)) {
+- E = Cast->getSubExpr();
+- }
+- auto *Block = cast<BlockExpr>(E);
++ const BlockExpr *Block = getBlockExpr(E);
+
+ assert(EnqueuedBlockMap.find(Block) != EnqueuedBlockMap.end() &&
+ "Block expression not emitted");
+diff --git a/clang/lib/CodeGen/CGOpenCLRuntime.h b/clang/lib/CodeGen/CGOpenCLRuntime.h
+index 750721f..4effc7e 100644
+--- a/clang/lib/CodeGen/CGOpenCLRuntime.h
++++ b/clang/lib/CodeGen/CGOpenCLRuntime.h
+@@ -92,6 +92,10 @@ public:
+ /// \param Block block literal emitted for the block expression.
+ void recordBlockInfo(const BlockExpr *E, llvm::Function *InvokeF,
+ llvm::Value *Block);
++
++ /// \return LLVM block invoke function emitted for an expression derived from
++ /// the block expression.
++ llvm::Function *getInvokeFunction(const Expr *E);
+ };
+
+ }
+diff --git a/clang/test/CodeGenOpenCL/blocks.cl b/clang/test/CodeGenOpenCL/blocks.cl
+index 19aacc3..ab5a2c6 100644
+--- a/clang/test/CodeGenOpenCL/blocks.cl
++++ b/clang/test/CodeGenOpenCL/blocks.cl
+@@ -39,11 +39,8 @@ void foo(){
+ // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic* %[[blk_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)*
+ // SPIR: store %struct.__opencl_block_literal_generic addrspace(4)* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B:.*]],
+ // SPIR: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic addrspace(4)*, %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B]]
+- // SPIR: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]], i32 0, i32 2
+ // SPIR: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]] to i8 addrspace(4)*
+- // SPIR: %[[invoke_func_ptr:.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* %[[invoke_addr]]
+- // SPIR: %[[invoke_func:.*]] = addrspacecast i8 addrspace(4)* %[[invoke_func_ptr]] to i32 (i8 addrspace(4)*)*
+- // SPIR: call {{.*}}i32 %[[invoke_func]](i8 addrspace(4)* %[[blk_gen_ptr]])
++ // SPIR: call {{.*}}i32 @__foo_block_invoke(i8 addrspace(4)* %[[blk_gen_ptr]])
+ // AMDGCN: %[[block_invoke:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block:.*]], i32 0, i32 2
+ // AMDGCN: store i8* bitcast (i32 (i8*)* @__foo_block_invoke to i8*), i8* addrspace(5)* %[[block_invoke]]
+ // AMDGCN: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]], i32 0, i32 3
+@@ -53,11 +50,8 @@ void foo(){
+ // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic addrspace(5)* %[[blk_ptr]] to %struct.__opencl_block_literal_generic*
+ // AMDGCN: store %struct.__opencl_block_literal_generic* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B:.*]],
+ // AMDGCN: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic*, %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B]]
+- // AMDGCN: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic* %[[block_literal]], i32 0, i32 2
+ // AMDGCN: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic* %[[block_literal]] to i8*
+- // AMDGCN: %[[invoke_func_ptr:.*]] = load i8*, i8** %[[invoke_addr]]
+- // AMDGCN: %[[invoke_func:.*]] = bitcast i8* %[[invoke_func_ptr]] to i32 (i8*)*
+- // AMDGCN: call {{.*}}i32 %[[invoke_func]](i8* %[[blk_gen_ptr]])
++ // AMDGCN: call {{.*}}i32 @__foo_block_invoke(i8* %[[blk_gen_ptr]])
+
+ int (^ block_B)(void) = ^{
+ return i;
+diff --git a/clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl b/clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
+index 8445016..1566912 100644
+--- a/clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
++++ b/clang/test/CodeGenOpenCL/cl20-device-side-enqueue.cl
+@@ -312,9 +312,7 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
+ };
+
+ // Uses global block literal [[BLG8]] and invoke function [[INVG8]].
+- // COMMON: [[r1:%.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* getelementptr inbounds (%struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), i32 0, i32 2)
+- // COMMON: [[r2:%.*]] = addrspacecast i8 addrspace(4)* [[r1]] to void (i8 addrspace(4)*)*
+- // COMMON: call spir_func void [[r2]](i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
++ // COMMON: call spir_func void @__device_side_enqueue_block_invoke_11(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
+ block_A();
+
+ // Emits global block literal [[BLG8]] and block kernel [[INVGK8]]. [[INVGK8]] calls [[INVG8]].
+@@ -333,15 +331,35 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
+ unsigned size = get_kernel_work_group_size(block_A);
+
+ // Uses global block literal [[BLG8]] and invoke function [[INVG8]]. Make sure no redundant block literal and invoke functions are emitted.
+- // COMMON: [[r1:%.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* getelementptr inbounds (%struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), i32 0, i32 2)
+- // COMMON: [[r2:%.*]] = addrspacecast i8 addrspace(4)* [[r1]] to void (i8 addrspace(4)*)*
+- // COMMON: call spir_func void [[r2]](i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
++ // COMMON: call spir_func void @__device_side_enqueue_block_invoke_11(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*))
+ block_A();
+
++ // Make sure that block invoke function is resolved correctly after sequence of assignements.
++ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)*
++ // COMMON-SAME: addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)*
++ // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*)
++ // COMMON-SAME: to %struct.__opencl_block_literal_generic addrspace(4)*),
++ // COMMON-SAME: %struct.__opencl_block_literal_generic addrspace(4)** %b1,
++ bl_t b1 = block_G;
++ // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)*
++ // COMMON-SAME: addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)*
++ // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*)
++ // COMMON-SAME: to %struct.__opencl_block_literal_generic addrspace(4)*),
++ // COMMON-SAME: %struct.__opencl_block_literal_generic addrspace(4)** %b2,
++ bl_t b2 = b1;
++ // COMMON: call spir_func void @block_G_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)*
++ // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to i8 addrspace(1)*)
++ // COOMON-SAME: to i8 addrspace(4)*), i8 addrspace(3)* null)
++ b2(0);
++ // Uses global block literal [[BL_GLOBAL]] and block kernel [[INV_G_K]]. [[INV_G_K]] calls [[INV_G]].
++ // COMMON: call i32 @__get_kernel_preferred_work_group_size_multiple_impl(
++ // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INV_G_K:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*),
++ // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to i8 addrspace(1)*) to i8 addrspace(4)*))
++ size = get_kernel_preferred_work_group_size_multiple(b2);
++
+ void (^block_C)(void) = ^{
+ callee(i, a);
+ };
+-
+ // Emits block literal on stack and block kernel [[INVLK3]].
+ // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL3:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke
+ // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue
+@@ -404,8 +422,8 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) {
+ // COMMON: define internal spir_func void [[INVG8]](i8 addrspace(4)*{{.*}})
+ // COMMON: define internal spir_func void [[INVG9]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)* %{{.*}})
+ // COMMON: define internal spir_kernel void [[INVGK8]](i8 addrspace(4)*{{.*}})
++// COMMON: define internal spir_kernel void [[INV_G_K]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}})
+ // COMMON: define internal spir_kernel void [[INVLK3]](i8 addrspace(4)*{{.*}})
+ // COMMON: define internal spir_kernel void [[INVGK9]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}})
+-// COMMON: define internal spir_kernel void [[INV_G_K]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}})
+ // COMMON: define internal spir_kernel void [[INVGK10]](i8 addrspace(4)*{{.*}})
+ // COMMON: define internal spir_kernel void [[INVGK11]](i8 addrspace(4)*{{.*}})
+--
+1.8.3.1
+
--- /dev/null
+---
+ clang/lib/Basic/Targets.cpp | 14 ++++++++++++++
+ clang/test/CodeGen/linux-arm-atomic.c | 10 ++++++++++
+ 2 files changed, 24 insertions(+)
+
+Index: llvm-toolchain-snapshot_6.0~svn309319/clang/test/CodeGen/linux-arm-atomic.c
+===================================================================
+--- llvm-toolchain-snapshot_6.0~svn309319.orig/clang/test/CodeGen/linux-arm-atomic.c
++++ llvm-toolchain-snapshot_6.0~svn309319/clang/test/CodeGen/linux-arm-atomic.c
+@@ -1,5 +1,15 @@
+ // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-linux | FileCheck %s
+ // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s
++
++typedef int _Atomic_word;
++_Atomic_word exchange_and_add(volatile _Atomic_word *__mem, int __val) {
++ return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL);
++}
++
++// CHECK: define {{.*}} @exchange_and_add
++// CHECK: atomicrmw {{.*}} add
++// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-linux | FileCheck %s
++// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s
+ // RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-unknown-linux | FileCheck %s
+ // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-freebsd | FileCheck %s
+
--- /dev/null
+When doing a bootstrap, we use a newly built clang.
+When this one is used, if already installed on the system,
+we have clang header in two places:
+llvm-toolchain-7-7/build-llvm/lib/clang/7.0.0/include/inttypes.h
+and
+/usr/include/clang/7.0.0/include/inttypes.h
+
+Because clang expects only one of his headers to be available, it uses
+include_next to get the glibc (libc6-dev package) header.
+
+However, in the previous example, because we have inttypes.h twice in the
+include search path, clang's header will call itself without any effect.
+Therefore, it will do include_next until the define from the libc is existing (ex: _INTTYPES_H)
+
+
+Index: llvm-toolchain-7-7/clang/lib/Headers/inttypes.h
+===================================================================
+--- llvm-toolchain-7-7.orig/clang/lib/Headers/inttypes.h
++++ llvm-toolchain-7-7/clang/lib/Headers/inttypes.h
+@@ -20,7 +20,7 @@
+ *
+ \*===----------------------------------------------------------------------===*/
+
+-#ifndef __CLANG_INTTYPES_H
++#if !defined(__CLANG_INTTYPES_H) || !defined(_INTTYPES_H)
+ #define __CLANG_INTTYPES_H
+
+ #if defined(_MSC_VER) && _MSC_VER < 1800
+Index: llvm-toolchain-7-7/clang/lib/Headers/limits.h
+===================================================================
+--- llvm-toolchain-7-7.orig/clang/lib/Headers/limits.h
++++ llvm-toolchain-7-7/clang/lib/Headers/limits.h
+@@ -22,7 +22,7 @@
+ *
+ \*===----------------------------------------------------------------------===*/
+
+-#ifndef __CLANG_LIMITS_H
++#if !defined(__CLANG_LIMITS_H) || !defined(_LIBC_LIMITS_H_)
+ #define __CLANG_LIMITS_H
+
+ /* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
--- /dev/null
+# Force the version of clang in the analyzer
+# This was causing the static analyzer to fail silently if the clang & clang++ are
+# not installed
+Index: llvm-toolchain-snapshot_8~svn339515/clang/tools/scan-build/libexec/ccc-analyzer
+===================================================================
+--- llvm-toolchain-snapshot_8~svn339515.orig/clang/tools/scan-build/libexec/ccc-analyzer
++++ llvm-toolchain-snapshot_8~svn339515/clang/tools/scan-build/libexec/ccc-analyzer
+@@ -91,7 +91,7 @@ if ($FindBin::Script =~ /c\+\+-analyzer/
+ if (!defined $Compiler || (! -x $Compiler && ! SearchInPath($Compiler))) { $Compiler = $DefaultCXXCompiler; }
+
+ $Clang = $ENV{'CLANG_CXX'};
+- if (!defined $Clang || ! -x $Clang) { $Clang = 'clang++'; }
++ if (!defined $Clang || ! -x $Clang) { $Clang = 'clang++-8'; }
+
+ $IsCXX = 1
+ }
+@@ -100,7 +100,7 @@ else {
+ if (!defined $Compiler || (! -x $Compiler && ! SearchInPath($Compiler))) { $Compiler = $DefaultCCompiler; }
+
+ $Clang = $ENV{'CLANG'};
+- if (!defined $Clang || ! -x $Clang) { $Clang = 'clang'; }
++ if (!defined $Clang || ! -x $Clang) { $Clang = 'clang-8'; }
+
+ $IsCXX = 0
+ }
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn349138/include/llvm/Support/ARMTargetParser.def
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/include/llvm/Support/ARMTargetParser.def
++++ llvm-toolchain-snapshot_8~svn349138/include/llvm/Support/ARMTargetParser.def
+@@ -75,7 +75,7 @@ ARM_ARCH("armv6kz", ARMV6KZ, "6KZ", "v6k
+ ARM_ARCH("armv6-m", ARMV6M, "6-M", "v6m", ARMBuildAttrs::CPUArch::v6_M,
+ FK_NONE, ARM::AEK_NONE)
+ ARM_ARCH("armv7-a", ARMV7A, "7-A", "v7", ARMBuildAttrs::CPUArch::v7,
+- FK_NEON, ARM::AEK_DSP)
++ FK_VFPV3_D16 /* Hard float */, ARM::AEK_DSP)
+ ARM_ARCH("armv7ve", ARMV7VE, "7VE", "v7ve", ARMBuildAttrs::CPUArch::v7,
+ FK_NEON, (ARM::AEK_SEC | ARM::AEK_MP | ARM::AEK_VIRT |
+ ARM::AEK_HWDIVARM | ARM::AEK_HWDIVTHUMB | ARM::AEK_DSP))
+Index: llvm-toolchain-snapshot_8~svn349138/lib/Target/ARM/ARM.td
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/lib/Target/ARM/ARM.td
++++ llvm-toolchain-snapshot_8~svn349138/lib/Target/ARM/ARM.td
+@@ -596,7 +596,8 @@ def ARMv6sm : Architecture<"armv6s-m",
+ FeatureStrictAlign]>;
+
+ def ARMv7a : Architecture<"armv7-a", "ARMv7a", [HasV7Ops,
+- FeatureNEON,
++ FeatureVFP3,
++ FeatureD16,
+ FeatureDB,
+ FeatureDSP,
+ FeatureAClass]>;
--- /dev/null
+--- a/clang/lib/Driver/ToolChains/Arch/X86.cpp
++++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp
+@@ -105,8 +105,8 @@ const char *x86::getX86TargetCPU(const ArgList &Args,
+ case llvm::Triple::Haiku:
+ return "i586";
+ default:
+- // Fallback to p4.
+- return "pentium4";
++ // Fallback to i686.
++ return "i686";
+ }
+ }
+
--- /dev/null
+---
+ clang/tools/clang-format/clang-format-diff.py | 2 +-
+ clang/tools/clang-format/clang-format.el | 2 +-
+ clang/tools/clang-format/clang-format.py | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/tools/clang-format/clang-format-diff.py
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/tools/clang-format/clang-format-diff.py
++++ llvm-toolchain-snapshot_8~svn342269/clang/tools/clang-format/clang-format-diff.py
+@@ -57,7 +57,7 @@ def main():
+ parser.add_argument('-style',
+ help='formatting style to apply (LLVM, Google, Chromium, '
+ 'Mozilla, WebKit)')
+- parser.add_argument('-binary', default='clang-format',
++ parser.add_argument('-binary', default='clang-format-8',
+ help='location of binary to use for clang-format')
+ args = parser.parse_args()
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/tools/clang-format/clang-format.el
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/tools/clang-format/clang-format.el
++++ llvm-toolchain-snapshot_8~svn342269/clang/tools/clang-format/clang-format.el
+@@ -36,7 +36,7 @@
+ :group 'tools)
+
+ (defcustom clang-format-executable
+- (or (executable-find "clang-format")
++ (or (executable-find "clang-format-8")
+ "clang-format")
+ "Location of the clang-format executable.
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/tools/clang-format/clang-format.py
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/tools/clang-format/clang-format.py
++++ llvm-toolchain-snapshot_8~svn342269/clang/tools/clang-format/clang-format.py
+@@ -36,7 +36,7 @@ import vim
+
+ # set g:clang_format_path to the path to clang-format if it is not on the path
+ # Change this to the full path if clang-format is not on the path.
+-binary = 'clang-format'
++binary = 'clang-format-8'
+ if vim.eval('exists("g:clang_format_path")') == "1":
+ binary = vim.eval('g:clang_format_path')
+
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn342269/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
++++ llvm-toolchain-snapshot_8~svn342269/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
+@@ -179,10 +179,10 @@ def main():
+ 'clang-tidy and clang-apply-replacements in '
+ '$PATH.')
+ parser.add_argument('-clang-tidy-binary', metavar='PATH',
+- default='clang-tidy',
++ default='clang-tidy-8',
+ help='path to clang-tidy binary')
+ parser.add_argument('-clang-apply-replacements-binary', metavar='PATH',
+- default='clang-apply-replacements',
++ default='clang-apply-replacements-8',
+ help='path to clang-apply-replacements binary')
+ parser.add_argument('-checks', default=None,
+ help='checks filter, when not specified, use clang-tidy '
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn346586/clang-tools-extra/clangd/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn346586.orig/clang-tools-extra/clangd/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn346586/clang-tools-extra/clangd/CMakeLists.txt
+@@ -7,6 +7,11 @@ if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
+ list(APPEND CLANGD_ATOMIC_LIB "atomic")
+ endif()
+
++if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i386" OR
++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i686")
++ list(APPEND CLANGD_ATOMIC_LIB "atomic")
++endif()
++
+ add_clang_library(clangDaemon
+ AST.cpp
+ Cancellation.cpp
--- /dev/null
+Index: llvm-toolchain-7_7.0.1~+rc3/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp
+===================================================================
+--- llvm-toolchain-7_7.0.1~+rc3.orig/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp
++++ llvm-toolchain-7_7.0.1~+rc3/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp
+@@ -294,8 +294,8 @@ bool PerfJITEventListener::InitDebugging
+ // search for location to dump data to
+ if (const char *BaseDir = getenv("JITDUMPDIR"))
+ Path.append(BaseDir);
+- else if (!sys::path::home_directory(Path))
+- Path = ".";
++ else
++ sys::path::system_temp_directory(/*ErasedOnReboot*/ true, Path);
+
+ // create debug directory
+ Path += "/.debug/jit/";
--- /dev/null
+---
+ lib/Support/Unix/Memory.inc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_8~svn342269/lib/Support/Unix/Memory.inc
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/lib/Support/Unix/Memory.inc
++++ llvm-toolchain-snapshot_8~svn342269/lib/Support/Unix/Memory.inc
+@@ -237,7 +237,7 @@ void Memory::InvalidateInstructionCache(
+ // FIXME: Can we safely always call this for __GNUC__ everywhere?
+ const char *Start = static_cast<const char *>(Addr);
+ const char *End = Start + Len;
+- __clear_cache(const_cast<char *>(Start), const_cast<char *>(End));
++ __builtin___clear_cache(const_cast<char *>(Start), const_cast<char *>(End));
+ # endif
+
+ #endif // end apple
--- /dev/null
+Index: llvm-toolchain-snapshot_4.0~svn280802/lldb/third_party/Python/module/unittest2/unittest2/runner.py
+===================================================================
+--- llvm-toolchain-snapshot_4.0~svn280802.orig/lldb/third_party/Python/module/unittest2/unittest2/runner.py
++++ llvm-toolchain-snapshot_4.0~svn280802/lldb/third_party/Python/module/unittest2/unittest2/runner.py
+@@ -174,9 +174,9 @@ class TextTestRunner(unittest.TextTestRu
+ if hasattr(result, 'separator2'):
+ self.stream.writeln(result.separator2)
+ run = result.testsRun
+- self.stream.writeln("Ran %d test%s in %.3fs" %
+- (run, run != 1 and "s" or "", timeTaken))
+- self.stream.writeln()
++# self.stream.writeln("Ran %d test%s in %.3fs" %
++# (run, run != 1 and "s" or "", timeTaken))
++# self.stream.writeln()
+
+ expectedFails = unexpectedSuccesses = skipped = passed = failed = errored = 0
+ try:
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn347449/compiler-rt/lib/xray/xray_tsc.h
+===================================================================
+--- llvm-toolchain-snapshot_8~svn347449.orig/compiler-rt/lib/xray/xray_tsc.h
++++ llvm-toolchain-snapshot_8~svn347449/compiler-rt/lib/xray/xray_tsc.h
+@@ -83,8 +83,6 @@ inline uint64_t getTSCFrequency() XRAY_N
+
+ } // namespace __xray
+
+-#else
+-#error Target architecture is not supported.
+ #endif // CPU architecture
+ #endif // SANITIZER_FUCHSIA
+
--- /dev/null
+Description: Silent a test failing on yakkety amd64
+ /tmp/buildd/llvm-toolchain-snapshot-4.0~svn279801/test/tools/llvm-symbolizer/print_context.c:16:11: error: expected string not found in input
+ // CHECK: inc
+ ^
+ <stdin>:1:1: note: scanning from here
+ _fini
+ ^
+ <stdin>:1:3: note: possible intended match here
+ _fini
+ ^
+Author: Sylvestre <sylvestre@debian.org>
+Last-Update: 2016-08-26
+
+Index: llvm-toolchain-snapshot_6.0~svn311429/test/tools/llvm-symbolizer/print_context.c
+===================================================================
+--- llvm-toolchain-snapshot_6.0~svn311429.orig/test/tools/llvm-symbolizer/print_context.c
++++ llvm-toolchain-snapshot_6.0~svn311429/test/tools/llvm-symbolizer/print_context.c
+@@ -14,6 +14,7 @@ int main() {
+ // RUN: cp %p/Inputs/print_context.o %t
+ // RUN: cd %t
+ // RUN: echo "%t/print_context.o 0x0" | llvm-symbolizer -print-source-context-lines=5 | FileCheck %s
++// XFAIL: *
+
+ // Inputs/print_context.o built with plain -g -c from this source file
+ // Specifying -Xclang -fdebug-compilation-dir -Xclang . to make the debug info
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn347135/unittests/Support/Path.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn347135.orig/unittests/Support/Path.cpp
++++ llvm-toolchain-snapshot_8~svn347135/unittests/Support/Path.cpp
+@@ -437,7 +437,7 @@ protected:
+ sys::path::append(NonExistantFile, "1B28B495C16344CB9822E588CD4C3EF0");
+ }
+
+- void TearDown() override { ASSERT_NO_ERROR(fs::remove(TestDirectory.str())); }
++// void TearDown() override { ASSERT_NO_ERROR(fs::remove(TestDirectory.str())); }
+ };
+
+ TEST_F(FileSystemTest, Unique) {
+@@ -519,13 +519,13 @@ TEST_F(FileSystemTest, RealPath) {
+
+ // This can fail if $HOME is not set and getpwuid fails.
+ bool Result = llvm::sys::path::home_directory(HomeDir);
+- if (Result) {
++/* if (Result) {
+ ASSERT_NO_ERROR(fs::real_path(HomeDir, Expected));
+ ASSERT_NO_ERROR(fs::real_path("~", Actual, true));
+ EXPECT_EQ(Expected, Actual);
+ ASSERT_NO_ERROR(fs::real_path("~/", Actual, true));
+ EXPECT_EQ(Expected, Actual);
+- }
++ }*/
+
+ ASSERT_NO_ERROR(fs::remove_directories(Twine(TestDirectory) + "/test1"));
+ }
--- /dev/null
+Index: llvm-toolchain-snapshot_4.0~svn290969/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll
+===================================================================
+--- llvm-toolchain-snapshot_4.0~svn290969.orig/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll
++++ llvm-toolchain-snapshot_4.0~svn290969/test/tools/llvm-objdump/X86/source-interleave-x86_64.ll
+@@ -4,6 +4,7 @@
+ ; RUN: llvm-objdump -d -l %t.o | FileCheck --check-prefix="LINES" %t.ll
+ ; RUN: llvm-objdump -d -S %t.o | FileCheck --check-prefix="SOURCE" %t.ll
+ ; ModuleID = 'source-interleave-x86_64.bc'
++; XFAIL: *
+ source_filename = "source-interleave-x86_64.c"
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn349138/clang/include/clang/Basic/X86Target.def
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/include/clang/Basic/X86Target.def
++++ llvm-toolchain-snapshot_8~svn349138/clang/include/clang/Basic/X86Target.def
+@@ -302,7 +302,7 @@ CPU_SPECIFIC("pentium_mmx", 'D', "+mmx")
+ CPU_SPECIFIC("pentium_ii", 'E', "+cmov,+mmx")
+ CPU_SPECIFIC("pentium_iii", 'H', "+cmov,+mmx,+sse")
+ CPU_SPECIFIC("pentium_iii_no_xmm_regs", 'H',"+cmov,+sse")
+-CPU_SPECIFIC("pentium_4", 'J', "+cmov,+mmx,+sse,+sse2")
++CPU_SPECIFIC("pentium_4", 'J', "+cmov,+mmx,+sse")
+ CPU_SPECIFIC("pentium_m", 'K', "+cmov,+mmx,+sse,+sse2")
+ CPU_SPECIFIC("pentium_4_sse3", 'L', "+cmov,+mmx,+sse,+sse2,+sse3")
+ CPU_SPECIFIC("core_2_duo_ssse3", 'M', "+cmov,+mmx,+sse,+sse2,+sse3,+ssse3")
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn342269/utils/lit/lit/Test.py
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/utils/lit/lit/Test.py
++++ llvm-toolchain-snapshot_8~svn342269/utils/lit/lit/Test.py
+@@ -32,7 +32,7 @@ PASS = ResultCode('PASS', False)
+ FLAKYPASS = ResultCode('FLAKYPASS', False)
+ XFAIL = ResultCode('XFAIL', False)
+ FAIL = ResultCode('FAIL', True)
+-XPASS = ResultCode('XPASS', True)
++XPASS = ResultCode('XPASS', False)
+ UNRESOLVED = ResultCode('UNRESOLVED', True)
+ UNSUPPORTED = ResultCode('UNSUPPORTED', False)
+ TIMEOUT = ResultCode('TIMEOUT', True)
--- /dev/null
+---
+ clang/lib/Driver/ToolChains.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: llvm-toolchain-snapshot_8~svn344157/clang/lib/Driver/ToolChains/Gnu.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn344157.orig/clang/lib/Driver/ToolChains/Gnu.cpp
++++ llvm-toolchain-snapshot_8~svn344157/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -1,4 +1,5 @@
+-//===--- Gnu.cpp - Gnu Tool and ToolChain Implementations -------*- C++ -*-===//
++//===--- Gnu.cpp - Gnu Tool and ToolChain Implementations -------*- C++
++//-*-===//
+ //
+ // The LLVM Compiler Infrastructure
+ //
+@@ -16,6 +17,7 @@
+ #include "Arch/SystemZ.h"
+ #include "CommonArgs.h"
+ #include "Linux.h"
++#include "clang/Basic/Version.h"
+ #include "clang/Config/config.h" // for GCC_INSTALL_PREFIX
+ #include "clang/Driver/Compilation.h"
+ #include "clang/Driver/Driver.h"
+@@ -2438,6 +2440,7 @@ void Generic_GCC::AddClangCXXStdlibInclu
+ addLibStdCxxIncludePaths(DriverArgs, CC1Args);
+ break;
+ }
++ addSystemInclude(DriverArgs, CC1Args, "/usr/include/clang/" + std::string(CLANG_VERSION_STRING) + "/include/");
+ }
+
+ void
--- /dev/null
+---
+ tools/llvm-config/llvm-config.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn342269/tools/llvm-config/llvm-config.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/tools/llvm-config/llvm-config.cpp
++++ llvm-toolchain-snapshot_8~svn342269/tools/llvm-config/llvm-config.cpp
+@@ -558,9 +558,9 @@ int main(int argc, char **argv) {
+ } else if (Arg == "--shared-mode") {
+ PrintSharedMode = true;
+ } else if (Arg == "--obj-root") {
+- OS << ActivePrefix << '\n';
++ OS << ActivePrefix << "/build/" << '\n';
+ } else if (Arg == "--src-root") {
+- OS << LLVM_SRC_ROOT << '\n';
++ OS << ActivePrefix << "/build/" << '\n';
+ } else if (Arg == "--ignore-libllvm") {
+ LinkDyLib = false;
+ LinkMode = BuiltSharedLibs ? LinkModeShared : LinkModeAuto;
--- /dev/null
+Index: llvm-toolchain-3.9-3.9/clang/tools/scan-view/bin/scan-view
+===================================================================
+--- llvm-toolchain-3.9-3.9.orig/clang/tools/scan-view/bin/scan-view
++++ llvm-toolchain-3.9-3.9/clang/tools/scan-view/bin/scan-view
+@@ -23,6 +23,7 @@ kDefaultPort = 8181
+ kMaxPortsToTry = 100
+
+ ###
++BASE_DIR = '/usr/share/clang/scan-view-8'
+
+
+ def url_is_up(url):
+@@ -61,7 +62,7 @@ def start_browser(port, options):
+
+ def run(port, options, root):
+ # Prefer to look relative to the installed binary
+- share = os.path.dirname(__file__) + "/../share/"
++ share = os.path.join(BASE_DIR, 'share')
+ if not os.path.isdir(share):
+ # Otherwise look relative to the source
+ share = os.path.dirname(__file__) + "/../../scan-view/share"
--- /dev/null
+Index: llvm-toolchain-5.0-5.0.2~+rc1/clang/lib/Driver/ToolChains/Linux.cpp
+===================================================================
+--- llvm-toolchain-5.0-5.0.2~+rc1.orig/clang/lib/Driver/ToolChains/Linux.cpp
++++ llvm-toolchain-5.0-5.0.2~+rc1/clang/lib/Driver/ToolChains/Linux.cpp
+@@ -571,6 +571,11 @@ void Linux::AddClangSystemIncludeArgs(co
+ return;
+ }
+
++ // Force the inclusion of the gcc headers (objc/objc.h)
++ addExternCSystemIncludeIfExists(
++ DriverArgs, CC1Args, GCCInstallation.getInstallPath() + "/include");
++// std::cout << GCCInstallation.getInstallPath().str() << "/include" << std::endl;
++
+ // Lacking those, try to detect the correct set of system includes for the
+ // target triple.
+
--- /dev/null
+[hurd] Fix unconditional use of PATH_MAX
+
+The GNU/Hurd system does not define an arbitrary PATH_MAX limitation, the POSIX 2001 realpath extension can be used instead, and the size of symlinks can be determined.
+
+https://reviews.llvm.org/D54677
+
+Index: llvm-toolchain-7_7.0.1~svn347285/libcxx/src/filesystem/operations.cpp
+===================================================================
+--- llvm-toolchain-7_7.0.1~svn347285.orig/libcxx/src/filesystem/operations.cpp
++++ llvm-toolchain-7_7.0.1~svn347285/libcxx/src/filesystem/operations.cpp
+@@ -531,11 +531,20 @@ path __canonical(path const& orig_p, err
+ ErrorHandler<path> err("canonical", ec, &orig_p, &cwd);
+
+ path p = __do_absolute(orig_p, &cwd, ec);
++#if _POSIX_VERSION >= 200112 || defined(__GLIBC__)
++ char *buff;
++ if ((buff = ::realpath(p.c_str(), NULL)) == nullptr)
++ return err.report(capture_errno());
++ path ret = {buff};
++ free(buff);
++ return ret;
++#else
+ char buff[PATH_MAX + 1];
+ char* ret;
+ if ((ret = ::realpath(p.c_str(), buff)) == nullptr)
+ return err.report(capture_errno());
+ return {ret};
++#endif
+ }
+
+ void __copy(const path& from, const path& to, copy_options options,
+@@ -1077,16 +1086,27 @@ void __permissions(const path& p, perms
+ path __read_symlink(const path& p, error_code* ec) {
+ ErrorHandler<path> err("read_symlink", ec, &p);
+
+- char buff[PATH_MAX + 1];
+- error_code m_ec;
++ struct stat sb;
++ if (lstat(p.c_str(), &sb) == -1) {
++ return err.report(capture_errno());
++ }
++ size_t size = sb.st_size + 1;
++ char *buff = (char*) malloc(size);
++ if (buff == NULL) {
++ return err.report(capture_errno());
++ }
++
+ ::ssize_t ret;
+- if ((ret = ::readlink(p.c_str(), buff, PATH_MAX)) == -1) {
++ if ((ret = ::readlink(p.c_str(), buff, size)) == -1) {
++ free(buff);
+ return err.report(capture_errno());
+ }
+- _LIBCPP_ASSERT(ret <= PATH_MAX, "TODO");
++ _LIBCPP_ASSERT(ret < size, "TODO");
+ _LIBCPP_ASSERT(ret > 0, "TODO");
+ buff[ret] = 0;
+- return {buff};
++ path res = {buff};
++ free(buff);
++ return res;
+ }
+
+ bool __remove(const path& p, error_code* ec) {
--- /dev/null
+[Hurd]: use /proc/self/exe to get program path
+
+https://reviews.llvm.org/D69683
+
+Index: llvm-toolchain-snapshot_7~svn334230/lib/Support/Unix/Path.inc
+===================================================================
+--- llvm-toolchain-snapshot_7~svn334230.orig/lib/Support/Unix/Path.inc
++++ llvm-toolchain-snapshot_7~svn334230/lib/Support/Unix/Path.inc
+@@ -175,7 +175,7 @@ std::string getMainExecutable(const char
+
+ if (getprogpath(exe_path, argv0) != NULL)
+ return exe_path;
+-#elif defined(__linux__) || defined(__CYGWIN__)
++#elif defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__)
+ char exe_path[MAXPATHLEN];
+ StringRef aPath("/proc/self/exe");
+ if (sys::fs::exists(aPath)) {
--- /dev/null
+Index: llvm-toolchain-snapshot_3.9~svn268880/utils/TableGen/CodeEmitterGen.cpp
+===================================================================
+--- llvm-toolchain-snapshot_3.9~svn268880.orig/utils/TableGen/CodeEmitterGen.cpp
++++ llvm-toolchain-snapshot_3.9~svn268880/utils/TableGen/CodeEmitterGen.cpp
+@@ -229,6 +229,9 @@ void CodeEmitterGen::run(raw_ostream &o)
+ ArrayRef<const CodeGenInstruction*> NumberedInstructions =
+ Target.getInstructionsByEnumValue();
+
++ o << "// Undef for HURD\n";
++ o << "#ifdef EIEIO\n#undef EIEIO\n#endif\n";
++
+ // Emit function declaration
+ o << "uint64_t " << Target.getName();
+ o << "MCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,\n"
--- /dev/null
+hurd: find c++ headers
+
+This should be factorized with Linux.cpp and the GNU/kFreeBSD case.
+
+Index: llvm-toolchain-8-8.0.1/clang/lib/Driver/ToolChains/Hurd.cpp
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/clang/lib/Driver/ToolChains/Hurd.cpp
++++ llvm-toolchain-8-8.0.1/clang/lib/Driver/ToolChains/Hurd.cpp
+@@ -62,17 +62,106 @@ static StringRef getOSLibDir(const llvm:
+ return Triple.isArch32Bit() ? "lib" : "lib64";
+ }
+
++static void addMultilibsFilePaths(const Driver &D, const MultilibSet &Multilibs,
++ const Multilib &Multilib,
++ StringRef InstallPath,
++ ToolChain::path_list &Paths) {
++ if (const auto &PathsCallback = Multilibs.filePathsCallback())
++ for (const auto &Path : PathsCallback(Multilib))
++ addPathIfExists(D, InstallPath + Path, Paths);
++}
++
+ Hurd::Hurd(const Driver &D, const llvm::Triple &Triple,
+ const ArgList &Args)
+ : Generic_ELF(D, Triple, Args) {
++ GCCInstallation.init(Triple, Args);
++ Multilibs = GCCInstallation.getMultilibs();
++ SelectedMultilib = GCCInstallation.getMultilib();
+ std::string SysRoot = computeSysRoot();
++
++ // Cross-compiling binutils and GCC installations (vanilla and openSUSE at
++ // least) put various tools in a triple-prefixed directory off of the parent
++ // of the GCC installation. We use the GCC triple here to ensure that we end
++ // up with tools that support the same amount of cross compiling as the
++ // detected GCC installation. For example, if we find a GCC installation
++ // targeting x86_64, but it is a bi-arch GCC installation, it can also be
++ // used to target i386.
++ // FIXME: This seems unlikely to be Linux- or Hurd-specific.
++ ToolChain::path_list &PPaths = getProgramPaths();
++ PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
++ GCCInstallation.getTriple().str() + "/bin")
++ .str());
++
++#ifdef ENABLE_LINKER_BUILD_ID
++ ExtraOpts.push_back("--build-id");
++#endif
++
++ // The selection of paths to try here is designed to match the patterns which
++ // the GCC driver itself uses, as this is part of the GCC-compatible driver.
++ // This was determined by running GCC in a fake filesystem, creating all
++ // possible permutations of these directories, and seeing which ones it added
++ // to the link paths.
+ path_list &Paths = getFilePaths();
+
+ const std::string OSLibDir = getOSLibDir(Triple, Args);
+ const std::string MultiarchTriple = getMultiarchTriple(D, Triple, SysRoot);
+
+- // If we are currently running Clang inside of the requested system root, add
+- // its parent library paths to those searched.
++ // Add the multilib suffixed paths where they are available.
++ if (GCCInstallation.isValid()) {
++ const llvm::Triple &GCCTriple = GCCInstallation.getTriple();
++ const std::string &LibPath = GCCInstallation.getParentLibPath();
++ const Multilib &Multilib = GCCInstallation.getMultilib();
++ const MultilibSet &Multilibs = GCCInstallation.getMultilibs();
++
++ // Add toolchain / multilib specific file paths.
++ addMultilibsFilePaths(D, Multilibs, SelectedMultilib,
++ GCCInstallation.getInstallPath(), Paths);
++
++ // Sourcery CodeBench MIPS toolchain holds some libraries under
++ // a biarch-like suffix of the GCC installation.
++ addPathIfExists(D, GCCInstallation.getInstallPath() + SelectedMultilib.gccSuffix(),
++ Paths);
++
++ // GCC cross compiling toolchains will install target libraries which ship
++ // as part of the toolchain under <prefix>/<triple>/<libdir> rather than as
++ // any part of the GCC installation in
++ // <prefix>/<libdir>/gcc/<triple>/<version>. This decision is somewhat
++ // debatable, but is the reality today. We need to search this tree even
++ // when we have a sysroot somewhere else. It is the responsibility of
++ // whomever is doing the cross build targeting a sysroot using a GCC
++ // installation that is *not* within the system root to ensure two things:
++ //
++ // 1) Any DSOs that are linked in from this tree or from the install path
++ // above must be present on the system root and found via an
++ // appropriate rpath.
++ // 2) There must not be libraries installed into
++ // <prefix>/<triple>/<libdir> unless they should be preferred over
++ // those within the system root.
++ //
++ // Note that this matches the GCC behavior. See the below comment for where
++ // Clang diverges from GCC's behavior.
++ addPathIfExists(D, LibPath + "/../" + GCCTriple.str() + "/lib/../" +
++ OSLibDir + SelectedMultilib.osSuffix(),
++ Paths);
++
++ // If the GCC installation we found is inside of the sysroot, we want to
++ // prefer libraries installed in the parent prefix of the GCC installation.
++ // It is important to *not* use these paths when the GCC installation is
++ // outside of the system root as that can pick up unintended libraries.
++ // This usually happens when there is an external cross compiler on the
++ // host system, and a more minimal sysroot available that is the target of
++ // the cross. Note that GCC does include some of these directories in some
++ // configurations but this seems somewhere between questionable and simply
++ // a bug.
++ if (StringRef(LibPath).startswith(SysRoot)) {
++ addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
++ addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
++ }
++ }
++
++ // Similar to the logic for GCC above, if we currently running Clang inside
++ // of the requested system root, add its parent library paths to
++ // those searched.
+ // FIXME: It's not clear whether we should use the driver's installed
+ // directory ('Dir' below) or the ResourceDir.
+ if (StringRef(D.Dir).startswith(SysRoot)) {
+@@ -86,8 +175,40 @@ Hurd::Hurd(const Driver &D, const llvm::
+ addPathIfExists(D, SysRoot + "/usr/lib/" + MultiarchTriple, Paths);
+ addPathIfExists(D, SysRoot + "/usr/lib/../" + OSLibDir, Paths);
+
+- // If we are currently running Clang inside of the requested system root, add
+- // its parent library path to those searched.
++ // Try walking via the GCC triple path in case of biarch or multiarch GCC
++ // installations with strange symlinks.
++ if (GCCInstallation.isValid()) {
++ addPathIfExists(D,
++ SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
++ "/../../" + OSLibDir,
++ Paths);
++
++ // Add the 'other' biarch variant path
++ Multilib BiarchSibling;
++ if (GCCInstallation.getBiarchSibling(BiarchSibling)) {
++ addPathIfExists(D, GCCInstallation.getInstallPath() +
++ BiarchSibling.gccSuffix(),
++ Paths);
++ }
++
++ // See comments above on the multilib variant for details of why this is
++ // included even from outside the sysroot.
++ const std::string &LibPath = GCCInstallation.getParentLibPath();
++ const llvm::Triple &GCCTriple = GCCInstallation.getTriple();
++ const Multilib &Multilib = GCCInstallation.getMultilib();
++ addPathIfExists(D, LibPath + "/../" + GCCTriple.str() + "/lib" +
++ Multilib.osSuffix(),
++ Paths);
++
++ // See comments above on the multilib variant for details of why this is
++ // only included from within the sysroot.
++ if (StringRef(LibPath).startswith(SysRoot))
++ addPathIfExists(D, LibPath, Paths);
++ }
++
++ // Similar to the logic for GCC above, if we are currently running Clang
++ // inside of the requested system root, add its parent library path to those
++ // searched.
+ // FIXME: It's not clear whether we should use the driver's installed
+ // directory ('Dir' below) or the ResourceDir.
+ if (StringRef(D.Dir).startswith(SysRoot))
+@@ -154,6 +275,17 @@ void Hurd::AddClangSystemIncludeArgs(con
+
+ // Lacking those, try to detect the correct set of system includes for the
+ // target triple.
++
++ // Add include directories specific to the selected multilib set and multilib.
++ if (GCCInstallation.isValid()) {
++ const auto &Callback = Multilibs.includeDirsCallback();
++ if (Callback) {
++ for (const auto &Path : Callback(GCCInstallation.getMultilib()))
++ addExternCSystemIncludeIfExists(
++ DriverArgs, CC1Args, GCCInstallation.getInstallPath() + Path);
++ }
++ }
++
+ if (getTriple().getArch() == llvm::Triple::x86) {
+ std::string Path = SysRoot + "/usr/include/i386-gnu";
+ if (D.getVFS().exists(Path))
+@@ -167,3 +299,94 @@ void Hurd::AddClangSystemIncludeArgs(con
+
+ addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include");
+ }
++
++static std::string DetectLibcxxIncludePath(StringRef base) {
++ std::error_code EC;
++ int MaxVersion = 0;
++ std::string MaxVersionString = "";
++ for (llvm::sys::fs::directory_iterator LI(base, EC), LE; !EC && LI != LE;
++ LI = LI.increment(EC)) {
++ StringRef VersionText = llvm::sys::path::filename(LI->path());
++ int Version;
++ if (VersionText[0] == 'v' &&
++ !VersionText.slice(1, StringRef::npos).getAsInteger(10, Version)) {
++ if (Version > MaxVersion) {
++ MaxVersion = Version;
++ MaxVersionString = VersionText;
++ }
++ }
++ }
++ return MaxVersion ? (base + "/" + MaxVersionString).str() : "";
++}
++
++void Hurd::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const {
++ const std::string& SysRoot = computeSysRoot();
++ const std::string LibCXXIncludePathCandidates[] = {
++ DetectLibcxxIncludePath(getDriver().ResourceDir + "/include/c++"),
++ DetectLibcxxIncludePath(getDriver().Dir + "/../include/c++"),
++ // If this is a development, non-installed, clang, libcxx will
++ // not be found at ../include/c++ but it likely to be found at
++ // one of the following two locations:
++ DetectLibcxxIncludePath(SysRoot + "/usr/local/include/c++"),
++ DetectLibcxxIncludePath(SysRoot + "/usr/include/c++") };
++ for (const auto &IncludePath : LibCXXIncludePathCandidates) {
++ if (IncludePath.empty() || !getVFS().exists(IncludePath))
++ continue;
++ // Use the first candidate that exists.
++ addSystemInclude(DriverArgs, CC1Args, IncludePath);
++ return;
++ }
++}
++
++void Hurd::addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const {
++ // We need a detected GCC installation on Hurd to provide libstdc++'s
++ // headers.
++ if (!GCCInstallation.isValid())
++ return;
++
++ // By default, look for the C++ headers in an include directory adjacent to
++ // the lib directory of the GCC installation. Note that this is expect to be
++ // equivalent to '/usr/include/c++/X.Y' in almost all cases.
++ StringRef LibDir = GCCInstallation.getParentLibPath();
++ StringRef InstallDir = GCCInstallation.getInstallPath();
++ StringRef TripleStr = GCCInstallation.getTriple().str();
++ const Multilib &Multilib = GCCInstallation.getMultilib();
++ const std::string GCCMultiarchTriple = getMultiarchTriple(
++ getDriver(), GCCInstallation.getTriple(), getDriver().SysRoot);
++ const std::string TargetMultiarchTriple =
++ getMultiarchTriple(getDriver(), getTriple(), getDriver().SysRoot);
++ const GCCVersion &Version = GCCInstallation.getVersion();
++
++ // The primary search for libstdc++ supports multiarch variants.
++ if (addLibStdCXXIncludePaths(LibDir.str() + "/../include",
++ "/c++/" + Version.Text, TripleStr,
++ GCCMultiarchTriple, TargetMultiarchTriple,
++ Multilib.includeSuffix(), DriverArgs, CC1Args))
++ return;
++
++ // Otherwise, fall back on a bunch of options which don't use multiarch
++ // layouts for simplicity.
++ const std::string LibStdCXXIncludePathCandidates[] = {
++ // Gentoo is weird and places its headers inside the GCC install,
++ // so if the first attempt to find the headers fails, try these patterns.
++ InstallDir.str() + "/include/g++-v" + Version.Text,
++ InstallDir.str() + "/include/g++-v" + Version.MajorStr + "." +
++ Version.MinorStr,
++ InstallDir.str() + "/include/g++-v" + Version.MajorStr,
++ // Android standalone toolchain has C++ headers in yet another place.
++ LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,
++ // Freescale SDK C++ headers are directly in <sysroot>/usr/include/c++,
++ // without a subdirectory corresponding to the gcc version.
++ LibDir.str() + "/../include/c++",
++ };
++
++ for (const auto &IncludePath : LibStdCXXIncludePathCandidates) {
++ if (addLibStdCXXIncludePaths(IncludePath, /*Suffix*/ "", TripleStr,
++ /*GCCMultiarchTriple*/ "",
++ /*TargetMultiarchTriple*/ "",
++ Multilib.includeSuffix(), DriverArgs, CC1Args))
++ break;
++ }
++}
+Index: llvm-toolchain-8-8.0.1/clang/lib/Driver/ToolChains/Hurd.h
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/clang/lib/Driver/ToolChains/Hurd.h
++++ llvm-toolchain-8-8.0.1/clang/lib/Driver/ToolChains/Hurd.h
+@@ -27,6 +27,12 @@ public:
+ void
+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
+ llvm::opt::ArgStringList &CC1Args) const override;
++ void addLibCxxIncludePaths(
++ const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const override;
++ void addLibStdCxxIncludePaths(
++ const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const override;
+
+ virtual std::string computeSysRoot() const;
+
--- /dev/null
+Index: llvm-toolchain-8_8~svn353935/clang/lib/Basic/FileManager.cpp
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/clang/lib/Basic/FileManager.cpp
++++ llvm-toolchain-8_8~svn353935/clang/lib/Basic/FileManager.cpp
+@@ -483,6 +483,12 @@ void FileManager::invalidateCache(const
+ UniqueRealFiles.erase(Entry->getUniqueID());
+ }
+
++// For GNU Hurd
++#if defined(__GNU__) && !defined(PATH_MAX)
++# define PATH_MAX 4096
++#endif
++
++
+ void FileManager::GetUniqueIDMapping(
+ SmallVectorImpl<const FileEntry *> &UIDToFiles) const {
+ UIDToFiles.clear();
+Index: llvm-toolchain-8_8~svn353935/lldb/include/lldb/lldb-defines.h
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/lldb/include/lldb/lldb-defines.h
++++ llvm-toolchain-8_8~svn353935/lldb/include/lldb/lldb-defines.h
+@@ -28,6 +28,11 @@
+ #define INT32_MAX 2147483647
+ #endif
+
++// For GNU Hurd
++#if defined(__GNU__) && !defined(PATH_MAX)
++# define PATH_MAX 4096
++#endif
++
+ #if !defined(UINT32_MAX)
+ #define UINT32_MAX 4294967295U
+ #endif
+Index: llvm-toolchain-8_8~svn353935/tools/dsymutil/DwarfLinker.cpp
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/tools/dsymutil/DwarfLinker.cpp
++++ llvm-toolchain-8_8~svn353935/tools/dsymutil/DwarfLinker.cpp
+@@ -101,6 +101,11 @@
+ #include <utility>
+ #include <vector>
+
++// For GNU Hurd
++#if defined(__GNU__) && !defined(PATH_MAX)
++# define PATH_MAX 4096
++#endif
++
+ namespace llvm {
+ namespace dsymutil {
+
+Index: llvm-toolchain-8_8~svn353935/polly/lib/External/ppcg/cuda_common.c
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/polly/lib/External/ppcg/cuda_common.c
++++ llvm-toolchain-8_8~svn353935/polly/lib/External/ppcg/cuda_common.c
+@@ -15,6 +15,11 @@
+ #include "cuda_common.h"
+ #include "ppcg.h"
+
++// For GNU Hurd
++#if defined(__GNU__) && !defined(PATH_MAX)
++# define PATH_MAX 4096
++#endif
++
+ /* Open the host .cu file and the kernel .hu and .cu files for writing.
+ * Add the necessary includes.
+ */
+Index: llvm-toolchain-8_8~svn353935/clang/lib/Frontend/ModuleDependencyCollector.cpp
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/clang/lib/Frontend/ModuleDependencyCollector.cpp
++++ llvm-toolchain-8_8~svn353935/clang/lib/Frontend/ModuleDependencyCollector.cpp
+@@ -99,6 +99,11 @@ struct ModuleDependencyMMCallbacks : pub
+
+ }
+
++// For GNU Hurd
++#if defined(__GNU__) && !defined(PATH_MAX)
++# define PATH_MAX 4096
++#endif
++
+ // TODO: move this to Support/Path.h and check for HAVE_REALPATH?
+ static bool real_path(StringRef SrcPath, SmallVectorImpl<char> &RealPath) {
+ #ifdef LLVM_ON_UNIX
--- /dev/null
+---
+ clang/tools/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: llvm-toolchain-snapshot_8~svn350922/clang/tools/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn350922.orig/clang/tools/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn350922/clang/tools/CMakeLists.txt
+@@ -23,6 +23,7 @@ if(CLANG_ENABLE_STATIC_ANALYZER)
+ add_clang_subdirectory(clang-check)
+ add_clang_subdirectory(clang-extdef-mapping)
+ add_clang_subdirectory(scan-build)
++ add_clang_subdirectory(scan-build-py)
+ add_clang_subdirectory(scan-view)
+ endif()
+
--- /dev/null
+Index: llvm-toolchain-7-7.0.1/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-7-7.0.1.orig/CMakeLists.txt
++++ llvm-toolchain-7-7.0.1/CMakeLists.txt
+@@ -821,7 +821,7 @@ if(LLVM_TARGET_IS_CROSSCOMPILE_HOST)
+ # (this is a variable that CrossCompile sets on recursive invocations)
+ endif()
+
+-if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
++if( ${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)" AND NOT "kFreeBSD" )
+ # On FreeBSD, /usr/local/* is not used by default. In order to build LLVM
+ # with libxml2, iconv.h, etc., we must add /usr/local paths.
+ include_directories(SYSTEM "/usr/local/include")
--- /dev/null
+Index: llvm-toolchain-7-7.0.1/clang/lib/Basic/Targets.cpp
+===================================================================
+--- llvm-toolchain-7-7.0.1.orig/clang/lib/Basic/Targets.cpp
++++ llvm-toolchain-7-7.0.1/clang/lib/Basic/Targets.cpp
+@@ -469,8 +469,8 @@ TargetInfo *AllocateTarget(const llvm::T
+ return new OpenBSDI386TargetInfo(Triple, Opts);
+ case llvm::Triple::FreeBSD:
+ return new FreeBSDTargetInfo<X86_32TargetInfo>(Triple, Opts);
+- case llvm::Triple::KFreeBSD:
+- return new KFreeBSDTargetInfo<X86_32TargetInfo>(Triple, Opts);
++ case llvm::Triple::kFreeBSD:
++ return new kFreeBSDTargetInfo<X86_32TargetInfo>(Triple, Opts);
+ case llvm::Triple::Minix:
+ return new MinixTargetInfo<X86_32TargetInfo>(Triple, Opts);
+ case llvm::Triple::Solaris:
+@@ -528,8 +528,8 @@ TargetInfo *AllocateTarget(const llvm::T
+ return new FreeBSDTargetInfo<X86_64TargetInfo>(Triple, Opts);
+ case llvm::Triple::Fuchsia:
+ return new FuchsiaTargetInfo<X86_64TargetInfo>(Triple, Opts);
+- case llvm::Triple::KFreeBSD:
+- return new KFreeBSDTargetInfo<X86_64TargetInfo>(Triple, Opts);
++ case llvm::Triple::kFreeBSD:
++ return new kFreeBSDTargetInfo<X86_64TargetInfo>(Triple, Opts);
+ case llvm::Triple::Solaris:
+ return new SolarisTargetInfo<X86_64TargetInfo>(Triple, Opts);
+ case llvm::Triple::Win32: {
+Index: llvm-toolchain-7-7.0.1/clang/lib/Basic/Targets/OSTargets.h
+===================================================================
+--- llvm-toolchain-7-7.0.1.orig/clang/lib/Basic/Targets/OSTargets.h
++++ llvm-toolchain-7-7.0.1/clang/lib/Basic/Targets/OSTargets.h
+@@ -226,7 +226,7 @@ public:
+
+ // GNU/kFreeBSD Target
+ template <typename Target>
+-class LLVM_LIBRARY_VISIBILITY KFreeBSDTargetInfo : public OSTargetInfo<Target> {
++class LLVM_LIBRARY_VISIBILITY kFreeBSDTargetInfo : public OSTargetInfo<Target> {
+ protected:
+ void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
+ MacroBuilder &Builder) const override {
+@@ -243,7 +243,7 @@ protected:
+ }
+
+ public:
+- KFreeBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
++ kFreeBSDTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
+ : OSTargetInfo<Target>(Triple, Opts) {}
+ };
+
--- /dev/null
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
+@@ -84,9 +84,14 @@
+ extern "C" {
+ // <sys/umtx.h> must be included after <errno.h> and <sys/types.h> on
+ // FreeBSD 9.2 and 10.0.
++#if SANITIZER_KFREEBSD
++#include <bsd/sys/cdefs.h>
++#endif
+ #include <sys/umtx.h>
+ }
++#if !SANITIZER_KFREEBSD
+ #include <sys/thr.h>
++#endif
+ #endif // SANITIZER_FREEBSD
+
+ #if SANITIZER_NETBSD
+@@ -468,10 +473,12 @@ bool FileExists(const char *filename) {
+
+ #if !SANITIZER_NETBSD
+ tid_t GetTid() {
+-#if SANITIZER_FREEBSD
++#if SANITIZER_FREEBSD && !SANITIZER_KFREEBSD
+ long Tid;
+ thr_self(&Tid);
+ return Tid;
++#elif SANITIZER_KFREEBSD
++ return (uptr)pthread_self();
+ #elif SANITIZER_OPENBSD
+ return internal_syscall(SYSCALL(getthrid));
+ #elif SANITIZER_SOLARIS
+@@ -1167,10 +1174,10 @@ bool LibraryNameIs(const char *full_name
+ // Call cb for each region mapped by map.
+ void ForEachMappedRegion(link_map *map, void (*cb)(const void *, uptr)) {
+ CHECK_NE(map, nullptr);
+-#if !SANITIZER_FREEBSD && !SANITIZER_OPENBSD
++#if !SANITIZER_FREEBSD && !SANITIZER_OPENBSD || SANITIZER_KFREEBSD
+ typedef ElfW(Phdr) Elf_Phdr;
+ typedef ElfW(Ehdr) Elf_Ehdr;
+-#endif // !SANITIZER_FREEBSD && !SANITIZER_OPENBSD
++#endif // !SANITIZER_FREEBSD && !SANITIZER_OPENBSD || SANITIZER_KFREEBSD
+ char *base = (char *)map->l_addr;
+ Elf_Ehdr *ehdr = (Elf_Ehdr *)base;
+ char *phdrs = base + ehdr->e_phoff;
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc
+@@ -36,10 +36,12 @@
+ #include <syslog.h>
+
+ #if SANITIZER_FREEBSD
+-#include <pthread_np.h>
++# if !SANITIZER_KFREEBSD
++# include <pthread_np.h>
++# define pthread_getattr_np pthread_attr_get_np
++# endif
+ #include <osreldate.h>
+ #include <sys/sysctl.h>
+-#define pthread_getattr_np pthread_attr_get_np
+ #endif
+
+ #if SANITIZER_OPENBSD
+@@ -528,9 +530,9 @@ void GetThreadStackAndTls(bool main, upt
+ #endif
+ }
+
+-#if !SANITIZER_FREEBSD && !SANITIZER_OPENBSD
++#if !SANITIZER_FREEBSD && !SANITIZER_OPENBSD || SANITIZER_KFREEBSD
+ typedef ElfW(Phdr) Elf_Phdr;
+-#elif SANITIZER_WORDSIZE == 32 && __FreeBSD_version <= 902001 // v9.2
++#elif SANITIZER_WORDSIZE == 32 && !SANITIZER_KFREEBSD && __FreeBSD_version <= 902001 // v9.2
+ #define Elf_Phdr XElf32_Phdr
+ #define dl_phdr_info xdl_phdr_info
+ #define dl_iterate_phdr(c, b) xdl_iterate_phdr((c), (b))
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+@@ -16,7 +16,7 @@
+ #if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \
+ !defined(__OpenBSD__) && !defined(__APPLE__) && !defined(_WIN32) && \
+ !defined(__Fuchsia__) && !defined(__rtems__) && \
+- !(defined(__sun__) && defined(__svr4__))
++ !(defined(__sun__) && defined(__svr4__)) && !defined(__FreeBSD_kernel__)
+ # error "This operating system is not supported"
+ #endif
+
+@@ -26,12 +26,18 @@
+ # define SANITIZER_LINUX 0
+ #endif
+
+-#if defined(__FreeBSD__)
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ # define SANITIZER_FREEBSD 1
+ #else
+ # define SANITIZER_FREEBSD 0
+ #endif
+
++#if defined(__FreeBSD_kernel__)
++# define SANITIZER_KFREEBSD 1
++#else
++# define SANITIZER_KFREEBSD 0
++#endif
++
+ #if defined(__NetBSD__)
+ # define SANITIZER_NETBSD 1
+ #else
+@@ -113,7 +119,8 @@
+
+ #define SANITIZER_POSIX \
+ (SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_MAC || \
+- SANITIZER_NETBSD || SANITIZER_OPENBSD || SANITIZER_SOLARIS)
++ SANITIZER_NETBSD || SANITIZER_OPENBSD || SANITIZER_SOLARIS || \
++ SANITIZER_KFREEBSD)
+
+ #if __LP64__ || defined(_WIN64)
+ # define SANITIZER_WORDSIZE 64
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/asan/asan_linux.cc
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/asan/asan_linux.cc
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/asan/asan_linux.cc
+@@ -38,7 +38,7 @@
+ #include <unistd.h>
+ #include <unwind.h>
+
+-#if SANITIZER_FREEBSD
++#if SANITIZER_FREEBSD && !SANITIZER_KFREEBSD
+ #include <sys/link_elf.h>
+ #endif
+
+@@ -48,7 +48,11 @@
+
+ #if SANITIZER_ANDROID || SANITIZER_FREEBSD || SANITIZER_SOLARIS
+ #include <ucontext.h>
++#if SANITIZER_KFREEBSD
++#include <link.h>
++#else
+ extern "C" void* _DYNAMIC;
++#endif
+ #elif SANITIZER_NETBSD
+ #include <link_elf.h>
+ #include <ucontext.h>
+@@ -61,7 +65,7 @@ extern Elf_Dyn _DYNAMIC;
+ // x86-64 FreeBSD 9.2 and older define 'ucontext_t' incorrectly in
+ // 32-bit mode.
+ #if SANITIZER_FREEBSD && (SANITIZER_WORDSIZE == 32) && \
+- __FreeBSD_version <= 902001 // v9.2
++ !SANITIZER_KFREEBSD && __FreeBSD_version <= 902001 // v9.2
+ #define ucontext_t xucontext_t
+ #endif
+
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/ubsan/ubsan_platform.h
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/ubsan/ubsan_platform.h
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/ubsan/ubsan_platform.h
+@@ -15,7 +15,7 @@
+
+ // Other platforms should be easy to add, and probably work as-is.
+ #if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || \
+- defined(__NetBSD__) || defined(__OpenBSD__) || \
++ defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD_kernel__) || \
+ (defined(__sun__) && defined(__svr4__)) || \
+ defined(_WIN32) || defined(__Fuchsia__) || defined(__rtems__)
+ # define CAN_SANITIZE_UB 1
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
+@@ -197,7 +197,7 @@ ASM_SYMBOL_INTERCEPTOR(setjmp):
+ lea 16(%rsp), %rdi
+ mov %rdi, %rsi
+ xorq ___tsan_darwin_setjmp_xor_key(%rip), %rsi
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__FreeBSD_kernel__)
+ lea 16(%rsp), %rdi
+ mov %rdi, %rsi
+ xor %fs:0x30, %rsi // magic mangling of rsp (see libc setjmp)
+@@ -246,7 +246,7 @@ ASM_SYMBOL_INTERCEPTOR(_setjmp):
+ lea 16(%rsp), %rdi
+ mov %rdi, %rsi
+ xorq ___tsan_darwin_setjmp_xor_key(%rip), %rsi
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__FreeBSD_kernel__)
+ lea 16(%rsp), %rdi
+ mov %rdi, %rsi
+ xor %fs:0x30, %rsi // magic mangling of rsp (see libc setjmp)
+@@ -302,7 +302,7 @@ ASM_SYMBOL_INTERCEPTOR(sigsetjmp):
+ lea 32(%rsp), %rdi
+ mov %rdi, %rsi
+ xorq ___tsan_darwin_setjmp_xor_key(%rip), %rsi
+-#elif defined(__linux__)
++#elif defined(__linux__) || defined(__FreeBSD_kernel__)
+ lea 32(%rsp), %rdi
+ mov %rdi, %rsi
+ xor %fs:0x30, %rsi // magic mangling of rsp (see libc setjmp)
+@@ -389,7 +389,7 @@ ASM_SYMBOL_INTERCEPTOR(__sigsetjmp):
+ ASM_SIZE(ASM_SYMBOL_INTERCEPTOR(__sigsetjmp))
+ #endif // !defined(__APPLE__) && !defined(__NetBSD__)
+
+-#if defined(__FreeBSD__) || defined(__linux__)
++#if defined(__FreeBSD__) || defined(__linux__) || defined(__FreeBSD_kernel__)
+ /* We do not need executable stack. */
+ /* This note is not needed on NetBSD. */
+ .section .note.GNU-stack,"",@progbits
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerDefs.h
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/fuzzer/FuzzerDefs.h
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerDefs.h
+@@ -28,6 +28,7 @@
+ #define LIBFUZZER_LINUX 1
+ #define LIBFUZZER_NETBSD 0
+ #define LIBFUZZER_FREEBSD 0
++#define LIBFUZZER_KFREEBSD 1
+ #define LIBFUZZER_OPENBSD 0
+ #define LIBFUZZER_WINDOWS 0
+ #elif __APPLE__
+@@ -54,6 +55,15 @@
+ #define LIBFUZZER_FREEBSD 1
+ #define LIBFUZZER_OPENBSD 0
+ #define LIBFUZZER_WINDOWS 0
++#elif __FreeBSD_kernel__
++#define LIBFUZZER_APPLE 0
++#define LIBFUZZER_FUCHSIA 0
++#define LIBFUZZER_LINUX 0
++#define LIBFUZZER_NETBSD 0
++#define LIBFUZZER_FREEBSD 0
++#define LIBFUZZER_KFREEBSD 1
++#define LIBFUZZER_OPENBSD 0
++#define LIBFUZZER_WINDOWS 0
+ #elif __OpenBSD__
+ #define LIBFUZZER_APPLE 0
+ #define LIBFUZZER_FUCHSIA 0
+@@ -95,7 +105,7 @@
+
+ #define LIBFUZZER_POSIX \
+ (LIBFUZZER_APPLE || LIBFUZZER_LINUX || LIBFUZZER_NETBSD || \
+- LIBFUZZER_FREEBSD || LIBFUZZER_OPENBSD)
++ LIBFUZZER_FREEBSD || LIBFUZZER_OPENBSD || LIBFUZZER_KFREEBSD)
+
+ #ifdef __x86_64
+ # if __has_attribute(target)
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
+@@ -119,7 +119,7 @@ size_t GetPeakRSSMb() {
+ if (getrusage(RUSAGE_SELF, &usage))
+ return 0;
+ if (LIBFUZZER_LINUX || LIBFUZZER_FREEBSD || LIBFUZZER_NETBSD ||
+- LIBFUZZER_OPENBSD) {
++ LIBFUZZER_OPENBSD || LIBFUZZER_KFREEBSD) {
+ // ru_maxrss is in KiB
+ return usage.ru_maxrss >> 10;
+ } else if (LIBFUZZER_APPLE) {
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp
+@@ -12,7 +12,7 @@
+ #include "FuzzerDefs.h"
+
+ #if LIBFUZZER_LINUX || LIBFUZZER_NETBSD || LIBFUZZER_FREEBSD || \
+- LIBFUZZER_OPENBSD
++ LIBFUZZER_OPENBSD || LIBFUZZER_KFREEBSD
+ __attribute__((weak)) extern uint8_t __start___libfuzzer_extra_counters;
+ __attribute__((weak)) extern uint8_t __stop___libfuzzer_extra_counters;
+
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp
+@@ -14,7 +14,7 @@
+ //===----------------------------------------------------------------------===//
+ #include "FuzzerDefs.h"
+ #if LIBFUZZER_LINUX || LIBFUZZER_NETBSD || LIBFUZZER_FUCHSIA || \
+- LIBFUZZER_FREEBSD || LIBFUZZER_OPENBSD
++ LIBFUZZER_FREEBSD || LIBFUZZER_OPENBSD || LIBFUZZER_KFREEBSD
+
+ #include "FuzzerExtFunctions.h"
+ #include "FuzzerIO.h"
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp
+@@ -10,7 +10,7 @@
+ //===----------------------------------------------------------------------===//
+ #include "FuzzerDefs.h"
+ #if LIBFUZZER_LINUX || LIBFUZZER_NETBSD || LIBFUZZER_FREEBSD || \
+- LIBFUZZER_OPENBSD
++ LIBFUZZER_OPENBSD || LIBFUZZER_KFREEBSD
+ #include "FuzzerCommand.h"
+
+ #include <stdlib.h>
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h
+@@ -21,7 +21,7 @@
+ // 32-bit mode.
+ #if SANITIZER_FREEBSD && (SANITIZER_WORDSIZE == 32)
+ # include <osreldate.h>
+-# if __FreeBSD_version <= 902001 // v9.2
++# if !SANITIZER_KFREEBSD && __FreeBSD_version <= 902001 // v9.2
+ # include <link.h>
+ # include <sys/param.h>
+ # include <ucontext.h>
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cc
+@@ -38,7 +38,7 @@
+ // Fix 'kinfo_vmentry' definition on FreeBSD prior v9.2 in 32-bit mode.
+ #if SANITIZER_FREEBSD && (SANITIZER_WORDSIZE == 32)
+ #include <osreldate.h>
+-#if __FreeBSD_version <= 902001 // v9.2
++#if !SANITIZER_KFREEBSD && __FreeBSD_version <= 902001 // v9.2
+ #define kinfo_vmentry xkinfo_vmentry
+ #endif
+ #endif
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -20,7 +20,9 @@
+ #include "sanitizer_internal_defs.h"
+ #include "sanitizer_platform.h"
+
++#if !SANITIZER_KFREEBSD
+ # define GET_LINK_MAP_BY_DLOPEN_HANDLE(handle) ((link_map*)(handle))
++#endif
+
+ #ifndef __GLIBC_PREREQ
+ #define __GLIBC_PREREQ(x, y) 0
+Index: llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
++++ llvm-toolchain-8_8~+rc2/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
+@@ -20,7 +20,7 @@
+ # define SYSCALL(name) __NR_ ## name
+ #endif
+
+-#if defined(__x86_64__) && (SANITIZER_FREEBSD || SANITIZER_MAC)
++#if defined(__x86_64__) && ((SANITIZER_FREEBSD && !SANITIZER_KFREEBSD) || SANITIZER_MAC)
+ # define internal_syscall __syscall
+ # else
+ # define internal_syscall syscall
--- /dev/null
+Index: llvm-toolchain-7-7.0.1/include/llvm/ADT/Triple.h
+===================================================================
+--- llvm-toolchain-7-7.0.1.orig/include/llvm/ADT/Triple.h
++++ llvm-toolchain-7-7.0.1/include/llvm/ADT/Triple.h
+@@ -158,7 +158,7 @@ public:
+ FreeBSD,
+ Fuchsia,
+ IOS,
+- KFreeBSD,
++ kFreeBSD,
+ Linux,
+ Lv2, // PS3
+ MacOSX,
+@@ -575,8 +575,8 @@ public:
+ }
+
+ /// Tests whether the OS is kFreeBSD.
+- bool isOSKFreeBSD() const {
+- return getOS() == Triple::KFreeBSD;
++ bool isOSkFreeBSD() const {
++ return getOS() == Triple::kFreeBSD;
+ }
+
+ /// Tests whether the OS is Hurd.
+@@ -586,7 +586,7 @@ public:
+
+ /// Tests whether the OS uses glibc.
+ bool isOSGlibc() const {
+- return (getOS() == Triple::Linux || getOS() == Triple::KFreeBSD ||
++ return (getOS() == Triple::Linux || getOS() == Triple::kFreeBSD ||
+ getOS() == Triple::Hurd) &&
+ !isAndroid();
+ }
--- /dev/null
+Index: llvm-toolchain-7-7.0.1/libcxx/include/__config
+===================================================================
+--- llvm-toolchain-7-7.0.1.orig/libcxx/include/__config
++++ llvm-toolchain-7-7.0.1/libcxx/include/__config
+@@ -1107,6 +1107,7 @@ _LIBCPP_FUNC_VIS extern "C" void __sanit
+ !defined(_LIBCPP_HAS_THREAD_API_WIN32) && \
+ !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)
+ # if defined(__FreeBSD__) || \
++ defined(__FreeBSD_kernel__) || \
+ defined(__Fuchsia__) || \
+ defined(__NetBSD__) || \
+ defined(__linux__) || \
--- /dev/null
+Index: llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp.h
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/openmp/runtime/src/kmp.h
++++ llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp.h
+@@ -1077,6 +1077,10 @@ extern kmp_uint64 __kmp_now_nsec();
+ /* TODO: tune for KMP_OS_OPENBSD */
+ #define KMP_INIT_WAIT 1024U /* initial number of spin-tests */
+ #define KMP_NEXT_WAIT 512U /* susequent number of spin-tests */
++#elif KMP_OS_KFREEBSD
++/* TODO: tune for KMP_OS_KFREEBSD */
++#define KMP_INIT_WAIT 1024U /* initial number of spin-tests */
++#define KMP_NEXT_WAIT 512U /* susequent number of spin-tests */
+ #endif
+
+ #if KMP_ARCH_X86 || KMP_ARCH_X86_64
+Index: llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp_ftn_entry.h
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/openmp/runtime/src/kmp_ftn_entry.h
++++ llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp_ftn_entry.h
+@@ -535,7 +535,7 @@ int FTN_STDCALL KMP_EXPAND_NAME(FTN_GET_
+ int gtid;
+
+ #if KMP_OS_DARWIN || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
+- KMP_OS_HURD
++ KMP_OS_HURD || KMP_OS_KFREEBSD
+ gtid = __kmp_entry_gtid();
+ #elif KMP_OS_WINDOWS
+ if (!__kmp_init_parallel ||
+Index: llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp_platform.h
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/openmp/runtime/src/kmp_platform.h
++++ llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp_platform.h
+@@ -19,6 +19,7 @@
+ #define KMP_OS_LINUX 0
+ #define KMP_OS_DRAGONFLY 0
+ #define KMP_OS_FREEBSD 0
++#define KMP_OS_KFREEBSD 0
+ #define KMP_OS_NETBSD 0
+ #define KMP_OS_OPENBSD 0
+ #define KMP_OS_DARWIN 0
+@@ -57,6 +58,11 @@
+ #define KMP_OS_FREEBSD 1
+ #endif
+
++#if (defined __FreeBSD_kernel__)
++#undef KMP_OS_KFREEBSD
++#define KMP_OS_KFREEBSD 1
++#endif
++
+ #if (defined __NetBSD__)
+ #undef KMP_OS_NETBSD
+ #define KMP_OS_NETBSD 1
+@@ -79,12 +85,12 @@
+
+ #if (1 != \
+ KMP_OS_LINUX + KMP_OS_DRAGONFLY + KMP_OS_FREEBSD + KMP_OS_NETBSD + \
+- KMP_OS_OPENBSD + KMP_OS_DARWIN + KMP_OS_WINDOWS + KMP_OS_HURD)
++ KMP_OS_OPENBSD + KMP_OS_DARWIN + KMP_OS_WINDOWS + KMP_OS_HURD + KMP_OS_KFREEBSD)
+ #error Unknown OS
+ #endif
+
+ #if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
+- KMP_OS_OPENBSD || KMP_OS_DARWIN || KMP_OS_HURD
++ KMP_OS_OPENBSD || KMP_OS_DARWIN || KMP_OS_HURD || KMP_OS_KFREEBSD
+ #undef KMP_OS_UNIX
+ #define KMP_OS_UNIX 1
+ #endif
+Index: llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp_runtime.cpp
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/openmp/runtime/src/kmp_runtime.cpp
++++ llvm-toolchain-8-8~+rc1/openmp/runtime/src/kmp_runtime.cpp
+@@ -8076,7 +8076,7 @@ __kmp_determine_reduction_method(
+ #if KMP_ARCH_X86_64 || KMP_ARCH_PPC64 || KMP_ARCH_AARCH64 || KMP_ARCH_MIPS64
+
+ #if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
+- KMP_OS_OPENBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN || KMP_OS_HURD
++ KMP_OS_OPENBSD || KMP_OS_WINDOWS || KMP_OS_DARWIN || KMP_OS_HURD || KMP_OS_KFREEBSD
+
+ int teamsize_cutoff = 4;
+
+@@ -8104,7 +8104,7 @@ __kmp_determine_reduction_method(
+
+ #elif KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_AARCH || KMP_ARCH_MIPS
+
+-#if KMP_OS_LINUX || KMP_OS_WINDOWS || KMP_OS_HURD
++#if KMP_OS_LINUX || KMP_OS_WINDOWS || KMP_OS_HURD || KMP_OS_KFREEBSD
+
+ // basic tuning
+
+Index: llvm-toolchain-8-8~+rc1/openmp/runtime/src/z_Linux_util.cpp
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/openmp/runtime/src/z_Linux_util.cpp
++++ llvm-toolchain-8-8~+rc1/openmp/runtime/src/z_Linux_util.cpp
+@@ -448,7 +448,7 @@ void __kmp_terminate_thread(int gtid) {
+ static kmp_int32 __kmp_set_stack_info(int gtid, kmp_info_t *th) {
+ int stack_data;
+ #if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
+- KMP_OS_HURD
++ KMP_OS_HURD || KMP_OS_KFREEBSD
+ pthread_attr_t attr;
+ int status;
+ size_t size = 0;
+@@ -502,7 +502,7 @@ static void *__kmp_launch_worker(void *t
+ #endif /* KMP_BLOCK_SIGNALS */
+ void *exit_val;
+ #if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
+- KMP_OS_OPENBSD || KMP_OS_HURD
++ KMP_OS_OPENBSD || KMP_OS_HURD || KMP_OS_KFREEBSD
+ void *volatile padding = 0;
+ #endif
+ int gtid;
+@@ -1772,7 +1772,7 @@ static int __kmp_get_xproc(void) {
+ int r = 0;
+
+ #if KMP_OS_LINUX || KMP_OS_DRAGONFLY || KMP_OS_FREEBSD || KMP_OS_NETBSD || \
+- KMP_OS_OPENBSD || KMP_OS_HURD
++ KMP_OS_OPENBSD || KMP_OS_HURD || KMP_OS_KFREEBSD
+
+ r = sysconf(_SC_NPROCESSORS_ONLN);
+
+@@ -1967,7 +1967,7 @@ int __kmp_is_address_mapped(void *addr)
+ int found = 0;
+ int rc;
+
+-#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_HURD
++#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_HURD || KMP_OS_KFREEBSD
+
+ /* On GNUish OSes, read the /proc/<pid>/maps pseudo-file to get all the address
+ ranges mapped into the address space. */
--- /dev/null
+Index: llvm-toolchain-7-7.0.1/libcxx/src/thread.cpp
+===================================================================
+--- llvm-toolchain-7-7.0.1.orig/libcxx/src/thread.cpp
++++ llvm-toolchain-7-7.0.1/libcxx/src/thread.cpp
+@@ -19,7 +19,7 @@
+
+ #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
+ # include <sys/param.h>
+-# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
++# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) || defined(__FreeBSD_kernel__)
+ # include <sys/sysctl.h>
+ # endif
+ #endif // defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))
--- /dev/null
+Index: llvm-toolchain-8_8~+rc2/clang/lib/Driver/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/clang/lib/Driver/CMakeLists.txt
++++ llvm-toolchain-8_8~+rc2/clang/lib/Driver/CMakeLists.txt
+@@ -49,6 +49,7 @@ add_clang_library(clangDriver
+ ToolChains/HIP.cpp
+ ToolChains/Hexagon.cpp
+ ToolChains/Hurd.cpp
++ ToolChains/KFreeBSD.cpp
+ ToolChains/Linux.cpp
+ ToolChains/MipsLinux.cpp
+ ToolChains/MinGW.cpp
+Index: llvm-toolchain-8_8~+rc2/clang/lib/Driver/Driver.cpp
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/clang/lib/Driver/Driver.cpp
++++ llvm-toolchain-8_8~+rc2/clang/lib/Driver/Driver.cpp
+@@ -27,6 +27,7 @@
+ #include "ToolChains/Haiku.h"
+ #include "ToolChains/Hexagon.h"
+ #include "ToolChains/Hurd.h"
++#include "ToolChains/KFreeBSD.h"
+ #include "ToolChains/Lanai.h"
+ #include "ToolChains/Linux.h"
+ #include "ToolChains/MSP430.h"
+@@ -4546,6 +4547,9 @@ const ToolChain &Driver::getToolChain(co
+ case llvm::Triple::FreeBSD:
+ TC = llvm::make_unique<toolchains::FreeBSD>(*this, Target, Args);
+ break;
++ case llvm::Triple::kFreeBSD:
++ TC = llvm::make_unique<toolchains::kFreeBSD>(*this, Target, Args);
++ break;
+ case llvm::Triple::Minix:
+ TC = llvm::make_unique<toolchains::Minix>(*this, Target, Args);
+ break;
+Index: llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/Clang.cpp
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/clang/lib/Driver/ToolChains/Clang.cpp
++++ llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -535,7 +535,7 @@ static bool useFramePointerForTargetByDe
+ }
+
+ if (Triple.isOSLinux() || Triple.getOS() == llvm::Triple::CloudABI ||
+- Triple.isOSHurd()) {
++ Triple.isOSHurd() || Triple.isOSkFreeBSD()) {
+ switch (Triple.getArch()) {
+ // Don't use a frame pointer on linux if optimizing for certain targets.
+ case llvm::Triple::mips64:
+Index: llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/Gnu.cpp
+===================================================================
+--- llvm-toolchain-8_8~+rc2.orig/clang/lib/Driver/ToolChains/Gnu.cpp
++++ llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -259,6 +259,8 @@ static const char *getLDMOption(const ll
+ case llvm::Triple::x86:
+ if (T.isOSIAMCU())
+ return "elf_iamcu";
++ if (T.isOSkFreeBSD())
++ return "elf_i386_fbsd";
+ return "elf_i386";
+ case llvm::Triple::aarch64:
+ return "aarch64linux";
+@@ -303,6 +305,8 @@ static const char *getLDMOption(const ll
+ case llvm::Triple::x86_64:
+ if (T.getEnvironment() == llvm::Triple::GNUX32)
+ return "elf32_x86_64";
++ if (T.isOSkFreeBSD())
++ return "elf_x86_64_fbsd";
+ return "elf_x86_64";
+ default:
+ return nullptr;
+@@ -522,6 +526,18 @@ void tools::gnutools::Linker::ConstructJ
+ CmdArgs.push_back("--wrap=pthread_create");
+
+ CmdArgs.push_back("-lc");
++ if (getToolChain().getTriple().isOSkFreeBSD()) {
++ switch (getToolChain().getArch()) {
++ case llvm::Triple::x86_64:
++ CmdArgs.push_back("-rpath-link=/lib/x86_64-kfreebsd-gnu");
++ break;
++ case llvm::Triple::x86:
++ CmdArgs.push_back("-rpath-link=/lib/i386-kfreebsd-gnu");
++ break;
++ default:
++ break;
++ }
++ }
+
+ // Add IAMCU specific libs, if needed.
+ if (IsIAMCU)
+@@ -1898,7 +1914,8 @@ void Generic_GCC::GCCInstallationDetecto
+ "x86_64-redhat-linux", "x86_64-suse-linux",
+ "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
+ "x86_64-slackware-linux", "x86_64-unknown-linux",
+- "x86_64-amazon-linux", "x86_64-linux-android"};
++ "x86_64-amazon-linux", "x86_64-linux-android",
++ "x86_64-kfreebsd-gnu", "x86_64-pc-kfreebsd-gnu"};
+ static const char *const X32LibDirs[] = {"/libx32"};
+ static const char *const X86LibDirs[] = {"/lib32", "/lib"};
+ static const char *const X86Triples[] = {
+@@ -1907,7 +1924,9 @@ void Generic_GCC::GCCInstallationDetecto
+ "i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux",
+ "i486-slackware-linux", "i686-montavista-linux", "i586-linux-gnu",
+ "i686-linux-android", "i386-gnu", "i486-gnu",
+- "i586-gnu", "i686-gnu"};
++ "i586-gnu", "i686-gnu",
++ "i686-kfreebsd-gnu", "i686-pc-kfreebsd-gnu", "i486-kfreebsd-gnu",
++ "i386-kfreebsd-gnu" };
+
+ static const char *const MIPSLibDirs[] = {"/lib"};
+ static const char *const MIPSTriples[] = {
+Index: llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/KFreeBSD.cpp
+===================================================================
+--- /dev/null
++++ llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/KFreeBSD.cpp
+@@ -0,0 +1,459 @@
++//===--- KFreeBSD.cpp - kFreeBSD ToolChain Implementations --------*- C++ -*-===//
++//
++// The LLVM Compiler Infrastructure
++//
++// This file is distributed under the University of Illinois Open Source
++// License. See LICENSE.TXT for details.
++//
++//===----------------------------------------------------------------------===//
++
++#include "KFreeBSD.h"
++#include "CommonArgs.h"
++#include "llvm/Support/VirtualFileSystem.h"
++#include "clang/Config/config.h"
++#include "clang/Driver/Driver.h"
++#include "clang/Driver/Options.h"
++#include "clang/Driver/SanitizerArgs.h"
++#include "llvm/Option/ArgList.h"
++#include "llvm/ProfileData/InstrProf.h"
++#include "llvm/Support/Path.h"
++
++using namespace clang::driver;
++using namespace clang::driver::toolchains;
++using namespace clang;
++using namespace llvm::opt;
++
++using tools::addPathIfExists;
++
++/// Get our best guess at the multiarch triple for a target.
++///
++/// Debian-based systems are starting to use a multiarch setup where they use
++/// a target-triple directory in the library and header search paths.
++/// Unfortunately, this triple does not align with the vanilla target triple,
++/// so we provide a rough mapping here.
++static std::string getMultiarchTriple(const Driver &D,
++ const llvm::Triple &TargetTriple,
++ StringRef SysRoot) {
++ // For most architectures, just use whatever we have rather than trying to be
++ // clever.
++ switch (TargetTriple.getArch()) {
++ default:
++ break;
++
++ // We use the existence of '/lib/<triple>' as a directory to detect
++ // some common kfreebsd triples that don't quite match the Clang
++ // triple for both 32-bit and 64-bit targets. Multiarch fixes its
++ // install triples to these regardless of what the actual target
++ // triple is.
++ case llvm::Triple::x86_64:
++ if (D.getVFS().exists(SysRoot + "/lib/x86_64-kfreebsd-gnu"))
++ return "x86_64-kfreebsd-gnu";
++ break;
++ case llvm::Triple::x86:
++ if (D.getVFS().exists(SysRoot + "/lib/i386-kfreebsd-gnu"))
++ return "i386-kfreebsd-gnu";
++ break;
++ }
++
++ return TargetTriple.str();
++}
++
++static StringRef getOSLibDir(const llvm::Triple &Triple, const ArgList &Args) {
++ // It happens that only x86 and PPC use the 'lib32' variant of oslibdir, and
++ // using that variant while targeting other architectures causes problems
++ // because the libraries are laid out in shared system roots that can't cope
++ // with a 'lib32' library search path being considered. So we only enable
++ // them when we know we may need it.
++ //
++ // FIXME: This is a bit of a hack. We should really unify this code for
++ // reasoning about oslibdir spellings with the lib dir spellings in the
++ // GCCInstallationDetector, but that is a more significant refactoring.
++
++ if (Triple.getArch() == llvm::Triple::x86)
++ return "lib";
++
++ if (Triple.getArch() == llvm::Triple::x86_64)
++ return "lib";
++
++ return Triple.isArch32Bit() ? "lib" : "lib64";
++}
++
++static void addMultilibsFilePaths(const Driver &D, const MultilibSet &Multilibs,
++ const Multilib &Multilib,
++ StringRef InstallPath,
++ ToolChain::path_list &Paths) {
++ if (const auto &PathsCallback = Multilibs.filePathsCallback())
++ for (const auto &Path : PathsCallback(Multilib))
++ addPathIfExists(D, InstallPath + Path, Paths);
++}
++
++kFreeBSD::kFreeBSD(const Driver &D, const llvm::Triple &Triple,
++ const ArgList &Args)
++ : Generic_ELF(D, Triple, Args) {
++ GCCInstallation.init(Triple, Args);
++ Multilibs = GCCInstallation.getMultilibs();
++ std::string SysRoot = computeSysRoot();
++
++ // Cross-compiling binutils and GCC installations (vanilla and openSUSE at
++ // least) put various tools in a triple-prefixed directory off of the parent
++ // of the GCC installation. We use the GCC triple here to ensure that we end
++ // up with tools that support the same amount of cross compiling as the
++ // detected GCC installation. For example, if we find a GCC installation
++ // targeting x86_64, but it is a bi-arch GCC installation, it can also be
++ // used to target i386.
++ // FIXME: This seems unlikely to be Linux-, kFreeBSD- or Hurd-specific.
++ ToolChain::path_list &PPaths = getProgramPaths();
++ PPaths.push_back(Twine(GCCInstallation.getParentLibPath() + "/../" +
++ GCCInstallation.getTriple().str() + "/bin")
++ .str());
++
++#ifdef ENABLE_LINKER_BUILD_ID
++ ExtraOpts.push_back("--build-id");
++#endif
++
++ // The selection of paths to try here is designed to match the patterns which
++ // the GCC driver itself uses, as this is part of the GCC-compatible driver.
++ // This was determined by running GCC in a fake filesystem, creating all
++ // possible permutations of these directories, and seeing which ones it added
++ // to the link paths.
++ path_list &Paths = getFilePaths();
++
++ const std::string OSLibDir = getOSLibDir(Triple, Args);
++ const std::string MultiarchTriple = getMultiarchTriple(D, Triple, SysRoot);
++
++ // Add the multilib suffixed paths where they are available.
++ if (GCCInstallation.isValid()) {
++ const llvm::Triple &GCCTriple = GCCInstallation.getTriple();
++ const std::string &LibPath = GCCInstallation.getParentLibPath();
++ const Multilib &Multilib = GCCInstallation.getMultilib();
++ const MultilibSet &Multilibs = GCCInstallation.getMultilibs();
++
++ // Add toolchain / multilib specific file paths.
++ addMultilibsFilePaths(D, Multilibs, Multilib,
++ GCCInstallation.getInstallPath(), Paths);
++
++ // Sourcery CodeBench MIPS toolchain holds some libraries under
++ // a biarch-like suffix of the GCC installation.
++ addPathIfExists(D, GCCInstallation.getInstallPath() + Multilib.gccSuffix(),
++ Paths);
++
++ // GCC cross compiling toolchains will install target libraries which ship
++ // as part of the toolchain under <prefix>/<triple>/<libdir> rather than as
++ // any part of the GCC installation in
++ // <prefix>/<libdir>/gcc/<triple>/<version>. This decision is somewhat
++ // debatable, but is the reality today. We need to search this tree even
++ // when we have a sysroot somewhere else. It is the responsibility of
++ // whomever is doing the cross build targeting a sysroot using a GCC
++ // installation that is *not* within the system root to ensure two things:
++ //
++ // 1) Any DSOs that are linked in from this tree or from the install path
++ // above must be present on the system root and found via an
++ // appropriate rpath.
++ // 2) There must not be libraries installed into
++ // <prefix>/<triple>/<libdir> unless they should be preferred over
++ // those within the system root.
++ //
++ // Note that this matches the GCC behavior. See the below comment for where
++ // Clang diverges from GCC's behavior.
++ addPathIfExists(D, LibPath + "/../" + GCCTriple.str() + "/lib/../" +
++ OSLibDir + Multilib.osSuffix(),
++ Paths);
++
++ // If the GCC installation we found is inside of the sysroot, we want to
++ // prefer libraries installed in the parent prefix of the GCC installation.
++ // It is important to *not* use these paths when the GCC installation is
++ // outside of the system root as that can pick up unintended libraries.
++ // This usually happens when there is an external cross compiler on the
++ // host system, and a more minimal sysroot available that is the target of
++ // the cross. Note that GCC does include some of these directories in some
++ // configurations but this seems somewhere between questionable and simply
++ // a bug.
++ if (StringRef(LibPath).startswith(SysRoot)) {
++ addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
++ addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
++ }
++ }
++
++ // Similar to the logic for GCC above, if we currently running Clang inside
++ // of the requested system root, add its parent library paths to
++ // those searched.
++ // FIXME: It's not clear whether we should use the driver's installed
++ // directory ('Dir' below) or the ResourceDir.
++ if (StringRef(D.Dir).startswith(SysRoot)) {
++ addPathIfExists(D, D.Dir + "/../lib/" + MultiarchTriple, Paths);
++ addPathIfExists(D, D.Dir + "/../" + OSLibDir, Paths);
++ }
++
++ addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
++ addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
++
++ addPathIfExists(D, SysRoot + "/usr/lib/" + MultiarchTriple, Paths);
++ addPathIfExists(D, SysRoot + "/usr/lib/../" + OSLibDir, Paths);
++
++ // Try walking via the GCC triple path in case of biarch or multiarch GCC
++ // installations with strange symlinks.
++ if (GCCInstallation.isValid()) {
++ addPathIfExists(D,
++ SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
++ "/../../" + OSLibDir,
++ Paths);
++
++ // Add the 'other' biarch variant path
++ Multilib BiarchSibling;
++ if (GCCInstallation.getBiarchSibling(BiarchSibling)) {
++ addPathIfExists(D, GCCInstallation.getInstallPath() +
++ BiarchSibling.gccSuffix(),
++ Paths);
++ }
++
++ // See comments above on the multilib variant for details of why this is
++ // included even from outside the sysroot.
++ const std::string &LibPath = GCCInstallation.getParentLibPath();
++ const llvm::Triple &GCCTriple = GCCInstallation.getTriple();
++ const Multilib &Multilib = GCCInstallation.getMultilib();
++ addPathIfExists(D, LibPath + "/../" + GCCTriple.str() + "/lib" +
++ Multilib.osSuffix(),
++ Paths);
++
++ // See comments above on the multilib variant for details of why this is
++ // only included from within the sysroot.
++ if (StringRef(LibPath).startswith(SysRoot))
++ addPathIfExists(D, LibPath, Paths);
++ }
++
++ // Similar to the logic for GCC above, if we are currently running Clang
++ // inside of the requested system root, add its parent library path to those
++ // searched.
++ // FIXME: It's not clear whether we should use the driver's installed
++ // directory ('Dir' below) or the ResourceDir.
++ if (StringRef(D.Dir).startswith(SysRoot))
++ addPathIfExists(D, D.Dir + "/../lib", Paths);
++
++ addPathIfExists(D, SysRoot + "/lib", Paths);
++ addPathIfExists(D, SysRoot + "/usr/lib", Paths);
++}
++
++bool kFreeBSD::HasNativeLLVMSupport() const { return true; }
++
++Tool *kFreeBSD::buildLinker() const { return new tools::gnutools::Linker(*this); }
++
++Tool *kFreeBSD::buildAssembler() const {
++ return new tools::gnutools::Assembler(*this);
++}
++
++std::string kFreeBSD::computeSysRoot() const {
++ if (!getDriver().SysRoot.empty())
++ return getDriver().SysRoot;
++
++ return std::string();
++}
++
++std::string kFreeBSD::getDynamicLinker(const ArgList &Args) const {
++ const llvm::Triple::ArchType Arch = getArch();
++
++ if (Arch == llvm::Triple::x86_64)
++ return "/lib/ld-kfreebsd-x86-64.so.1";
++
++ if (Arch == llvm::Triple::x86)
++ return "/lib/ld.so.1";
++
++ llvm_unreachable("unsupported architecture");
++}
++
++void kFreeBSD::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
++ ArgStringList &CC1Args) const {
++ const Driver &D = getDriver();
++ std::string SysRoot = computeSysRoot();
++
++ if (DriverArgs.hasArg(clang::driver::options::OPT_nostdinc))
++ return;
++
++ if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
++ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include");
++
++ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
++ SmallString<128> P(D.ResourceDir);
++ llvm::sys::path::append(P, "include");
++ addSystemInclude(DriverArgs, CC1Args, P);
++ }
++
++ if (DriverArgs.hasArg(options::OPT_nostdlibinc))
++ return;
++
++ // Check for configure-time C include directories.
++ StringRef CIncludeDirs(C_INCLUDE_DIRS);
++ if (CIncludeDirs != "") {
++ SmallVector<StringRef, 5> dirs;
++ CIncludeDirs.split(dirs, ":");
++ for (StringRef dir : dirs) {
++ StringRef Prefix =
++ llvm::sys::path::is_absolute(dir) ? StringRef(SysRoot) : "";
++ addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
++ }
++ // addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include");
++ return;
++ }
++
++ // Lacking those, try to detect the correct set of system includes for the
++ // target triple.
++
++ // Add include directories specific to the selected multilib set and multilib.
++ if (GCCInstallation.isValid()) {
++ const auto &Callback = Multilibs.includeDirsCallback();
++ if (Callback) {
++ for (const auto &Path : Callback(GCCInstallation.getMultilib()))
++ addExternCSystemIncludeIfExists(
++ DriverArgs, CC1Args, GCCInstallation.getInstallPath() + Path);
++ }
++ }
++
++ // Implement generic Debian multiarch support.
++ const StringRef X86_64MultiarchIncludeDirs[] = {
++ "/usr/include/x86_64-kfreebsd-gnu"};
++
++ // CHECK
++ const StringRef X86MultiarchIncludeDirs[] = {
++ "/usr/include/i386-kfreebsd-gnu"};
++
++ ArrayRef<StringRef> MultiarchIncludeDirs;
++ switch (getTriple().getArch()) {
++ case llvm::Triple::x86:
++ MultiarchIncludeDirs = X86MultiarchIncludeDirs;
++ break;
++ case llvm::Triple::x86_64:
++ MultiarchIncludeDirs = X86_64MultiarchIncludeDirs;
++ break;
++ default:
++ break;
++ }
++
++ for (StringRef Dir : MultiarchIncludeDirs) {
++ if (D.getVFS().exists(SysRoot + Dir)) {
++ addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + Dir);
++ break;
++ }
++ }
++
++ // Add an include of '/include' directly. This isn't provided by default by
++ // system GCCs, but is often used with cross-compiling GCCs, and harmless to
++ // add even when Clang is acting as-if it were a system compiler.
++ addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/include");
++
++ addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include");
++}
++
++static std::string DetectLibcxxIncludePath(StringRef base) {
++ std::error_code EC;
++ int MaxVersion = 0;
++ std::string MaxVersionString = "";
++ for (llvm::sys::fs::directory_iterator LI(base, EC), LE; !EC && LI != LE;
++ LI = LI.increment(EC)) {
++ StringRef VersionText = llvm::sys::path::filename(LI->path());
++ int Version;
++ if (VersionText[0] == 'v' &&
++ !VersionText.slice(1, StringRef::npos).getAsInteger(10, Version)) {
++ if (Version > MaxVersion) {
++ MaxVersion = Version;
++ MaxVersionString = VersionText;
++ }
++ }
++ }
++ return MaxVersion ? (base + "/" + MaxVersionString).str() : "";
++}
++
++void kFreeBSD::addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const {
++ const std::string& SysRoot = computeSysRoot();
++ const std::string LibCXXIncludePathCandidates[] = {
++ DetectLibcxxIncludePath(getDriver().ResourceDir + "/include/c++"),
++ DetectLibcxxIncludePath(getDriver().Dir + "/../include/c++"),
++ // If this is a development, non-installed, clang, libcxx will
++ // not be found at ../include/c++ but it likely to be found at
++ // one of the following two locations:
++ DetectLibcxxIncludePath(SysRoot + "/usr/local/include/c++"),
++ DetectLibcxxIncludePath(SysRoot + "/usr/include/c++") };
++ for (const auto &IncludePath : LibCXXIncludePathCandidates) {
++ if (IncludePath.empty() || !getVFS().exists(IncludePath))
++ continue;
++ // Use the first candidate that exists.
++ addSystemInclude(DriverArgs, CC1Args, IncludePath);
++ return;
++ }
++}
++
++void kFreeBSD::addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const {
++ // We need a detected GCC installation on kFreeBSD to provide libstdc++'s
++ // headers.
++ if (!GCCInstallation.isValid())
++ return;
++
++ // By default, look for the C++ headers in an include directory adjacent to
++ // the lib directory of the GCC installation. Note that this is expect to be
++ // equivalent to '/usr/include/c++/X.Y' in almost all cases.
++ StringRef LibDir = GCCInstallation.getParentLibPath();
++ StringRef InstallDir = GCCInstallation.getInstallPath();
++ StringRef TripleStr = GCCInstallation.getTriple().str();
++ const Multilib &Multilib = GCCInstallation.getMultilib();
++ const std::string GCCMultiarchTriple = getMultiarchTriple(
++ getDriver(), GCCInstallation.getTriple(), getDriver().SysRoot);
++ const std::string TargetMultiarchTriple =
++ getMultiarchTriple(getDriver(), getTriple(), getDriver().SysRoot);
++ const GCCVersion &Version = GCCInstallation.getVersion();
++
++ // The primary search for libstdc++ supports multiarch variants.
++ if (addLibStdCXXIncludePaths(LibDir.str() + "/../include",
++ "/c++/" + Version.Text, TripleStr,
++ GCCMultiarchTriple, TargetMultiarchTriple,
++ Multilib.includeSuffix(), DriverArgs, CC1Args))
++ return;
++
++ // Otherwise, fall back on a bunch of options which don't use multiarch
++ // layouts for simplicity.
++ const std::string LibStdCXXIncludePathCandidates[] = {
++ // Gentoo is weird and places its headers inside the GCC install,
++ // so if the first attempt to find the headers fails, try these patterns.
++ InstallDir.str() + "/include/g++-v" + Version.Text,
++ InstallDir.str() + "/include/g++-v" + Version.MajorStr + "." +
++ Version.MinorStr,
++ InstallDir.str() + "/include/g++-v" + Version.MajorStr,
++ // Android standalone toolchain has C++ headers in yet another place.
++ LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,
++ // Freescale SDK C++ headers are directly in <sysroot>/usr/include/c++,
++ // without a subdirectory corresponding to the gcc version.
++ LibDir.str() + "/../include/c++",
++ };
++
++ for (const auto &IncludePath : LibStdCXXIncludePathCandidates) {
++ if (addLibStdCXXIncludePaths(IncludePath, /*Suffix*/ "", TripleStr,
++ /*GCCMultiarchTriple*/ "",
++ /*TargetMultiarchTriple*/ "",
++ Multilib.includeSuffix(), DriverArgs, CC1Args))
++ break;
++ }
++}
++
++/* FIXME:
++/home/srs/DEBs/llvm-toolchain-7/llvm-toolchain-7-7.0.1~+rc2-7/clang/lib/Driver/ToolChains/KFreeBSD.cpp:431:15: error: no declaration matches ‘clang::SanitizerMask clang::driver::toolchains::kFreeBSD::getSupportedSanitizers() const’
++ SanitizerMask kFreeBSD::getSupportedSanitizers() const {
++*/
++SanitizerMask kFreeBSD::getSupportedSanitizers() const {
++ const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
++ const bool IsX86_64 = getTriple().getArch() == llvm::Triple::x86_64;
++ SanitizerMask Res = ToolChain::getSupportedSanitizers();
++ // FIXME: Add here!!
++ if (IsX86_64) {
++ Res |= SanitizerKind::DataFlow;
++ Res |= SanitizerKind::Leak;
++ Res |= SanitizerKind::Thread;
++ Res |= SanitizerKind::Efficiency;
++ Res |= SanitizerKind::Scudo;
++ Res |= SanitizerKind::HWAddress;
++ Res |= SanitizerKind::KernelHWAddress;
++ }
++ if (IsX86 || IsX86_64)
++ Res |= SanitizerKind::Function;
++
++ return Res;
++}
++
+Index: llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/KFreeBSD.h
+===================================================================
+--- /dev/null
++++ llvm-toolchain-8_8~+rc2/clang/lib/Driver/ToolChains/KFreeBSD.h
+@@ -0,0 +1,54 @@
++//===--- KFreeBSD.h - kFreeBSD ToolChain Implementations ----------*- C++ -*-===//
++//
++// The LLVM Compiler Infrastructure
++//
++// This file is distributed under the University of Illinois Open Source
++// License. See LICENSE.TXT for details.
++//
++//===----------------------------------------------------------------------===//
++
++#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_KFreeBSD_H
++#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_KFreeBSD_H
++
++#include "Gnu.h"
++#include "clang/Driver/ToolChain.h"
++
++namespace clang {
++namespace driver {
++namespace toolchains {
++
++class LLVM_LIBRARY_VISIBILITY kFreeBSD : public Generic_ELF {
++public:
++ kFreeBSD(const Driver &D, const llvm::Triple &Triple,
++ const llvm::opt::ArgList &Args);
++
++ bool HasNativeLLVMSupport() const override;
++
++ void
++ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const override;
++ void addLibCxxIncludePaths(
++ const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const override;
++ void addLibStdCxxIncludePaths(
++ const llvm::opt::ArgList &DriverArgs,
++ llvm::opt::ArgStringList &CC1Args) const override;
++
++ SanitizerMask getSupportedSanitizers() const override;
++
++ virtual std::string computeSysRoot() const;
++
++ virtual std::string getDynamicLinker(const llvm::opt::ArgList &Args) const;
++
++ std::vector<std::string> ExtraOpts;
++
++protected:
++ Tool *buildAssembler() const override;
++ Tool *buildLinker() const override;
++};
++
++} // end namespace toolchains
++} // end namespace driver
++} // end namespace clang
++
++#endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_KFreeBSD_H
--- /dev/null
+Index: llvm-toolchain-7-7.0.1/unittests/ADT/TripleTest.cpp
+===================================================================
+--- llvm-toolchain-7-7.0.1.orig/unittests/ADT/TripleTest.cpp
++++ llvm-toolchain-7-7.0.1/unittests/ADT/TripleTest.cpp
+@@ -99,6 +99,18 @@ TEST(TripleTest, ParsedIDs) {
+ EXPECT_EQ(Triple::Hurd, T.getOS());
+ EXPECT_EQ(Triple::GNU, T.getEnvironment());
+
++ T = Triple("i386-pc-kfreebsd-gnu");
++ EXPECT_EQ(Triple::x86, T.getArch());
++ EXPECT_EQ(Triple::PC, T.getVendor());
++ EXPECT_EQ(Triple::kFreeBSD, T.getOS());
++ EXPECT_EQ(Triple::GNU, T.getEnvironment());
++
++ T = Triple("x86_64-pc-kfreebsd-gnu");
++ EXPECT_EQ(Triple::x86_64, T.getArch());
++ EXPECT_EQ(Triple::PC, T.getVendor());
++ EXPECT_EQ(Triple::kFreeBSD, T.getOS());
++ EXPECT_EQ(Triple::GNU, T.getEnvironment());
++
+ T = Triple("x86_64-pc-linux-gnu");
+ EXPECT_EQ(Triple::x86_64, T.getArch());
+ EXPECT_EQ(Triple::PC, T.getVendor());
--- /dev/null
+Index: llvm-toolchain-8-8~+rc1/lib/Support/Triple.cpp
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/lib/Support/Triple.cpp
++++ llvm-toolchain-8-8~+rc1/lib/Support/Triple.cpp
+@@ -182,7 +182,7 @@ StringRef Triple::getOSTypeName(OSType K
+ case FreeBSD: return "freebsd";
+ case Fuchsia: return "fuchsia";
+ case IOS: return "ios";
+- case KFreeBSD: return "kfreebsd";
++ case kFreeBSD: return "kfreebsd";
+ case Linux: return "linux";
+ case Lv2: return "lv2";
+ case MacOSX: return "macosx";
+@@ -479,7 +479,7 @@ static Triple::OSType parseOS(StringRef
+ .StartsWith("freebsd", Triple::FreeBSD)
+ .StartsWith("fuchsia", Triple::Fuchsia)
+ .StartsWith("ios", Triple::IOS)
+- .StartsWith("kfreebsd", Triple::KFreeBSD)
++ .StartsWith("kfreebsd", Triple::kFreeBSD)
+ .StartsWith("linux", Triple::Linux)
+ .StartsWith("lv2", Triple::Lv2)
+ .StartsWith("macos", Triple::MacOSX)
+Index: llvm-toolchain-8-8~+rc1/lib/Support/Unix/Path.inc
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/lib/Support/Unix/Path.inc
++++ llvm-toolchain-8-8~+rc1/lib/Support/Unix/Path.inc
+@@ -62,7 +62,7 @@
+ #define FSTATVFS fstatvfs
+ #define STATVFS_F_FRSIZE(vfs) vfs.f_frsize
+ #else
+-#if defined(__OpenBSD__) || defined(__FreeBSD__)
++#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+ #include <sys/mount.h>
+ #include <sys/param.h>
+ #elif defined(__linux__)
--- /dev/null
+Index: llvm-toolchain-8-8~+rc1/lib/Target/X86/X86Subtarget.cpp
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/lib/Target/X86/X86Subtarget.cpp
++++ llvm-toolchain-8-8~+rc1/lib/Target/X86/X86Subtarget.cpp
+@@ -284,7 +284,7 @@ void X86Subtarget::initSubtargetFeatures
+ if (StackAlignOverride)
+ stackAlignment = StackAlignOverride;
+ else if (isTargetDarwin() || isTargetLinux() || isTargetSolaris() ||
+- isTargetKFreeBSD() || In64BitMode)
++ isTargetkFreeBSD() || In64BitMode)
+ stackAlignment = 16;
+
+ // Some CPUs have more overhead for gather. The specified overhead is relative
+Index: llvm-toolchain-8-8~+rc1/lib/Target/X86/X86Subtarget.h
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/lib/Target/X86/X86Subtarget.h
++++ llvm-toolchain-8-8~+rc1/lib/Target/X86/X86Subtarget.h
+@@ -731,7 +731,7 @@ public:
+ bool isTargetMachO() const { return TargetTriple.isOSBinFormatMachO(); }
+
+ bool isTargetLinux() const { return TargetTriple.isOSLinux(); }
+- bool isTargetKFreeBSD() const { return TargetTriple.isOSKFreeBSD(); }
++ bool isTargetkFreeBSD() const { return TargetTriple.isOSkFreeBSD(); }
+ bool isTargetGlibc() const { return TargetTriple.isOSGlibc(); }
+ bool isTargetAndroid() const { return TargetTriple.isAndroid(); }
+ bool isTargetNaCl() const { return TargetTriple.isOSNaCl(); }
--- /dev/null
+Index: llvm-toolchain-8-8~+rc1/lldb/source/Host/freebsd/Host.cpp
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/lldb/source/Host/freebsd/Host.cpp
++++ llvm-toolchain-8-8~+rc1/lldb/source/Host/freebsd/Host.cpp
+@@ -11,6 +11,13 @@
+ #include <sys/types.h>
+
+ #include <sys/exec.h>
++#ifdef __FreeBSD_kernel__
++# ifdef __amd64__
++# include </usr/include/x86_64-kfreebsd-gnu/sys/kglue/sys/types.h>
++# else
++# include </usr/include/i386-kfreebsd-gnu/sys/kglue/sys/types.h>
++# endif
++#endif
+ #include <sys/proc.h>
+ #include <sys/ptrace.h>
+ #include <sys/sysctl.h>
--- /dev/null
+Index: llvm-toolchain-8-8~+rc1/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
++++ llvm-toolchain-8-8~+rc1/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
+@@ -9,7 +9,9 @@
+
+ #include <errno.h>
+ #include <pthread.h>
++#ifndef __FreeBSD_kernel__
+ #include <pthread_np.h>
++#endif
+ #include <stdlib.h>
+ #include <sys/sysctl.h>
+ #include <sys/types.h>
+Index: llvm-toolchain-8-8~+rc1/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
++++ llvm-toolchain-8-8~+rc1/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
+@@ -10,7 +10,9 @@
+
+ #include <errno.h>
+ #include <pthread.h>
++#ifndef __FreeBSD_kernel__
+ #include <pthread_np.h>
++#endif
+ #include <stdlib.h>
+ #include <sys/sysctl.h>
+ #include <sys/types.h>
--- /dev/null
+Index: llvm-toolchain-8-8~+rc1/tools/llvm-shlib/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-8-8~+rc1.orig/tools/llvm-shlib/CMakeLists.txt
++++ llvm-toolchain-8-8~+rc1/tools/llvm-shlib/CMakeLists.txt
+@@ -46,6 +46,7 @@ if(LLVM_BUILD_LLVM_DYLIB)
+ list(REMOVE_DUPLICATES LIB_NAMES)
+ if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU)
+ OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
++ OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "kFreeBSD")
+ OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
+ OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD")
+ OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "Fuchsia")
--- /dev/null
+Index: llvm-toolchain-8_8~svn353935/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
++++ llvm-toolchain-8_8~svn353935/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
+@@ -8,6 +8,7 @@
+ //===----------------------------------------------------------------------===//
+ //
+ // UNSUPPORTED: libcpp-has-no-threads
++// XFAIL: *
+
+ // FLAKY_TEST
+
+Index: llvm-toolchain-8_8~svn353935/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
++++ llvm-toolchain-8_8~svn353935/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
+@@ -9,6 +9,7 @@
+ //
+ // UNSUPPORTED: libcpp-has-no-threads
+ // UNSUPPORTED: c++98, c++03, c++11
++// XFAIL: *
+
+ // <shared_mutex>
+
--- /dev/null
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp
+@@ -14,7 +14,7 @@
+ //
+ // GCC currently fails because it needs -fabi-version=6 to fix mangling of
+ // std::atomic when used with __attribute__((vector(X))).
+-// XFAIL: gcc
++// XFAIL: *
+
+ // <atomic>
+
--- /dev/null
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
+@@ -12,6 +12,8 @@
+ // template<class RealType, size_t bits, class URNG>
+ // RealType generate_canonical(URNG& g);
+
++// XFAIL: *
++
+ #include <random>
+ #include <cassert>
+
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/re/re.traits/isctype.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/re/re.traits/isctype.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/re/re.traits/isctype.pass.cpp
+@@ -16,6 +16,7 @@
+ // TODO(EricWF): This test takes 40+ minutes to build with Clang 3.8 under ASAN or MSAN.
+ // UNSUPPORTED: asan, msan
+
++// XFAIL: *
+
+ #include <regex>
+ #include <cassert>
+Index: llvm-toolchain-snapshot_7~svn337372/libcxxabi/test/catch_multi_level_pointer.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxxabi/test/catch_multi_level_pointer.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxxabi/test/catch_multi_level_pointer.pass.cpp
+@@ -9,6 +9,8 @@
+
+ // UNSUPPORTED: libcxxabi-no-exceptions
+
++// XFAIL: *
++
+ #include <cassert>
+ #include <cstdlib>
+ #include <iostream>
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
+@@ -16,6 +16,8 @@
+
+ // template <class T, class... Args> void construct(T* p, Args&&... args);
+
++// XFAIL: *
++
+ #include <scoped_allocator>
+ #include <cassert>
+ #include <string>
--- /dev/null
+Clang 3.9 regression causes a bug when generating code for
+std::atomic_compare_and_exchange*(std::atomic<long long>,...) without
+optimizations. If same code is compiled with -O2 tests pass without problems.
+Atomics are implement in headers with builtin functions which makes this
+affect application code instead of libc++ library code.
+
+libcxx tests default to -O0 compilation so these test need to be marked failing
+on arm to allow installing packages. Use cases is so borderline failure that it
+shouldn't prevent building the package. (64bit atomics in 32bit mode)
+
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
+@@ -8,6 +8,7 @@
+ //===----------------------------------------------------------------------===//
+ //
+ // UNSUPPORTED: libcpp-has-no-threads
++// XFAIL: arm
+ // ... assertion fails line 34
+
+ // <atomic>
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
+@@ -8,6 +8,7 @@
+ //===----------------------------------------------------------------------===//
+ //
+ // UNSUPPORTED: libcpp-has-no-threads
++// XFAIL: arm
+ // ... assertion fails line 38
+
+ // <atomic>
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
+@@ -8,6 +8,7 @@
+ //===----------------------------------------------------------------------===//
+ //
+ // UNSUPPORTED: libcpp-has-no-threads
++// XFAIL: arm
+ // ... assertion fails line 34
+
+ // <atomic>
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
+@@ -8,6 +8,7 @@
+ //===----------------------------------------------------------------------===//
+ //
+ // UNSUPPORTED: libcpp-has-no-threads
++// XFAIL: arm
+ // ... assertion fails line 38
+
+ // <atomic>
--- /dev/null
+Lock is_always_lock free test fails on i386 because std::atomic is aligned
+to 8 bytes while long long is aligned to 4 bytes. clang can't generate inline
+code for unaligned 8 byte atomics even tough instruction set and gcc support
+it.
+
+That makes it expected thaqt ATOMIC_LLONG_LOCK_FREE and
+std::atomic<long long>::is_always_lock_free don't match on i386. Correct test
+for std::atomic<long long> is to check if target cpu support cmpxchg8 instruction.
+To set instruction support one can check __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 define.
+
+Bug: https://llvm.org/bugs/show_bug.cgi?id=19355
+
+Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
+@@ -20,6 +20,14 @@
+ # error Feature test macro missing.
+ #endif
+
++#if defined(__i386__) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)
++/* Fix for clang setting __GCC_ATOMIC_LLONG_LOCK_FREE incorecctly for x86
++ * https://llvm.org/bugs/show_bug.cgi?id=19355
++ */
++#undef ATOMIC_LLONG_LOCK_FREE
++#define ATOMIC_LLONG_LOCK_FREE 2
++#endif
++
+ template <typename T> void checkAlwaysLockFree() {
+ if (std::atomic<T>::is_always_lock_free)
+ assert(std::atomic<T>().is_lock_free());
--- /dev/null
+Fix arm EHABI code to work. armhf had exception test failing without EHABI support.
+
+No known upstream bug about this. Actual code change is more like workaround than
+something that upstream would accept. Proper fix would be adding _Unwind_Control_Block
+to clang unwind.h. _Unwind_Control_Block should also extend _Unwind_Exception to make
+sure their ABI stays in sync.
+
+No known upstream bug about this.
+
+Index: llvm-toolchain-8_8~svn353935/libcxxabi/src/cxa_exception.cpp
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/libcxxabi/src/cxa_exception.cpp
++++ llvm-toolchain-8_8~svn353935/libcxxabi/src/cxa_exception.cpp
+@@ -277,15 +277,16 @@ __cxa_throw(void *thrown_object, std::ty
+
+ #ifdef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
+-#else
++#elif !LIBCXXABI_ARM_EHABI
+ _Unwind_RaiseException(&exception_header->unwindHeader);
++#else
++ _Unwind_RaiseException(exception_header->unwindHeader);
+ #endif
+ // This only happens when there is no handler, or some unexpected unwinding
+ // error happens.
+ failed_throw(exception_header);
+ }
+
+-
+ // 2.5.3 Exception Handlers
+ /*
+ The adjusted pointer is computed by the personality routine during phase 1
+@@ -548,7 +549,11 @@ void __cxa_end_catch() {
+ // to touch a foreign exception in any way, that is undefined
+ // behavior. They likely can't since the only way to catch
+ // a foreign exception is with catch (...)!
++#if !LIBCXXABI_ARM_EHABI
+ _Unwind_DeleteException(&globals->caughtExceptions->unwindHeader);
++#else
++ _Unwind_DeleteException(globals->caughtExceptions->unwindHeader);
++#endif
+ globals->caughtExceptions = 0;
+ }
+ }
+@@ -605,8 +610,10 @@ void __cxa_rethrow() {
+ }
+ #ifdef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
+-#else
++#elif !LIBCXXABI_ARM_EHABI
+ _Unwind_RaiseException(&exception_header->unwindHeader);
++#else
++ _Unwind_RaiseException(exception_header->unwindHeader);
+ #endif
+
+ // If we get here, some kind of unwinding error has occurred.
+@@ -730,8 +737,10 @@ __cxa_rethrow_primary_exception(void* th
+ dep_exception_header->unwindHeader.exception_cleanup = dependent_exception_cleanup;
+ #ifdef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_SjLj_RaiseException(&dep_exception_header->unwindHeader);
++#elif !LIBCXXABI_ARM_EHABI
++ _Unwind_RaiseException(&dep_exception_header->unwindHeader);
+ #else
+- _Unwind_RaiseException(&dep_exception_header->unwindHeader);
++ _Unwind_RaiseException(dep_exception_header->unwindHeader);
+ #endif
+ // Some sort of unwinding error. Note that terminate is a handler.
+ __cxa_begin_catch(&dep_exception_header->unwindHeader);
+Index: llvm-toolchain-8_8~svn353935/libcxxabi/src/cxa_exception.hpp
+===================================================================
+--- llvm-toolchain-8_8~svn353935.orig/libcxxabi/src/cxa_exception.hpp
++++ llvm-toolchain-8_8~svn353935/libcxxabi/src/cxa_exception.hpp
+@@ -28,6 +28,45 @@ uint64_t __getExceptionClass (const _Un
+ void __setExceptionClass ( _Unwind_Exception*, uint64_t);
+ bool __isOurExceptionClass(const _Unwind_Exception*);
+
++#if LIBCXXABI_ARM_EHABI
++// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h)
++#if defined(__clang__)
++struct _Unwind_Control_Block
++{
++ uint64_t exception_class;
++ void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
++ struct {
++ _Unwind_Word reserved1;
++ _Unwind_Word reserved2;
++ _Unwind_Word reserved3;
++ _Unwind_Word reserved4;
++ _Unwind_Word reserved5;
++ } unwinder_cache;
++ struct {
++ _Unwind_Word sp;
++ _Unwind_Word bitpattern[5];
++ } barrier_cache;
++ struct {
++ _Unwind_Word bitpattern[4];
++ } cleanup_cache;
++ struct {
++ _Unwind_Word fnstart;
++ _Unwind_Word *ehtp;
++ _Unwind_Word additional;
++ _Unwind_Word reserved1;
++ } pr_cache;
++ long long int :0;
++ operator _Unwind_Exception*() noexcept
++ {
++ return reinterpret_cast<_Unwind_Exception*>(this);
++ }
++};
++
++#endif
++
++#define _Unwind_Exception _Unwind_Control_Block
++#endif
++
+ struct _LIBCXXABI_HIDDEN __cxa_exception {
+ #if defined(__LP64__) || defined(_LIBCXXABI_ARM_EHABI)
+ // This is a new field to support C++ 0x exception_ptr.
--- /dev/null
+Powerpc has extended double that doesn't match x86 coding. Power format would
+need special tests to verify correctness but for now it is enough to prevent
+incorrect test from running.
+
+Index: llvm-toolchain-snapshot_7~svn337372/libcxxabi/test/test_demangle.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_7~svn337372.orig/libcxxabi/test/test_demangle.pass.cpp
++++ llvm-toolchain-snapshot_7~svn337372svn337372/libcxxabi/test/test_demangle.pass.cpp
+@@ -29648,7 +29648,7 @@ const char* invalid_cases[] =
+ "NSoERj5E=Y1[uM:ga",
+ "Aon_PmKVPDk7?fg4XP5smMUL6;<WsI_mgbf23cCgsHbT<l8EE\0uVRkNOoXDrgdA4[8IU>Vl<>IL8ayHpiVDDDXTY;^o9;i",
+ "_ZNSt16allocator_traitsISaIN4llvm3sys2fs18directory_iteratorEEE9constructIS3_IS3_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS4_PT_DpOS7_",
+-#if !LDBL_FP80
++#if !LDBL_FP80 && __LDBL_MANT_DIG__ < 64
+ "_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c",
+ #endif
+ // The following test cases were found by libFuzzer+ASAN
--- /dev/null
+Fix arm EHABI code to work. armhf had exception test failing without EHABI support.
+
+No known upstream bug about this. Actual code change is more like workaround than
+something that upstream would accept. Proper fix would be adding _Unwind_Control_Block
+to clang unwind.h. _Unwind_Control_Block should also extend _Unwind_Exception to make
+sure their ABI stays in sync.
+
+No known upstream bug about this.
+
+Index: llvm-toolchain-snapshot_8~svn344157/libcxxabi/src/cxa_exception.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn344157.orig/libcxxabi/src/cxa_exception.cpp
++++ llvm-toolchain-snapshot_8~svn344157/libcxxabi/src/cxa_exception.cpp
+@@ -277,15 +277,16 @@ __cxa_throw(void *thrown_object, std::ty
+
+ #ifdef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
+-#else
++#elif !LIBCXXABI_ARM_EHABI
+ _Unwind_RaiseException(&exception_header->unwindHeader);
++#else
++ _Unwind_RaiseException(exception_header->unwindHeader);
+ #endif
+ // This only happens when there is no handler, or some unexpected unwinding
+ // error happens.
+ failed_throw(exception_header);
+ }
+
+-
+ // 2.5.3 Exception Handlers
+ /*
+ The adjusted pointer is computed by the personality routine during phase 1
+@@ -548,7 +549,11 @@ void __cxa_end_catch() {
+ // to touch a foreign exception in any way, that is undefined
+ // behavior. They likely can't since the only way to catch
+ // a foreign exception is with catch (...)!
++#if !LIBCXXABI_ARM_EHABI
+ _Unwind_DeleteException(&globals->caughtExceptions->unwindHeader);
++#else
++ _Unwind_DeleteException(globals->caughtExceptions->unwindHeader);
++#endif
+ globals->caughtExceptions = 0;
+ }
+ }
+@@ -605,8 +610,10 @@ void __cxa_rethrow() {
+ }
+ #ifdef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
+-#else
++#elif !LIBCXXABI_ARM_EHABI
+ _Unwind_RaiseException(&exception_header->unwindHeader);
++#else
++ _Unwind_RaiseException(exception_header->unwindHeader);
+ #endif
+
+ // If we get here, some kind of unwinding error has occurred.
+@@ -730,8 +737,10 @@ __cxa_rethrow_primary_exception(void* th
+ dep_exception_header->unwindHeader.exception_cleanup = dependent_exception_cleanup;
+ #ifdef __USING_SJLJ_EXCEPTIONS__
+ _Unwind_SjLj_RaiseException(&dep_exception_header->unwindHeader);
++#elif !LIBCXXABI_ARM_EHABI
++ _Unwind_RaiseException(&dep_exception_header->unwindHeader);
+ #else
+- _Unwind_RaiseException(&dep_exception_header->unwindHeader);
++ _Unwind_RaiseException(dep_exception_header->unwindHeader);
+ #endif
+ // Some sort of unwinding error. Note that terminate is a handler.
+ __cxa_begin_catch(&dep_exception_header->unwindHeader);
+Index: llvm-toolchain-snapshot_8~svn344157/libcxxabi/src/cxa_exception.hpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn344157.orig/libcxxabi/src/cxa_exception.hpp
++++ llvm-toolchain-snapshot_8~svn344157/libcxxabi/src/cxa_exception.hpp
+@@ -28,6 +28,45 @@ uint64_t __getExceptionClass (const _Un
+ void __setExceptionClass ( _Unwind_Exception*, uint64_t);
+ bool __isOurExceptionClass(const _Unwind_Exception*);
+
++#if LIBCXXABI_ARM_EHABI
++// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h)
++#if defined(__clang__)
++struct _Unwind_Control_Block
++{
++ uint64_t exception_class;
++ void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
++ struct {
++ _Unwind_Word reserved1;
++ _Unwind_Word reserved2;
++ _Unwind_Word reserved3;
++ _Unwind_Word reserved4;
++ _Unwind_Word reserved5;
++ } unwinder_cache;
++ struct {
++ _Unwind_Word sp;
++ _Unwind_Word bitpattern[5];
++ } barrier_cache;
++ struct {
++ _Unwind_Word bitpattern[4];
++ } cleanup_cache;
++ struct {
++ _Unwind_Word fnstart;
++ _Unwind_Word *ehtp;
++ _Unwind_Word additional;
++ _Unwind_Word reserved1;
++ } pr_cache;
++ long long int :0;
++ operator _Unwind_Exception*() noexcept
++ {
++ return reinterpret_cast<_Unwind_Exception*>(this);
++ }
++};
++
++#endif
++
++#define _Unwind_Exception _Unwind_Control_Block
++#endif
++
+ struct _LIBCXXABI_HIDDEN __cxa_exception {
+ #if defined(__LP64__) || defined(_LIBCXXABI_ARM_EHABI)
+ // This is a new field to support C++ 0x exception_ptr.
--- /dev/null
+Powerpc has extended double that doesn't match x86 coding. Power format would
+need special tests to verify correctness but for now it is enough to prevent
+incorrect test from running.
+
+Index: llvm-toolchain-snapshot_8~svn342269/libcxxabi/test/test_demangle.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/libcxxabi/test/test_demangle.pass.cpp
++++ llvm-toolchain-snapshot_8~svn342269/libcxxabi/test/test_demangle.pass.cpp
+@@ -29797,7 +29797,7 @@ const char* invalid_cases[] =
+ "NSoERj5E=Y1[uM:ga",
+ "Aon_PmKVPDk7?fg4XP5smMUL6;<WsI_mgbf23cCgsHbT<l8EE\0uVRkNOoXDrgdA4[8IU>Vl<>IL8ayHpiVDDDXTY;^o9;i",
+ "_ZNSt16allocator_traitsISaIN4llvm3sys2fs18directory_iteratorEEE9constructIS3_IS3_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS4_PT_DpOS7_",
+-#if !LDBL_FP80
++#if !LDBL_FP80 && __LDBL_MANT_DIG__ < 64
+ "_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c",
+ #endif
+ // The following test cases were found by libFuzzer+ASAN
--- /dev/null
+---
+ lldb/scripts/Python/finishSwigPythonLLDB.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_8~svn339515/lldb/scripts/Python/finishSwigPythonLLDB.py
+===================================================================
+--- llvm-toolchain-snapshot_8~svn339515.orig/lldb/scripts/Python/finishSwigPythonLLDB.py
++++ llvm-toolchain-snapshot_8~svn339515/lldb/scripts/Python/finishSwigPythonLLDB.py
+@@ -443,7 +443,7 @@ def make_symlink_liblldb(
+ if eOSType == utilsOsType.EnumOsType.Darwin:
+ strLibFileExtn = ".dylib"
+ else:
+- strLibFileExtn = ".so"
++ strLibFileExtn = "-8.so"
+ strSrc = os.path.join(vstrLldbLibDir, "liblldb" + strLibFileExtn)
+
+ bOk, strErrMsg = make_symlink(
--- /dev/null
+---
+ lldb/source/API/CMakeLists.txt | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn350421/lldb/source/API/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn350421.orig/lldb/source/API/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn350421/lldb/source/API/CMakeLists.txt
+@@ -9,7 +9,12 @@ if(NOT LLDB_DISABLE_PYTHON)
+ set(lldb_python_wrapper ${lldb_scripts_dir}/LLDBWrapPython.cpp)
+ endif()
+
+-add_lldb_library(liblldb SHARED
++set(output_name lldb)
++if (CMAKE_SYSTEM_NAME MATCHES "Windows")
++ set(output_name liblldb)
++endif()
++
++add_lldb_library(liblldb SHARED OUTPUT_NAME ${output_name} SONAME
+ SBAddress.cpp
+ SBAttachInfo.cpp
+ SBBlock.cpp
+@@ -120,7 +125,7 @@ endif()
+
+ set_target_properties(liblldb
+ PROPERTIES
+- VERSION ${LLDB_VERSION}
++ VERSION 1
+ )
+
+ if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
+@@ -144,11 +149,6 @@ if ( CMAKE_SYSTEM_NAME MATCHES "Windows"
+ if (MSVC AND NOT LLDB_DISABLE_PYTHON)
+ target_link_libraries(liblldb PRIVATE ${PYTHON_LIBRARY})
+ endif()
+-else()
+- set_target_properties(liblldb
+- PROPERTIES
+- OUTPUT_NAME lldb
+- )
+ endif()
+
+ if(LLDB_BUILD_FRAMEWORK)
--- /dev/null
+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 definition 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.
+
+Index: llvm-toolchain-snapshot_8~svn349668/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349668.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
++++ llvm-toolchain-snapshot_8~svn349668/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
+@@ -33,13 +33,14 @@
+ #include "lldb/Utility/StreamString.h"
+ #include "llvm/ADT/SmallString.h"
+ #include "llvm/Support/ScopedPrinter.h"
++#include "llvm/Config/llvm-config.h"
+
+ #include "ProcessGDBRemoteLog.h"
+
+ #if defined(__APPLE__)
+ #define DEBUGSERVER_BASENAME "debugserver"
+ #else
+-#define DEBUGSERVER_BASENAME "lldb-server"
++# define DEBUGSERVER_BASENAME "lldb-server-" LLVM_VERSION_STRING
+ #endif
+
+ #if defined(__APPLE__)
--- /dev/null
+Index: llvm-toolchain-snapshot_5.0~svn306792/lldb/scripts/lldb.swig
+===================================================================
+--- llvm-toolchain-snapshot_5.0~svn306792.orig/lldb/scripts/lldb.swig
++++ llvm-toolchain-snapshot_5.0~svn306792/lldb/scripts/lldb.swig
+@@ -50,7 +50,7 @@ except ImportError:
+ %enddef
+ // These versions will not generate working python modules, so error out early.
+ #if SWIG_VERSION >= 0x030009 && SWIG_VERSION < 0x030011
+-#error Swig versions 3.0.9 and 3.0.10 are incompatible with lldb.
++#warning Swig versions 3.0.9 and 3.0.10 are incompatible with lldb.
+ #endif
+
+ // The name of the module to be created.
--- /dev/null
+Description: Link with -latomic when mips* processor is detected
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2016-07-27
+
+---
+ lldb/cmake/LLDBDependencies.cmake | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+Index: llvm-toolchain-snapshot_8~svn349138/lldb/source/Utility/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/lldb/source/Utility/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn349138/lldb/source/Utility/CMakeLists.txt
+@@ -32,6 +32,14 @@ endif()
+
+ list(APPEND LLDB_SYSTEM_LIBS ${system_libs})
+
++if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips" OR
++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mipsel" OR
++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64el" OR
++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "powerpcspe")
++ list(APPEND LLDB_SYSTEM_LIBS atomic)
++endif()
++
++
+ if (LLVM_BUILD_STATIC)
+ if (NOT LLDB_DISABLE_PYTHON)
+ list(APPEND LLDB_SYSTEM_LIBS python2.7 util)
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn342269/lldb/tools/argdumper/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/lldb/tools/argdumper/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn342269/lldb/tools/argdumper/CMakeLists.txt
+@@ -4,3 +4,7 @@ add_lldb_tool(lldb-argdumper INCLUDE_IN_
+ LINK_LIBS
+ lldbUtility
+ )
++
++install(TARGETS lldb-argdumper
++ RUNTIME DESTINATION bin)
++
+Index: llvm-toolchain-snapshot_8~svn342269/lldb/tools/lldb-server/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/lldb/tools/lldb-server/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn342269/lldb/tools/lldb-server/CMakeLists.txt
+@@ -64,3 +64,7 @@ add_lldb_tool(lldb-server INCLUDE_IN_SUI
+ )
+
+ target_link_libraries(lldb-server PRIVATE ${LLDB_SYSTEM_LIBS})
++
++install(TARGETS lldb-server
++ RUNTIME DESTINATION bin)
++
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn349138/clang/lib/Driver/ToolChains/Arch/Mips.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/lib/Driver/ToolChains/Arch/Mips.cpp
++++ llvm-toolchain-snapshot_8~svn349138/clang/lib/Driver/ToolChains/Arch/Mips.cpp
+@@ -457,10 +457,10 @@ bool mips::isFP64ADefault(const llvm::Tr
+
+ bool mips::isFPXXDefault(const llvm::Triple &Triple, StringRef CPUName,
+ StringRef ABIName, mips::FloatABI FloatABI) {
+- if (Triple.getVendor() != llvm::Triple::ImaginationTechnologies &&
++/* if (Triple.getVendor() != llvm::Triple::ImaginationTechnologies &&
+ Triple.getVendor() != llvm::Triple::MipsTechnologies &&
+ !Triple.isAndroid())
+- return false;
++ return false;*/
+
+ if (ABIName != "32")
+ return false;
--- /dev/null
+Index: llvm-toolchain-8-8~+rc5/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc
+===================================================================
+--- llvm-toolchain-8-8~+rc5.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc
++++ llvm-toolchain-8-8~+rc5/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cc
+@@ -29,7 +29,7 @@
+ // are not defined anywhere in userspace headers. Fake them. This seems to work
+ // fine with newer headers, too.
+ #include <linux/posix_types.h>
+-#if defined(__x86_64__) || defined(__mips__)
++#if defined(__x86_64__)
+ #include <sys/stat.h>
+ #else
+ #define ino_t __kernel_ino_t
+Index: llvm-toolchain-8-8~+rc5/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+===================================================================
+--- llvm-toolchain-8-8~+rc5.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ llvm-toolchain-8-8~+rc5/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -84,7 +84,7 @@ namespace __sanitizer {
+ #elif defined(__mips__)
+ const unsigned struct_kernel_stat_sz =
+ SANITIZER_ANDROID ? FIRST_32_SECOND_64(104, 128) :
+- FIRST_32_SECOND_64(160, 216);
++ FIRST_32_SECOND_64(144, 104);
+ const unsigned struct_kernel_stat64_sz = 104;
+ #elif defined(__s390__) && !defined(__s390x__)
+ const unsigned struct_kernel_stat_sz = 64;
--- /dev/null
+Description: cgi method is deprecated, use html instead
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2020-02-25
+
+Index: llvm-toolchain-8-8.0.1/tools/opt-viewer/opt-viewer.py
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/tools/opt-viewer/opt-viewer.py
++++ llvm-toolchain-8-8.0.1/tools/opt-viewer/opt-viewer.py
+@@ -3,7 +3,7 @@
+ from __future__ import print_function
+
+ import argparse
+-import cgi
++import html
+ import codecs
+ import errno
+ import functools
+@@ -169,7 +169,7 @@
+ self.max_hottest_remarks_on_index = max_hottest_remarks_on_index
+
+ def render_entry(self, r, odd):
+- escaped_name = cgi.escape(r.DemangledFunctionName)
++ escaped_name = html.escape(r.DemangledFunctionName)
+ print(u'''
+ <tr>
+ <td class=\"column-entry-{odd}\"><a href={r.Link}>{r.DebugLocString}</a></td>
+Index: llvm-toolchain-8-8.0.1/tools/opt-viewer/optrecord.py
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/tools/opt-viewer/optrecord.py
++++ llvm-toolchain-8-8.0.1/tools/opt-viewer/optrecord.py
+@@ -10,7 +10,7 @@
+ print("For faster parsing, you may want to install libYAML for PyYAML")
+ from yaml import Loader
+
+-import cgi
++import html
+ from collections import defaultdict
+ import fnmatch
+ import functools
+@@ -156,7 +156,7 @@
+ (key, value) = list(mapping.items())[0]
+
+ if key == 'Caller' or key == 'Callee' or key == 'DirectCallee':
+- value = cgi.escape(self.demangle(value))
++ value = html.escape(self.demangle(value))
+
+ if dl and key != 'Caller':
+ dl_dict = dict(list(dl))
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn342269/openmp/runtime/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/openmp/runtime/CMakeLists.txt
++++ llvm-toolchain-snapshot_8~svn342269/openmp/runtime/CMakeLists.txt
+@@ -355,7 +355,8 @@ else()
+ set(LIBOMP_INSTALL_KIND ARCHIVE)
+ endif()
+
+-set(LIBOMP_LIB_FILE ${LIBOMP_LIB_NAME}${LIBOMP_LIBRARY_SUFFIX})
++set(LIBOMP_LIB_FILE ${LIBOMP_LIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${LIBOMP_VERSION_MAJOR})
++
+
+ # Optional backwards compatibility aliases.
+ set(LIBOMP_INSTALL_ALIASES TRUE CACHE BOOL
--- /dev/null
+Index: llvm-toolchain-7-7/openmp/runtime/src/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-7-7.orig/openmp/runtime/src/CMakeLists.txt
++++ llvm-toolchain-7-7/openmp/runtime/src/CMakeLists.txt
+@@ -174,7 +174,8 @@ endif()
+
+ # Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
+ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
+-target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS})
++target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${CMAKE_DL_LIBS}
++ "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports_so.txt")
+
+ # Create *.inc before compiling any sources
+ # objects depend on : .inc files
--- /dev/null
+Index: llvm-toolchain-snapshot_7~svn335949/openmp/runtime/tools/check-execstack.pl
+===================================================================
+--- llvm-toolchain-snapshot_7~svn335949.orig/openmp/runtime/tools/check-execstack.pl
++++ llvm-toolchain-snapshot_7~svn335949/openmp/runtime/tools/check-execstack.pl
+@@ -46,7 +46,8 @@ sub execstack($) {
+ # GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x4
+ # Linux* OS Intel(R) 64:
+ # GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x8
+- if ( $stack[ 0 ] !~ m{\A\s*(?:GNU_)?STACK(?:\s+0x[0-9a-f]+){5}\s+([R ][W ][E ])\s+0x[0-9a-f]+\s*\z} ) {
++# if ( $stack[ 0 ] !~ m{\A\s*(?:GNU_)?STACK(?:\s+0x[0-9a-f]+){5}\s+([R ][W ][E ])\s+0x[0-9a-f]+\s*\z} ) {
++ if ( $stack[ 0 ] !~ m{\A\s*(?:GNU_)?STACK(?:\s+0x[0-9a-f]+){5}\s+([R ][W ][E ])\s+0(?:x[0-9a-f]+)*\s*\z} ) {
+ runtime_error( "$file: Cannot parse stack segment line:", ">>> $stack[ 0 ]" );
+ }; # if
+ my $attrs = $1;
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn342269/openmp/runtime/src/kmp_affinity.h
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/openmp/runtime/src/kmp_affinity.h
++++ llvm-toolchain-snapshot_8~svn342269/openmp/runtime/src/kmp_affinity.h
+@@ -211,28 +211,29 @@ public:
+ #elif __NR_sched_getaffinity != 223
+ #error Wrong code for getaffinity system call.
+ #endif /* __NR_sched_getaffinity */
+-#elif KMP_ARCH_MIPS
+-#ifndef __NR_sched_setaffinity
+-#define __NR_sched_setaffinity 4239
+-#elif __NR_sched_setaffinity != 4239
+-#error Wrong code for setaffinity system call.
+-#endif /* __NR_sched_setaffinity */
+-#ifndef __NR_sched_getaffinity
+-#define __NR_sched_getaffinity 4240
+-#elif __NR_sched_getaffinity != 4240
+-#error Wrong code for getaffinity system call.
+-#endif /* __NR_sched_getaffinity */
+-#elif KMP_ARCH_MIPS64
+-#ifndef __NR_sched_setaffinity
+-#define __NR_sched_setaffinity 5195
+-#elif __NR_sched_setaffinity != 5195
+-#error Wrong code for setaffinity system call.
+-#endif /* __NR_sched_setaffinity */
+-#ifndef __NR_sched_getaffinity
+-#define __NR_sched_getaffinity 5196
+-#elif __NR_sched_getaffinity != 5196
+-#error Wrong code for getaffinity system call.
+-#endif /* __NR_sched_getaffinity */
++# elif KMP_ARCH_MIPS
++# ifndef __NR_sched_setaffinity
++# define __NR_sched_setaffinity 4239
++# elif __NR_sched_setaffinity != 4239
++# error Wrong code for setaffinity system call.
++# endif /* __NR_sched_setaffinity */
++# ifndef __NR_sched_getaffinity
++# define __NR_sched_getaffinity 4240
++# elif __NR_sched_getaffinity != 4240
++# error Wrong code for getaffinity system call.
++# endif /* __NR_sched_getaffinity */
++# elif KMP_ARCH_MIPS64
++# ifndef __NR_sched_setaffinity
++# define __NR_sched_setaffinity 5195
++# elif __NR_sched_setaffinity != 5195
++# error Wrong code for setaffinity system call.
++# endif /* __NR_sched_setaffinity */
++# ifndef __NR_sched_getaffinity
++# define __NR_sched_getaffinity 5196
++# elif __NR_sched_getaffinity != 5196
++# error Wrong code for getaffinity system call.
++# endif /* __NR_sched_getaffinity */
++# else
+ #error Unknown or unsupported architecture
+ #endif /* KMP_ARCH_* */
+ class KMPNativeAffinity : public KMPAffinity {
--- /dev/null
+Description: Add -m(no-)spe, and e500 CPU definitions and support to clang
+Author: Justin Hibbits <jrh29@alumni.cwru.edu>
+Origin: https://reviews.llvm.org/D49754
+Last-Update: 2018-12-04
+
+Index: llvm-toolchain-snapshot_8~svn349138/clang/include/clang/Driver/Options.td
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/include/clang/Driver/Options.td
++++ llvm-toolchain-snapshot_8~svn349138/clang/include/clang/Driver/Options.td
+@@ -2142,6 +2142,8 @@ def faltivec : Flag<["-"], "faltivec">,
+ def fno_altivec : Flag<["-"], "fno-altivec">, Group<f_Group>, Flags<[DriverOption]>;
+ def maltivec : Flag<["-"], "maltivec">, Group<m_ppc_Features_Group>;
+ def mno_altivec : Flag<["-"], "mno-altivec">, Group<m_ppc_Features_Group>;
++def mspe : Flag<["-"], "mspe">, Group<m_ppc_Features_Group>;
++def mno_spe : Flag<["-"], "mno-spe">, Group<m_ppc_Features_Group>;
+ def mvsx : Flag<["-"], "mvsx">, Group<m_ppc_Features_Group>;
+ def mno_vsx : Flag<["-"], "mno-vsx">, Group<m_ppc_Features_Group>;
+ def msecure_plt : Flag<["-"], "msecure-plt">, Group<m_ppc_Features_Group>;
+Index: llvm-toolchain-snapshot_8~svn349138/clang/lib/Basic/Targets/PPC.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/lib/Basic/Targets/PPC.cpp
++++ llvm-toolchain-snapshot_8~svn349138/clang/lib/Basic/Targets/PPC.cpp
+@@ -54,6 +54,8 @@ bool PPCTargetInfo::handleTargetFeatures
+ HasFloat128 = true;
+ } else if (Feature == "+power9-vector") {
+ HasP9Vector = true;
++ } else if (Feature == "+spe") {
++ HasSPE = true;
+ }
+ // TODO: Finish this list and add an assert that we've handled them
+ // all.
+@@ -161,6 +163,8 @@ void PPCTargetInfo::getTargetDefines(con
+ Builder.defineMacro("__VEC__", "10206");
+ Builder.defineMacro("__ALTIVEC__");
+ }
++ if (HasSPE)
++ Builder.defineMacro("__SPE__");
+ if (HasVSX)
+ Builder.defineMacro("__VSX__");
+ if (HasP8Vector)
+@@ -334,6 +338,7 @@ bool PPCTargetInfo::hasFeature(StringRef
+ .Case("extdiv", HasExtDiv)
+ .Case("float128", HasFloat128)
+ .Case("power9-vector", HasP9Vector)
++ .Case("spe", HasSPE)
+ .Default(false);
+ }
+
+@@ -443,16 +448,16 @@ ArrayRef<TargetInfo::AddlRegName> PPCTar
+ }
+
+ static constexpr llvm::StringLiteral ValidCPUNames[] = {
+- {"generic"}, {"440"}, {"450"}, {"601"}, {"602"},
+- {"603"}, {"603e"}, {"603ev"}, {"604"}, {"604e"},
+- {"620"}, {"630"}, {"g3"}, {"7400"}, {"g4"},
+- {"7450"}, {"g4+"}, {"750"}, {"970"}, {"g5"},
+- {"a2"}, {"a2q"}, {"e500mc"}, {"e5500"}, {"power3"},
+- {"pwr3"}, {"power4"}, {"pwr4"}, {"power5"}, {"pwr5"},
+- {"power5x"}, {"pwr5x"}, {"power6"}, {"pwr6"}, {"power6x"},
+- {"pwr6x"}, {"power7"}, {"pwr7"}, {"power8"}, {"pwr8"},
+- {"power9"}, {"pwr9"}, {"powerpc"}, {"ppc"}, {"powerpc64"},
+- {"ppc64"}, {"powerpc64le"}, {"ppc64le"},
++ {"generic"}, {"440"}, {"450"}, {"601"}, {"602"},
++ {"603"}, {"603e"}, {"603ev"}, {"604"}, {"604e"},
++ {"620"}, {"630"}, {"g3"}, {"7400"}, {"g4"},
++ {"7450"}, {"g4+"}, {"750"}, {"970"}, {"g5"},
++ {"a2"}, {"a2q"}, {"e500"}, {"e500mc"}, {"e5500"},
++ {"power3"}, {"pwr3"}, {"power4"}, {"pwr4"}, {"power5"},
++ {"pwr5"}, {"power5x"}, {"pwr5x"}, {"power6"}, {"pwr6"},
++ {"power6x"}, {"pwr6x"}, {"power7"}, {"pwr7"}, {"power8"},
++ {"pwr8"}, {"power9"}, {"pwr9"}, {"powerpc"}, {"ppc"},
++ {"powerpc64"}, {"ppc64"}, {"powerpc64le"}, {"ppc64le"},
+ };
+
+ bool PPCTargetInfo::isValidCPUName(StringRef Name) const {
+Index: llvm-toolchain-snapshot_8~svn349138/clang/lib/Basic/Targets/PPC.h
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/lib/Basic/Targets/PPC.h
++++ llvm-toolchain-snapshot_8~svn349138/clang/lib/Basic/Targets/PPC.h
+@@ -45,7 +45,8 @@ class LLVM_LIBRARY_VISIBILITY PPCTargetI
+ ArchDefinePwr8 = 1 << 12,
+ ArchDefinePwr9 = 1 << 13,
+ ArchDefineA2 = 1 << 14,
+- ArchDefineA2q = 1 << 15
++ ArchDefineA2q = 1 << 15,
++ ArchDefine500v2 = 1 << 16
+ } ArchDefineTypes;
+
+
+@@ -66,6 +67,7 @@ class LLVM_LIBRARY_VISIBILITY PPCTargetI
+ bool HasBPERMD = false;
+ bool HasExtDiv = false;
+ bool HasP9Vector = false;
++ bool HasSPE = false;
+
+ protected:
+ std::string ABI;
+@@ -145,6 +147,8 @@ public:
+ ArchDefinePwr6x | ArchDefinePwr6 | ArchDefinePwr5x |
+ ArchDefinePwr5 | ArchDefinePwr4 | ArchDefinePpcgr |
+ ArchDefinePpcsq)
++ .Cases("e500", "e500v2",
++ ArchDefineName | ArchDefine500v2)
+ .Default(ArchDefineNone);
+ }
+ return CPUKnown;
+Index: llvm-toolchain-snapshot_8~svn349138/clang/test/Driver/ppc-features.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/test/Driver/ppc-features.cpp
++++ llvm-toolchain-snapshot_8~svn349138/clang/test/Driver/ppc-features.cpp
+@@ -168,6 +168,9 @@
+ // RUN: %clang -target powerpc64-unknown-linux-gnu %s -mno-invariant-function-descriptors -minvariant-function-descriptors -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-INVFUNCDESC %s
+ // CHECK-INVFUNCDESC: "-target-feature" "+invariant-function-descriptors"
+
++// RUN: %clang -target powerpc-unknown-linux-gnu %s -mno-spe -mspe -### -o %t.o 2>&1 | FileCheck -check-prefix=CHECK-SPE %s
++// CHECK-SPE: "-target-feature" "+spe"
++
+ // Assembler features
+ // RUN: %clang -target powerpc64-unknown-linux-gnu %s -### -o %t.o -no-integrated-as 2>&1 | FileCheck -check-prefix=CHECK_BE_AS_ARGS %s
+ // CHECK_BE_AS_ARGS: "-mppc64"
+Index: llvm-toolchain-snapshot_8~svn349138/clang/test/Misc/target-invalid-cpu-note.c
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/test/Misc/target-invalid-cpu-note.c
++++ llvm-toolchain-snapshot_8~svn349138/clang/test/Misc/target-invalid-cpu-note.c
+@@ -79,7 +79,7 @@
+ // PPC: error: unknown target CPU 'not-a-cpu'
+ // PPC: note: valid target CPU values are: generic, 440, 450, 601, 602, 603,
+ // PPC-SAME: 603e, 603ev, 604, 604e, 620, 630, g3, 7400, g4, 7450, g4+, 750,
+-// PPC-SAME: 970, g5, a2, a2q, e500mc, e5500, power3, pwr3, power4, pwr4,
++// PPC-SAME: 970, g5, a2, a2q, e500, e500mc, e5500, power3, pwr3, power4, pwr4,
+ // PPC-SAME: power5, pwr5, power5x, pwr5x, power6, pwr6, power6x, pwr6x, power7,
+ // PPC-SAME: pwr7, power8, pwr8, power9, pwr9, powerpc, ppc, powerpc64, ppc64,
+ // PPC-SAME: powerpc64le, ppc64le
+Index: llvm-toolchain-snapshot_8~svn349138/clang/test/Preprocessor/init.c
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/test/Preprocessor/init.c
++++ llvm-toolchain-snapshot_8~svn349138/clang/test/Preprocessor/init.c
+@@ -7016,6 +7016,10 @@
+ //
+ // PPC32-LINUX-NOT: _CALL_LINUX
+ //
++// RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-unknown-linux-gnu -target-feature +spe < /dev/null | FileCheck -match-full-lines -check-prefix PPC32-SPE %s
++//
++// PPC32-SPE:#define __SPE__ 1
++//
+ // RUN: %clang_cc1 -E -dM -ffreestanding -triple=powerpc-apple-darwin8 < /dev/null | FileCheck -match-full-lines -check-prefix PPC-DARWIN %s
+ //
+ // PPC-DARWIN:#define _ARCH_PPC 1
--- /dev/null
+Description: PowerPC/SPE: Fix register spilling for SPE registers
+Author: Justin Hibbits <jrh29@alumni.cwru.edu>
+Origin: https://reviews.llvm.org/D54409
+Last-Update: 2018-12-05
+
+--- llvm-toolchain-7-7.0.1~+rc2.orig/lib/Target/PowerPC/PPCRegisterInfo.cpp
++++ llvm-toolchain-7-7.0.1~+rc2/lib/Target/PowerPC/PPCRegisterInfo.cpp
+@@ -844,6 +844,9 @@ static unsigned offsetMinAlign(const Mac
+ case PPC::STXSD:
+ case PPC::STXSSP:
+ return 4;
++ case PPC::EVLDD:
++ case PPC::EVSTDD:
++ return 8;
+ case PPC::LXV:
+ case PPC::STXV:
+ return 16;
+@@ -960,7 +963,10 @@ PPCRegisterInfo::eliminateFrameIndex(Mac
+ // happen in invalid code.
+ assert(OpC != PPC::DBG_VALUE &&
+ "This should be handled in a target-independent way");
+- if (!noImmForm && ((isInt<16>(Offset) &&
++ bool canBeImmediate = (OpC == PPC::EVSTDD || OpC == PPC::EVLDD) ?
++ isUInt<8>(Offset) :
++ isInt<16>(Offset);
++ if (!noImmForm && ((canBeImmediate &&
+ ((Offset % offsetMinAlign(MI)) == 0)) ||
+ OpC == TargetOpcode::STACKMAP ||
+ OpC == TargetOpcode::PATCHPOINT)) {
+--- llvm-toolchain-7-7.0.1~+rc2.orig/test/CodeGen/PowerPC/spe.ll
++++ llvm-toolchain-7-7.0.1~+rc2/test/CodeGen/PowerPC/spe.ll
+@@ -525,18 +525,53 @@ entry:
+ ; CHECK: #NO_APP
+ }
+
+-define double @test_spill(double %a) nounwind {
++declare double @test_spill_spe_regs(double, double);
++define dso_local void @test_func2() #0 {
+ entry:
++ ret void
++}
++
++@global_var1 = global i32 0, align 4
++define double @test_spill(double %a, i32 %a1, i64 %a2, i8 * %a3, i32 *%a4, i32* %a5) nounwind {
++entry:
++ %a.addr = alloca double, align 8
++ %a1.addr = alloca i32, align 4
++ %a2.addr = alloca i64, align 8
++ %a3.addr = alloca i8*, align 4
++ %a4.addr = alloca i32*, align 4
++ %a5.addr = alloca i32*, align 4
++ %ptr = alloca i32*, align 4
++ %v1 = alloca [8 x i32], align 4
++ %v2 = alloca [7 x i32], align 4
++ %v3 = alloca [5 x i32], align 4
++ store i32 %a1, i32* %a1.addr, align 4
++ store i64 %a2, i64* %a2.addr, align 8
++ store i8* %a3, i8** %a3.addr, align 4
++ store i32* %a4, i32** %a4.addr, align 4
++ store i32* %a5, i32** %a5.addr, align 4
++ store i32* @global_var1, i32** %ptr, align 4
+ %0 = fadd double %a, %a
+- call void asm sideeffect "","~{r0},~{r3},~{s4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15},~{r16},~{r17},~{r18},~{r19},~{r20},~{r21},~{r22},~{r23},~{r24},~{r25},~{r26},~{r27},~{r28},~{r29},~{r30},~{r31}"() nounwind
++ call void asm sideeffect "","~{s0},~{s3},~{s4},~{s5},~{s6},~{s7},~{s8},~{s9},~{s10},~{s11},~{s12},~{s13},~{s14},~{s15},~{s16},~{s17},~{s18},~{s19},~{s20},~{s21},~{s22},~{s23},~{s24},~{s25},~{s26},~{s27},~{s28},~{s29},~{s30},~{s31}"() nounwind
+ %1 = fadd double %0, 3.14159
++ %2 = load i32*, i32** %ptr, align 4
++ %3 = bitcast [8 x i32]* %v1 to i8*
++ call void @llvm.memset.p0i8.i32(i8* align 4 %3, i8 0, i32 24, i1 true)
++ %4 = load i32*, i32** %a5.addr, align 4
++ store i32 0, i32* %4, align 4
++ call void @test_func2()
++ %5 = bitcast [7 x i32]* %v2 to i8*
++ call void @llvm.memset.p0i8.i32(i8* align 4 %5, i8 0, i32 20, i1 true)
+ br label %return
+
+ return:
+ ret double %1
+
+ ; CHECK-LABEL: test_spill
+-; CHECK: efdadd
++; CHECK: li [[VREG:[0-9]+]], 256
++; CHECK: evstddx {{[0-9]+}}, {{[0-9]+}}, [[VREG]]
++; CHECK-NOT: evstdd {{[0-9]+}}, 256({{[0-9]+}}
+ ; CHECK: evstdd
++; CHECK: efdadd
+ ; CHECK: evldd
+ }
++declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1) #1
--- /dev/null
+Description: PowerPC: Optimize SPE double parameter calling setup
+Author: Justin Hibbits <jrh29@alumni.cwru.edu>
+Origin: https://reviews.llvm.org/D54583
+Last-Update: 2018-12-04
+
+Index: llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCISelLowering.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn350421.orig/lib/Target/PowerPC/PPCISelLowering.cpp
++++ llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCISelLowering.cpp
+@@ -385,8 +385,16 @@ PPCTargetLowering::PPCTargetLowering(con
+ } else {
+ setOperationAction(ISD::BITCAST, MVT::f32, Expand);
+ setOperationAction(ISD::BITCAST, MVT::i32, Expand);
+- setOperationAction(ISD::BITCAST, MVT::i64, Expand);
+ setOperationAction(ISD::BITCAST, MVT::f64, Expand);
++ if (Subtarget.hasSPE()) {
++ setOperationAction(ISD::BITCAST, MVT::i64, Custom);
++ } else {
++ setOperationAction(ISD::BITCAST, MVT::i64, Expand);
++ }
++ }
++
++ if (Subtarget.hasSPE()) {
++ setOperationAction(ISD::EXTRACT_ELEMENT, MVT::i64, Custom);
+ }
+
+ // We cannot sextinreg(i1). Expand to shifts.
+@@ -1366,6 +1374,9 @@ const char *PPCTargetLowering::getTarget
+ case PPCISD::QVLFSb: return "PPCISD::QVLFSb";
+ case PPCISD::BUILD_FP128: return "PPCISD::BUILD_FP128";
+ case PPCISD::EXTSWSLI: return "PPCISD::EXTSWSLI";
++ case PPCISD::BUILD_SPE64: return "PPCISD::BUILD_SPE64";
++ case PPCISD::EXTRACT_SPE_LO: return "PPCISD::EXTRACT_SPE_LO";
++ case PPCISD::EXTRACT_SPE_HI: return "PPCISD::EXTRACT_SPE_HI";
+ }
+ return nullptr;
+ }
+@@ -7886,6 +7897,15 @@ SDValue PPCTargetLowering::LowerBITCAST(
+ SDLoc dl(Op);
+ SDValue Op0 = Op->getOperand(0);
+
++ if (Subtarget.hasSPE()) {
++ if (Op.getValueType() == MVT::f64 &&
++ Op0.getOpcode() == ISD::BUILD_PAIR &&
++ (Op0.getOperand(1).getValueType() == MVT::i32) &&
++ (Op0.getOperand(0).getValueType() == MVT::i32))
++ return DAG.getNode(PPCISD::BUILD_SPE64, dl, MVT::f64, Op0.getOperand(0),
++ Op0.getOperand(1));
++ }
++
+ if (!EnableQuadPrecision ||
+ (Op.getValueType() != MVT::f128 ) ||
+ (Op0.getOpcode() != ISD::BUILD_PAIR) ||
+@@ -7897,6 +7917,26 @@ SDValue PPCTargetLowering::LowerBITCAST(
+ Op0.getOperand(1));
+ }
+
++// Lower EXTRACT_ELEMENT (i64 BITCAST f64), 0/1 to evmerge*
++SDValue PPCTargetLowering::LowerEXTRACT_ELEMENT(SDValue Op, SelectionDAG &DAG) const {
++
++ SDLoc dl(Op);
++ SDValue Op0 = Op->getOperand(0);
++
++ if (!Subtarget.hasSPE())
++ return SDValue();
++
++ if (!(Op.getValueType() == MVT::i32 &&
++ Op0.getOpcode() == ISD::BITCAST))
++ return SDValue();
++
++ assert(Op0.getNumOperands() > 0 && "WTF?");
++ if (Op->getConstantOperandVal(1) == 0)
++ return DAG.getNode(PPCISD::EXTRACT_SPE_LO, dl, MVT::i32, Op0.getOperand(0));
++
++ return DAG.getNode(PPCISD::EXTRACT_SPE_HI, dl, MVT::i32, Op0.getOperand(0));
++}
++
+ // If this is a case we can't handle, return null and let the default
+ // expansion code take care of it. If we CAN select this case, and if it
+ // selects to a single instruction, return Op. Otherwise, if we can codegen
+@@ -9680,6 +9720,8 @@ SDValue PPCTargetLowering::LowerOperatio
+ return LowerBSWAP(Op, DAG);
+ case ISD::ATOMIC_CMP_SWAP:
+ return LowerATOMIC_CMP_SWAP(Op, DAG);
++ case ISD::EXTRACT_ELEMENT:
++ return LowerEXTRACT_ELEMENT(Op, DAG);
+ }
+ }
+
+Index: llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCISelLowering.h
+===================================================================
+--- llvm-toolchain-snapshot_8~svn350421.orig/lib/Target/PowerPC/PPCISelLowering.h
++++ llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCISelLowering.h
+@@ -196,6 +196,15 @@ namespace llvm {
+ /// Direct move of 2 consective GPR to a VSX register.
+ BUILD_FP128,
+
++ /// Merge 2 GPRs to a single SPE register
++ BUILD_SPE64,
++
++ /// Extract high SPE register component
++ EXTRACT_SPE_HI,
++
++ /// Extract low SPE register component
++ EXTRACT_SPE_LO,
++
+ /// Extract a subvector from signed integer vector and convert to FP.
+ /// It is primarily used to convert a (widened) illegal integer vector
+ /// type to a legal floating point vector type.
+@@ -1110,6 +1119,7 @@ namespace llvm {
+ SDValue lowerEH_SJLJ_SETJMP(SDValue Op, SelectionDAG &DAG) const;
+ SDValue lowerEH_SJLJ_LONGJMP(SDValue Op, SelectionDAG &DAG) const;
+ SDValue LowerBITCAST(SDValue Op, SelectionDAG &DAG) const;
++ SDValue LowerEXTRACT_ELEMENT(SDValue Op, SelectionDAG &DAG) const;
+
+ SDValue DAGCombineExtBoolTrunc(SDNode *N, DAGCombinerInfo &DCI) const;
+ SDValue DAGCombineBuildVector(SDNode *N, DAGCombinerInfo &DCI) const;
+Index: llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCInstrInfo.td
+===================================================================
+--- llvm-toolchain-snapshot_8~svn350421.orig/lib/Target/PowerPC/PPCInstrInfo.td
++++ llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCInstrInfo.td
+@@ -231,6 +231,22 @@ def PPCbuild_fp128: SDNode<"PPCISD::BUIL
+ SDTCisSameAs<1,2>]>,
+ []>;
+
++def PPCbuild_spe64: SDNode<"PPCISD::BUILD_SPE64",
++ SDTypeProfile<1, 2,
++ [SDTCisFP<0>, SDTCisSameSizeAs<1,2>,
++ SDTCisSameAs<1,2>]>,
++ []>;
++
++def PPCextract_spe_hi : SDNode<"PPCISD::EXTRACT_SPE_HI",
++ SDTypeProfile<1, 1,
++ [SDTCisInt<0>, SDTCisFP<1>]>,
++ []>;
++
++def PPCextract_spe_lo : SDNode<"PPCISD::EXTRACT_SPE_LO",
++ SDTypeProfile<1, 1,
++ [SDTCisInt<0>, SDTCisFP<1>]>,
++ []>;
++
+ // These are target-independent nodes, but have target-specific formats.
+ def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_PPCCallSeqStart,
+ [SDNPHasChain, SDNPOutGlue]>;
+Index: llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCInstrSPE.td
+===================================================================
+--- llvm-toolchain-snapshot_8~svn350421.orig/lib/Target/PowerPC/PPCInstrSPE.td
++++ llvm-toolchain-snapshot_8~svn350421/lib/Target/PowerPC/PPCInstrSPE.td
+@@ -512,7 +512,7 @@ def EVLWWSPLATX : EVXForm_1<792, (out
+
+ def EVMERGEHI : EVXForm_1<556, (outs sperc:$RT), (ins sperc:$RA, sperc:$RB),
+ "evmergehi $RT, $RA, $RB", IIC_VecGeneral, []>;
+-def EVMERGELO : EVXForm_1<557, (outs sperc:$RT), (ins sperc:$RA, sperc:$RB),
++def EVMERGELO : EVXForm_1<557, (outs sperc:$RT), (ins gprc:$RA, gprc:$RB),
+ "evmergelo $RT, $RA, $RB", IIC_VecGeneral, []>;
+ def EVMERGEHILO : EVXForm_1<558, (outs sperc:$RT), (ins sperc:$RA, sperc:$RB),
+ "evmergehilo $RT, $RA, $RB", IIC_VecGeneral, []>;
+@@ -887,4 +887,15 @@ def : Pat<(f64 (selectcc i1:$lhs, i1:$rh
+ (SELECT_SPE (CRANDC $lhs, $rhs), $tval, $fval)>;
+ def : Pat<(f64 (selectcc i1:$lhs, i1:$rhs, f64:$tval, f64:$fval, SETNE)),
+ (SELECT_SPE (CRXOR $lhs, $rhs), $tval, $fval)>;
++
++
++def : Pat<(f64 (PPCbuild_spe64 i32:$rB, i32:$rA)),
++ (f64 (COPY_TO_REGCLASS (EVMERGELO $rA, $rB), SPERC))>;
++
++def : Pat<(i32 (PPCextract_spe_hi f64:$rA)),
++ (i32 (EXTRACT_SUBREG (EVMERGEHI $rA, $rA), sub_32))>;
++
++def : Pat<(i32 (PPCextract_spe_lo f64:$rA)),
++ (i32 (EXTRACT_SUBREG $rA, sub_32))>;
++
+ }
+Index: llvm-toolchain-snapshot_8~svn350421/test/CodeGen/PowerPC/spe.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn350421.orig/test/CodeGen/PowerPC/spe.ll
++++ llvm-toolchain-snapshot_8~svn350421/test/CodeGen/PowerPC/spe.ll
+@@ -472,10 +472,8 @@ entry:
+ ; CHECK-LABEL: test_dselect
+ ; CHECK: andi.
+ ; CHECK: bc
+-; CHECK: evldd
+-; CHECK: b
+-; CHECK: evldd
+-; CHECK: evstdd
++; CHECK: evor
++; CHECK: evmergehi
+ ; CHECK: blr
+ }
+
+@@ -519,7 +517,7 @@ entry:
+ %1 = call i32 asm sideeffect "efdctsi $0, $1", "=d,d"(double %0)
+ ret i32 %1
+ ; CHECK-LABEL: test_dasmconst
+-; CHECK: evldd
++; CHECK: evmergelo
+ ; CHECK: #APP
+ ; CHECK: efdctsi
+ ; CHECK: #NO_APP
+@@ -541,7 +539,7 @@ entry:
+ %a4.addr = alloca i32*, align 4
+ %a5.addr = alloca i32*, align 4
+ %ptr = alloca i32*, align 4
+- %v1 = alloca [8 x i32], align 4
++ %v1 = alloca [9 x i32], align 4
+ %v2 = alloca [7 x i32], align 4
+ %v3 = alloca [5 x i32], align 4
+ store i32 %a1, i32* %a1.addr, align 4
+@@ -554,7 +552,7 @@ entry:
+ call void asm sideeffect "","~{s0},~{s3},~{s4},~{s5},~{s6},~{s7},~{s8},~{s9},~{s10},~{s11},~{s12},~{s13},~{s14},~{s15},~{s16},~{s17},~{s18},~{s19},~{s20},~{s21},~{s22},~{s23},~{s24},~{s25},~{s26},~{s27},~{s28},~{s29},~{s30},~{s31}"() nounwind
+ %1 = fadd double %0, 3.14159
+ %2 = load i32*, i32** %ptr, align 4
+- %3 = bitcast [8 x i32]* %v1 to i8*
++ %3 = bitcast [9 x i32]* %v1 to i8*
+ call void @llvm.memset.p0i8.i32(i8* align 4 %3, i8 0, i32 24, i1 true)
+ %4 = load i32*, i32** %a5.addr, align 4
+ store i32 0, i32* %4, align 4
--- /dev/null
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2020-01-21
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
++++ llvm-toolchain-8-8.0.1/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+@@ -385,10 +385,11 @@ void ScriptInterpreterPython::ComputePyt
+ llvm::sys::path::remove_filename(path, style);
+ llvm::sys::path::append(path, style, LLDB_PYTHON_RELATIVE_LIBDIR);
+ #else
++ llvm::sys::path::remove_filename(path, style);
+ llvm::sys::path::append(path, style,
+- "python" + llvm::Twine(PY_MAJOR_VERSION) + "." +
+- llvm::Twine(PY_MINOR_VERSION),
+- "site-packages");
++ "python3"/* + llvm::Twine(PY_MAJOR_VERSION) + "." +
++ llvm::Twine(PY_MINOR_VERSION)*/,
++ "dist-packages");
+ #endif
+ }
+
--- /dev/null
+---
+ clang/bindings/python/clang/cindex.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/bindings/python/clang/cindex.py
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/bindings/python/clang/cindex.py
++++ llvm-toolchain-snapshot_8~svn342269/clang/bindings/python/clang/cindex.py
+@@ -4144,7 +4144,7 @@ class Config:
+ elif name == 'Windows':
+ file = 'libclang.dll'
+ else:
+- file = 'libclang.so'
++ file = 'libclang-8.so'
+
+ if Config.library_path:
+ file = Config.library_path + '/' + file
--- /dev/null
+--- llvm-toolchain-8-8.0.1.orig/clang-tools-extra/include-fixer/find-all-symbols/tool/run-find-all-symbols.py
++++ llvm-toolchain-8-8.0.1/clang-tools-extra/include-fixer/find-all-symbols/tool/run-find-all-symbols.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #=- run-find-all-symbols.py - Parallel find-all-symbols runner -*- python -*-=#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang-tools-extra/clang-tidy/add_new_check.py
++++ llvm-toolchain-8-8.0.1/clang-tools-extra/clang-tidy/add_new_check.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- add_new_check.py - clang-tidy check generator ----------*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang-tools-extra/clang-tidy/rename_check.py
++++ llvm-toolchain-8-8.0.1/clang-tools-extra/clang-tidy/rename_check.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- rename_check.py - clang-tidy check renamer -------------*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
++++ llvm-toolchain-8-8.0.1/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- clang-tidy-diff.py - ClangTidy Diff Checker ------------*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
++++ llvm-toolchain-8-8.0.1/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- run-clang-tidy.py - Parallel clang-tidy runner ---------*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
++++ llvm-toolchain-8-8.0.1/clang-tools-extra/test/clang-tidy/check_clang_tidy.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- check_clang_tidy.py - ClangTidy Test Helper ------------*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/bindings/python/examples/cindex/cindex-dump.py
++++ llvm-toolchain-8-8.0.1/clang/bindings/python/examples/cindex/cindex-dump.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ #===- cindex-dump.py - cindex/Python Source Dump -------------*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/bindings/python/examples/cindex/cindex-includes.py
++++ llvm-toolchain-8-8.0.1/clang/bindings/python/examples/cindex/cindex-includes.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ #===- cindex-includes.py - cindex/Python Inclusion Graph -----*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/docs/tools/dump_ast_matchers.py
++++ llvm-toolchain-8-8.0.1/clang/docs/tools/dump_ast_matchers.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # A tool to parse ASTMatchers.h and update the documentation in
+ # ../LibASTMatchersReference.html automatically. Run from the
+ # directory in which this file is located to update the docs.
+--- llvm-toolchain-8-8.0.1.orig/clang/docs/tools/dump_format_style.py
++++ llvm-toolchain-8-8.0.1/clang/docs/tools/dump_format_style.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # A tool to parse the FormatStyle struct from Format.h and update the
+ # documentation in ../ClangFormatStyleOptions.rst automatically.
+ # Run from the directory in which this file is located to update the docs.
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/clang-format/clang-format-diff.py
++++ llvm-toolchain-8-8.0.1/clang/tools/clang-format/clang-format-diff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- clang-format-diff.py - ClangFormat Diff Reformatter ----*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/clang-format/git-clang-format
++++ llvm-toolchain-8-8.0.1/clang/tools/clang-format/git-clang-format
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- git-clang-format - ClangFormat Git Integration ---------*- python -*--===#
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-build-py/bin/analyze-build
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-build-py/bin/analyze-build
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-build-py/bin/analyze-c++
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-build-py/bin/analyze-c++
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-build-py/bin/analyze-cc
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-build-py/bin/analyze-cc
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-build-py/bin/intercept-build
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-build-py/bin/intercept-build
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-build-py/bin/intercept-c++
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-build-py/bin/intercept-c++
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-build-py/bin/intercept-cc
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-build-py/bin/intercept-cc
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-build-py/bin/scan-build
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-build-py/bin/scan-build
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-view/bin/scan-view
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-view/bin/scan-view
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-view/share/Reporter.py
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-view/share/Reporter.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ """Methods for reporting bugs."""
+--- llvm-toolchain-8-8.0.1.orig/clang/tools/scan-view/share/startfile.py
++++ llvm-toolchain-8-8.0.1/clang/tools/scan-view/share/startfile.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ """Utility for opening a file using the default application in a cross-platform
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/ABITest/ABITestGen.py
++++ llvm-toolchain-8-8.0.1/clang/utils/ABITest/ABITestGen.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import absolute_import, division, print_function
+ from pprint import pprint
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/CIndex/completion_logger_server.py
++++ llvm-toolchain-8-8.0.1/clang/utils/CIndex/completion_logger_server.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ from __future__ import absolute_import, division, print_function
+ import sys
+ from socket import *
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/CaptureCmd
++++ llvm-toolchain-8-8.0.1/clang/utils/CaptureCmd
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """CaptureCmd - A generic tool for capturing information about the
+ invocations of another program.
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/CmpDriver
++++ llvm-toolchain-8-8.0.1/clang/utils/CmpDriver
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ A simple utility that compares tool invocations and exit codes issued by
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/FindSpecRefs
++++ llvm-toolchain-8-8.0.1/clang/utils/FindSpecRefs
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import re
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/FuzzTest
++++ llvm-toolchain-8-8.0.1/clang/utils/FuzzTest
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ This is a generic fuzz testing tool, see --help for more information.
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/TestUtils/deep-stack.py
++++ llvm-toolchain-8-8.0.1/clang/utils/TestUtils/deep-stack.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import absolute_import, division, print_function
+ def pcall(f, N):
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/analyzer/CmpRuns.py
++++ llvm-toolchain-8-8.0.1/clang/utils/analyzer/CmpRuns.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ CmpRuns - A simple tool for comparing two static analyzer runs to determine
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/analyzer/SATestAdd.py
++++ llvm-toolchain-8-8.0.1/clang/utils/analyzer/SATestAdd.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Static Analyzer qualification infrastructure: adding a new project to
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/analyzer/SATestBuild.py
++++ llvm-toolchain-8-8.0.1/clang/utils/analyzer/SATestBuild.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Static Analyzer qualification infrastructure.
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/analyzer/SATestUpdateDiffs.py
++++ llvm-toolchain-8-8.0.1/clang/utils/analyzer/SATestUpdateDiffs.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Update reference results for static analyzer.
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/analyzer/SumTimerInfo.py
++++ llvm-toolchain-8-8.0.1/clang/utils/analyzer/SumTimerInfo.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Script to Summarize statistics in the scan-build output.
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/check_cfc/check_cfc.py
++++ llvm-toolchain-8-8.0.1/clang/utils/check_cfc/check_cfc.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Check CFC - Check Compile Flow Consistency
+
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/check_cfc/obj_diff.py
++++ llvm-toolchain-8-8.0.1/clang/utils/check_cfc/obj_diff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import absolute_import, division, print_function
+
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/check_cfc/test_check_cfc.py
++++ llvm-toolchain-8-8.0.1/clang/utils/check_cfc/test_check_cfc.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Test internal functions within check_cfc.py."""
+
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/hmaptool/hmaptool
++++ llvm-toolchain-8-8.0.1/clang/utils/hmaptool/hmaptool
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ from __future__ import absolute_import, division, print_function
+
+ import json
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/modfuzz.py
++++ llvm-toolchain-8-8.0.1/clang/utils/modfuzz.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+
+ # To use:
+ # 1) Update the 'decls' list below with your fuzzing configuration.
+--- llvm-toolchain-8-8.0.1.orig/clang/utils/token-delta.py
++++ llvm-toolchain-8-8.0.1/clang/utils/token-delta.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import absolute_import, division, print_function
+ import os
+--- llvm-toolchain-8-8.0.1.orig/clang/www/builtins.py
++++ llvm-toolchain-8-8.0.1/clang/www/builtins.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys, fileinput
+
+--- llvm-toolchain-8-8.0.1.orig/clang/www/make_cxx_dr_status
++++ llvm-toolchain-8-8.0.1/clang/www/make_cxx_dr_status
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ import sys, os, re
+
+ index = 'cwg_index.html'
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/asan/scripts/asan_symbolize.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/asan/scripts/asan_symbolize.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===- lib/asan/scripts/asan_symbolize.py -----------------------------------===#
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/dfsan/scripts/build-libc-list.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/dfsan/scripts/build-libc-list.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===- lib/dfsan/scripts/build-libc-list.py ---------------------------------===#
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/fuzzer/scripts/collect_data_flow.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/fuzzer/scripts/collect_data_flow.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===- lib/fuzzer/scripts/collect_data_flow.py ------------------------------===#
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/fuzzer/scripts/merge_data_flow.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/fuzzer/scripts/merge_data_flow.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===- lib/fuzzer/scripts/merge_data_flow.py ------------------------------===#
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/fuzzer/scripts/unbalanced_allocs.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/fuzzer/scripts/unbalanced_allocs.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===- lib/fuzzer/scripts/unbalanced_allocs.py ------------------------------===#
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/sanitizer_common/scripts/cpplint.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/sanitizer_common/scripts/cpplint.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Copyright (c) 2009 Google Inc. All rights reserved.
+ #
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===- lib/sanitizer_common/scripts/gen_dynamic_list.py ---------------------===#
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/sanitizer_common/scripts/litlint.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/sanitizer_common/scripts/litlint.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # litlint
+ #
+--- llvm-toolchain-8-8.0.1.orig/compiler-rt/lib/sanitizer_common/scripts/sancov.py
++++ llvm-toolchain-8-8.0.1/compiler-rt/lib/sanitizer_common/scripts/sancov.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # Merge or print the coverage data collected by asan's coverage.
+ # Input files are sequences of 4-byte integers.
+ # We need to merge these integers into a set and then
+--- llvm-toolchain-8-8.0.1.orig/examples/Kaleidoscope/MCJIT/cached/genk-timing.py
++++ llvm-toolchain-8-8.0.1/examples/Kaleidoscope/MCJIT/cached/genk-timing.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/examples/Kaleidoscope/MCJIT/cached/split-lib.py
++++ llvm-toolchain-8-8.0.1/examples/Kaleidoscope/MCJIT/cached/split-lib.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/examples/Kaleidoscope/MCJIT/complete/genk-timing.py
++++ llvm-toolchain-8-8.0.1/examples/Kaleidoscope/MCJIT/complete/genk-timing.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/examples/Kaleidoscope/MCJIT/complete/split-lib.py
++++ llvm-toolchain-8-8.0.1/examples/Kaleidoscope/MCJIT/complete/split-lib.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
++++ llvm-toolchain-8-8.0.1/examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/libcxx/test/std/language.support/support.limits/support.limits.general/generate_feature_test_macro_components.py
++++ llvm-toolchain-8-8.0.1/libcxx/test/std/language.support/support.limits/support.limits.general/generate_feature_test_macro_components.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import tempfile
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/cat_files.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/cat_files.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/gen_link_script.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/gen_link_script.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/google-benchmark/mingw.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/google-benchmark/mingw.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ # encoding: utf-8
+
+ import argparse
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/google-benchmark/tools/compare.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/google-benchmark/tools/compare.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import unittest
+ """
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/google-benchmark/tools/strip_asm.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/google-benchmark/tools/strip_asm.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ strip_asm.py - Cleanup ASM output for the specified file
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/merge_archives.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/merge_archives.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/sym_diff.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/sym_diff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/sym_extract.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/sym_extract.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/libcxx/utils/sym_match.py
++++ llvm-toolchain-8-8.0.1/libcxx/utils/sym_match.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/lld/utils/benchmark.py
++++ llvm-toolchain-8-8.0.1/lld/utils/benchmark.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # The LLVM Compiler Infrastructure
+ #
+--- llvm-toolchain-8-8.0.1.orig/lldb/examples/python/file_extract.py
++++ llvm-toolchain-8-8.0.1/lldb/examples/python/file_extract.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+
+ import string
+ import struct
+--- llvm-toolchain-8-8.0.1.orig/lldb/lit/helper/build.py
++++ llvm-toolchain-8-8.0.1/lldb/lit/helper/build.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/lldb.xcodeproj/project.pbxproj
++++ llvm-toolchain-8-8.0.1/lldb/lldb.xcodeproj/project.pbxproj
+@@ -7429,7 +7429,7 @@
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+- shellScript = "/usr/bin/env python -u $SRCROOT/scripts/Xcode/build-llvm.py\n";
++ shellScript = "/usr/bin/env python3 -u $SRCROOT/scripts/Xcode/build-llvm.py\n";
+ };
+ 26DC6A5813380D4300FF7998 /* Prepare Swig Bindings */ = {
+ isa = PBXShellScriptBuildPhase;
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/attic/tester.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/attic/tester.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf8 -*-
+
+ from __future__ import print_function
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/bench.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/bench.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ A simple bench runner which delegates to the ./dotest.py test driver to run the
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/issue_verification/disable.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/issue_verification/disable.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """Renames *.py files to *.py.park."""
+ import os
+ import sys
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/issue_verification/enable.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/issue_verification/enable.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """Renames *.py.park files to *.py."""
+ import os
+ import sys
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/redo.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/redo.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ A simple utility to redo the failed/errored tests.
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/test_runner/test/inferior.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/test_runner/test/inferior.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """Inferior program used by process control tests."""
+
+ from __future__ import print_function
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/test_runner/test/test_process_control.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/test_runner/test/test_process_control.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ The LLVM Compiler Infrastructure
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import binascii
+ import json
+--- llvm-toolchain-8-8.0.1.orig/lldb/packages/Python/lldbsuite/test_event/test/src/TestCatchInvalidDecorator.py
++++ llvm-toolchain-8-8.0.1/lldb/packages/Python/lldbsuite/test_event/test/src/TestCatchInvalidDecorator.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ Tests that the event system reports issues during decorator
+ handling as errors.
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/Python/finish-swig-Python-LLDB.sh
++++ llvm-toolchain-8-8.0.1/lldb/scripts/Python/finish-swig-Python-LLDB.sh
+@@ -55,7 +55,7 @@ else
+ fi
+
+ OS_NAME=`uname -s`
+-PYTHON=${PYTHON_EXECUTABLE:-/usr/bin/env python}
++PYTHON=${PYTHON_EXECUTABLE:-/usr/bin/env python3}
+ PYTHON_VERSION=`${PYTHON} --version 2>&1 | sed -e 's,Python ,,' -e 's,[.][0-9],,2' -e 's,[a-z][a-z][0-9],,'`
+
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/Xcode/build-llvm.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/Xcode/build-llvm.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import errno
+ import hashlib
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/Xcode/package-clang-headers.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/Xcode/package-clang-headers.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+
+ # package-clang-headers.py
+ #
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/analyze-project-deps.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/analyze-project-deps.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+
+ import argparse
+ import itertools
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/buildbot.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/buildbot.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import argparse
+ import os
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/prepare_bindings.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/prepare_bindings.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ The LLVM Compiler Infrastructure
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/shush
++++ llvm-toolchain-8-8.0.1/lldb/scripts/shush
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+ import subprocess
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/swig_bot.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/swig_bot.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ SWIG generation top-level script. Supports both local and remote generation
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/swig_bot_lib/client.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/swig_bot_lib/client.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ SWIG generation client. Supports both local and remote generation of SWIG
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/swig_bot_lib/local.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/swig_bot_lib/local.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Shared functionality used by `client` and `server` when generating or preparing
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/swig_bot_lib/remote.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/swig_bot_lib/remote.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Shared functionality used by `client` and `server` when dealing with
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/swig_bot_lib/server.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/swig_bot_lib/server.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ SWIG generation server. Listens for connections from swig generation clients
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/verify_api.py
++++ llvm-toolchain-8-8.0.1/lldb/scripts/verify_api.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import commands
+ import optparse
+--- llvm-toolchain-8-8.0.1.orig/lldb/test/dotest.py
++++ llvm-toolchain-8-8.0.1/lldb/test/dotest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ if __name__ == "__main__":
+ import use_lldb_suite
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/FSM.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/FSM.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This module implements a Finite State Machine (FSM). In addition to state
+ this FSM also maintains a user defined "memory". So this FSM can be used as a
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/astat.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/astat.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This runs Apache Status on the remote host and returns the number of requests per second.
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/bd_client.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/bd_client.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This is a very simple client for the backdoor daemon. This is intended more
+ for testing rather than normal use. See bd_serv.py """
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/bd_serv.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/bd_serv.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Back door shell server
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/cgishell.cgi
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/cgishell.cgi
+@@ -1,5 +1,5 @@
+ #!/usr/bin/python
+-##!/usr/bin/env python
++##!/usr/bin/env python3
+ """CGI shell server
+
+ This exposes a shell terminal on a web page.
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/chess.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/chess.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ '''This demonstrates controlling a screen oriented application (curses).
+ It starts two instances of gnuchess and then pits them against each other.
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/chess2.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/chess2.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ '''This demonstrates controlling a screen oriented application (curses).
+ It starts two instances of gnuchess and then pits them against each other.
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/chess3.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/chess3.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ '''This demonstrates controlling a screen oriented application (curses).
+ It starts two instances of gnuchess and then pits them against each other.
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/df.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/df.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This collects filesystem capacity info using the 'df' command. Tuples of
+ filesystem name and percentage are stored in a list. A simple report is
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/fix_cvs_files.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/fix_cvs_files.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This is for cleaning up binary files improperly added to CVS. This script
+ scans the given path to find binary files; checks with CVS to see if the sticky
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/ftp.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/ftp.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This demonstrates an FTP "bookmark". This connects to an ftp site; does a
+ few ftp stuff; and then gives the user interactive control over the session. In
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/hive.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/hive.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """hive -- Hive Shell
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/monitor.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/monitor.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """ This runs a sequence of commands on a remote host using SSH. It runs a
+ simple system checks such as uptime and free to monitor the state of the remote
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/passmass.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/passmass.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Change passwords on the named machines. passmass host1 host2 host3 . . .
+ Note that login shell prompt on remote machine must end in # or $. """
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/python.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/python.py
+@@ -1,13 +1,13 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This starts the python interpreter; captures the startup message; then gives
+ the user interactive control over the session. Why? For fun... """
+
+ # Don't do this unless you like being John Malkovich
+-# c = pexpect.spawn ('/usr/bin/env python ./python.py')
++# c = pexpect.spawn ('/usr/bin/env python3 ./python.py')
+
+ import pexpect
+-c = pexpect.spawn('/usr/bin/env python')
++c = pexpect.spawn('/usr/bin/env python3')
+ c.expect('>>>')
+ print 'And now for something completely different...'
+ f = lambda s: s and f(s[1:]) + s[0] # Makes a function to reverse a string.
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/rippy.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/rippy.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Rippy!
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/script.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/script.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This spawns a sub-shell (bash) and gives the user interactive control. The
+ entire shell session is logged to a file called script.log. This behaves much
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/ssh_tunnel.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/ssh_tunnel.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This starts an SSH tunnel to a given host. If the SSH process ever dies then
+ this script will detect that and restart it. I use this under Cygwin to keep
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/sshls.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/sshls.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This runs 'ls -l' on a remote host using SSH. At the prompts enter hostname,
+ user, and password.
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/topip.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/topip.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """ This runs netstat on a local or remote server. It calculates some simple
+ statistical information on the number of external inet connections. It groups
+--- llvm-toolchain-8-8.0.1.orig/lldb/third_party/Python/module/pexpect-2.4/examples/uptime.py
++++ llvm-toolchain-8-8.0.1/lldb/third_party/Python/module/pexpect-2.4/examples/uptime.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """This displays uptime information using uptime. This is redundant,
+ but it demonstrates expecting for a regular expression that uses subgroups.
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/git-svn/convert.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/git-svn/convert.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Convert the raw message sources from git patch emails to git-am friendly files.
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/lldb-dotest/lldb-dotest.in
++++ llvm-toolchain-8-8.0.1/lldb/utils/lldb-dotest/lldb-dotest.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ import subprocess
+ import sys
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/lui/lui.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/lui/lui.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ ##===-- lui.py -----------------------------------------------*- Python -*-===##
+ ##
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/lui/sandbox.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/lui/sandbox.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ ##===-- sandbox.py -------------------------------------------*- Python -*-===##
+ ##
+ # The LLVM Compiler Infrastructure
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/misc/grep-svn-log.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/misc/grep-svn-log.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Greps and returns the first svn log entry containing a line matching the regular
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/sync-source/syncsource.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/sync-source/syncsource.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ The LLVM Compiler Infrastructure
+
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/test/disasm.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/test/disasm.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Run gdb to disassemble a function, feed the bytes to 'llvm-mc -disassemble' command,
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/test/lldb-disasm.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/test/lldb-disasm.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Run lldb to disassemble all the available functions for an executable image.
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/test/llvm-mc-shell.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/test/llvm-mc-shell.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Run llvm-mc interactively.
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/test/ras.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/test/ras.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Run the test suite and send the result as an email message.
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/test/run-dis.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/test/run-dis.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Run lldb disassembler on all the binaries specified by a combination of root dir
+--- llvm-toolchain-8-8.0.1.orig/lldb/utils/test/run-until-faulted.py
++++ llvm-toolchain-8-8.0.1/lldb/utils/test/run-until-faulted.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Run a program via lldb until it fails.
+--- llvm-toolchain-8-8.0.1.orig/test/BugPoint/compile-custom.ll.py
++++ llvm-toolchain-8-8.0.1/test/BugPoint/compile-custom.ll.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/test/Other/opt-bisect-helper.py
++++ llvm-toolchain-8-8.0.1/test/Other/opt-bisect-helper.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/test/TableGen/JSON-check.py
++++ llvm-toolchain-8-8.0.1/test/TableGen/JSON-check.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+ import subprocess
+--- llvm-toolchain-8-8.0.1.orig/test/tools/llvm-readobj/Inputs/relocs.py
++++ llvm-toolchain-8-8.0.1/test/tools/llvm-readobj/Inputs/relocs.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/tools/opt-viewer/opt-diff.py
++++ llvm-toolchain-8-8.0.1/tools/opt-viewer/opt-diff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/tools/opt-viewer/opt-stats.py
++++ llvm-toolchain-8-8.0.1/tools/opt-viewer/opt-stats.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/tools/opt-viewer/opt-viewer.py
++++ llvm-toolchain-8-8.0.1/tools/opt-viewer/opt-viewer.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/tools/opt-viewer/optrecord.py
++++ llvm-toolchain-8-8.0.1/tools/opt-viewer/optrecord.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/utils/Misc/zkill
++++ llvm-toolchain-8-8.0.1/utils/Misc/zkill
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import re
+--- llvm-toolchain-8-8.0.1.orig/utils/Reviewing/find_interesting_reviews.py
++++ llvm-toolchain-8-8.0.1/utils/Reviewing/find_interesting_reviews.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/utils/Target/ARM/analyze-match-table.py
++++ llvm-toolchain-8-8.0.1/utils/Target/ARM/analyze-match-table.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/utils/abtest.py
++++ llvm-toolchain-8-8.0.1/utils/abtest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Given a previous good compile narrow down miscompiles.
+ # Expects two directories named "before" and "after" each containing a set of
+--- llvm-toolchain-8-8.0.1.orig/utils/benchmark/mingw.py
++++ llvm-toolchain-8-8.0.1/utils/benchmark/mingw.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ # encoding: utf-8
+
+ import argparse
+--- llvm-toolchain-8-8.0.1.orig/utils/benchmark/tools/compare.py
++++ llvm-toolchain-8-8.0.1/utils/benchmark/tools/compare.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ compare.py - versatile benchmark output compare tool
+--- llvm-toolchain-8-8.0.1.orig/utils/benchmark/tools/strip_asm.py
++++ llvm-toolchain-8-8.0.1/utils/benchmark/tools/strip_asm.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ strip_asm.py - Cleanup ASM output for the specified file
+--- llvm-toolchain-8-8.0.1.orig/utils/bisect
++++ llvm-toolchain-8-8.0.1/utils/bisect
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import sys
+--- llvm-toolchain-8-8.0.1.orig/utils/bisect-skip-count
++++ llvm-toolchain-8-8.0.1/utils/bisect-skip-count
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # This script is used to bisect skip and count arguments for --debug-counter.
+ # It is similar to bisect, except it understands how to increase skip and decrease count
+ #
+--- llvm-toolchain-8-8.0.1.orig/utils/bugpoint_gisel_reducer.py
++++ llvm-toolchain-8-8.0.1/utils/bugpoint_gisel_reducer.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Reduces GlobalISel failures.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/clang-parse-diagnostics-file
++++ llvm-toolchain-8-8.0.1/utils/clang-parse-diagnostics-file
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import plistlib
+--- llvm-toolchain-8-8.0.1.orig/utils/create_ladder_graph.py
++++ llvm-toolchain-8-8.0.1/utils/create_ladder_graph.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """A ladder graph creation program.
+
+ This is a python program that creates c source code that will generate
+--- llvm-toolchain-8-8.0.1.orig/utils/extract_symbols.py
++++ llvm-toolchain-8-8.0.1/utils/extract_symbols.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A tool for extracting a list of symbols to export
+
+--- llvm-toolchain-8-8.0.1.orig/utils/extract_vplan.py
++++ llvm-toolchain-8-8.0.1/utils/extract_vplan.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # This script extracts the VPlan digraphs from the vectoriser debug messages
+ # and saves them in individual dot files (one for each plan). Optionally, and
+--- llvm-toolchain-8-8.0.1.orig/utils/git-svn/git-llvm
++++ llvm-toolchain-8-8.0.1/utils/git-svn/git-llvm
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # ======- git-llvm - LLVM Git Help Integration ---------*- python -*--========#
+ #
+--- llvm-toolchain-8-8.0.1.orig/utils/gn/build/run_tablegen.py
++++ llvm-toolchain-8-8.0.1/utils/gn/build/run_tablegen.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """Runs tablegen."""
+
+ import subprocess
+--- llvm-toolchain-8-8.0.1.orig/utils/gn/build/symlink_or_copy.py
++++ llvm-toolchain-8-8.0.1/utils/gn/build/symlink_or_copy.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Symlinks, or on Windows copies, an existing file to a second location.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/gn/build/sync_source_lists_from_cmake.py
++++ llvm-toolchain-8-8.0.1/utils/gn/build/sync_source_lists_from_cmake.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Helps to keep BUILD.gn files in sync with the corresponding CMakeLists.txt.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/gn/build/write_cmake_config.py
++++ llvm-toolchain-8-8.0.1/utils/gn/build/write_cmake_config.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """Emulates the bits of CMake's configure_file() function needed in LLVM.
+
+ The CMake build uses configure_file() for several things. This emulates that
+--- llvm-toolchain-8-8.0.1.orig/utils/gn/build/write_vcsrevision.py
++++ llvm-toolchain-8-8.0.1/utils/gn/build/write_vcsrevision.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Gets the current revision and writes it to VCSRevision.h."""
+
+--- llvm-toolchain-8-8.0.1.orig/utils/gn/gn.py
++++ llvm-toolchain-8-8.0.1/utils/gn/gn.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """Calls `gn` with the right --dotfile= and --root= arguments for LLVM."""
+
+ # GN normally expects a file called '.gn' at the root of the repository.
+--- llvm-toolchain-8-8.0.1.orig/utils/indirect_calls.py
++++ llvm-toolchain-8-8.0.1/utils/indirect_calls.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A tool for looking for indirect jumps and calls in x86 binaries.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/lit.py
++++ llvm-toolchain-8-8.0.1/utils/lit/lit.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ import sys
+
+ from lit.main import main
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/lit/ProgressBar.py
++++ llvm-toolchain-8-8.0.1/utils/lit/lit/ProgressBar.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Source: http://code.activestate.com/recipes/475116/, with
+ # modifications by Daniel Dunbar.
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/lit/main.py
++++ llvm-toolchain-8-8.0.1/utils/lit/lit/main.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ lit - LLVM Integrated Tester.
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/OneTest.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/OneTest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+ import time
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/googletest-upstream-format/DummySubDir/OneTest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/shtest-env/print_environment.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/shtest-env/print_environment.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_statement
+ import os
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/shtest-shell/check_args.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/shtest-shell/check_args.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import argparse
+ import platform
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/shtest-shell/check_path.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/shtest-shell/check_path.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/shtest-shell/write-to-stderr.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/shtest-shell/write-to-stderr.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+
+--- llvm-toolchain-8-8.0.1.orig/utils/lit/tests/Inputs/shtest-shell/write-to-stdout-and-stderr.py
++++ llvm-toolchain-8-8.0.1/utils/lit/tests/Inputs/shtest-shell/write-to-stdout-and-stderr.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+
+--- llvm-toolchain-8-8.0.1.orig/utils/llvm-build/llvm-build
++++ llvm-toolchain-8-8.0.1/utils/llvm-build/llvm-build
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import llvmbuild
+
+--- llvm-toolchain-8-8.0.1.orig/utils/llvm-gisel-cov.py
++++ llvm-toolchain-8-8.0.1/utils/llvm-gisel-cov.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ Summarize the information in the given coverage files.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/llvm-lit/llvm-lit.in
++++ llvm-toolchain-8-8.0.1/utils/llvm-lit/llvm-lit.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ import os
+--- llvm-toolchain-8-8.0.1.orig/utils/prepare-code-coverage-artifact.py
++++ llvm-toolchain-8-8.0.1/utils/prepare-code-coverage-artifact.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+--- llvm-toolchain-8-8.0.1.orig/utils/release/findRegressions-nightly.py
++++ llvm-toolchain-8-8.0.1/utils/release/findRegressions-nightly.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ from __future__ import print_function
+
+ import re, string, sys, os, time
+--- llvm-toolchain-8-8.0.1.orig/utils/release/findRegressions-simple.py
++++ llvm-toolchain-8-8.0.1/utils/release/findRegressions-simple.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+ import re, string, sys, os, time, math
+--- llvm-toolchain-8-8.0.1.orig/utils/shuffle_fuzz.py
++++ llvm-toolchain-8-8.0.1/utils/shuffle_fuzz.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A shuffle vector fuzz tester.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/shuffle_select_fuzz_tester.py
++++ llvm-toolchain-8-8.0.1/utils/shuffle_select_fuzz_tester.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A shuffle-select vector fuzz tester.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/sort_includes.py
++++ llvm-toolchain-8-8.0.1/utils/sort_includes.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Script to sort the top-most block of #include lines.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/unicode-case-fold.py
++++ llvm-toolchain-8-8.0.1/utils/unicode-case-fold.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ Unicode case folding database conversion utility
+
+--- llvm-toolchain-8-8.0.1.orig/utils/update_analyze_test_checks.py
++++ llvm-toolchain-8-8.0.1/utils/update_analyze_test_checks.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A script to generate FileCheck statements for 'opt' analysis tests.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/update_llc_test_checks.py
++++ llvm-toolchain-8-8.0.1/utils/update_llc_test_checks.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A test case update script.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/update_mca_test_checks.py
++++ llvm-toolchain-8-8.0.1/utils/update_mca_test_checks.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A test case update script.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/update_mir_test_checks.py
++++ llvm-toolchain-8-8.0.1/utils/update_mir_test_checks.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Updates FileCheck checks in MIR tests.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/update_test_checks.py
++++ llvm-toolchain-8-8.0.1/utils/update_test_checks.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A script to generate FileCheck statements for 'opt' regression tests.
+
+--- llvm-toolchain-8-8.0.1.orig/utils/wciia.py
++++ llvm-toolchain-8-8.0.1/utils/wciia.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ wciia - Whose Code Is It Anyway
--- /dev/null
+Index: llvm-toolchain-7-7/clang/docs/CommandGuide/clang.rst
+===================================================================
+--- llvm-toolchain-7-7.orig/clang/docs/CommandGuide/clang.rst
++++ llvm-toolchain-7-7/clang/docs/CommandGuide/clang.rst
+@@ -310,20 +310,10 @@ Clang fully supports cross compilation a
+ Depending on how your version of Clang is configured, it may have support for a
+ number of cross compilers, or may only support a native target.
+
+-.. option:: -arch <architecture>
++.. option:: -target <architecture>
+
+ Specify the architecture to build for.
+
+-.. option:: -mmacosx-version-min=<version>
+-
+- When building for Mac OS X, specify the minimum version supported by your
+- application.
+-
+-.. option:: -miphoneos-version-min
+-
+- When building for iPhone OS, specify the minimum version supported by your
+- application.
+-
+ .. option:: -march=<cpu>
+
+ Specify that Clang should generate code for a specific processor family
+@@ -616,11 +606,6 @@ ENVIRONMENT
+ These environment variables specify additional paths, as for :envvar:`CPATH`, which are
+ only used when processing the appropriate language.
+
+-.. envvar:: MACOSX_DEPLOYMENT_TARGET
+-
+- If :option:`-mmacosx-version-min` is unspecified, the default deployment
+- target is read from this environment variable. This option only affects
+- Darwin targets.
+
+ BUGS
+ ----
--- /dev/null
+Index: llvm-toolchain-snapshot_7~svn335949/compiler-rt/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc
+===================================================================
+--- llvm-toolchain-snapshot_7~svn335949.orig/compiler-rt/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc
++++ llvm-toolchain-snapshot_7~svn335949/compiler-rt/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc
+@@ -1,29 +0,0 @@
+-// RUN: %clangxx -O2 %s -o %t && %run %t 2>&1 | FileCheck %s
+-
+-#include <stdio.h>
+-
+-#if !defined(__GLIBC_PREREQ)
+-#define __GLIBC_PREREQ(a, b) 0
+-#endif
+-
+-// getauxval() used instead of sysconf() in GetPageSize() is defined starting
+-// glbc version 2.16.
+-#if __GLIBC_PREREQ(2, 16)
+-extern "C" long sysconf(int name) {
+- fprintf(stderr, "sysconf wrapper called\n");
+- return 0;
+-}
+-#endif // defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 16)
+-
+-int main() {
+- // All we need to check is that the sysconf() interceptor defined above was
+- // not called. Should it get called, it will crash right there, any
+- // instrumented code executed before sanitizer init is finished will crash
+- // accessing non-initialized sanitizer internals. Even if it will not crash
+- // in some configuration, it should never be called anyway.
+- fprintf(stderr, "Passed\n");
+- // CHECK-NOT: sysconf wrapper called
+- // CHECK: Passed
+- // CHECK-NOT: sysconf wrapper called
+- return 0;
+-}
--- /dev/null
+Description: Make ordering of OPENCL_EXTENSION_TYPES reproducible
+
+Author: Rebecca N. Palmer <rebecca_palmer@zoho.com>
+Bug-Debian: https://bugs.debian.org/877359
+Forwarded: no
+
+Index: llvm-toolchain-snapshot_8~svn349138/clang/lib/Serialization/ASTWriter.cpp
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/lib/Serialization/ASTWriter.cpp
++++ llvm-toolchain-snapshot_8~svn349138/clang/lib/Serialization/ASTWriter.cpp
+@@ -4279,9 +4279,13 @@ void ASTWriter::WriteOpenCLExtensionType
+ return;
+
+ RecordData Record;
++ // Sort to allow reproducible .pch files - https://bugs.debian.org/877359
++ std::map<TypeID, std::set<std::string>> sortedOpenCLTypeExtMap;
+ for (const auto &I : SemaRef.OpenCLTypeExtMap) {
+- Record.push_back(
+- static_cast<unsigned>(getTypeID(I.first->getCanonicalTypeInternal())));
++ sortedOpenCLTypeExtMap[getTypeID(I.first->getCanonicalTypeInternal())]=I.second;
++ }
++ for (const auto &I : sortedOpenCLTypeExtMap) {
++ Record.push_back(static_cast<unsigned>(I.first));
+ Record.push_back(I.second.size());
+ for (auto Ext : I.second)
+ AddString(Ext, Record);
+@@ -4294,8 +4298,12 @@ void ASTWriter::WriteOpenCLExtensionDecl
+ return;
+
+ RecordData Record;
++ std::map<DeclID, std::set<std::string>> sortedOpenCLDeclExtMap;
+ for (const auto &I : SemaRef.OpenCLDeclExtMap) {
+- Record.push_back(getDeclID(I.first));
++ sortedOpenCLDeclExtMap[getDeclID(I.first)]=I.second;
++ }
++ for (const auto &I : sortedOpenCLDeclExtMap) {
++ Record.push_back(I.first);
+ Record.push_back(static_cast<unsigned>(I.second.size()));
+ for (auto Ext : I.second)
+ AddString(Ext, Record);
--- /dev/null
+Index: tools/llvm-shlib/simple_version_script.map.in
+===================================================================
+--- tools/llvm-shlib/simple_version_script.map.in (revision 352580)
++++ tools/llvm-shlib/simple_version_script.map.in (revision 352579)
+@@ -1 +1 @@
+-LLVM_@LLVM_VERSION_MAJOR@.@LLVM_VERSION_MINOR@ { global: *; };
++LLVM_@LLVM_VERSION_MAJOR@ { global: *; };
+Index: tools/llvm-config/CMakeLists.txt
+===================================================================
+--- tools/llvm-config/CMakeLists.txt (revision 352580)
++++ tools/llvm-config/CMakeLists.txt (revision 352579)
+@@ -37,7 +37,7 @@
+ set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
+ set(LLVM_BUILD_SYSTEM cmake)
+ set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
+-set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX}")
++set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}")
+ set(LLVM_HAS_GLOBAL_ISEL "ON")
+
+ # Use the C++ link flags, since they should be a superset of C link flags.
+Index: cmake/modules/AddLLVM.cmake
+===================================================================
+--- cmake/modules/AddLLVM.cmake (revision 352580)
++++ cmake/modules/AddLLVM.cmake (revision 352579)
+@@ -83,7 +83,7 @@
+ # FIXME: Don't write the "local:" line on OpenBSD.
+ # in the export file, also add a linker script to version LLVM symbols (form: LLVM_N.M)
+ add_custom_command(OUTPUT ${native_export_file}
+- COMMAND echo "LLVM_${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR} {" > ${native_export_file}
++ COMMAND echo "LLVM_${LLVM_VERSION_MAJOR} {" > ${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}
+@@ -500,7 +500,7 @@
+ PROPERTIES
+ # Since 4.0.0, the ABI version is indicated by the major version
+ SOVERSION ${LLVM_VERSION_MAJOR}
+- VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
++ VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX})
+ endif()
+ endif()
+
+@@ -522,7 +522,7 @@
+ if(${output_name} STREQUAL "output_name-NOTFOUND")
+ set(output_name ${name})
+ endif()
+- set(library_name ${output_name}-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}${LLVM_VERSION_SUFFIX})
++ set(library_name ${output_name}-${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX})
+ set(api_name ${output_name}-${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
+ set_target_properties(${name} PROPERTIES OUTPUT_NAME ${library_name})
+ llvm_install_library_symlink(${api_name} ${library_name} SHARED
+Index: docs/ReleaseNotes.rst
+===================================================================
+--- docs/ReleaseNotes.rst (revision 352580)
++++ docs/ReleaseNotes.rst (revision 352579)
+@@ -30,6 +30,9 @@
+ is available on the Visual Studio Marketplace. The new integration
+ supports Visual Studio 2017.
+
++* Libraries have been renamed from 7.0 to 7. This change also impacts
++ downstream libraries like lldb.
++
+ * The LoopInstSimplify pass (``-loop-instsimplify``) has been removed.
+
+ * Symbols starting with ``?`` are no longer mangled by LLVM when using the
--- /dev/null
+---
+ clang/tools/scan-build/bin/scan-build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_8~svn349138/clang/tools/scan-build/bin/scan-build
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/clang/tools/scan-build/bin/scan-build
++++ llvm-toolchain-snapshot_8~svn349138/clang/tools/scan-build/bin/scan-build
+@@ -1468,7 +1468,7 @@ sub FindClang {
+ if (!defined $Options{AnalyzerDiscoveryMethod}) {
+ $Clang = Cwd::realpath("$RealBin/bin/clang") if (-f "$RealBin/bin/clang");
+ if (!defined $Clang || ! -x $Clang) {
+- $Clang = Cwd::realpath("$RealBin/clang") if (-f "$RealBin/clang");
++ $Clang = Cwd::realpath("/usr/lib/llvm-8/bin/clang");
+ }
+ if (!defined $Clang || ! -x $Clang) {
+ return "error: Cannot find an executable 'clang' relative to" .
--- /dev/null
+Index: llvm-toolchain-snapshot_5.0~svn297449/clang/tools/scan-view/bin/scan-view
+===================================================================
+--- llvm-toolchain-snapshot_5.0~svn297449.orig/clang/tools/scan-view/bin/scan-view
++++ llvm-toolchain-snapshot_5.0~svn297449/clang/tools/scan-view/bin/scan-view
+@@ -61,7 +61,7 @@ def start_browser(port, options):
+
+ def run(port, options, root):
+ # Prefer to look relative to the installed binary
+- share = os.path.dirname(__file__) + "/../share/scan-view"
++ share = os.path.dirname(__file__) + "/../share/"
+ if not os.path.isdir(share):
+ # Otherwise look relative to the source
+ share = os.path.dirname(__file__) + "/../../scan-view/share"
--- /dev/null
+# Debian versions
+19-clang_debian_version.patch
+0003-Debian-version-info-and-bugreport.patch
+clang-format-version.diff
+clang-analyzer-force-version.diff
+
+# Disabling features
+23-strlcpy_strlcat_warning_removed.diff
+
+27-fix_clang_stdint.diff
+declare_clear_cache.diff
+unwind-chain-inclusion.diff
+atomic_library_1.diff
+
+# Path updates
+python-clangpath.diff
+fix-clang-path-and-build.diff
+0048-Set-html_static_path-_static-everywhere.patch
+symbolizer-path.diff
+clang-tidy-run-bin.diff
+0001-tools-clang-cmake-resolve-symlinks-in-ClangConfig.cmake.patch
+debug-jit-path.diff
+
+# commented because of bug 903709
+#force-gcc-header-obj.diff
+
+do-not-fail-on-unexpected-pass.diff
+disable-display-PASS-UNSUPPORTED-XFAIL.diff
+
+# llvm-config
+fix-llvm-config-obj-src-root.patch
+0001-llvm-cmake-resolve-symlinks-in-LLVMConfig.cmake.patch
+
+# Lib names
+0044-soname.diff
+lldb-soname.diff
+lldb-libname.diff
+openmp-soname.diff
+
+# Disable some tests
+silent-gold-test.diff
+silent-more-tests.diff
+silent-MCJIIT-tests.diff
+silent-gold-utils.diff
+silent-test-failing-codeverage.diff
+silent-amd-tet.diff
+silent-test-macho.diff
+silent-llvm-isel-fuzzer.diff
+remove-test-freezing.diff
+disable-llvm-symbolizer-test.diff
+disable-path-test-failing.diff
+disable-source-interleave.diff
+
+# Decrease the freq for the keep alive
+test-keep-alive.diff
+
+# scan-build
+scan-build-clang-path.diff
+install-scan-build-py.diff
+scan-view-fix-path.diff
+fix-scan-view-path.diff
+
+# lldb
+lldb/lldb-link-atomic-cmake.patch
+lldb/lldb-addversion-suffix-to-llvm-server-exec.patch
+lldb/lldb-missing-install.diff
+lldb/lldb-disable-swig-error.diff
+
+# Fix arch issue
+disable-error-xray.diff
+
+# OpenMP
+openmp/openmp-check-execstack.diff
+openmp/openmp-mips-affinity.patch
+openmp/bootstrap-with-openmp-version-export-missing.diff
+
+# libcxx
+libcxx/libcxxabi-test-don-t-fail-extended-long-double.patch
+libcxx/libcxx-test-fix-lockfree-test-for-i386.patch
+libcxx/libcxxabi-arm-ehabi-fix.patch
+libcxx/libcxx-test-atomics-set-compare-exchange-to-be-expected-fails-on-arm.patch
+libcxx/libcxx-silent-test-libcxx.diff
+libcxx/libcxx-silent-failure-ppc64el.diff
+libcxx/libcxx-silent-failure-arm64.diff
+
+# Change default optims
+mips-fpxx-enable.diff
+26-set-correct-float-abi.diff
+clang-baseline-fix-i386.patch
+disable-sse2-old-x86.diff
+clang-arm-default-vfp3-on-armv7a.patch
+
+# For the bootstrap
+bootstrap-fix-include-next.diff
+clangd-atomic-cmake.patch
+
+# Fix docs
+remove-apple-clang-manpage.diff
+0049-Use-Debian-provided-MathJax-everywhere.patch
+
+# reproducible
+reproducible-pch.diff
+
+# Hurd port
+hurd/hurd-pathmax.diff
+hurd/hurd-EIEIO-undef.diff
+hurd/D69683-impl-path-hurd.diff
+hurd/D54677-hurd-path_max.diff
+hurd/hurd-cxx-paths.diff
+
+# powerpcspe
+powerpcspe/D49754-powerpcspe-clang.diff
+powerpcspe/D54409-powerpcspe-register-spilling.diff
+powerpcspe/D54584-powerpcspe-double-parameter.diff
+
+# kfreebsd
+kfreebsd/clang_lib_Basic_Targets.diff
+kfreebsd/CMakeLists.txt.diff
+kfreebsd/compiler-rt_lib.diff
+kfreebsd/include_llvm_ADT_Triple.h.diff
+kfreebsd/kfreebsd-libcxx-threads-detection.diff
+kfreebsd/kfreebsd-openmp.diff
+kfreebsd/kfreebsd-threads-build.diff
+kfreebsd/kfreebsd-triple-clang.diff
+kfreebsd/kfreebsd-triple.diff
+kfreebsd/lib_Support.diff
+kfreebsd/lib_Target_X86.diff
+kfreebsd/lldb_source_Host_freebsd_Host.cpp.diff
+kfreebsd/lldb_source_Plugins_Process_FreeBSD.diff
+kfreebsd/tools_llvm-shlib_CMakeLists.txt.diff
+
+# patches for intel-opencl-clang
+OpenCL-Change-type-of-block-pointer-for-OpenCL.patch
+OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch
+OpenCL-Fix-assertion-due-to-blocks.patch
+ubuntu-eoan-distro.patch
+
+930008-arm.diff
+
+# Python 3
+0050-Remove-explicit-python-version-list.patch
+python3-shebang.patch
+print-lldb-path.patch
+no-cgi.patch
+swig.patch
+947f9692440836dcb8d88b74b69dd379d85974ce.patch
--- /dev/null
+---
+ test/BugPoint/crash-narrowfunctiontest.ll | 1 -
+ test/BugPoint/remove_arguments_test.ll | 1 -
+ test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll | 2 +-
+ test/ExecutionEngine/MCJIT/eh-lg-pic.ll | 2 +-
+ test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll | 2 +-
+ test/ExecutionEngine/MCJIT/stubs-sm-pic.ll | 2 +-
+ test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll | 2 +-
+ test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll | 2 +-
+ test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll | 2 +-
+ test/Feature/load_module.ll | 1 -
+ 17 files changed, 14 insertions(+), 17 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/BugPoint/crash-narrowfunctiontest.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/BugPoint/crash-narrowfunctiontest.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/BugPoint/crash-narrowfunctiontest.ll
+@@ -2,7 +2,6 @@
+ ;
+ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes > /dev/null
+ ; REQUIRES: loadable_module
+-; XFAIL: *
+
+ define i32 @foo() { ret i32 1 }
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/BugPoint/remove_arguments_test.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/BugPoint/remove_arguments_test.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/BugPoint/remove_arguments_test.ll
+@@ -1,7 +1,6 @@
+ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes
+ ; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s
+ ; REQUIRES: loadable_module
+-; XFAIL: *
+
+ ; Test to make sure that arguments are removed from the function if they are
+ ; unnecessary. And clean up any types that frees up too.
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/cross-module-sm-pic-a.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null
+-; XFAIL: mips-, mipsel-, i686, i386
++; XFAIL: *
+
+ declare i32 @FB()
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/eh-lg-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/MCJIT/eh-lg-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/eh-lg-pic.ll
+@@ -1,6 +1,6 @@
+ ; REQUIRES: cxx-shared-library
+ ; RUN: %lli -relocation-model=pic -code-model=large %s
+-; XFAIL: cygwin, windows-msvc, windows-gnu, mips-, mipsel-, i686, i386, aarch64, arm
++; XFAIL: *
+ declare i8* @__cxa_allocate_exception(i64)
+ declare void @__cxa_throw(i8*, i8*, i8*)
+ declare i32 @__gxx_personality_v0(...)
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/multi-module-sm-pic-a.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null
+-; XFAIL: mips-, mipsel-, i686, i386
++; XFAIL: *
+
+ declare i32 @FB()
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/stubs-sm-pic.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s
+-; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm
++; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm, x86_64
+
+ define i32 @main() nounwind {
+ entry:
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/test-global-init-nonzero-sm-pic.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -relocation-model=pic -code-model=small %s > /dev/null
+-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386
++; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, x86_64
+
+ @count = global i32 1, align 4
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/MCJIT/test-ptr-reloc-sm-pic.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -O0 -relocation-model=pic -code-model=small %s
+-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386
++; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, x86_64
+
+ @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1
+ @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/cross-module-sm-pic-a.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/cross-module-b.ll -relocation-model=pic -code-model=small %s > /dev/null
+-; XFAIL: mips-, mipsel-, i686, i386
++; XFAIL: *
+
+ declare i32 @FB()
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/eh-lg-pic.ll
+@@ -1,6 +1,6 @@
+ ; REQUIRES: cxx-shared-library
+ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=large %s
+-; XFAIL: cygwin, windows-msvc, windows-gnu, mips-, mipsel-, i686, i386, aarch64, arm
++; XFAIL: *
+ declare i8* @__cxa_allocate_exception(i64)
+ declare void @__cxa_throw(i8*, i8*, i8*)
+ declare i32 @__gxx_personality_v0(...)
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/multi-module-sm-pic-a.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -jit-kind=orc-mcjit -extra-module=%p/Inputs/multi-module-b.ll -extra-module=%p/Inputs/multi-module-c.ll -relocation-model=pic -code-model=small %s > /dev/null
+-; XFAIL: mips-, mipsel-, i686, i386
++; XFAIL: *
+
+ declare i32 @FB()
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/remote/test-global-init-nonzero-sm-pic.ll
+@@ -1,6 +1,6 @@
+ ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \
+ ; RUN: -relocation-model=pic -code-model=small %s > /dev/null
+-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, windows-gnu, windows-msvc
++; XFAIL: *
+ ; UNSUPPORTED: powerpc64-unknown-linux-gnu
+ ; Remove UNSUPPORTED for powerpc64-unknown-linux-gnu if problem caused by r266663 is fixed
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/remote/test-ptr-reloc-sm-pic.ll
+@@ -1,6 +1,6 @@
+ ; RUN: %lli -jit-kind=orc-mcjit -remote-mcjit -mcjit-remote-process=lli-child-target%exeext \
+ ; RUN: -O0 -relocation-model=pic -code-model=small %s
+-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, windows-gnu, windows-msvc
++; XFAIL: *
+ ; UNSUPPORTED: powerpc64-unknown-linux-gnu
+ ; Remove UNSUPPORTED for powerpc64-unknown-linux-gnu if problem caused by r266663 is fixed
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/stubs-sm-pic.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -jit-kind=orc-mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s
+-; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm
++; XFAIL: mips-, mipsel-, i686, i386, aarch64, arm, x86_64
+
+ define i32 @main() nounwind {
+ entry:
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/test-global-init-nonzero-sm-pic.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -jit-kind=orc-mcjit -relocation-model=pic -code-model=small %s > /dev/null
+-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386
++; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, x86_64
+
+ @count = global i32 1, align 4
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/ExecutionEngine/OrcMCJIT/test-ptr-reloc-sm-pic.ll
+@@ -1,5 +1,5 @@
+ ; RUN: %lli -jit-kind=orc-mcjit -O0 -relocation-model=pic -code-model=small %s
+-; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386
++; XFAIL: mips-, mipsel-, aarch64, arm, i686, i386, x86_64
+
+ @.str = private unnamed_addr constant [6 x i8] c"data1\00", align 1
+ @ptr = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), align 4
+Index: llvm-toolchain-snapshot_8~svn348749/test/Feature/load_module.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/Feature/load_module.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/Feature/load_module.ll
+@@ -3,7 +3,6 @@
+ ; RUN: -disable-output 2>&1 | grep Hello
+ ; REQUIRES: loadable_module
+ ; FIXME: On Cygming, it might fail without building LLVMHello manually.
+-; XFAIL: *
+
+ @junk = global i32 0
+
--- /dev/null
+Index: llvm-toolchain-snapshot_8~svn347135/test/MC/AMDGPU/hsa.s
+===================================================================
+--- llvm-toolchain-snapshot_8~svn347135.orig/test/MC/AMDGPU/hsa.s
++++ llvm-toolchain-snapshot_8~svn347135/test/MC/AMDGPU/hsa.s
+@@ -1,5 +1,6 @@
+ // RUN: llvm-mc -triple amdgcn--amdhsa -mcpu=kaveri -mattr=-code-object-v3 -show-encoding %s | FileCheck %s --check-prefix=ASM
+ // RUN: llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri -mattr=-code-object-v3 -show-encoding %s | llvm-readobj -symbols -s -sd | FileCheck %s --check-prefix=ELF
++// XFAIL: *
+
+ // ELF: Section {
+ // ELF: Name: .text
--- /dev/null
+Description: fails on debian unstable amd64
+ Command Output (stderr):
+ --
+ /build/llvm-toolchain-snapshot-4.0~svn279916/test/tools/gold/X86/start-lib-common.ll:22:10: error: expected string not found in input
+ ; CHECK: @x = common global i32 0, align 8
+ ^
+ <stdin>:1:1: note: scanning from here
+ ; ModuleID = '/build/llvm-toolchain-snapshot-4.0~svn279916/build-llvm/test/tools/gold/X86/Output/start-lib-common.ll.tmp3.o'
+ ^
+ <stdin>:4:1: note: possible intended match here
+ @x = common global i32 0, align 4
+ ^
+
+
+Index: llvm-toolchain-snapshot_7~svn323434/test/tools/gold/X86/start-lib-common.ll
+===================================================================
+--- llvm-toolchain-snapshot_7~svn323434.orig/test/tools/gold/X86/start-lib-common.ll
++++ llvm-toolchain-snapshot_7~svn323434/test/tools/gold/X86/start-lib-common.ll
+@@ -9,6 +9,7 @@
+ ; RUN: -shared %t1.o --start-lib %t2.o --end-lib -o %t3.o
+ ; RUN: llvm-dis %t3.o -o - | FileCheck %s
+
++; XFAIL: *
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ @x = common global i32 0, align 4
+
+Index: llvm-toolchain-snapshot_7~svn323434/test/tools/gold/X86/comdat.ll
+===================================================================
+--- llvm-toolchain-snapshot_7~svn323434.orig/test/tools/gold/X86/comdat.ll
++++ llvm-toolchain-snapshot_7~svn323434/test/tools/gold/X86/comdat.ll
+@@ -5,6 +5,7 @@
+ ; RUN: -plugin-opt=save-temps
+ ; RUN: FileCheck --check-prefix=RES %s < %t3.o.resolution.txt
+ ; RUN: llvm-readobj -t %t3.o | FileCheck --check-prefix=OBJ %s
++; XFAIL: *
+
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
--- /dev/null
+---
+ test/tools/gold/X86/common_thinlto.ll | 1 +
+ test/tools/gold/X86/emit-llvm.ll | 2 ++
+ test/tools/gold/X86/parallel.ll | 1 +
+ test/tools/gold/X86/pr19901_thinlto.ll | 1 +
+ test/tools/gold/X86/slp-vectorize.ll | 1 +
+ test/tools/gold/X86/strip_names.ll | 1 +
+ test/tools/gold/X86/thinlto.ll | 2 ++
+ test/tools/gold/X86/thinlto_archive.ll | 1 +
+ test/tools/gold/X86/thinlto_internalize.ll | 2 ++
+ test/tools/gold/X86/thinlto_linkonceresolution.ll | 2 ++
+ test/tools/gold/X86/thinlto_weak_resolution.ll | 3 ++-
+ test/tools/gold/X86/type-merge2.ll | 2 +-
+ test/tools/gold/X86/vectorize.ll | 1 +
+ test/tools/gold/X86/visibility.ll | 1 +
+ 14 files changed, 19 insertions(+), 2 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/common_thinlto.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/common_thinlto.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/common_thinlto.ll
+@@ -17,6 +17,7 @@
+
+ ; RUN: llvm-nm %t3 | FileCheck %s --check-prefix=NM
+ ; NM: bar
++; XFAIL: *
+
+ source_filename = "common1.c"
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/emit-llvm.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/emit-llvm.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/emit-llvm.ll
+@@ -21,6 +21,8 @@
+ ; RUN: not test -a %t4.o
+
+ ; NM: T f3
++; XFAIL: *
++
+
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/parallel.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/parallel.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/parallel.ll
+@@ -5,6 +5,7 @@
+ ; RUN: llvm-dis %t.1.5.precodegen.bc -o - | FileCheck --check-prefix=CHECK-BC1 %s
+ ; RUN: llvm-nm %t.o | FileCheck --check-prefix=CHECK0 %s
+ ; RUN: llvm-nm %t.o1 | FileCheck --check-prefix=CHECK1 %s
++; XFAIL: *
+
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/pr19901_thinlto.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/pr19901_thinlto.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/pr19901_thinlto.ll
+@@ -4,6 +4,7 @@
+ ; RUN: --plugin-opt=thinlto \
+ ; RUN: -shared -m elf_x86_64 -o %t.so %t2.o %t.o
+ ; RUN: llvm-readobj -t %t.so | FileCheck %s
++; XFAIL: i686, i386
+
+ ; CHECK: Symbol {
+ ; CHECK: Name: f
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/slp-vectorize.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/slp-vectorize.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/slp-vectorize.ll
+@@ -7,6 +7,7 @@
+
+ ; test that the vectorizer is run.
+ ; CHECK: fadd <4 x float>
++; XFAIL: *
+
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/strip_names.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/strip_names.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/strip_names.ll
+@@ -25,6 +25,7 @@
+ ; NONAME: %2 = load i32, i32* @GlobalValueName
+ ; NONAME: %3 = add i32 %0, %2
+ ; NONAME: ret i32 %3
++; XFAIL: *
+
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/thinlto.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto.ll
+@@ -141,6 +141,8 @@
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+
++; XFAIL: i686, i386
++
+ declare void @g(...)
+
+ define void @f() {
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_archive.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/thinlto_archive.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_archive.ll
+@@ -15,6 +15,7 @@
+ ; RUN: --plugin-opt=jobs=1 \
+ ; RUN: -shared %t.o %t.a -o %t4 2>&1 | FileCheck %s
+ ; RUN: llvm-nm %t4 | FileCheck %s --check-prefix=NM
++; XFAIL: i686, i386
+
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_internalize.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/thinlto_internalize.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_internalize.ll
+@@ -14,6 +14,8 @@
+ ; h() should be internalized after promotion, and eliminated after inlining
+ ; CHECK-NOT: @h.llvm.
+
++; XFAIL: i686, i386
++
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+ define i32 @g() {
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_linkonceresolution.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/thinlto_linkonceresolution.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_linkonceresolution.ll
+@@ -23,6 +23,8 @@
+ ; OPT-NOT: @f()
+ ; OPT2: define weak_odr hidden void @f()
+
++; XFAIL: i686, i386
++
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+ define i32 @g() {
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_weak_resolution.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/thinlto_weak_resolution.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/thinlto_weak_resolution.ll
+@@ -9,6 +9,7 @@
+ ; RUN: --plugin-opt=save-temps \
+ ; RUN: -shared \
+ ; RUN: -o %t3.o %t.o %t2.o
++; XFAIL: i686, i386
+
+ ; RUN: llvm-nm %t3.o | FileCheck %s
+ ; CHECK: weakfunc
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/type-merge2.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/type-merge2.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/type-merge2.ll
+@@ -6,6 +6,8 @@
+ ; RUN: -shared %t.o %t2.o -o %t3.o
+ ; RUN: llvm-dis %t3.o.0.2.internalize.bc -o - | FileCheck %s
+
++; XFAIL: *
++
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/vectorize.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/vectorize.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/vectorize.ll
+@@ -7,6 +7,7 @@
+
+ ; test that the vectorizer is run.
+ ; CHECK: fadd <4 x float>
++; XFAIL: *
+
+ target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-unknown-linux-gnu"
+Index: llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/visibility.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn349138.orig/test/tools/gold/X86/visibility.ll
++++ llvm-toolchain-snapshot_8~svn349138/test/tools/gold/X86/visibility.ll
+@@ -16,6 +16,7 @@
+ ; CHECK-NEXT: Other [
+ ; CHECK-NEXT: STV_PROTECTED
+ ; CHECK-NEXT: ]
++; XFAIL: *
+
+ ; IR: define dso_local void @foo
+
--- /dev/null
+Index: llvm-toolchain-snapshot_6.0~svn315736/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
+===================================================================
+--- llvm-toolchain-snapshot_6.0~svn315736.orig/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
++++ llvm-toolchain-snapshot_6.0~svn315736/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
+@@ -2,6 +2,7 @@
+ ; without copying the whole lib dir or polluting the build dir.
+ ; REQUIRES: static-libs
+ ; REQUIRES: aarch64-registered-target
++: XFAIL: *
+
+ ; RUN: echo > %t.input
+
+Index: llvm-toolchain-snapshot_6.0~svn315736/test/tools/llvm-isel-fuzzer/execname-options.ll
+===================================================================
+--- llvm-toolchain-snapshot_6.0~svn315736.orig/test/tools/llvm-isel-fuzzer/execname-options.ll
++++ llvm-toolchain-snapshot_6.0~svn315736/test/tools/llvm-isel-fuzzer/execname-options.ll
+@@ -1,6 +1,7 @@
+ ; If the binary looks up libraries using an rpath, we can't test this
+ ; without copying the whole lib dir or polluting the build dir.
+ ; REQUIRES: static-libs
++: XFAIL: *
+
+ ; RUN: echo > %t.input
+
--- /dev/null
+# Comment the tests for the code coverage (fails otherwise)
+
+
+---
+ test/BugPoint/crash-narrowfunctiontest.ll | 1 +
+ test/BugPoint/metadata.ll | 3 ++-
+ test/BugPoint/remove_arguments_test.ll | 1 +
+ test/Feature/load_module.ll | 1 +
+ 4 files changed, 5 insertions(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/BugPoint/crash-narrowfunctiontest.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/BugPoint/crash-narrowfunctiontest.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/BugPoint/crash-narrowfunctiontest.ll
+@@ -2,6 +2,7 @@
+ ;
+ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes > /dev/null
+ ; REQUIRES: loadable_module
++; XFAIL: *
+
+ define i32 @foo() { ret i32 1 }
+
+Index: llvm-toolchain-snapshot_8~svn348749/test/BugPoint/metadata.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/BugPoint/metadata.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/BugPoint/metadata.ll
+@@ -7,7 +7,8 @@
+ ;
+ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t-notype -bugpoint-crashcalls -silence-passes -disable-namedmd-remove -disable-strip-debuginfo > /dev/null
+ ; RUN: llvm-dis %t-notype-reduced-simplified.bc -o - | FileCheck %s --check-prefix=NOTYPE
+-;
++; XFAIL: *
++
+ ; Bugpoint should keep the call's metadata attached to the call.
+
+ ; CHECK: call void @foo(), !dbg ![[LOC:[0-9]+]], !attach ![[CALL:[0-9]+]]
+Index: llvm-toolchain-snapshot_8~svn348749/test/BugPoint/remove_arguments_test.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/BugPoint/remove_arguments_test.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/BugPoint/remove_arguments_test.ll
+@@ -1,6 +1,7 @@
+ ; RUN: bugpoint -load %llvmshlibdir/BugpointPasses%shlibext %s -output-prefix %t -bugpoint-crashcalls -silence-passes
+ ; RUN: llvm-dis %t-reduced-simplified.bc -o - | FileCheck %s
+ ; REQUIRES: loadable_module
++; XFAIL: *
+
+ ; Test to make sure that arguments are removed from the function if they are
+ ; unnecessary. And clean up any types that frees up too.
+Index: llvm-toolchain-snapshot_8~svn348749/test/Feature/load_module.ll
+===================================================================
+--- llvm-toolchain-snapshot_8~svn348749.orig/test/Feature/load_module.ll
++++ llvm-toolchain-snapshot_8~svn348749/test/Feature/load_module.ll
+@@ -3,6 +3,7 @@
+ ; RUN: -disable-output 2>&1 | grep Hello
+ ; REQUIRES: loadable_module
+ ; FIXME: On Cygming, it might fail without building LLVMHello manually.
++; XFAIL: *
+
+ @junk = global i32 0
+
--- /dev/null
+Index: llvm-toolchain-snapshot_7~svn335581/test/ThinLTO/X86/autoupgrade.ll
+===================================================================
+--- llvm-toolchain-snapshot_7~svn335581.orig/test/ThinLTO/X86/autoupgrade.ll
++++ llvm-toolchain-snapshot_7~svn335581/test/ThinLTO/X86/autoupgrade.ll
+@@ -19,6 +19,8 @@
+ ; SUMMARYNAMES: ^2 = gv: (name: "globalfunc2",
+ ; SUMMARYNAMES: ^3 = gv: (name: "globalfunc1"
+
++; XFAIL: *
++
+ target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
+ target triple = "x86_64-apple-macosx10.11.0"
+
--- /dev/null
+Index: llvm-toolchain-snapshot_6.0~svn314668/test/Object/macho-invalid.test
+===================================================================
+--- llvm-toolchain-snapshot_6.0~svn314668.orig/test/Object/macho-invalid.test
++++ llvm-toolchain-snapshot_6.0~svn314668/test/Object/macho-invalid.test
+@@ -284,9 +284,6 @@ INVALID-DYLIB-WRONG-FILETYPE: macho-inva
+ RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-dylib-no-id 2>&1 | FileCheck -check-prefix INVALID-DYLIB-NO-ID %s
+ INVALID-DYLIB-NO-ID: macho-invalid-dylib-no-id': truncated or malformed object (no LC_ID_DYLIB load command in dynamic library filetype)
+
+-RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-dylib-cmdsize-past-eof 2>&1 | FileCheck -check-prefix INVALID-DYLIB-CMDSIZE %s
+-INVALID-DYLIB-CMDSIZE: macho-invalid-dylib-cmdsize-past-eof': truncated or malformed object (load command 0 extends past end of file)
+-
+ RUN: not llvm-objdump -macho -private-headers %p/Inputs/macho-invalid-uuid-more-than-one 2>&1 | FileCheck -check-prefix INVALID-UUID-MORE-THAN-ONE %s
+ INVALID-UUID-MORE-THAN-ONE: macho-invalid-uuid-more-than-one': truncated or malformed object (more than one LC_UUID command)
+
--- /dev/null
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBAddress.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBAddress.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBAddress.i
+@@ -159,37 +159,16 @@
+ '''Convert the address to an hex string'''
+ return '0x%x' % int(self)
+
+- __swig_getmethods__["module"] = GetModule
+- if _newclass: module = property(GetModule, None, doc='''A read only property that returns an lldb object that represents the module (lldb.SBModule) that this address resides within.''')
+-
+- __swig_getmethods__["compile_unit"] = GetCompileUnit
+- if _newclass: compile_unit = property(GetCompileUnit, None, doc='''A read only property that returns an lldb object that represents the compile unit (lldb.SBCompileUnit) that this address resides within.''')
+-
+- __swig_getmethods__["line_entry"] = GetLineEntry
+- if _newclass: line_entry = property(GetLineEntry, None, doc='''A read only property that returns an lldb object that represents the line entry (lldb.SBLineEntry) that this address resides within.''')
+-
+- __swig_getmethods__["function"] = GetFunction
+- if _newclass: function = property(GetFunction, None, doc='''A read only property that returns an lldb object that represents the function (lldb.SBFunction) that this address resides within.''')
+-
+- __swig_getmethods__["block"] = GetBlock
+- if _newclass: block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the block (lldb.SBBlock) that this address resides within.''')
+-
+- __swig_getmethods__["symbol"] = GetSymbol
+- if _newclass: symbol = property(GetSymbol, None, doc='''A read only property that returns an lldb object that represents the symbol (lldb.SBSymbol) that this address resides within.''')
+-
+- __swig_getmethods__["offset"] = GetOffset
+- if _newclass: offset = property(GetOffset, None, doc='''A read only property that returns the section offset in bytes as an integer.''')
+-
+- __swig_getmethods__["section"] = GetSection
+- if _newclass: section = property(GetSection, None, doc='''A read only property that returns an lldb object that represents the section (lldb.SBSection) that this address resides within.''')
+-
+- __swig_getmethods__["file_addr"] = GetFileAddress
+- if _newclass: file_addr = property(GetFileAddress, None, doc='''A read only property that returns file address for the section as an integer. This is the address that represents the address as it is found in the object file that defines it.''')
+-
+- __swig_getmethods__["load_addr"] = __get_load_addr_property__
+- __swig_setmethods__["load_addr"] = __set_load_addr_property__
+- if _newclass: load_addr = property(__get_load_addr_property__, __set_load_addr_property__, doc='''A read/write property that gets/sets the SBAddress using load address. The setter resolves SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command) and not in Python based commands, or breakpoint commands.''')
+-
++ module = property(GetModule, None, doc='''A read only property that returns an lldb object that represents the module (lldb.SBModule) that this address resides within.''')
++ compile_unit = property(GetCompileUnit, None, doc='''A read only property that returns an lldb object that represents the compile unit (lldb.SBCompileUnit) that this address resides within.''')
++ line_entry = property(GetLineEntry, None, doc='''A read only property that returns an lldb object that represents the line entry (lldb.SBLineEntry) that this address resides within.''')
++ function = property(GetFunction, None, doc='''A read only property that returns an lldb object that represents the function (lldb.SBFunction) that this address resides within.''')
++ block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the block (lldb.SBBlock) that this address resides within.''')
++ symbol = property(GetSymbol, None, doc='''A read only property that returns an lldb object that represents the symbol (lldb.SBSymbol) that this address resides within.''')
++ offset = property(GetOffset, None, doc='''A read only property that returns the section offset in bytes as an integer.''')
++ section = property(GetSection, None, doc='''A read only property that returns an lldb object that represents the section (lldb.SBSection) that this address resides within.''')
++ file_addr = property(GetFileAddress, None, doc='''A read only property that returns file address for the section as an integer. This is the address that represents the address as it is found in the object file that defines it.''')
++ load_addr = property(__get_load_addr_property__, __set_load_addr_property__, doc='''A read/write property that gets/sets the SBAddress using load address. The setter resolves SBAddress using the SBTarget from lldb.target so this property can ONLY be used in the interactive script interpreter (i.e. under the lldb script command) and not in Python based commands, or breakpoint commands.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBBlock.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBBlock.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBBlock.i
+@@ -146,32 +146,15 @@
+ def get_call_site(self):
+ return declaration(self.GetInlinedCallSiteFile(), self.GetInlinedCallSiteLine(), self.GetInlinedCallSiteColumn())
+
+- __swig_getmethods__["parent"] = GetParent
+- if _newclass: parent = property(GetParent, None, doc='''A read only property that returns the same result as GetParent().''')
+-
+- __swig_getmethods__["first_child"] = GetFirstChild
+- if _newclass: first_child = property(GetFirstChild, None, doc='''A read only property that returns the same result as GetFirstChild().''')
+-
+- __swig_getmethods__["call_site"] = get_call_site
+- if _newclass: call_site = property(get_call_site, None, doc='''A read only property that returns a lldb.declaration object that contains the inlined call site file, line and column.''')
+-
+- __swig_getmethods__["sibling"] = GetSibling
+- if _newclass: sibling = property(GetSibling, None, doc='''A read only property that returns the same result as GetSibling().''')
+-
+- __swig_getmethods__["name"] = GetInlinedName
+- if _newclass: name = property(GetInlinedName, None, doc='''A read only property that returns the same result as GetInlinedName().''')
+-
+- __swig_getmethods__["inlined_block"] = GetContainingInlinedBlock
+- if _newclass: inlined_block = property(GetContainingInlinedBlock, None, doc='''A read only property that returns the same result as GetContainingInlinedBlock().''')
+-
+- __swig_getmethods__["range"] = get_ranges_access_object
+- if _newclass: range = property(get_ranges_access_object, None, doc='''A read only property that allows item access to the address ranges for a block by integer (range = block.range[0]) and by lldb.SBAdddress (find the range that contains the specified lldb.SBAddress like "pc_range = lldb.frame.block.range[frame.addr]").''')
+-
+- __swig_getmethods__["ranges"] = get_ranges_array
+- if _newclass: ranges = property(get_ranges_array, None, doc='''A read only property that returns a list() object that contains all of the address ranges for the block.''')
+-
+- __swig_getmethods__["num_ranges"] = GetNumRanges
+- if _newclass: num_ranges = property(GetNumRanges, None, doc='''A read only property that returns the same result as GetNumRanges().''')
++ parent = property(GetParent, None, doc='''A read only property that returns the same result as GetParent().''')
++ first_child = property(GetFirstChild, None, doc='''A read only property that returns the same result as GetFirstChild().''')
++ call_site = property(get_call_site, None, doc='''A read only property that returns a lldb.declaration object that contains the inlined call site file, line and column.''')
++ sibling = property(GetSibling, None, doc='''A read only property that returns the same result as GetSibling().''')
++ name = property(GetInlinedName, None, doc='''A read only property that returns the same result as GetInlinedName().''')
++ inlined_block = property(GetContainingInlinedBlock, None, doc='''A read only property that returns the same result as GetContainingInlinedBlock().''')
++ range = property(get_ranges_access_object, None, doc='''A read only property that allows item access to the address ranges for a block by integer (range = block.range[0]) and by lldb.SBAdddress (find the range that contains the specified lldb.SBAddress like "pc_range = lldb.frame.block.range[frame.addr]").''')
++ ranges = property(get_ranges_array, None, doc='''A read only property that returns a list() object that contains all of the address ranges for the block.''')
++ num_ranges = property(GetNumRanges, None, doc='''A read only property that returns the same result as GetNumRanges().''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBBreakpoint.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBBreakpoint.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBBreakpoint.i
+@@ -283,26 +283,12 @@
+ locations.append(accessor[idx])
+ return locations
+
+- __swig_getmethods__["locations"] = get_breakpoint_location_list
+- if _newclass: locations = property(get_breakpoint_location_list, None, doc='''A read only property that returns a list() of lldb.SBBreakpointLocation objects for this breakpoint.''')
+-
+- __swig_getmethods__["location"] = get_locations_access_object
+- if _newclass: location = property(get_locations_access_object, None, doc='''A read only property that returns an object that can access locations by index (not location ID) (location = bkpt.location[12]).''')
+-
+- __swig_getmethods__["id"] = GetID
+- if _newclass: id = property(GetID, None, doc='''A read only property that returns the ID of this breakpoint.''')
+-
+- __swig_getmethods__["enabled"] = IsEnabled
+- __swig_setmethods__["enabled"] = SetEnabled
+- if _newclass: enabled = property(IsEnabled, SetEnabled, doc='''A read/write property that configures whether this breakpoint is enabled or not.''')
+-
+- __swig_getmethods__["one_shot"] = IsOneShot
+- __swig_setmethods__["one_shot"] = SetOneShot
+- if _newclass: one_shot = property(IsOneShot, SetOneShot, doc='''A read/write property that configures whether this breakpoint is one-shot (deleted when hit) or not.''')
+-
+- __swig_getmethods__["num_locations"] = GetNumLocations
+- if _newclass: num_locations = property(GetNumLocations, None, doc='''A read only property that returns the count of locations of this breakpoint.''')
+-
++ locations = property(get_breakpoint_location_list, None, doc='''A read only property that returns a list() of lldb.SBBreakpointLocation objects for this breakpoint.''')
++ location = property(get_locations_access_object, None, doc='''A read only property that returns an object that can access locations by index (not location ID) (location = bkpt.location[12]).''')
++ id = property(GetID, None, doc='''A read only property that returns the ID of this breakpoint.''')
++ enabled = property(IsEnabled, SetEnabled, doc='''A read/write property that configures whether this breakpoint is enabled or not.''')
++ one_shot = property(IsOneShot, SetOneShot, doc='''A read/write property that configures whether this breakpoint is one-shot (deleted when hit) or not.''')
++ num_locations = property(GetNumLocations, None, doc='''A read only property that returns the count of locations of this breakpoint.''')
+ %}
+
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBCompileUnit.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBCompileUnit.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBCompileUnit.i
+@@ -119,11 +119,9 @@
+ operator != (const lldb::SBCompileUnit &rhs) const;
+
+ %pythoncode %{
+- __swig_getmethods__["file"] = GetFileSpec
+- if _newclass: file = property(GetFileSpec, None, doc='''A read only property that returns the same result an lldb object that represents the source file (lldb.SBFileSpec) for the compile unit.''')
+
+- __swig_getmethods__["num_line_entries"] = GetNumLineEntries
+- if _newclass: num_line_entries = property(GetNumLineEntries, None, doc='''A read only property that returns the number of line entries in a compile unit as an integer.''')
++ file = property(GetFileSpec, None, doc='''A read only property that returns the same result an lldb object that represents the source file (lldb.SBFileSpec) for the compile unit.''')
++ num_line_entries = property(GetNumLineEntries, None, doc='''A read only property that returns the number of line entries in a compile unit as an integer.''')
+ %}
+ };
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBData.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBData.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBData.i
+@@ -263,76 +263,28 @@
+ def _read_all_double(self):
+ return self._make_helper_double().all()
+
+- __swig_getmethods__["uint8"] = _make_helper_uint8
+- if _newclass: uint8 = property(_make_helper_uint8, None, doc='''A read only property that returns an array-like object out of which you can read uint8 values.''')
+-
+- __swig_getmethods__["uint16"] = _make_helper_uint16
+- if _newclass: uint16 = property(_make_helper_uint16, None, doc='''A read only property that returns an array-like object out of which you can read uint16 values.''')
+-
+- __swig_getmethods__["uint32"] = _make_helper_uint32
+- if _newclass: uint32 = property(_make_helper_uint32, None, doc='''A read only property that returns an array-like object out of which you can read uint32 values.''')
+-
+- __swig_getmethods__["uint64"] = _make_helper_uint64
+- if _newclass: uint64 = property(_make_helper_uint64, None, doc='''A read only property that returns an array-like object out of which you can read uint64 values.''')
+-
+- __swig_getmethods__["sint8"] = _make_helper_sint8
+- if _newclass: sint8 = property(_make_helper_sint8, None, doc='''A read only property that returns an array-like object out of which you can read sint8 values.''')
+-
+- __swig_getmethods__["sint16"] = _make_helper_sint16
+- if _newclass: sint16 = property(_make_helper_sint16, None, doc='''A read only property that returns an array-like object out of which you can read sint16 values.''')
+-
+- __swig_getmethods__["sint32"] = _make_helper_sint32
+- if _newclass: sint32 = property(_make_helper_sint32, None, doc='''A read only property that returns an array-like object out of which you can read sint32 values.''')
+-
+- __swig_getmethods__["sint64"] = _make_helper_sint64
+- if _newclass: sint64 = property(_make_helper_sint64, None, doc='''A read only property that returns an array-like object out of which you can read sint64 values.''')
+-
+- __swig_getmethods__["float"] = _make_helper_float
+- if _newclass: float = property(_make_helper_float, None, doc='''A read only property that returns an array-like object out of which you can read float values.''')
+-
+- __swig_getmethods__["double"] = _make_helper_double
+- if _newclass: double = property(_make_helper_double, None, doc='''A read only property that returns an array-like object out of which you can read double values.''')
+-
+- __swig_getmethods__["uint8s"] = _read_all_uint8
+- if _newclass: uint8s = property(_read_all_uint8, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint8 values.''')
+-
+- __swig_getmethods__["uint16s"] = _read_all_uint16
+- if _newclass: uint16s = property(_read_all_uint16, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint16 values.''')
+-
+- __swig_getmethods__["uint32s"] = _read_all_uint32
+- if _newclass: uint32s = property(_read_all_uint32, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint32 values.''')
+-
+- __swig_getmethods__["uint64s"] = _read_all_uint64
+- if _newclass: uint64s = property(_read_all_uint64, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint64 values.''')
+-
+- __swig_getmethods__["sint8s"] = _read_all_sint8
+- if _newclass: sint8s = property(_read_all_sint8, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint8 values.''')
+-
+- __swig_getmethods__["sint16s"] = _read_all_sint16
+- if _newclass: sint16s = property(_read_all_sint16, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint16 values.''')
+-
+- __swig_getmethods__["sint32s"] = _read_all_sint32
+- if _newclass: sint32s = property(_read_all_sint32, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint32 values.''')
+-
+- __swig_getmethods__["sint64s"] = _read_all_sint64
+- if _newclass: sint64s = property(_read_all_sint64, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint64 values.''')
+-
+- __swig_getmethods__["floats"] = _read_all_float
+- if _newclass: floats = property(_read_all_float, None, doc='''A read only property that returns an array with all the contents of this SBData represented as float values.''')
+-
+- __swig_getmethods__["doubles"] = _read_all_double
+- if _newclass: doubles = property(_read_all_double, None, doc='''A read only property that returns an array with all the contents of this SBData represented as double values.''')
+-
+- %}
+-
+- %pythoncode %{
+- __swig_getmethods__["byte_order"] = GetByteOrder
+- __swig_setmethods__["byte_order"] = SetByteOrder
+- if _newclass: byte_order = property(GetByteOrder, SetByteOrder, doc='''A read/write property getting and setting the endianness of this SBData (data.byte_order = lldb.eByteOrderLittle).''')
+-
+- __swig_getmethods__["size"] = GetByteSize
+- if _newclass: size = property(GetByteSize, None, doc='''A read only property that returns the size the same result as GetByteSize().''')
+-
++ uint8 = property(_make_helper_uint8, None, doc='''A read only property that returns an array-like object out of which you can read uint8 values.''')
++ uint16 = property(_make_helper_uint16, None, doc='''A read only property that returns an array-like object out of which you can read uint16 values.''')
++ uint32 = property(_make_helper_uint32, None, doc='''A read only property that returns an array-like object out of which you can read uint32 values.''')
++ uint64 = property(_make_helper_uint64, None, doc='''A read only property that returns an array-like object out of which you can read uint64 values.''')
++ sint8 = property(_make_helper_sint8, None, doc='''A read only property that returns an array-like object out of which you can read sint8 values.''')
++ sint16 = property(_make_helper_sint16, None, doc='''A read only property that returns an array-like object out of which you can read sint16 values.''')
++ sint32 = property(_make_helper_sint32, None, doc='''A read only property that returns an array-like object out of which you can read sint32 values.''')
++ sint64 = property(_make_helper_sint64, None, doc='''A read only property that returns an array-like object out of which you can read sint64 values.''')
++ float = property(_make_helper_float, None, doc='''A read only property that returns an array-like object out of which you can read float values.''')
++ double = property(_make_helper_double, None, doc='''A read only property that returns an array-like object out of which you can read double values.''')
++ uint8s = property(_read_all_uint8, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint8 values.''')
++ uint16s = property(_read_all_uint16, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint16 values.''')
++ uint32s = property(_read_all_uint32, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint32 values.''')
++ uint64s = property(_read_all_uint64, None, doc='''A read only property that returns an array with all the contents of this SBData represented as uint64 values.''')
++ sint8s = property(_read_all_sint8, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint8 values.''')
++ sint16s = property(_read_all_sint16, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint16 values.''')
++ sint32s = property(_read_all_sint32, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint32 values.''')
++ sint64s = property(_read_all_sint64, None, doc='''A read only property that returns an array with all the contents of this SBData represented as sint64 values.''')
++ floats = property(_read_all_float, None, doc='''A read only property that returns an array with all the contents of this SBData represented as float values.''')
++ doubles = property(_read_all_double, None, doc='''A read only property that returns an array with all the contents of this SBData represented as double values.''')
++ byte_order = property(GetByteOrder, SetByteOrder, doc='''A read/write property getting and setting the endianness of this SBData (data.byte_order = lldb.eByteOrderLittle).''')
++ size = property(GetByteSize, None, doc='''A read only property that returns the size the same result as GetByteSize().''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBDeclaration.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBDeclaration.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBDeclaration.i
+@@ -53,15 +53,10 @@
+ operator != (const lldb::SBDeclaration &rhs) const;
+
+ %pythoncode %{
+- __swig_getmethods__["file"] = GetFileSpec
+- if _newclass: file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this line entry.''')
+-
+- __swig_getmethods__["line"] = GetLine
+- if _newclass: line = property(GetLine, None, doc='''A read only property that returns the 1 based line number for this line entry, a return value of zero indicates that no line information is available.''')
+-
+- __swig_getmethods__["column"] = GetColumn
+- if _newclass: column = property(GetColumn, None, doc='''A read only property that returns the 1 based column number for this line entry, a return value of zero indicates that no column information is available.''')
+- %}
++ file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this line entry.''')
++ line = property(GetLine, None, doc='''A read only property that returns the 1 based line number for this line entry, a return value of zero indicates that no line information is available.''')
++ column = property(GetColumn, None, doc='''A read only property that returns the 1 based column number for this line entry, a return value of zero indicates that no column information is available.''')
++ %}
+
+ };
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBError.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBError.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBError.i
+@@ -106,21 +106,11 @@
+ GetDescription (lldb::SBStream &description);
+
+ %pythoncode %{
+- __swig_getmethods__["value"] = GetError
+- if _newclass: value = property(GetError, None, doc='''A read only property that returns the same result as GetError().''')
+-
+- __swig_getmethods__["fail"] = Fail
+- if _newclass: fail = property(Fail, None, doc='''A read only property that returns the same result as Fail().''')
+-
+- __swig_getmethods__["success"] = Success
+- if _newclass: success = property(Success, None, doc='''A read only property that returns the same result as Success().''')
+-
+- __swig_getmethods__["description"] = GetCString
+- if _newclass: description = property(GetCString, None, doc='''A read only property that returns the same result as GetCString().''')
+-
+- __swig_getmethods__["type"] = GetType
+- if _newclass: type = property(GetType, None, doc='''A read only property that returns the same result as GetType().''')
+-
++ value = property(GetError, None, doc='''A read only property that returns the same result as GetError().''')
++ fail = property(Fail, None, doc='''A read only property that returns the same result as Fail().''')
++ success = property(Success, None, doc='''A read only property that returns the same result as Success().''')
++ description = property(GetCString, None, doc='''A read only property that returns the same result as GetCString().''')
++ type = property(GetType, None, doc='''A read only property that returns the same result as GetType().''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBExecutionContext.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBExecutionContext.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBExecutionContext.i
+@@ -37,19 +37,12 @@
+
+ SBFrame
+ GetFrame () const;
+-
+- %pythoncode %{
+- __swig_getmethods__["target"] = GetTarget
+- if _newclass: target = property(GetTarget, None, doc='''A read only property that returns the same result as GetTarget().''')
+
+- __swig_getmethods__["process"] = GetProcess
+- if _newclass: process = property(GetProcess, None, doc='''A read only property that returns the same result as GetProcess().''')
+-
+- __swig_getmethods__["thread"] = GetThread
+- if _newclass: thread = property(GetThread, None, doc='''A read only property that returns the same result as GetThread().''')
+-
+- __swig_getmethods__["frame"] = GetFrame
+- if _newclass: frame = property(GetFrame, None, doc='''A read only property that returns the same result as GetFrame().''')
++ %pythoncode %{
++ target = property(GetTarget, None, doc='''A read only property that returns the same result as GetTarget().''')
++ process = property(GetProcess, None, doc='''A read only property that returns the same result as GetProcess().''')
++ thread = property(GetThread, None, doc='''A read only property that returns the same result as GetThread().''')
++ frame = property(GetFrame, None, doc='''A read only property that returns the same result as GetFrame().''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBFileSpec.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBFileSpec.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBFileSpec.i
+@@ -88,17 +88,10 @@
+ return spec_file
+ return None
+
+- __swig_getmethods__["fullpath"] = __get_fullpath__
+- if _newclass: fullpath = property(__get_fullpath__, None, doc='''A read only property that returns the fullpath as a python string.''')
+-
+- __swig_getmethods__["basename"] = GetFilename
+- if _newclass: basename = property(GetFilename, None, doc='''A read only property that returns the path basename as a python string.''')
+-
+- __swig_getmethods__["dirname"] = GetDirectory
+- if _newclass: dirname = property(GetDirectory, None, doc='''A read only property that returns the path directory name as a python string.''')
+-
+- __swig_getmethods__["exists"] = Exists
+- if _newclass: exists = property(Exists, None, doc='''A read only property that returns a boolean value that indicates if the file exists.''')
++ fullpath = property(__get_fullpath__, None, doc='''A read only property that returns the fullpath as a python string.''')
++ basename = property(GetFilename, None, doc='''A read only property that returns the path basename as a python string.''')
++ dirname = property(GetDirectory, None, doc='''A read only property that returns the path directory name as a python string.''')
++ exists = property(Exists, None, doc='''A read only property that returns a boolean value that indicates if the file exists.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBFrame.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBFrame.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBFrame.i
+@@ -341,85 +341,32 @@
+
+ return registers_access(self.registers)
+
+- __swig_getmethods__["pc"] = GetPC
+- __swig_setmethods__["pc"] = SetPC
+- if _newclass: pc = property(GetPC, SetPC)
+-
+- __swig_getmethods__["addr"] = GetPCAddress
+- if _newclass: addr = property(GetPCAddress, None, doc='''A read only property that returns the program counter (PC) as a section offset address (lldb.SBAddress).''')
+-
+- __swig_getmethods__["fp"] = GetFP
+- if _newclass: fp = property(GetFP, None, doc='''A read only property that returns the frame pointer (FP) as an unsigned integer.''')
+-
+- __swig_getmethods__["sp"] = GetSP
+- if _newclass: sp = property(GetSP, None, doc='''A read only property that returns the stack pointer (SP) as an unsigned integer.''')
+-
+- __swig_getmethods__["module"] = GetModule
+- if _newclass: module = property(GetModule, None, doc='''A read only property that returns an lldb object that represents the module (lldb.SBModule) for this stack frame.''')
+-
+- __swig_getmethods__["compile_unit"] = GetCompileUnit
+- if _newclass: compile_unit = property(GetCompileUnit, None, doc='''A read only property that returns an lldb object that represents the compile unit (lldb.SBCompileUnit) for this stack frame.''')
+-
+- __swig_getmethods__["function"] = GetFunction
+- if _newclass: function = property(GetFunction, None, doc='''A read only property that returns an lldb object that represents the function (lldb.SBFunction) for this stack frame.''')
+-
+- __swig_getmethods__["symbol"] = GetSymbol
+- if _newclass: symbol = property(GetSymbol, None, doc='''A read only property that returns an lldb object that represents the symbol (lldb.SBSymbol) for this stack frame.''')
+-
+- __swig_getmethods__["block"] = GetBlock
+- if _newclass: block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the block (lldb.SBBlock) for this stack frame.''')
+-
+- __swig_getmethods__["is_inlined"] = IsInlined
+- if _newclass: is_inlined = property(IsInlined, None, doc='''A read only property that returns an boolean that indicates if the block frame is an inlined function.''')
+-
+- __swig_getmethods__["name"] = GetFunctionName
+- if _newclass: name = property(GetFunctionName, None, doc='''A read only property that retuns the name for the function that this frame represents. Inlined stack frame might have a concrete function that differs from the name of the inlined function (a named lldb.SBBlock).''')
+-
+- __swig_getmethods__["line_entry"] = GetLineEntry
+- if _newclass: line_entry = property(GetLineEntry, None, doc='''A read only property that returns an lldb object that represents the line table entry (lldb.SBLineEntry) for this stack frame.''')
+-
+- __swig_getmethods__["thread"] = GetThread
+- if _newclass: thread = property(GetThread, None, doc='''A read only property that returns an lldb object that represents the thread (lldb.SBThread) for this stack frame.''')
+-
+- __swig_getmethods__["disassembly"] = Disassemble
+- if _newclass: disassembly = property(Disassemble, None, doc='''A read only property that returns the disassembly for this stack frame as a python string.''')
+-
+- __swig_getmethods__["idx"] = GetFrameID
+- if _newclass: idx = property(GetFrameID, None, doc='''A read only property that returns the zero based stack frame index.''')
+-
+- __swig_getmethods__["variables"] = get_all_variables
+- if _newclass: variables = property(get_all_variables, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the variables in this stack frame.''')
+-
+- __swig_getmethods__["vars"] = get_all_variables
+- if _newclass: vars = property(get_all_variables, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the variables in this stack frame.''')
+-
+- __swig_getmethods__["locals"] = get_locals
+- if _newclass: locals = property(get_locals, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the local variables in this stack frame.''')
+-
+- __swig_getmethods__["args"] = get_arguments
+- if _newclass: args = property(get_arguments, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the argument variables in this stack frame.''')
+-
+- __swig_getmethods__["arguments"] = get_arguments
+- if _newclass: arguments = property(get_arguments, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the argument variables in this stack frame.''')
+-
+- __swig_getmethods__["statics"] = get_statics
+- if _newclass: statics = property(get_statics, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the static variables in this stack frame.''')
+-
+- __swig_getmethods__["registers"] = GetRegisters
+- if _newclass: registers = property(GetRegisters, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the CPU registers for this stack frame.''')
+-
+- __swig_getmethods__["regs"] = GetRegisters
+- if _newclass: regs = property(GetRegisters, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the CPU registers for this stack frame.''')
+-
+- __swig_getmethods__["register"] = get_registers_access
+- if _newclass: register = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame.''')
+-
+- __swig_getmethods__["reg"] = get_registers_access
+- if _newclass: reg = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame''')
+-
+- __swig_getmethods__["parent"] = get_parent_frame
+- if _newclass: parent = property(get_parent_frame, None, doc='''A read only property that returns the parent (caller) frame of the current frame.''')
+-
++ pc = property(GetPC, SetPC)
++ addr = property(GetPCAddress, None, doc='''A read only property that returns the program counter (PC) as a section offset address (lldb.SBAddress).''')
++ fp = property(GetFP, None, doc='''A read only property that returns the frame pointer (FP) as an unsigned integer.''')
++ sp = property(GetSP, None, doc='''A read only property that returns the stack pointer (SP) as an unsigned integer.''')
++ module = property(GetModule, None, doc='''A read only property that returns an lldb object that represents the module (lldb.SBModule) for this stack frame.''')
++ compile_unit = property(GetCompileUnit, None, doc='''A read only property that returns an lldb object that represents the compile unit (lldb.SBCompileUnit) for this stack frame.''')
++ function = property(GetFunction, None, doc='''A read only property that returns an lldb object that represents the function (lldb.SBFunction) for this stack frame.''')
++ symbol = property(GetSymbol, None, doc='''A read only property that returns an lldb object that represents the symbol (lldb.SBSymbol) for this stack frame.''')
++ block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the block (lldb.SBBlock) for this stack frame.''')
++ is_inlined = property(IsInlined, None, doc='''A read only property that returns an boolean that indicates if the block frame is an inlined function.''')
++ name = property(GetFunctionName, None, doc='''A read only property that retuns the name for the function that this frame represents. Inlined stack frame might have a concrete function that differs from the name of the inlined function (a named lldb.SBBlock).''')
++ line_entry = property(GetLineEntry, None, doc='''A read only property that returns an lldb object that represents the line table entry (lldb.SBLineEntry) for this stack frame.''')
++ thread = property(GetThread, None, doc='''A read only property that returns an lldb object that represents the thread (lldb.SBThread) for this stack frame.''')
++ disassembly = property(Disassemble, None, doc='''A read only property that returns the disassembly for this stack frame as a python string.''')
++ idx = property(GetFrameID, None, doc='''A read only property that returns the zero based stack frame index.''')
++ variables = property(get_all_variables, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the variables in this stack frame.''')
++ vars = property(get_all_variables, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the variables in this stack frame.''')
++ locals = property(get_locals, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the local variables in this stack frame.''')
++ args = property(get_arguments, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the argument variables in this stack frame.''')
++ arguments = property(get_arguments, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the argument variables in this stack frame.''')
++ statics = property(get_statics, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the static variables in this stack frame.''')
++ registers = property(GetRegisters, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the CPU registers for this stack frame.''')
++ regs = property(GetRegisters, None, doc='''A read only property that returns a list() that contains a collection of lldb.SBValue objects that represent the CPU registers for this stack frame.''')
++ register = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame.''')
++ reg = property(get_registers_access, None, doc='''A read only property that returns an helper object providing a flattened indexable view of the CPU registers for this stack frame''')
++ parent = property(get_parent_frame, None, doc='''A read only property that returns the parent (caller) frame of the current frame.''')
+ %}
+ };
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBFunction.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBFunction.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBFunction.i
+@@ -115,29 +115,14 @@
+ def get_instructions_from_current_target (self):
+ return self.GetInstructions (target)
+
+- __swig_getmethods__["addr"] = GetStartAddress
+- if _newclass: addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this function.''')
+-
+- __swig_getmethods__["end_addr"] = GetEndAddress
+- if _newclass: end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this function.''')
+-
+- __swig_getmethods__["block"] = GetBlock
+- if _newclass: block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the top level lexical block (lldb.SBBlock) for this function.''')
+-
+- __swig_getmethods__["instructions"] = get_instructions_from_current_target
+- if _newclass: instructions = property(get_instructions_from_current_target, None, doc='''A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this function.''')
+-
+- __swig_getmethods__["mangled"] = GetMangledName
+- if _newclass: mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this function as a string.''')
+-
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name for this function as a string.''')
+-
+- __swig_getmethods__["prologue_size"] = GetPrologueByteSize
+- if _newclass: prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''')
+-
+- __swig_getmethods__["type"] = GetType
+- if _newclass: type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the return type (lldb.SBType) for this function.''')
++ addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this function.''')
++ end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this function.''')
++ block = property(GetBlock, None, doc='''A read only property that returns an lldb object that represents the top level lexical block (lldb.SBBlock) for this function.''')
++ instructions = property(get_instructions_from_current_target, None, doc='''A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this function.''')
++ mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this function as a string.''')
++ name = property(GetName, None, doc='''A read only property that returns the name for this function as a string.''')
++ prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''')
++ type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the return type (lldb.SBType) for this function.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBInstruction.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBInstruction.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBInstruction.i
+@@ -82,23 +82,12 @@
+ def __load_adrr_property__ (self):
+ return self.GetComment (target)
+
+- __swig_getmethods__["mnemonic"] = __mnemonic_property__
+- if _newclass: mnemonic = property(__mnemonic_property__, None, doc='''A read only property that returns the mnemonic for this instruction as a string.''')
+-
+- __swig_getmethods__["operands"] = __operands_property__
+- if _newclass: operands = property(__operands_property__, None, doc='''A read only property that returns the operands for this instruction as a string.''')
+-
+- __swig_getmethods__["comment"] = __comment_property__
+- if _newclass: comment = property(__comment_property__, None, doc='''A read only property that returns the comment for this instruction as a string.''')
+-
+- __swig_getmethods__["addr"] = GetAddress
+- if _newclass: addr = property(GetAddress, None, doc='''A read only property that returns an lldb object that represents the address (lldb.SBAddress) for this instruction.''')
+-
+- __swig_getmethods__["size"] = GetByteSize
+- if _newclass: size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes for this instruction as an integer.''')
+-
+- __swig_getmethods__["is_branch"] = DoesBranch
+- if _newclass: is_branch = property(DoesBranch, None, doc='''A read only property that returns a boolean value that indicates if this instruction is a branch instruction.''')
++ mnemonic = property(__mnemonic_property__, None, doc='''A read only property that returns the mnemonic for this instruction as a string.''')
++ operands = property(__operands_property__, None, doc='''A read only property that returns the operands for this instruction as a string.''')
++ comment = property(__comment_property__, None, doc='''A read only property that returns the comment for this instruction as a string.''')
++ addr = property(GetAddress, None, doc='''A read only property that returns an lldb object that represents the address (lldb.SBAddress) for this instruction.''')
++ size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes for this instruction as an integer.''')
++ is_branch = property(DoesBranch, None, doc='''A read only property that returns a boolean value that indicates if this instruction is a branch instruction.''')
+ %}
+
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBLineEntry.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBLineEntry.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBLineEntry.i
+@@ -84,21 +84,11 @@
+ operator != (const lldb::SBLineEntry &rhs) const;
+
+ %pythoncode %{
+- __swig_getmethods__["file"] = GetFileSpec
+- if _newclass: file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this line entry.''')
+-
+- __swig_getmethods__["line"] = GetLine
+- if _newclass: line = property(GetLine, None, doc='''A read only property that returns the 1 based line number for this line entry, a return value of zero indicates that no line information is available.''')
+-
+- __swig_getmethods__["column"] = GetColumn
+- if _newclass: column = property(GetColumn, None, doc='''A read only property that returns the 1 based column number for this line entry, a return value of zero indicates that no column information is available.''')
+-
+- __swig_getmethods__["addr"] = GetStartAddress
+- if _newclass: addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this line entry.''')
+-
+- __swig_getmethods__["end_addr"] = GetEndAddress
+- if _newclass: end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this line entry.''')
+-
++ file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this line entry.''')
++ line = property(GetLine, None, doc='''A read only property that returns the 1 based line number for this line entry, a return value of zero indicates that no line information is available.''')
++ column = property(GetColumn, None, doc='''A read only property that returns the 1 based column number for this line entry, a return value of zero indicates that no column information is available.''')
++ addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this line entry.''')
++ end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this line entry.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBModule.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBModule.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBModule.i
+@@ -498,50 +498,24 @@
+ self.compile_units_array.append(self.GetCompileUnitAtIndex(idx))
+ return self.compile_units_array
+
+- __swig_getmethods__["symbols"] = get_symbols_array
+- if _newclass: symbols = property(get_symbols_array, None, doc='''A read only property that returns a list() of lldb.SBSymbol objects contained in this module.''')
+-
+- __swig_getmethods__["symbol"] = get_symbols_access_object
+- if _newclass: symbol = property(get_symbols_access_object, None, doc='''A read only property that can be used to access symbols by index ("symbol = module.symbol[0]"), name ("symbols = module.symbol['main']"), or using a regular expression ("symbols = module.symbol[re.compile(...)]"). The return value is a single lldb.SBSymbol object for array access, and a list() of lldb.SBSymbol objects for name and regular expression access''')
+-
+- __swig_getmethods__["sections"] = get_sections_array
+- if _newclass: sections = property(get_sections_array, None, doc='''A read only property that returns a list() of lldb.SBSection objects contained in this module.''')
+-
+- __swig_getmethods__["compile_units"] = get_compile_units_array
+- if _newclass: compile_units = property(get_compile_units_array, None, doc='''A read only property that returns a list() of lldb.SBCompileUnit objects contained in this module.''')
+-
+- __swig_getmethods__["section"] = get_sections_access_object
+- if _newclass: section = property(get_sections_access_object, None, doc='''A read only property that can be used to access symbols by index ("section = module.section[0]"), name ("sections = module.section[\'main\']"), or using a regular expression ("sections = module.section[re.compile(...)]"). The return value is a single lldb.SBSection object for array access, and a list() of lldb.SBSection objects for name and regular expression access''')
+-
+- __swig_getmethods__["compile_unit"] = get_compile_units_access_object
+- if _newclass: section = property(get_sections_access_object, None, doc='''A read only property that can be used to access compile units by index ("compile_unit = module.compile_unit[0]"), name ("compile_unit = module.compile_unit[\'main.cpp\']"), or using a regular expression ("compile_unit = module.compile_unit[re.compile(...)]"). The return value is a single lldb.SBCompileUnit object for array access or by full or partial path, and a list() of lldb.SBCompileUnit objects regular expressions.''')
++ symbols = property(get_symbols_array, None, doc='''A read only property that returns a list() of lldb.SBSymbol objects contained in this module.''')
++ symbol = property(get_symbols_access_object, None, doc='''A read only property that can be used to access symbols by index ("symbol = module.symbol[0]"), name ("symbols = module.symbol['main']"), or using a regular expression ("symbols = module.symbol[re.compile(...)]"). The return value is a single lldb.SBSymbol object for array access, and a list() of lldb.SBSymbol objects for name and regular expression access''')
++ sections = property(get_sections_array, None, doc='''A read only property that returns a list() of lldb.SBSection objects contained in this module.''')
++ compile_units = property(get_compile_units_array, None, doc='''A read only property that returns a list() of lldb.SBCompileUnit objects contained in this module.''')
++ section = property(get_sections_access_object, None, doc='''A read only property that can be used to access symbols by index ("section = module.section[0]"), name ("sections = module.section[\'main\']"), or using a regular expression ("sections = module.section[re.compile(...)]"). The return value is a single lldb.SBSection object for array access, and a list() of lldb.SBSection objects for name and regular expression access''')
++ section = property(get_sections_access_object, None, doc='''A read only property that can be used to access compile units by index ("compile_unit = module.compile_unit[0]"), name ("compile_unit = module.compile_unit[\'main.cpp\']"), or using a regular expression ("compile_unit = module.compile_unit[re.compile(...)]"). The return value is a single lldb.SBCompileUnit object for array access or by full or partial path, and a list() of lldb.SBCompileUnit objects regular expressions.''')
+
+ def get_uuid(self):
+ return uuid.UUID (self.GetUUIDString())
+
+- __swig_getmethods__["uuid"] = get_uuid
+- if _newclass: uuid = property(get_uuid, None, doc='''A read only property that returns a standard python uuid.UUID object that represents the UUID of this module.''')
+-
+- __swig_getmethods__["file"] = GetFileSpec
+- if _newclass: file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this object file for this module as it is represented where it is being debugged.''')
+-
+- __swig_getmethods__["platform_file"] = GetPlatformFileSpec
+- if _newclass: platform_file = property(GetPlatformFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this object file for this module as it is represented on the current host system.''')
+-
+- __swig_getmethods__["byte_order"] = GetByteOrder
+- if _newclass: byte_order = property(GetByteOrder, None, doc='''A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this module.''')
+-
+- __swig_getmethods__["addr_size"] = GetAddressByteSize
+- if _newclass: addr_size = property(GetAddressByteSize, None, doc='''A read only property that returns the size in bytes of an address for this module.''')
+-
+- __swig_getmethods__["triple"] = GetTriple
+- if _newclass: triple = property(GetTriple, None, doc='''A read only property that returns the target triple (arch-vendor-os) for this module.''')
+-
+- __swig_getmethods__["num_symbols"] = GetNumSymbols
+- if _newclass: num_symbols = property(GetNumSymbols, None, doc='''A read only property that returns number of symbols in the module symbol table as an integer.''')
+-
+- __swig_getmethods__["num_sections"] = GetNumSections
+- if _newclass: num_sections = property(GetNumSections, None, doc='''A read only property that returns number of sections in the module as an integer.''')
++ uuid = property(get_uuid, None, doc='''A read only property that returns a standard python uuid.UUID object that represents the UUID of this module.''')
++ file = property(GetFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this object file for this module as it is represented where it is being debugged.''')
++ platform_file = property(GetPlatformFileSpec, None, doc='''A read only property that returns an lldb object that represents the file (lldb.SBFileSpec) for this object file for this module as it is represented on the current host system.''')
++ byte_order = property(GetByteOrder, None, doc='''A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this module.''')
++ addr_size = property(GetAddressByteSize, None, doc='''A read only property that returns the size in bytes of an address for this module.''')
++ triple = property(GetTriple, None, doc='''A read only property that returns the target triple (arch-vendor-os) for this module.''')
++ num_symbols = property(GetNumSymbols, None, doc='''A read only property that returns number of symbols in the module symbol table as an integer.''')
++ num_sections = property(GetNumSections, None, doc='''A read only property that returns number of sections in the module as an integer.''')
+
+ %}
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBProcess.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBProcess.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBProcess.i
+@@ -496,46 +496,20 @@
+ for idx in range(len(accessor)):
+ threads.append(accessor[idx])
+ return threads
+-
+- __swig_getmethods__["threads"] = get_process_thread_list
+- if _newclass: threads = property(get_process_thread_list, None, doc='''A read only property that returns a list() of lldb.SBThread objects for this process.''')
+-
+- __swig_getmethods__["thread"] = get_threads_access_object
+- if _newclass: thread = property(get_threads_access_object, None, doc='''A read only property that returns an object that can access threads by thread index (thread = lldb.process.thread[12]).''')
+
+- __swig_getmethods__["is_alive"] = __get_is_alive__
+- if _newclass: is_alive = property(__get_is_alive__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently alive.''')
+-
+- __swig_getmethods__["is_running"] = __get_is_running__
+- if _newclass: is_running = property(__get_is_running__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently running.''')
+-
+- __swig_getmethods__["is_stopped"] = __get_is_stopped__
+- if _newclass: is_stopped = property(__get_is_stopped__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently stopped.''')
+-
+- __swig_getmethods__["id"] = GetProcessID
+- if _newclass: id = property(GetProcessID, None, doc='''A read only property that returns the process ID as an integer.''')
+-
+- __swig_getmethods__["target"] = GetTarget
+- if _newclass: target = property(GetTarget, None, doc='''A read only property that an lldb object that represents the target (lldb.SBTarget) that owns this process.''')
+-
+- __swig_getmethods__["num_threads"] = GetNumThreads
+- if _newclass: num_threads = property(GetNumThreads, None, doc='''A read only property that returns the number of threads in this process as an integer.''')
+-
+- __swig_getmethods__["selected_thread"] = GetSelectedThread
+- __swig_setmethods__["selected_thread"] = SetSelectedThread
+- if _newclass: selected_thread = property(GetSelectedThread, SetSelectedThread, doc='''A read/write property that gets/sets the currently selected thread in this process. The getter returns a lldb.SBThread object and the setter takes an lldb.SBThread object.''')
+-
+- __swig_getmethods__["state"] = GetState
+- if _newclass: state = property(GetState, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eState") that represents the current state of this process (running, stopped, exited, etc.).''')
+-
+- __swig_getmethods__["exit_state"] = GetExitStatus
+- if _newclass: exit_state = property(GetExitStatus, None, doc='''A read only property that returns an exit status as an integer of this process when the process state is lldb.eStateExited.''')
+-
+- __swig_getmethods__["exit_description"] = GetExitDescription
+- if _newclass: exit_description = property(GetExitDescription, None, doc='''A read only property that returns an exit description as a string of this process when the process state is lldb.eStateExited.''')
+-
+- __swig_getmethods__["broadcaster"] = GetBroadcaster
+- if _newclass: broadcaster = property(GetBroadcaster, None, doc='''A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this process.''')
++ threads = property(get_process_thread_list, None, doc='''A read only property that returns a list() of lldb.SBThread objects for this process.''')
++ thread = property(get_threads_access_object, None, doc='''A read only property that returns an object that can access threads by thread index (thread = lldb.process.thread[12]).''')
++ is_alive = property(__get_is_alive__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently alive.''')
++ is_running = property(__get_is_running__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently running.''')
++ is_stopped = property(__get_is_stopped__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently stopped.''')
++ id = property(GetProcessID, None, doc='''A read only property that returns the process ID as an integer.''')
++ target = property(GetTarget, None, doc='''A read only property that an lldb object that represents the target (lldb.SBTarget) that owns this process.''')
++ num_threads = property(GetNumThreads, None, doc='''A read only property that returns the number of threads in this process as an integer.''')
++ selected_thread = property(GetSelectedThread, SetSelectedThread, doc='''A read/write property that gets/sets the currently selected thread in this process. The getter returns a lldb.SBThread object and the setter takes an lldb.SBThread object.''')
++ state = property(GetState, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eState") that represents the current state of this process (running, stopped, exited, etc.).''')
++ exit_state = property(GetExitStatus, None, doc='''A read only property that returns an exit status as an integer of this process when the process state is lldb.eStateExited.''')
++ exit_description = property(GetExitDescription, None, doc='''A read only property that returns an exit description as a string of this process when the process state is lldb.eStateExited.''')
++ broadcaster = property(GetBroadcaster, None, doc='''A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this process.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSection.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBSection.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSection.i
+@@ -120,33 +120,15 @@
+ def get_addr(self):
+ return SBAddress(self, 0)
+
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name of this section as a string.''')
+-
+- __swig_getmethods__["addr"] = get_addr
+- if _newclass: addr = property(get_addr, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this section.''')
+-
+- __swig_getmethods__["file_addr"] = GetFileAddress
+- if _newclass: file_addr = property(GetFileAddress, None, doc='''A read only property that returns an integer that represents the starting "file" address for this section, or the address of the section in the object file in which it is defined.''')
+-
+- __swig_getmethods__["size"] = GetByteSize
+- if _newclass: size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this section as an integer.''')
+-
+- __swig_getmethods__["file_offset"] = GetFileOffset
+- if _newclass: file_offset = property(GetFileOffset, None, doc='''A read only property that returns the file offset in bytes of this section as an integer.''')
+-
+- __swig_getmethods__["file_size"] = GetFileByteSize
+- if _newclass: file_size = property(GetFileByteSize, None, doc='''A read only property that returns the file size in bytes of this section as an integer.''')
+-
+- __swig_getmethods__["data"] = GetSectionData
+- if _newclass: data = property(GetSectionData, None, doc='''A read only property that returns an lldb object that represents the bytes for this section (lldb.SBData) for this section.''')
+-
+- __swig_getmethods__["type"] = GetSectionType
+- if _newclass: type = property(GetSectionType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSectionType") that represents the type of this section (code, data, etc.).''')
+-
+- __swig_getmethods__["target_byte_size"] = GetTargetByteSize
+- if _newclass: target_byte_size = property(GetTargetByteSize, None, doc='''A read only property that returns the size of a target byte represented by this section as a number of host bytes.''')
+-
++ name = property(GetName, None, doc='''A read only property that returns the name of this section as a string.''')
++ addr = property(get_addr, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this section.''')
++ file_addr = property(GetFileAddress, None, doc='''A read only property that returns an integer that represents the starting "file" address for this section, or the address of the section in the object file in which it is defined.''')
++ size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this section as an integer.''')
++ file_offset = property(GetFileOffset, None, doc='''A read only property that returns the file offset in bytes of this section as an integer.''')
++ file_size = property(GetFileByteSize, None, doc='''A read only property that returns the file size in bytes of this section as an integer.''')
++ data = property(GetSectionData, None, doc='''A read only property that returns an lldb object that represents the bytes for this section (lldb.SBData) for this section.''')
++ type = property(GetSectionType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSectionType") that represents the type of this section (code, data, etc.).''')
++ target_byte_size = property(GetTargetByteSize, None, doc='''A read only property that returns the size of a target byte represented by this section as a number of host bytes.''')
+ %}
+
+ private:
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSymbol.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBSymbol.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSymbol.i
+@@ -74,35 +74,16 @@
+ %pythoncode %{
+ def get_instructions_from_current_target (self):
+ return self.GetInstructions (target)
+-
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name for this symbol as a string.''')
+-
+- __swig_getmethods__["mangled"] = GetMangledName
+- if _newclass: mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this symbol as a string.''')
+-
+- __swig_getmethods__["type"] = GetType
+- if _newclass: type = property(GetType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSymbolType") that represents the type of this symbol.''')
+-
+- __swig_getmethods__["addr"] = GetStartAddress
+- if _newclass: addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this symbol.''')
+-
+- __swig_getmethods__["end_addr"] = GetEndAddress
+- if _newclass: end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this symbol.''')
+-
+- __swig_getmethods__["prologue_size"] = GetPrologueByteSize
+- if _newclass: prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''')
+-
+- __swig_getmethods__["instructions"] = get_instructions_from_current_target
+- if _newclass: instructions = property(get_instructions_from_current_target, None, doc='''A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this symbol.''')
+
+- __swig_getmethods__["external"] = IsExternal
+- if _newclass: external = property(IsExternal, None, doc='''A read only property that returns a boolean value that indicates if this symbol is externally visiable (exported) from the module that contains it.''')
+-
+- __swig_getmethods__["synthetic"] = IsSynthetic
+- if _newclass: synthetic = property(IsSynthetic, None, doc='''A read only property that returns a boolean value that indicates if this symbol was synthetically created from information in module that contains it.''')
+-
+-
++ name = property(GetName, None, doc='''A read only property that returns the name for this symbol as a string.''')
++ mangled = property(GetMangledName, None, doc='''A read only property that returns the mangled (linkage) name for this symbol as a string.''')
++ type = property(GetType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eSymbolType") that represents the type of this symbol.''')
++ addr = property(GetStartAddress, None, doc='''A read only property that returns an lldb object that represents the start address (lldb.SBAddress) for this symbol.''')
++ end_addr = property(GetEndAddress, None, doc='''A read only property that returns an lldb object that represents the end address (lldb.SBAddress) for this symbol.''')
++ prologue_size = property(GetPrologueByteSize, None, doc='''A read only property that returns the size in bytes of the prologue instructions as an unsigned integer.''')
++ instructions = property(get_instructions_from_current_target, None, doc='''A read only property that returns an lldb object that represents the instructions (lldb.SBInstructionList) for this symbol.''')
++ external = property(IsExternal, None, doc='''A read only property that returns a boolean value that indicates if this symbol is externally visiable (exported) from the module that contains it.''')
++ synthetic = property(IsSynthetic, None, doc='''A read only property that returns a boolean value that indicates if this symbol was synthetically created from information in module that contains it.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSymbolContext.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBSymbolContext.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSymbolContext.i
+@@ -79,32 +79,15 @@
+
+ bool
+ GetDescription (lldb::SBStream &description);
+-
+-
+- %pythoncode %{
+- __swig_getmethods__["module"] = GetModule
+- __swig_setmethods__["module"] = SetModule
+- if _newclass: module = property(GetModule, SetModule, doc='''A read/write property that allows the getting/setting of the module (lldb.SBModule) in this symbol context.''')
+-
+- __swig_getmethods__["compile_unit"] = GetCompileUnit
+- __swig_setmethods__["compile_unit"] = SetCompileUnit
+- if _newclass: compile_unit = property(GetCompileUnit, SetCompileUnit, doc='''A read/write property that allows the getting/setting of the compile unit (lldb.SBCompileUnit) in this symbol context.''')
+
+- __swig_getmethods__["function"] = GetFunction
+- __swig_setmethods__["function"] = SetFunction
+- if _newclass: function = property(GetFunction, SetFunction, doc='''A read/write property that allows the getting/setting of the function (lldb.SBFunction) in this symbol context.''')
+
+- __swig_getmethods__["block"] = GetBlock
+- __swig_setmethods__["block"] = SetBlock
+- if _newclass: block = property(GetBlock, SetBlock, doc='''A read/write property that allows the getting/setting of the block (lldb.SBBlock) in this symbol context.''')
+-
+- __swig_getmethods__["symbol"] = GetSymbol
+- __swig_setmethods__["symbol"] = SetSymbol
+- if _newclass: symbol = property(GetSymbol, SetSymbol, doc='''A read/write property that allows the getting/setting of the symbol (lldb.SBSymbol) in this symbol context.''')
+-
+- __swig_getmethods__["line_entry"] = GetLineEntry
+- __swig_setmethods__["line_entry"] = SetLineEntry
+- if _newclass: line_entry = property(GetLineEntry, SetLineEntry, doc='''A read/write property that allows the getting/setting of the line entry (lldb.SBLineEntry) in this symbol context.''')
++ %pythoncode %{
++ module = property(GetModule, SetModule, doc='''A read/write property that allows the getting/setting of the module (lldb.SBModule) in this symbol context.''')
++ compile_unit = property(GetCompileUnit, SetCompileUnit, doc='''A read/write property that allows the getting/setting of the compile unit (lldb.SBCompileUnit) in this symbol context.''')
++ function = property(GetFunction, SetFunction, doc='''A read/write property that allows the getting/setting of the function (lldb.SBFunction) in this symbol context.''')
++ block = property(GetBlock, SetBlock, doc='''A read/write property that allows the getting/setting of the block (lldb.SBBlock) in this symbol context.''')
++ symbol = property(GetSymbol, SetSymbol, doc='''A read/write property that allows the getting/setting of the symbol (lldb.SBSymbol) in this symbol context.''')
++ line_entry = property(GetLineEntry, SetLineEntry, doc='''A read/write property that allows the getting/setting of the line entry (lldb.SBLineEntry) in this symbol context.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSymbolContextList.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBSymbolContextList.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBSymbolContextList.i
+@@ -116,23 +116,13 @@
+ if obj:
+ a.append(obj)
+ return a
+- __swig_getmethods__["modules"] = get_module_array
+- if _newclass: modules = property(get_module_array, None, doc='''Returns a list() of lldb.SBModule objects, one for each module in each SBSymbolContext object in this list.''')
+-
+- __swig_getmethods__["compile_units"] = get_compile_unit_array
+- if _newclass: compile_units = property(get_compile_unit_array, None, doc='''Returns a list() of lldb.SBCompileUnit objects, one for each compile unit in each SBSymbolContext object in this list.''')
+-
+- __swig_getmethods__["functions"] = get_function_array
+- if _newclass: functions = property(get_function_array, None, doc='''Returns a list() of lldb.SBFunction objects, one for each function in each SBSymbolContext object in this list.''')
+-
+- __swig_getmethods__["blocks"] = get_block_array
+- if _newclass: blocks = property(get_block_array, None, doc='''Returns a list() of lldb.SBBlock objects, one for each block in each SBSymbolContext object in this list.''')
+-
+- __swig_getmethods__["line_entries"] = get_line_entry_array
+- if _newclass: line_entries = property(get_line_entry_array, None, doc='''Returns a list() of lldb.SBLineEntry objects, one for each line entry in each SBSymbolContext object in this list.''')
+-
+- __swig_getmethods__["symbols"] = get_symbol_array
+- if _newclass: symbols = property(get_symbol_array, None, doc='''Returns a list() of lldb.SBSymbol objects, one for each symbol in each SBSymbolContext object in this list.''')
++
++ modules = property(get_module_array, None, doc='''Returns a list() of lldb.SBModule objects, one for each module in each SBSymbolContext object in this list.''')
++ compile_units = property(get_compile_unit_array, None, doc='''Returns a list() of lldb.SBCompileUnit objects, one for each compile unit in each SBSymbolContext object in this list.''')
++ functions = property(get_function_array, None, doc='''Returns a list() of lldb.SBFunction objects, one for each function in each SBSymbolContext object in this list.''')
++ blocks = property(get_block_array, None, doc='''Returns a list() of lldb.SBBlock objects, one for each block in each SBSymbolContext object in this list.''')
++ line_entries = property(get_line_entry_array, None, doc='''Returns a list() of lldb.SBLineEntry objects, one for each line entry in each SBSymbolContext object in this list.''')
++ symbols = property(get_symbol_array, None, doc='''Returns a list() of lldb.SBSymbol objects, one for each symbol in each SBSymbolContext object in this list.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTarget.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTarget.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTarget.i
+@@ -1102,47 +1102,20 @@
+ modules.append(self.GetModuleAtIndex(idx))
+ return modules
+
+- __swig_getmethods__["modules"] = get_modules_array
+- if _newclass: modules = property(get_modules_array, None, doc='''A read only property that returns a list() of lldb.SBModule objects contained in this target. This list is a list all modules that the target currently is tracking (the main executable and all dependent shared libraries).''')
+-
+- __swig_getmethods__["module"] = get_modules_access_object
+- if _newclass: module = property(get_modules_access_object, None, doc=r'''A read only property that returns an object that implements python operator overloading with the square brackets().\n target.module[<int>] allows array access to any modules.\n target.module[<str>] allows access to modules by basename, full path, or uuid string value.\n target.module[uuid.UUID()] allows module access by UUID.\n target.module[re] allows module access using a regular expression that matches the module full path.''')
+-
+- __swig_getmethods__["process"] = GetProcess
+- if _newclass: process = property(GetProcess, None, doc='''A read only property that returns an lldb object that represents the process (lldb.SBProcess) that this target owns.''')
+-
+- __swig_getmethods__["executable"] = GetExecutable
+- if _newclass: executable = property(GetExecutable, None, doc='''A read only property that returns an lldb object that represents the main executable module (lldb.SBModule) for this target.''')
+-
+- __swig_getmethods__["debugger"] = GetDebugger
+- if _newclass: debugger = property(GetDebugger, None, doc='''A read only property that returns an lldb object that represents the debugger (lldb.SBDebugger) that owns this target.''')
+-
+- __swig_getmethods__["num_breakpoints"] = GetNumBreakpoints
+- if _newclass: num_breakpoints = property(GetNumBreakpoints, None, doc='''A read only property that returns the number of breakpoints that this target has as an integer.''')
+-
+- __swig_getmethods__["num_watchpoints"] = GetNumWatchpoints
+- if _newclass: num_watchpoints = property(GetNumWatchpoints, None, doc='''A read only property that returns the number of watchpoints that this target has as an integer.''')
+-
+- __swig_getmethods__["broadcaster"] = GetBroadcaster
+- if _newclass: broadcaster = property(GetBroadcaster, None, doc='''A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this target.''')
+-
+- __swig_getmethods__["byte_order"] = GetByteOrder
+- if _newclass: byte_order = property(GetByteOrder, None, doc='''A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this target.''')
+-
+- __swig_getmethods__["addr_size"] = GetAddressByteSize
+- if _newclass: addr_size = property(GetAddressByteSize, None, doc='''A read only property that returns the size in bytes of an address for this target.''')
+-
+- __swig_getmethods__["triple"] = GetTriple
+- if _newclass: triple = property(GetTriple, None, doc='''A read only property that returns the target triple (arch-vendor-os) for this target as a string.''')
+-
+- __swig_getmethods__["data_byte_size"] = GetDataByteSize
+- if _newclass: data_byte_size = property(GetDataByteSize, None, doc='''A read only property that returns the size in host bytes of a byte in the data address space for this target.''')
+-
+- __swig_getmethods__["code_byte_size"] = GetCodeByteSize
+- if _newclass: code_byte_size = property(GetCodeByteSize, None, doc='''A read only property that returns the size in host bytes of a byte in the code address space for this target.''')
+-
+- __swig_getmethods__["platform"] = GetPlatform
+- if _newclass: platform = property(GetPlatform, None, doc='''A read only property that returns the platform associated with with this target.''')
++ modules = property(get_modules_array, None, doc='''A read only property that returns a list() of lldb.SBModule objects contained in this target. This list is a list all modules that the target currently is tracking (the main executable and all dependent shared libraries).''')
++ module = property(get_modules_access_object, None, doc=r'''A read only property that returns an object that implements python operator overloading with the square brackets().\n target.module[<int>] allows array access to any modules.\n target.module[<str>] allows access to modules by basename, full path, or uuid string value.\n target.module[uuid.UUID()] allows module access by UUID.\n target.module[re] allows module access using a regular expression that matches the module full path.''')
++ process = property(GetProcess, None, doc='''A read only property that returns an lldb object that represents the process (lldb.SBProcess) that this target owns.''')
++ executable = property(GetExecutable, None, doc='''A read only property that returns an lldb object that represents the main executable module (lldb.SBModule) for this target.''')
++ debugger = property(GetDebugger, None, doc='''A read only property that returns an lldb object that represents the debugger (lldb.SBDebugger) that owns this target.''')
++ num_breakpoints = property(GetNumBreakpoints, None, doc='''A read only property that returns the number of breakpoints that this target has as an integer.''')
++ num_watchpoints = property(GetNumWatchpoints, None, doc='''A read only property that returns the number of watchpoints that this target has as an integer.''')
++ broadcaster = property(GetBroadcaster, None, doc='''A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this target.''')
++ byte_order = property(GetByteOrder, None, doc='''A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this target.''')
++ addr_size = property(GetAddressByteSize, None, doc='''A read only property that returns the size in bytes of an address for this target.''')
++ triple = property(GetTriple, None, doc='''A read only property that returns the target triple (arch-vendor-os) for this target as a string.''')
++ data_byte_size = property(GetDataByteSize, None, doc='''A read only property that returns the size in host bytes of a byte in the data address space for this target.''')
++ code_byte_size = property(GetCodeByteSize, None, doc='''A read only property that returns the size in host bytes of a byte in the code address space for this target.''')
++ platform = property(GetPlatform, None, doc='''A read only property that returns the platform associated with with this target.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBThread.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBThread.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBThread.i
+@@ -452,45 +452,20 @@
+ for frame in self:
+ frames.append(frame)
+ return frames
+-
+- __swig_getmethods__["id"] = GetThreadID
+- if _newclass: id = property(GetThreadID, None, doc='''A read only property that returns the thread ID as an integer.''')
+
+- __swig_getmethods__["idx"] = GetIndexID
+- if _newclass: idx = property(GetIndexID, None, doc='''A read only property that returns the thread index ID as an integer. Thread index ID values start at 1 and increment as threads come and go and can be used to uniquely identify threads.''')
+-
+- __swig_getmethods__["return_value"] = GetStopReturnValue
+- if _newclass: return_value = property(GetStopReturnValue, None, doc='''A read only property that returns an lldb object that represents the return value from the last stop (lldb.SBValue) if we just stopped due to stepping out of a function.''')
+-
+- __swig_getmethods__["process"] = GetProcess
+- if _newclass: process = property(GetProcess, None, doc='''A read only property that returns an lldb object that represents the process (lldb.SBProcess) that owns this thread.''')
+-
+- __swig_getmethods__["num_frames"] = GetNumFrames
+- if _newclass: num_frames = property(GetNumFrames, None, doc='''A read only property that returns the number of stack frames in this thread as an integer.''')
+-
+- __swig_getmethods__["frames"] = get_thread_frames
+- if _newclass: frames = property(get_thread_frames, None, doc='''A read only property that returns a list() of lldb.SBFrame objects for all frames in this thread.''')
+-
+- __swig_getmethods__["frame"] = get_frames_access_object
+- if _newclass: frame = property(get_frames_access_object, None, doc='''A read only property that returns an object that can be used to access frames as an array ("frame_12 = lldb.thread.frame[12]").''')
+-
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name of this thread as a string.''')
+-
+- __swig_getmethods__["queue"] = GetQueueName
+- if _newclass: queue = property(GetQueueName, None, doc='''A read only property that returns the dispatch queue name of this thread as a string.''')
+-
+- __swig_getmethods__["queue_id"] = GetQueueID
+- if _newclass: queue_id = property(GetQueueID, None, doc='''A read only property that returns the dispatch queue id of this thread as an integer.''')
+-
+- __swig_getmethods__["stop_reason"] = GetStopReason
+- if _newclass: stop_reason = property(GetStopReason, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eStopReason") that represents the reason this thread stopped.''')
+-
+- __swig_getmethods__["is_suspended"] = IsSuspended
+- if _newclass: is_suspended = property(IsSuspended, None, doc='''A read only property that returns a boolean value that indicates if this thread is suspended.''')
+-
+- __swig_getmethods__["is_stopped"] = IsStopped
+- if _newclass: is_stopped = property(IsStopped, None, doc='''A read only property that returns a boolean value that indicates if this thread is stopped but not exited.''')
++ id = property(GetThreadID, None, doc='''A read only property that returns the thread ID as an integer.''')
++ idx = property(GetIndexID, None, doc='''A read only property that returns the thread index ID as an integer. Thread index ID values start at 1 and increment as threads come and go and can be used to uniquely identify threads.''')
++ return_value = property(GetStopReturnValue, None, doc='''A read only property that returns an lldb object that represents the return value from the last stop (lldb.SBValue) if we just stopped due to stepping out of a function.''')
++ process = property(GetProcess, None, doc='''A read only property that returns an lldb object that represents the process (lldb.SBProcess) that owns this thread.''')
++ num_frames = property(GetNumFrames, None, doc='''A read only property that returns the number of stack frames in this thread as an integer.''')
++ frames = property(get_thread_frames, None, doc='''A read only property that returns a list() of lldb.SBFrame objects for all frames in this thread.''')
++ frame = property(get_frames_access_object, None, doc='''A read only property that returns an object that can be used to access frames as an array ("frame_12 = lldb.thread.frame[12]").''')
++ name = property(GetName, None, doc='''A read only property that returns the name of this thread as a string.''')
++ queue = property(GetQueueName, None, doc='''A read only property that returns the dispatch queue name of this thread as a string.''')
++ queue_id = property(GetQueueID, None, doc='''A read only property that returns the dispatch queue id of this thread as an integer.''')
++ stop_reason = property(GetStopReason, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eStopReason") that represents the reason this thread stopped.''')
++ is_suspended = property(IsSuspended, None, doc='''A read only property that returns a boolean value that indicates if this thread is suspended.''')
++ is_stopped = property(IsStopped, None, doc='''A read only property that returns a boolean value that indicates if this thread is stopped but not exited.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBType.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBType.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBType.i
+@@ -44,24 +44,12 @@
+ GetBitfieldSizeInBits();
+
+ %pythoncode %{
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name for this member as a string.''')
+-
+- __swig_getmethods__["type"] = GetType
+- if _newclass: type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this member.''')
+-
+- __swig_getmethods__["byte_offset"] = GetOffsetInBytes
+- if _newclass: byte_offset = property(GetOffsetInBytes, None, doc='''A read only property that returns offset in bytes for this member as an integer.''')
+-
+- __swig_getmethods__["bit_offset"] = GetOffsetInBits
+- if _newclass: bit_offset = property(GetOffsetInBits, None, doc='''A read only property that returns offset in bits for this member as an integer.''')
+-
+- __swig_getmethods__["is_bitfield"] = IsBitfield
+- if _newclass: is_bitfield = property(IsBitfield, None, doc='''A read only property that returns true if this member is a bitfield.''')
+-
+- __swig_getmethods__["bitfield_bit_size"] = GetBitfieldSizeInBits
+- if _newclass: bitfield_bit_size = property(GetBitfieldSizeInBits, None, doc='''A read only property that returns the bitfield size in bits for this member as an integer, or zero if this member is not a bitfield.''')
+-
++ name = property(GetName, None, doc='''A read only property that returns the name for this member as a string.''')
++ type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this member.''')
++ byte_offset = property(GetOffsetInBytes, None, doc='''A read only property that returns offset in bytes for this member as an integer.''')
++ bit_offset = property(GetOffsetInBits, None, doc='''A read only property that returns offset in bits for this member as an integer.''')
++ is_bitfield = property(IsBitfield, None, doc='''A read only property that returns true if this member is a bitfield.''')
++ bitfield_bit_size = property(GetBitfieldSizeInBits, None, doc='''A read only property that returns the bitfield size in bits for this member as an integer, or zero if this member is not a bitfield.''')
+ %}
+
+ protected:
+@@ -327,41 +315,18 @@
+ return template_args
+ return None
+
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name for this type as a string.''')
+-
+- __swig_getmethods__["size"] = GetByteSize
+- if _newclass: size = property(GetByteSize, None, doc='''A read only property that returns size in bytes for this type as an integer.''')
+-
+- __swig_getmethods__["is_pointer"] = IsPointerType
+- if _newclass: is_pointer = property(IsPointerType, None, doc='''A read only property that returns a boolean value that indicates if this type is a pointer type.''')
+-
+- __swig_getmethods__["is_reference"] = IsReferenceType
+- if _newclass: is_reference = property(IsReferenceType, None, doc='''A read only property that returns a boolean value that indicates if this type is a reference type.''')
+-
+- __swig_getmethods__["is_function"] = IsFunctionType
+- if _newclass: is_reference = property(IsReferenceType, None, doc='''A read only property that returns a boolean value that indicates if this type is a function type.''')
+-
+- __swig_getmethods__["num_fields"] = GetNumberOfFields
+- if _newclass: num_fields = property(GetNumberOfFields, None, doc='''A read only property that returns number of fields in this type as an integer.''')
+-
+- __swig_getmethods__["num_bases"] = GetNumberOfDirectBaseClasses
+- if _newclass: num_bases = property(GetNumberOfDirectBaseClasses, None, doc='''A read only property that returns number of direct base classes in this type as an integer.''')
+-
+- __swig_getmethods__["num_vbases"] = GetNumberOfVirtualBaseClasses
+- if _newclass: num_vbases = property(GetNumberOfVirtualBaseClasses, None, doc='''A read only property that returns number of virtual base classes in this type as an integer.''')
+-
+- __swig_getmethods__["num_template_args"] = GetNumberOfTemplateArguments
+- if _newclass: num_template_args = property(GetNumberOfTemplateArguments, None, doc='''A read only property that returns number of template arguments in this type as an integer.''')
+-
+- __swig_getmethods__["template_args"] = template_arg_array
+- if _newclass: template_args = property(template_arg_array, None, doc='''A read only property that returns a list() of lldb.SBType objects that represent all template arguments in this type.''')
+-
+- __swig_getmethods__["type"] = GetTypeClass
+- if _newclass: type = property(GetTypeClass, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eTypeClass") that represents a classification for this type.''')
+-
+- __swig_getmethods__["is_complete"] = IsTypeComplete
+- if _newclass: is_complete = property(IsTypeComplete, None, doc='''A read only property that returns a boolean value that indicates if this type is a complete type (True) or a forward declaration (False).''')
++ name = property(GetName, None, doc='''A read only property that returns the name for this type as a string.''')
++ size = property(GetByteSize, None, doc='''A read only property that returns size in bytes for this type as an integer.''')
++ is_pointer = property(IsPointerType, None, doc='''A read only property that returns a boolean value that indicates if this type is a pointer type.''')
++ is_reference = property(IsReferenceType, None, doc='''A read only property that returns a boolean value that indicates if this type is a reference type.''')
++ is_reference = property(IsReferenceType, None, doc='''A read only property that returns a boolean value that indicates if this type is a function type.''')
++ num_fields = property(GetNumberOfFields, None, doc='''A read only property that returns number of fields in this type as an integer.''')
++ num_bases = property(GetNumberOfDirectBaseClasses, None, doc='''A read only property that returns number of direct base classes in this type as an integer.''')
++ num_vbases = property(GetNumberOfVirtualBaseClasses, None, doc='''A read only property that returns number of virtual base classes in this type as an integer.''')
++ num_template_args = property(GetNumberOfTemplateArguments, None, doc='''A read only property that returns number of template arguments in this type as an integer.''')
++ template_args = property(template_arg_array, None, doc='''A read only property that returns a list() of lldb.SBType objects that represent all template arguments in this type.''')
++ type = property(GetTypeClass, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eTypeClass") that represents a classification for this type.''')
++ is_complete = property(IsTypeComplete, None, doc='''A read only property that returns a boolean value that indicates if this type is a complete type (True) or a forward declaration (False).''')
+
+ def get_bases_array(self):
+ '''An accessor function that returns a list() that contains all direct base classes in a lldb.SBType object.'''
+@@ -430,21 +395,11 @@
+ enum_members_list.append(sb_enum_members.GetTypeEnumMemberAtIndex(idx))
+ return enum_members_list
+
+- __swig_getmethods__["bases"] = get_bases_array
+- if _newclass: bases = property(get_bases_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the direct base classes for this type.''')
+-
+- __swig_getmethods__["vbases"] = get_vbases_array
+- if _newclass: vbases = property(get_vbases_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the virtual base classes for this type.''')
+-
+- __swig_getmethods__["fields"] = get_fields_array
+- if _newclass: fields = property(get_fields_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the fields for this type.''')
+-
+- __swig_getmethods__["members"] = get_members_array
+- if _newclass: members = property(get_members_array, None, doc='''A read only property that returns a list() of all lldb.SBTypeMember objects that represent all of the base classes, virtual base classes and fields for this type in ascending bit offset order.''')
+-
+- __swig_getmethods__["enum_members"] = get_enum_members_array
+- if _newclass: enum_members = property(get_enum_members_array, None, doc='''A read only property that returns a list() of all lldb.SBTypeEnumMember objects that represent the enum members for this type.''')
+-
++ bases = property(get_bases_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the direct base classes for this type.''')
++ vbases = property(get_vbases_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the virtual base classes for this type.''')
++ fields = property(get_fields_array, None, doc='''A read only property that returns a list() of lldb.SBTypeMember objects that represent all of the fields for this type.''')
++ members = property(get_members_array, None, doc='''A read only property that returns a list() of all lldb.SBTypeMember objects that represent all of the base classes, virtual base classes and fields for this type in ascending bit offset order.''')
++ enum_members = property(get_enum_members_array, None, doc='''A read only property that returns a list() of all lldb.SBTypeEnumMember objects that represent the enum members for this type.''')
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeCategory.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTypeCategory.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeCategory.i
+@@ -198,45 +198,20 @@
+ filters.append(self.GetFilterAtIndex(idx))
+ return filters
+
+- __swig_getmethods__["formats"] = get_formats_array
+- if _newclass: formats = property(get_formats_array, None, doc='''A read only property that returns a list() of lldb.SBTypeFormat objects contained in this category''')
+-
+- __swig_getmethods__["format"] = get_formats_access_object
+- if _newclass: format = property(get_formats_access_object, None, doc=r'''A read only property that returns an object that you can use to look for formats by index or type name.''')
+-
+- __swig_getmethods__["summaries"] = get_summaries_array
+- if _newclass: summaries = property(get_summaries_array, None, doc='''A read only property that returns a list() of lldb.SBTypeSummary objects contained in this category''')
+-
+- __swig_getmethods__["summary"] = get_summaries_access_object
+- if _newclass: summary = property(get_summaries_access_object, None, doc=r'''A read only property that returns an object that you can use to look for summaries by index or type name or regular expression.''')
+-
+- __swig_getmethods__["filters"] = get_filters_array
+- if _newclass: filters = property(get_filters_array, None, doc='''A read only property that returns a list() of lldb.SBTypeFilter objects contained in this category''')
+-
+- __swig_getmethods__["filter"] = get_filters_access_object
+- if _newclass: filter = property(get_filters_access_object, None, doc=r'''A read only property that returns an object that you can use to look for filters by index or type name or regular expression.''')
+-
+- __swig_getmethods__["synthetics"] = get_synthetics_array
+- if _newclass: synthetics = property(get_synthetics_array, None, doc='''A read only property that returns a list() of lldb.SBTypeSynthetic objects contained in this category''')
+-
+- __swig_getmethods__["synthetic"] = get_synthetics_access_object
+- if _newclass: synthetic = property(get_synthetics_access_object, None, doc=r'''A read only property that returns an object that you can use to look for synthetic children provider by index or type name or regular expression.''')
+-
+- __swig_getmethods__["num_formats"] = GetNumFormats
+- if _newclass: num_formats = property(GetNumFormats, None)
+- __swig_getmethods__["num_summaries"] = GetNumSummaries
+- if _newclass: num_summaries = property(GetNumSummaries, None)
+- __swig_getmethods__["num_filters"] = GetNumFilters
+- if _newclass: num_filters = property(GetNumFilters, None)
+- __swig_getmethods__["num_synthetics"] = GetNumSynthetics
+- if _newclass: num_synthetics = property(GetNumSynthetics, None)
+-
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None)
+-
+- __swig_getmethods__["enabled"] = GetEnabled
+- __swig_setmethods__["enabled"] = SetEnabled
+- if _newclass: enabled = property(GetEnabled, SetEnabled)
++ formats = property(get_formats_array, None, doc='''A read only property that returns a list() of lldb.SBTypeFormat objects contained in this category''')
++ format = property(get_formats_access_object, None, doc=r'''A read only property that returns an object that you can use to look for formats by index or type name.''')
++ summaries = property(get_summaries_array, None, doc='''A read only property that returns a list() of lldb.SBTypeSummary objects contained in this category''')
++ summary = property(get_summaries_access_object, None, doc=r'''A read only property that returns an object that you can use to look for summaries by index or type name or regular expression.''')
++ filters = property(get_filters_array, None, doc='''A read only property that returns a list() of lldb.SBTypeFilter objects contained in this category''')
++ filter = property(get_filters_access_object, None, doc=r'''A read only property that returns an object that you can use to look for filters by index or type name or regular expression.''')
++ synthetics = property(get_synthetics_array, None, doc='''A read only property that returns a list() of lldb.SBTypeSynthetic objects contained in this category''')
++ synthetic = property(get_synthetics_access_object, None, doc=r'''A read only property that returns an object that you can use to look for synthetic children provider by index or type name or regular expression.''')
++ num_formats = property(GetNumFormats, None)
++ num_summaries = property(GetNumSummaries, None)
++ num_filters = property(GetNumFilters, None)
++ num_synthetics = property(GetNumSynthetics, None)
++ name = property(GetName, None)
++ enabled = property(GetEnabled, SetEnabled)
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeEnumMember.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTypeEnumMember.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeEnumMember.i
+@@ -43,17 +43,10 @@
+ lldb::DescriptionLevel description_level);
+
+ %pythoncode %{
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name for this enum member as a string.''')
+-
+- __swig_getmethods__["type"] = GetType
+- if _newclass: type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this enum member.''')
+-
+- __swig_getmethods__["signed"] = GetValueAsSigned
+- if _newclass: signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this enum member as a signed integer.''')
+-
+- __swig_getmethods__["unsigned"] = GetValueAsUnsigned
+- if _newclass: unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this enum member as a unsigned integer.''')
++ name = property(GetName, None, doc='''A read only property that returns the name for this enum member as a string.''')
++ type = property(GetType, None, doc='''A read only property that returns an lldb object that represents the type (lldb.SBType) for this enum member.''')
++ signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this enum member as a signed integer.''')
++ unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this enum member as a unsigned integer.''')
+ %}
+
+ protected:
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeFilter.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTypeFilter.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeFilter.i
+@@ -62,12 +62,8 @@
+ operator != (lldb::SBTypeFilter &rhs);
+
+ %pythoncode %{
+- __swig_getmethods__["options"] = GetOptions
+- __swig_setmethods__["options"] = SetOptions
+- if _newclass: options = property(GetOptions, SetOptions)
+-
+- __swig_getmethods__["count"] = GetNumberOfExpressionPaths
+- if _newclass: count = property(GetNumberOfExpressionPaths, None)
++ options = property(GetOptions, SetOptions)
++ count = property(GetNumberOfExpressionPaths)
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeFormat.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTypeFormat.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeFormat.i
+@@ -62,13 +62,8 @@
+ operator != (lldb::SBTypeFormat &rhs);
+
+ %pythoncode %{
+- __swig_getmethods__["format"] = GetFormat
+- __swig_setmethods__["format"] = SetFormat
+- if _newclass: format = property(GetFormat, SetFormat)
+-
+- __swig_getmethods__["options"] = GetOptions
+- __swig_setmethods__["options"] = SetOptions
+- if _newclass: options = property(GetOptions, SetOptions)
++ format = property(GetFormat, SetFormat)
++ options = property(GetOptions, SetOptions)
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeNameSpecifier.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTypeNameSpecifier.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeNameSpecifier.i
+@@ -54,11 +54,8 @@
+ operator != (lldb::SBTypeNameSpecifier &rhs);
+
+ %pythoncode %{
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None)
+-
+- __swig_getmethods__["is_regex"] = IsRegex
+- if _newclass: is_regex = property(IsRegex, None)
++ name = property(GetName)
++ is_regex = property(IsRegex)
+ %}
+
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeSummary.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTypeSummary.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeSummary.i
+@@ -100,21 +100,11 @@
+ operator != (lldb::SBTypeSummary &rhs);
+
+ %pythoncode %{
+- __swig_getmethods__["options"] = GetOptions
+- __swig_setmethods__["options"] = SetOptions
+- if _newclass: options = property(GetOptions, SetOptions)
+-
+- __swig_getmethods__["is_summary_string"] = IsSummaryString
+- if _newclass: is_summary_string = property(IsSummaryString, None)
+-
+- __swig_getmethods__["is_function_name"] = IsFunctionName
+- if _newclass: is_function_name = property(IsFunctionName, None)
+-
+- __swig_getmethods__["is_function_name"] = IsFunctionCode
+- if _newclass: is_function_name = property(IsFunctionCode, None)
+-
+- __swig_getmethods__["summary_data"] = GetData
+- if _newclass: summary_data = property(GetData, None)
++ options = property(GetOptions, SetOptions)
++ is_summary_string = property(IsSummaryString)
++ is_function_name = property(IsFunctionName)
++ is_function_name = property(IsFunctionCode)
++ summary_data = property(GetData)
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeSynthetic.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBTypeSynthetic.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBTypeSynthetic.i
+@@ -64,15 +64,9 @@
+ operator != (lldb::SBTypeSynthetic &rhs);
+
+ %pythoncode %{
+- __swig_getmethods__["options"] = GetOptions
+- __swig_setmethods__["options"] = SetOptions
+- if _newclass: options = property(GetOptions, SetOptions)
+-
+- __swig_getmethods__["contains_code"] = IsClassCode
+- if _newclass: contains_code = property(IsClassCode, None)
+-
+- __swig_getmethods__["synthetic_data"] = GetData
+- if _newclass: synthetic_data = property(GetData, None)
++ options = property(GetOptions, SetOptions)
++ contains_code = property(IsClassCode, None)
++ synthetic_data = property(GetData, None)
+ %}
+
+ };
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBUnixSignals.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBUnixSignals.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBUnixSignals.i
+@@ -66,8 +66,7 @@
+ signals.append(self.GetSignalAtIndex(sig))
+ return signals
+
+- __swig_getmethods__["signals"] = get_unix_signals_list
+- if _newclass: threads = property(get_unix_signals_list, None, doc='''A read only property that returns a list() of valid signal numbers for this platform.''')
++ threads = property(get_unix_signals_list, None, doc='''A read only property that returns a list() of valid signal numbers for this platform.''')
+ %}
+ };
+
+Index: llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBValue.i
+===================================================================
+--- llvm-toolchain-8-8.0.1.orig/lldb/scripts/interface/SBValue.i
++++ llvm-toolchain-8-8.0.1/lldb/scripts/interface/SBValue.i
+@@ -482,98 +482,43 @@
+ for idx in range(len(accessor)):
+ children.append(accessor[idx])
+ return children
+-
+- __swig_getmethods__["children"] = get_value_child_list
+- if _newclass: children = property(get_value_child_list, None, doc='''A read only property that returns a list() of lldb.SBValue objects for the children of the value.''')
+-
+- __swig_getmethods__["child"] = get_child_access_object
+- if _newclass: child = property(get_child_access_object, None, doc='''A read only property that returns an object that can access children of a variable by index (child_value = value.children[12]).''')
+
+- __swig_getmethods__["name"] = GetName
+- if _newclass: name = property(GetName, None, doc='''A read only property that returns the name of this value as a string.''')
+
+- __swig_getmethods__["type"] = GetType
+- if _newclass: type = property(GetType, None, doc='''A read only property that returns a lldb.SBType object that represents the type for this value.''')
+-
+- __swig_getmethods__["size"] = GetByteSize
+- if _newclass: size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this value.''')
+-
+- __swig_getmethods__["is_in_scope"] = IsInScope
+- if _newclass: is_in_scope = property(IsInScope, None, doc='''A read only property that returns a boolean value that indicates whether this value is currently lexically in scope.''')
+-
+- __swig_getmethods__["format"] = GetFormat
+- __swig_setmethods__["format"] = SetFormat
+- if _newclass: format = property(GetName, SetFormat, doc='''A read/write property that gets/sets the format used for lldb.SBValue().GetValue() for this value. See enumerations that start with "lldb.eFormat".''')
+-
+- __swig_getmethods__["value"] = GetValue
+- __swig_setmethods__["value"] = SetValueFromCString
+- if _newclass: value = property(GetValue, SetValueFromCString, doc='''A read/write property that gets/sets value from a string.''')
+-
+- __swig_getmethods__["value_type"] = GetValueType
+- if _newclass: value_type = property(GetValueType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eValueType") that represents the type of this value (local, argument, global, register, etc.).''')
+-
+- __swig_getmethods__["changed"] = GetValueDidChange
+- if _newclass: changed = property(GetValueDidChange, None, doc='''A read only property that returns a boolean value that indicates if this value has changed since it was last updated.''')
+-
+- __swig_getmethods__["data"] = GetData
+- if _newclass: data = property(GetData, None, doc='''A read only property that returns an lldb object (lldb.SBData) that represents the bytes that make up the value for this object.''')
+-
+- __swig_getmethods__["load_addr"] = GetLoadAddress
+- if _newclass: load_addr = property(GetLoadAddress, None, doc='''A read only property that returns the load address of this value as an integer.''')
+-
+- __swig_getmethods__["addr"] = GetAddress
+- if _newclass: addr = property(GetAddress, None, doc='''A read only property that returns an lldb.SBAddress that represents the address of this value if it is in memory.''')
+-
+- __swig_getmethods__["deref"] = Dereference
+- if _newclass: deref = property(Dereference, None, doc='''A read only property that returns an lldb.SBValue that is created by dereferencing this value.''')
+-
+- __swig_getmethods__["address_of"] = AddressOf
+- if _newclass: address_of = property(AddressOf, None, doc='''A read only property that returns an lldb.SBValue that represents the address-of this value.''')
+-
+- __swig_getmethods__["error"] = GetError
+- if _newclass: error = property(GetError, None, doc='''A read only property that returns the lldb.SBError that represents the error from the last time the variable value was calculated.''')
+-
+- __swig_getmethods__["summary"] = GetSummary
+- if _newclass: summary = property(GetSummary, None, doc='''A read only property that returns the summary for this value as a string''')
+-
+- __swig_getmethods__["description"] = GetObjectDescription
+- if _newclass: description = property(GetObjectDescription, None, doc='''A read only property that returns the language-specific description of this value as a string''')
+-
+- __swig_getmethods__["dynamic"] = __get_dynamic__
+- if _newclass: dynamic = property(__get_dynamic__, None, doc='''A read only property that returns an lldb.SBValue that is created by finding the dynamic type of this value.''')
+-
+- __swig_getmethods__["location"] = GetLocation
+- if _newclass: location = property(GetLocation, None, doc='''A read only property that returns the location of this value as a string.''')
+-
+- __swig_getmethods__["target"] = GetTarget
+- if _newclass: target = property(GetTarget, None, doc='''A read only property that returns the lldb.SBTarget that this value is associated with.''')
+-
+- __swig_getmethods__["process"] = GetProcess
+- if _newclass: process = property(GetProcess, None, doc='''A read only property that returns the lldb.SBProcess that this value is associated with, the returned value might be invalid and should be tested.''')
+-
+- __swig_getmethods__["thread"] = GetThread
+- if _newclass: thread = property(GetThread, None, doc='''A read only property that returns the lldb.SBThread that this value is associated with, the returned value might be invalid and should be tested.''')
+-
+- __swig_getmethods__["frame"] = GetFrame
+- if _newclass: frame = property(GetFrame, None, doc='''A read only property that returns the lldb.SBFrame that this value is associated with, the returned value might be invalid and should be tested.''')
+-
+- __swig_getmethods__["num_children"] = GetNumChildren
+- if _newclass: num_children = property(GetNumChildren, None, doc='''A read only property that returns the number of child lldb.SBValues that this value has.''')
+-
+- __swig_getmethods__["unsigned"] = GetValueAsUnsigned
+- if _newclass: unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this SBValue as an usigned integer.''')
+-
+- __swig_getmethods__["signed"] = GetValueAsSigned
+- if _newclass: signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this SBValue as a signed integer.''')
++ children = property(get_value_child_list, None, doc='''A read only property that returns a list() of lldb.SBValue objects for the children of the value.''')
++ child = property(get_child_access_object, None, doc='''A read only property that returns an object that can access children of a variable by index (child_value = value.children[12]).''')
++ name = property(GetName, None, doc='''A read only property that returns the name of this value as a string.''')
++ type = property(GetType, None, doc='''A read only property that returns a lldb.SBType object that represents the type for this value.''')
++ size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this value.''')
++ is_in_scope = property(IsInScope, None, doc='''A read only property that returns a boolean value that indicates whether this value is currently lexically in scope.''')
++ format = property(GetName, SetFormat, doc='''A read/write property that gets/sets the format used for lldb.SBValue().GetValue() for this value. See enumerations that start with "lldb.eFormat".''')
++ value = property(GetValue, SetValueFromCString, doc='''A read/write property that gets/sets value from a string.''')
++ value_type = property(GetValueType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eValueType") that represents the type of this value (local, argument, global, register, etc.).''')
++ changed = property(GetValueDidChange, None, doc='''A read only property that returns a boolean value that indicates if this value has changed since it was last updated.''')
++ data = property(GetData, None, doc='''A read only property that returns an lldb object (lldb.SBData) that represents the bytes that make up the value for this object.''')
++ load_addr = property(GetLoadAddress, None, doc='''A read only property that returns the load address of this value as an integer.''')
++ addr = property(GetAddress, None, doc='''A read only property that returns an lldb.SBAddress that represents the address of this value if it is in memory.''')
++ deref = property(Dereference, None, doc='''A read only property that returns an lldb.SBValue that is created by dereferencing this value.''')
++ address_of = property(AddressOf, None, doc='''A read only property that returns an lldb.SBValue that represents the address-of this value.''')
++ error = property(GetError, None, doc='''A read only property that returns the lldb.SBError that represents the error from the last time the variable value was calculated.''')
++ summary = property(GetSummary, None, doc='''A read only property that returns the summary for this value as a string''')
++ description = property(GetObjectDescription, None, doc='''A read only property that returns the language-specific description of this value as a string''')
++ dynamic = property(__get_dynamic__, None, doc='''A read only property that returns an lldb.SBValue that is created by finding the dynamic type of this value.''')
++ location = property(GetLocation, None, doc='''A read only property that returns the location of this value as a string.''')
++ target = property(GetTarget, None, doc='''A read only property that returns the lldb.SBTarget that this value is associated with.''')
++ process = property(GetProcess, None, doc='''A read only property that returns the lldb.SBProcess that this value is associated with, the returned value might be invalid and should be tested.''')
++ thread = property(GetThread, None, doc='''A read only property that returns the lldb.SBThread that this value is associated with, the returned value might be invalid and should be tested.''')
++ frame = property(GetFrame, None, doc='''A read only property that returns the lldb.SBFrame that this value is associated with, the returned value might be invalid and should be tested.''')
++ num_children = property(GetNumChildren, None, doc='''A read only property that returns the number of child lldb.SBValues that this value has.''')
++ unsigned = property(GetValueAsUnsigned, None, doc='''A read only property that returns the value of this SBValue as an usigned integer.''')
++ signed = property(GetValueAsSigned, None, doc='''A read only property that returns the value of this SBValue as a signed integer.''')
+
+ def get_expr_path(self):
+ s = SBStream()
+ self.GetExpressionPath (s)
+ return s.GetData()
+-
+- __swig_getmethods__["path"] = get_expr_path
+- if _newclass: path = property(get_expr_path, None, doc='''A read only property that returns the expression path that one can use to reach this value in an expression.''')
+-
++
++ path = property(get_expr_path, None, doc='''A read only property that returns the expression path that one can use to reach this value in an expression.''')
++
+ def synthetic_child_from_expression(self, name, expr, options=None):
+ if options is None: options = lldb.SBExpressionOptions()
+ child = self.CreateValueFromExpression(name, expr, options)
--- /dev/null
+Index: llvm-toolchain-7-7/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
+===================================================================
+--- llvm-toolchain-7-7.orig/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
++++ llvm-toolchain-7-7/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
+@@ -26,6 +26,10 @@
+ #include "sanitizer_symbolizer_internal.h"
+ #include "sanitizer_symbolizer_libbacktrace.h"
+ #include "sanitizer_symbolizer_mac.h"
++#include "llvm/Config/llvm-config.h" // for LLVM_VERSION_MAJOR
++
++#define TOSTR2(X) #X
++#define TOSTR(X) TOSTR2(X)
+
+ #include <dlfcn.h> // for dlsym()
+ #include <errno.h>
+@@ -481,7 +485,7 @@ static SymbolizerTool *ChooseExternalSym
+ return new(*allocator) AtosSymbolizer(found_path, allocator);
+ }
+ #endif // SANITIZER_MAC
+- if (const char *found_path = FindPathToBinary("llvm-symbolizer")) {
++ if (const char *found_path = "/usr/bin/llvm-symbolizer-" TOSTR(LLVM_VERSION_MAJOR)) {
+ VReport(2, "Using llvm-symbolizer found at: %s\n", found_path);
+ return new(*allocator) LLVMSymbolizer(found_path, allocator);
+ }
--- /dev/null
+Index: llvm-toolchain-5.0-5.0.1~+rc1/utils/lit/lit/ProgressBar.py
+===================================================================
+--- llvm-toolchain-5.0-5.0.1~+rc1.orig/utils/lit/lit/ProgressBar.py
++++ llvm-toolchain-5.0-5.0.1~+rc1/utils/lit/lit/ProgressBar.py
+@@ -189,15 +189,7 @@ class SimpleProgressBar:
+ return
+
+ for i in range(self.atIndex, next):
+- idx = i % 5
+- if idx == 0:
+- sys.stdout.write('%-2d' % (i*2))
+- elif idx == 1:
+- pass # Skip second char
+- elif idx < 4:
+- sys.stdout.write('.')
+- else:
+- sys.stdout.write(' ')
++ sys.stdout.write('%-2d ' % (i*2))
+ sys.stdout.flush()
+ self.atIndex = next
+
--- /dev/null
+Description: Add uoan as supported architecture
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2019-04-21
+
+--- llvm-toolchain-8-8.orig/clang/include/clang/Driver/Distro.h
++++ llvm-toolchain-8-8/clang/include/clang/Driver/Distro.h
+@@ -64,6 +64,7 @@ public:
+ UbuntuBionic,
+ UbuntuCosmic,
+ UbuntuDisco,
++ UbuntuEoan,
+ UnknownDistro
+ };
+
+@@ -117,7 +118,7 @@ public:
+ }
+
+ bool IsUbuntu() const {
+- return DistroVal >= UbuntuHardy && DistroVal <= UbuntuDisco;
++ return DistroVal >= UbuntuHardy && DistroVal <= UbuntuEoan;
+ }
+
+ bool IsAlpineLinux() const {
+--- llvm-toolchain-8-8.orig/clang/lib/Driver/Distro.cpp
++++ llvm-toolchain-8-8/clang/lib/Driver/Distro.cpp
+@@ -52,6 +52,7 @@ static Distro::DistroType DetectDistro(l
+ .Case("bionic", Distro::UbuntuBionic)
+ .Case("cosmic", Distro::UbuntuCosmic)
+ .Case("disco", Distro::UbuntuDisco)
++ .Case("eoan", Distro::UbuntuEoan)
+ .Default(Distro::UnknownDistro);
+ if (Version != Distro::UnknownDistro)
+ return Version;
--- /dev/null
+# Without this patch, the first local include of unwind.h might, with the
+# __has_include_next, try to include the one from the system.
+# It might be /usr/include/clang/3.4/include/unwind.h
+# Because of the #ifndef __CLANG_UNWIND_H, it might never include any declaration
+# from the system.
+
+---
+ clang/lib/Headers/unwind.h | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+Index: llvm-toolchain-snapshot_8~svn342269/clang/lib/Headers/unwind.h
+===================================================================
+--- llvm-toolchain-snapshot_8~svn342269.orig/clang/lib/Headers/unwind.h
++++ llvm-toolchain-snapshot_8~svn342269/clang/lib/Headers/unwind.h
+@@ -23,9 +23,6 @@
+
+ /* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/
+
+-#ifndef __CLANG_UNWIND_H
+-#define __CLANG_UNWIND_H
+-
+ #if defined(__APPLE__) && __has_include_next(<unwind.h>)
+ /* Darwin (from 11.x on) provide an unwind.h. If that's available,
+ * use it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE,
+@@ -53,6 +50,9 @@
+ # endif
+ #else
+
++#ifndef __CLANG_UNWIND_H
++#define __CLANG_UNWIND_H
++
+ #include <stdint.h>
+
+ #ifdef __cplusplus
+@@ -336,6 +336,7 @@ _Unwind_Ptr _Unwind_GetTextRelBase(struc
+ }
+ #endif
+
++#endif /* __CLANG_UNWIND_H */
++
+ #endif
+
+-#endif /* __CLANG_UNWIND_H */
--- /dev/null
+#!/bin/sh
+
+clang -Xclang -load -Xclang /usr/lib/llvm-@LLVM_VERSION@/lib/LLVMPolly.so $@
--- /dev/null
+#!/bin/sh
+ORIG_VERSION=7
+TARGET_VERSION=8
+ORIG_VERSION_2=7_0
+TARGET_VERSION_2=8_0
+ORIG_VERSION_3=70
+TARGET_VERSION_3=80
+
+LIST=`ls debian/control debian/orig-tar.sh debian/rules debian/patches/clang-analyzer-force-version.diff debian/patches/clang-format-version.diff debian/patches/python-clangpath.diff debian/patches/scan-build-clang-path.diff debian/patches/lldb-libname.diff debian/patches/fix-scan-view-path.diff debian/patches/lldb-addversion-suffix-to-llvm-server-exec.patch debian/patches/clang-tidy-run-bin.diff debian/patches/fix-scan-view-path.diff debian/qualify-clang.sh debian/README debian/patches/clang-analyzer-force-version.diff debian/patches/clang-tidy-run-bin.diff debian/tests/control`
+for F in $LIST; do
+ sed -i -e "s|$ORIG_VERSION_3|$TARGET_VERSION_3|g" $F
+ sed -i -e "s|$ORIG_VERSION_2|$TARGET_VERSION_2|g" $F
+ sed -i -e "s|$ORIG_VERSION|$TARGET_VERSION|g" $F
+done
+
+echo "once you copy the old version into a new branch"
+echo "edit debian/control, update the VCS links"
+echo "edit debian/control, update the source pkg name"
+echo "edit debian/changelog, update the source pkg name"
--- /dev/null
+tools/clang/bindings/python/clang/ /usr/lib/python3/dist-packages/
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/python3*/*-packages/lldb/
--- /dev/null
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/libLLVM-@LLVM_VERSION_FULL@.so.1
+usr/lib/@DEB_HOST_MULTIARCH@/libLLVM-@LLVM_VERSION_FULL@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/libLLVM-@LLVM_VERSION@.so.1
+usr/lib/@DEB_HOST_MULTIARCH@/liblldb-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/_lldb.so
+usr/lib/llvm-@LLVM_VERSION@/lib/python3/dist-packages/lldb/ usr/lib/python3/dist-packages/lldb
--- /dev/null
+#!/bin/bash
+# Stop at the first error
+set -e
+if ! test -d debian/; then
+ echo "$0: Could not find the debian/ directory"
+ exit 1
+fi
+VERSION=$(dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9]+).*,\1,p")
+DETAILED_VERSION=$(dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\1\2\3,p")
+DEB_HOST_ARCH=$(dpkg-architecture -qDEB_HOST_ARCH)
+
+LIST="libomp5-${VERSION}_${DETAILED_VERSION}_amd64.deb libomp-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb lldb-${VERSION}_${DETAILED_VERSION}_amd64.deb python-lldb-${VERSION}_${DETAILED_VERSION}_amd64.deb libllvm${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb liblldb-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang1-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-common-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}_${DETAILED_VERSION}_amd64.deb liblldb-${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-runtime_${DETAILED_VERSION}_amd64.deb lld-${VERSION}_${DETAILED_VERSION}_amd64.deb libfuzzer-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclang-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++abi-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libc++1-${VERSION}_${DETAILED_VERSION}_amd64.deb libc++abi1-${VERSION}_${DETAILED_VERSION}_amd64.deb clang-${VERSION}_${DETAILED_VERSION}_amd64.deb llvm-${VERSION}-tools_${DETAILED_VERSION}_amd64.deb clang-tools-${VERSION}_${DETAILED_VERSION}_amd64.deb clangd-${VERSION}_${DETAILED_VERSION}_amd64.deb clang-${VERSION}-dbgsym_${DETAILED_VERSION}_amd64.deb libclang1-${VERSION}-dbgsym_${DETAILED_VERSION}_amd64.deb"
+echo "To install everything:"
+echo "sudo dpkg -i $LIST"
+L=""
+for f in $LIST; do
+ L="$L $(echo $f|cut -d_ -f1)"
+done
+echo "or"
+echo "apt-get install $L"
+
+if test ! -f /usr/bin/llvm-config-$VERSION; then
+ echo "Install llvm-$VERSION & llvm-$VERSION-dev"
+ exit 1
+fi
+if test ! -f /usr/lib/llvm-$VERSION/lib/libLLVM-$VERSION.so; then
+ echo "Install llvm-$VERSION-dev"
+ exit 1
+fi
+
+echo "Testing llvm-$VERSION and llvm-$VERSION-dev ..."
+llvm-config-$VERSION --link-shared --libs &> /dev/null
+
+if llvm-config-$VERSION --cxxflags | grep " \-W"; then
+ echo "llvm-config should not export -W warnings"
+ exit 1
+fi
+
+# Test https://bugs.llvm.org/show_bug.cgi?id=40059
+nm /usr/lib/llvm-$VERSION/lib/libLLVMBitWriter.a &> foo.log
+if grep "File format not recognized" foo.log; then
+ echo "nm libLLVMBitWriter.a contains 'File format not recognized'"
+ exit 1
+fi
+
+if test ! -f /usr/bin/scan-build-$VERSION; then
+ echo "Install clang-tools-$VERSION"
+ exit 1
+fi
+echo "Testing clang-tools-$VERSION ..."
+
+echo '
+void test() {
+ int x;
+ x = 1; // warn
+}
+'> foo.c
+
+# Ignore if gcc isn't available
+scan-build-$VERSION -o scan-build gcc -c foo.c &> /dev/null || true
+scan-build-$VERSION -o scan-build clang-$VERSION -c foo.c &> /dev/null
+scan-build-$VERSION --exclude non-existing/ --exclude /tmp/ -v clang-$VERSION -c foo.c &> /dev/null
+scan-build-$VERSION --exclude $(pwd) -v clang-$VERSION -c foo.c &> foo.log
+if ! grep -q -E "scan-build: 0 bugs found." foo.log; then
+ echo "scan-build --exclude didn't ignore the defect"
+ exit 42
+fi
+rm -rf scan-build
+
+echo "Testing clang-$VERSION ..."
+
+rm -f foo.log
+echo 'int main() {return 0;}' > foo.c
+clang-$VERSION foo.c
+
+echo '#include <stddef.h>' > foo.c
+clang-$VERSION -c foo.c
+
+# https://bugs.launchpad.net/bugs/1810860
+clang-$VERSION -dumpversion &> foo.log
+if grep -q 4.2.1 foo.log; then
+ echo "dumpversion still returns 4.2.1"
+ echo "Will be fixed with clang 9"
+# exit 1
+fi
+
+# bug 903709
+echo '#include <stdatomic.h>
+void increment(atomic_size_t *arg) {
+ atomic_fetch_add(arg, 1);
+} ' > foo.c
+
+clang-$VERSION -v -c foo.c &> /dev/null
+
+echo "#include <fenv.h>" > foo.cc
+NBLINES=$(clang++-$VERSION -P -E foo.cc|wc -l)
+if test $NBLINES -lt 100; then
+ echo "Error: more than 100 lines should be returned"
+ exit 42
+fi
+
+echo '#include <emmintrin.h>' > foo.cc
+clang++-$VERSION -c foo.cc
+
+# Bug 913213
+echo '#include <limits.h>' | clang-$VERSION -E - > /dev/null
+
+# Bug launchpad #1488254
+echo '
+#include <string>
+std::string hello = "Hello, world!\n";
+' > foo.cc
+
+echo '
+#include <string>
+#include <iostream>
+extern std::string hello;
+int main() {
+ std::cout << hello;
+ return 0;
+} ' > bar.cc
+
+g++ -c foo.cc && g++ foo.o bar.cc && ./a.out > /dev/null || true
+clang++-$VERSION -c foo.cc && clang++-$VERSION foo.o bar.cc && ./a.out > /dev/null
+g++ -c foo.cc && clang++-$VERSION foo.o bar.cc && ./a.out > /dev/null || true
+clang++-$VERSION -c foo.cc -fPIC && g++ foo.o bar.cc && ./a.out > /dev/null || true
+
+# bug 827866
+echo 'bool testAndSet(void *atomic) {
+ return __atomic_test_and_set(atomic, __ATOMIC_SEQ_CST);
+}'> foo.cpp
+clang++-$VERSION -c -target aarch64-linux-gnu foo.cpp
+if ! file foo.o 2>&1 | grep -i -q "aarch64"; then
+ echo "Could not find the string 'aarch64' in the output of file. Output:"
+ file foo.o
+ exit 42
+fi
+
+clang-$VERSION --target=arm-linux-gnueabihf -dM -E -xc - < /dev/null &> foo.log
+if ! grep -q "#define __ARM_ARCH 7" foo.log; then
+ # bug 930008
+ echo "The target arch for arm should be v7"
+ cat foo.log
+ exit 42
+fi
+
+echo '
+#include <string.h>
+int
+main ()
+{
+ (void) strcat;
+ return 0;
+}' > foo.c
+clang-$VERSION -c foo.c
+
+echo '#include <errno.h>
+int main() {} ' > foo.c
+clang-$VERSION foo.c
+
+echo '#include <chrono>
+int main() { }' > foo.cpp
+clang++-$VERSION -std=c++11 foo.cpp
+
+echo "Testing code coverage ..."
+
+echo '#include <stdio.h>
+int main() {
+if (1==1) {
+ printf("true");
+}else{
+ printf("false");
+ return 42;
+}
+return 0;}' > foo.c
+clang-$VERSION --coverage foo.c -o foo
+./foo > /dev/null
+if test ! -f foo.gcno; then
+ echo "Coverage failed";
+fi
+
+echo "#include <iterator>" > foo.cpp
+clang++-$VERSION -c foo.cpp
+
+echo "Testing linking ..."
+if test ! -f /usr/lib/llvm-$VERSION/bin/../lib/LLVMgold.so; then
+ echo "Install llvm-$VERSION-dev"
+ exit 1
+fi
+
+echo '#include <stdio.h>
+int main() {
+if (1==1) {
+ printf("true");
+}else{
+ printf("false");
+ return 42;
+}
+return 0;}' > foo.c
+rm foo bar.cc
+
+clang-$VERSION -flto foo.c -o foo
+./foo > /dev/null
+
+clang-$VERSION -fuse-ld=gold foo.c -o foo
+./foo > /dev/null
+
+# test thinlto
+echo "int foo(void) { return 0; }"> foo.c
+echo "int foo(void); int main() {foo(); return 0;}">main.c
+clang-$VERSION -flto=thin -O2 foo.c main.c -o foo
+./foo > /dev/null
+clang-$VERSION -flto=thin -O2 foo.c main.c -c
+
+echo "Testing lld-$VERSION ..."
+
+if test ! -f /usr/bin/lld-$VERSION; then
+ echo "Install lld-$VERSION"
+ exit 1
+fi
+clang-$VERSION -fuse-ld=lld -O2 foo.c main.c -o foo
+./foo > /dev/null
+
+if ls -al1 /usr/bin/ld.lld|grep ld.lld-$VERSION; then
+# https://bugs.llvm.org/show_bug.cgi?id=40659
+# -fuse-ld=lld will call lld
+# Mismatch of version can fail the check
+# so, only run it when /usr/bin/lld == $VERSION
+ clang-$VERSION -fuse-ld=lld -flto -O2 foo.c main.c -o foo
+ ./foo > /dev/null
+fi
+
+clang-$VERSION -fuse-ld=lld-$VERSION -O2 foo.c main.c -o foo
+./foo > /dev/null
+
+# Bug 916975
+file foo &> foo.log
+if ! grep -q "BuildID" foo.log; then
+ echo "BuildID isn't part of the generated binary (lld generation)"
+ exit 1
+fi
+# Bug 916975
+clang-$VERSION -O2 foo.c main.c -o foo2
+file foo2 &> foo2.log
+if ! grep -q "BuildID" foo2.log; then
+ echo "BuildID isn't part of the generated binary (ld generation)"
+ exit 1
+fi
+
+strip foo2
+file foo2 &> foo2.log
+if ! grep -q "BuildID" foo2.log; then
+ echo "BuildID isn't part of the generated binary (stripped)"
+ exit 1
+fi
+rm foo2 foo2.log
+
+if test ! -f /usr/lib/llvm-$VERSION/bin/llvm-symbolizer; then
+ echo "Install llvm-$VERSION"
+ exit 1
+fi
+
+echo "vzeroupper" | llvm-exegesis-$VERSION -mode=uops -snippets-file=- &> foo.log || true
+if grep -q -E "(built without libpfm|cannot initialize libpfm)" foo.log; then
+ echo "could not run llvm-exegesis correctly"
+ cat foo.log|head
+ exit 42
+fi
+
+if test ! -f /usr/lib/llvm-$VERSION/lib/libFuzzer.a; then
+ echo "Install libfuzzer-$VERSION-dev";
+ exit -1;
+fi
+
+echo "Testing libfuzzer-$VERSION-dev ..."
+
+cat << EOF > test_fuzzer.cc
+#include <stdint.h>
+#include <stddef.h>
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ if (size > 0 && data[0] == 'H')
+ if (size > 1 && data[1] == 'I')
+ if (size > 2 && data[2] == '!')
+ __builtin_trap();
+ return 0;
+}
+EOF
+
+clang++-$VERSION -fsanitize=address -fsanitize-coverage=edge,trace-pc test_fuzzer.cc /usr/lib/llvm-$VERSION/lib/libFuzzer.a
+if ! ./a.out 2>&1 | grep -q -E "(Test unit written|PreferSmall)"; then
+ echo "fuzzer"
+ exit 42
+fi
+
+echo 'int main(int argc, char **argv) {
+ int *array = new int[100];
+ delete [] array;
+ return array[argc]; // BOOM
+}' > foo.cpp
+clang++-$VERSION -O1 -g -fsanitize=address -fno-omit-frame-pointer foo.cpp
+ASAN_OPTIONS=verbosity=1 ./a.out &> foo.log || true
+if ! grep -q "Init done" foo.log; then
+ echo "asan verbose mode failed"
+ cat foo.log
+ exit 42
+fi
+
+# See also https://bugs.llvm.org/show_bug.cgi?id=39514 why
+# /usr/bin/llvm-symbolizer-7 doesn't work
+ASAN_OPTIONS=verbosity=2:external_symbolizer_path=/usr/lib/llvm-$VERSION/bin/llvm-symbolizer ./a.out &> foo.log || true
+if ! grep -q "Using llvm-symbolizer" foo.log; then
+ echo "could not find llvm-symbolizer path"
+ cat foo.log
+ exit 42
+fi
+if ! grep -q "new\[\](unsigned" foo.log; then
+ echo "could not symbolize correctly"
+ cat foo.log
+ exit 42
+fi
+
+if ! grep -q "foo.cpp:3:3" foo.log; then
+ echo "could not symbolize correctly"
+ cat foo.log
+ exit 42
+fi
+./a.out &> foo.log || true
+if ! grep -q "new\[\](unsigned" foo.log; then
+ echo "could not symbolize correctly"
+ cat foo.log
+ exit 42
+fi
+
+if ! grep -q "foo.cpp:3:3" foo.log; then
+ echo "could not symbolize correctly"
+ cat foo.log
+ exit 42
+fi
+
+echo "Testing sanitizers ..."
+
+echo '#include <stdlib.h>
+int main() {
+ char *x = (char*)malloc(10 * sizeof(char*));
+ free(x);
+ return x[5];
+}
+' > foo.c
+clang-$VERSION -o foo -fsanitize=address -O1 -fno-omit-frame-pointer -g foo.c
+if ! ./foo 2>&1 | grep -q heap-use-after-free ; then
+ echo "sanitize=address is failing"
+ exit 42
+fi
+
+# Bug #876973
+echo '
+#include <stdio.h>
+int main(int argc, char **argv)
+{
+ printf("Hello world!\n");
+ return 0;
+}' > foo.c
+
+# segfaults on 32bit with "-lc" library (also 6.0 does segfault)
+clang-$VERSION -fsanitize=address foo.c -o foo -lc
+./foo &> /dev/null || true
+
+
+echo '
+class a {
+public:
+ ~a();
+};
+template <typename, typename> using b = a;
+struct f {
+ template <typename d> using e = b<a, d>;
+};
+struct g {
+ typedef f::e<int> c;
+};
+class h {
+ struct : g::c {};
+};
+struct m {
+ h i;
+};
+template <typename> void __attribute__((noreturn)) j();
+void k() {
+ m l;
+ j<int>();
+}' > foo.cpp
+clang++-$VERSION -std=c++14 -O3 -fsanitize=address -fsanitize=undefined -c foo.cpp -fno-crash-diagnostics
+
+
+# fails on 32 bit, seems a real BUG in the package, using 64bit static libs?
+LANG=C clang-$VERSION -fsanitize=fuzzer test_fuzzer.cc &> foo.log || true
+if ! grep "No such file or directory" foo.log; then
+ # This isn't failing on 64, so, look at the results
+ if ! ./a.out 2>&1 | grep -q -E "(Test unit written|PreferSmall)"; then
+ echo "fuzzer"
+ exit 42
+ fi
+fi
+
+echo 'int main() {
+ int a=0;
+ return a;
+}
+' > foo.c
+clang-$VERSION -g -o bar foo.c
+
+# ABI issue between gcc & clang with clang 7
+# https://bugs.llvm.org/show_bug.cgi?id=39427
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913271
+if test $VERSION -eq 7; then
+echo '
+#include <llvm/ADT/ArrayRef.h>
+#include <llvm/ADT/Optional.h>
+namespace llvm { class Constant{}; class Type; class Value; }
+extern llvm::Constant* bar (llvm::Type*, llvm::Constant*, llvm::ArrayRef<llvm::Value*>, bool, llvm::Optional<unsigned> o, llvm::Type*);
+#ifdef PART2
+llvm::Constant* bar (llvm::Type*, llvm::Constant*, llvm::ArrayRef<llvm::Value*>, bool, llvm::Optional<unsigned> o, llvm::Type*)
+{
+ return o.hasValue()?static_cast<llvm::Constant*>(nullptr)+1:nullptr;
+}
+#endif
+#ifndef PART2
+static llvm::Constant* doConstantRef(llvm::Type* type, llvm::Constant* var, llvm::ArrayRef<llvm::Value*> steps)
+{
+ llvm::Optional<unsigned> inRangeIndex;
+ return bar(type, var, steps, false, inRangeIndex, nullptr);
+}
+bool foo()
+{
+ llvm::Constant* var = nullptr;
+ llvm::Value* zero = nullptr;
+ llvm::Value* indexes[2] = {zero, zero};
+ llvm::ArrayRef<llvm::Value*> steps(indexes, 2);
+ auto result = doConstantRef(nullptr, var, steps);
+ return result;
+}
+int main()
+{
+ return foo();
+}
+#endif
+' > foo.cpp
+FLAGS="-I/usr/lib/llvm-$VERSION/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wdelete-non-virtual-dtor -Wno-comment -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -ffunction-sections -fdata-sections -O2 -DNDEBUG -fno-exceptions -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS"
+
+clang++-$VERSION -c -o part1.o foo.cpp $FLAGS
+if test -f /usr/bin/g++; then
+ g++ -c -o part2.o -DPART2 foo.cpp $FLAGS
+ clang++-$VERSION -o foo part1.o part2.o $FLAGS
+ ./foo
+fi
+rm part1.o part2.o
+fi
+
+if test ! -f /usr/lib/llvm-$VERSION/lib/libomp.so; then
+ echo "Install libomp-$VERSION-dev";
+ exit -1;
+fi
+
+# OpenMP
+cat <<EOF > foo.c
+//test.c
+#include "omp.h"
+#include <stdio.h>
+
+int main(void) {
+ #pragma omp parallel
+ printf("thread %d\n", omp_get_thread_num());
+}
+EOF
+clang-$VERSION foo.c -fopenmp -o o
+./o > /dev/null
+
+if test ! -f /usr/lib/llvm-$VERSION/include/c++/v1/vector; then
+ echo "Install libc++-$VERSION-dev";
+ exit -1;
+fi
+
+if test ! -f /usr/lib/llvm-$VERSION/lib/libc++abi.so; then
+ echo "Install libc++abi-$VERSION-dev";
+ exit -1;
+fi
+
+
+# libc++
+echo '
+#include <vector>
+#include <string>
+#include <iostream>
+using namespace std;
+int main(void) {
+ vector<string> tab;
+ tab.push_back("the");
+ tab.push_back("world");
+ tab.insert(tab.begin(), "Hello");
+
+ for(vector<string>::iterator it=tab.begin(); it!=tab.end(); ++it)
+ {
+ cout << *it << " ";
+ }
+ return 0;
+}' > foo.cpp
+clang++-$VERSION -stdlib=libc++ foo.cpp -o o
+if ! ldd o 2>&1|grep -q libc++.so.1; then
+ echo "not linked against libc++.so.1"
+ exit -1
+fi
+if ! ldd o 2>&1|grep -q libc++abi.so.1; then
+ echo "not linked against libc++abi.so.1"
+ exit -1
+fi
+
+./o > /dev/null
+clang++-$VERSION -std=c++11 -stdlib=libc++ foo.cpp -o o
+./o > /dev/null
+clang++-$VERSION -std=c++14 -stdlib=libc++ foo.cpp -lc++experimental -o o
+./o > /dev/null
+
+# Bug 889832
+echo '#include <iostream>
+int main() {}' | clang++-$VERSION -std=c++1z -x c++ -stdlib=libc++ -
+
+if test ! -f /usr/lib/llvm-$VERSION/include/cxxabi.h; then
+ echo "Install libc++abi-$VERSION-dev";
+ exit -1;
+fi
+
+# Force the usage of libc++abi
+clang++-$VERSION -stdlib=libc++ -lc++abi foo.cpp -o o
+./o > /dev/null
+if ! ldd o 2>&1|grep -q libc++abi.so.1; then
+ echo "not linked against libc++abi.so.1"
+ exit -1
+fi
+
+# Use the libc++abi and uses the libstc++ headers
+clang++-$VERSION -lc++abi foo.cpp -o o
+./o > /dev/null
+if ! ldd o 2>&1|grep -q libstdc++.so.; then
+ echo "not linked against libstdc++"
+ exit -1
+fi
+
+# fs from C++17
+echo '
+#include <filesystem>
+#include <type_traits>
+using namespace std::filesystem;
+int main() {
+ static_assert(std::is_same<
+ path,
+ std::filesystem::path
+ >::value, "");
+}' > foo.cpp
+clang++-$VERSION -std=c++17 -stdlib=libc++ foo.cpp -lc++experimental -lc++fs -o o
+./o > /dev/null
+
+# Bug LP#1586215
+echo '
+#include <string>
+#include <iostream>
+
+int main()
+{
+ try
+ {
+ std::string x;
+ char z = x.at(2);
+ std::cout << z << std::endl;
+ }
+ catch (...)
+ {
+ }
+
+ return 0;
+}' > foo.cpp
+clang++-$VERSION -stdlib=libc++ -Wall -Werror foo.cpp -o foo
+./foo
+
+# Bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=914201
+echo '
+#include <math.h>
+int main(void)
+{
+ double f = 2.0;
+ if (isnan(f))
+ return 1;
+ return 0;
+}' > foo.c
+clang-$VERSION -Wconversion -Werror foo.c &> /dev/null || true
+
+if test -f /usr/bin/g++; then
+g++ -nostdinc++ -I/usr/lib/llvm-$VERSION/bin/../include/c++/v1/ -L/usr/lib/llvm-$VERSION/lib/ \
+ foo.cpp -nodefaultlibs -std=c++17 -lc++ -lc++abi -lm -lc -lgcc_s -lgcc|| true
+./o > /dev/null
+fi
+
+
+if test ! -f /usr/lib/llvm-$VERSION/include/polly/LinkAllPasses.h; then
+ echo "Install libclang-common-$VERSION-dev for polly";
+ exit -1;
+fi
+
+echo "Testing polly (libclang-common-$VERSION-dev) ..."
+
+# Polly
+echo "
+#define N 1536
+float A[N][N];
+float B[N][N];
+float C[N][N];
+
+void init_array()
+{
+ int i, j;
+ for (i = 0; i < N; i++) {
+ for (j = 0; j < N; j++) {
+ A[i][j] = (1+(i*j)%1024)/2.0;
+ B[i][j] = (1+(i*j)%1024)/2.0;
+ }
+ }
+}
+
+int main()
+{
+ int i, j, k;
+ double t_start, t_end;
+ init_array();
+ for (i = 0; i < N; i++) {
+ for (j = 0; j < N; j++) {
+ C[i][j] = 0;
+ for (k = 0; k < N; k++)
+ C[i][j] = C[i][j] + A[i][k] * B[k][j];
+ }
+ }
+ return 0;
+}
+" > foo.c
+clang-$VERSION -O3 -mllvm -polly foo.c
+clang-$VERSION -O3 -mllvm -polly -mllvm -polly-parallel -lgomp foo.c
+clang-$VERSION -O3 -mllvm -polly -mllvm -polly-vectorizer=stripmine foo.c
+clang-$VERSION -S -fsave-optimization-record -emit-llvm foo.c -o matmul.s
+opt-$VERSION -S -polly-canonicalize matmul.s > matmul.preopt.ll > /dev/null
+opt-$VERSION -basicaa -polly-ast -analyze -q matmul.preopt.ll -polly-process-unprofitable > /dev/null
+if test ! -f /usr/lib/llvm-$VERSION/share/opt-viewer/opt-viewer.py; then
+ echo "Install llvm-$VERSION-tools"
+ exit 42
+fi
+/usr/lib/llvm-$VERSION/share/opt-viewer/opt-viewer.py -source-dir . matmul.opt.yaml -o ./output > /dev/null
+
+if ! grep -q "not inlined into" output/foo.c.html 2>&1; then
+ echo "Could not find the output from polly"
+ exit -1
+fi
+
+echo "
+int foo(int x, int y) __attribute__((always_inline));
+int foo(int x, int y) { return x + y; }
+int bar(int j) { return foo(j, j - 2); }" > foo.cc
+clang-$VERSION -O2 -Rpass=inline foo.cc -c &> foo.log
+if ! grep -q "cost=always" foo.log; then
+ echo "-Rpass fails"
+ cat foo.log
+ exit 1
+fi
+echo "
+int X = 0;
+
+int main() {
+ int i;
+ for (i = 0; i < 100; i++)
+ X += i;
+ return 0;
+}"> foo.cc
+clang++-$VERSION -O2 -fprofile-instr-generate foo.cc -o foo
+LLVM_PROFILE_FILE="foo-%p.profraw" ./foo
+llvm-profdata-$VERSION merge -output=foo.profdata foo-*.profraw
+clang++-$VERSION -O2 -fprofile-instr-use=foo.profdata foo.cc -o foo
+
+if test ! -f /usr/bin/lldb-$VERSION; then
+ echo "Install lldb-$VERSION";
+ exit -1;
+fi
+
+echo "b main
+run
+bt
+quit" > lldb-cmd.txt
+
+echo "Testing lldb-$VERSION ..."
+# bug 913946
+lldb-$VERSION -s lldb-cmd.txt bar &> foo.log
+
+if dpkg -l|grep -q clang-$VERSION-dbgsym; then
+ # Testing if clang dbg symbol are here
+ lldb-$VERSION -s lldb-cmd.txt clang-$VERSION &> foo.log
+ if ! grep "main at driver.cpp" foo.log; then
+ echo "Could not find the debug info"
+ echo "Or the main() of clang isn't in driver.cpp anymore"
+ exit -1
+ fi
+else
+ echo "clang-$VERSION-dbgsym isn't installed"
+fi
+
+echo '
+#include <vector>
+int main (void)
+{ std::vector<int> a;
+ a.push_back (0);
+}
+' > foo.cpp
+clang++-$VERSION -g -o foo foo.cpp
+echo 'target create "./foo"
+b main
+r
+n
+p a
+quit' > lldb-cmd.txt
+lldb-$VERSION -s lldb-cmd.txt ./foo &> foo.log
+if ! grep -q "stop reason = step over" foo.log; then
+ echo "Could not find the lldb expected output"
+ cat foo.log
+ # do not fail on i386, never worked here
+ if [ $DEB_HOST_ARCH != "i386" ]; then
+ exit 42
+ fi
+fi
+
+if test ! -f /usr/lib/llvm-$VERSION/lib/libclangToolingInclusions.a; then
+ echo "Install libclang-$VERSION-dev";
+ exit -1;
+fi
+
+echo "Testing cmake build ..."
+
+rm -rf cmaketest && mkdir cmaketest
+cat > cmaketest/CMakeLists.txt <<EOF
+cmake_minimum_required(VERSION 2.8.12)
+project(SanityCheck)
+find_package(LLVM $VERSION REQUIRED CONFIG)
+message(STATUS "LLVM_CMAKE_DIR: \${LLVM_CMAKE_DIR}")
+if(NOT EXISTS "\${LLVM_TOOLS_BINARY_DIR}/clang")
+message(FATAL_ERROR "Invalid LLVM_TOOLS_BINARY_DIR: \${LLVM_TOOLS_BINARY_DIR}")
+endif()
+# TODO add version to ClangConfig.cmake and use $VERSION below
+find_package(Clang REQUIRED CONFIG)
+find_file(H clang/AST/ASTConsumer.h PATHS \${CLANG_INCLUDE_DIRS} NO_DEFAULT_PATH)
+message(STATUS "CLANG_INCLUDE_DIRS: \${CLANG_INCLUDE_DIRS}")
+if(NOT H)
+message(FATAL_ERROR "Invalid Clang header path: \${CLANG_INCLUDE_DIRS}")
+endif()
+EOF
+mkdir cmaketest/standard cmaketest/explicit
+# "Test: CMake find LLVM and Clang in default path"
+(cd cmaketest/standard && CC=clang-$VERSION CXX=clang++-$VERSION cmake .. > /dev/null)
+# "Test: CMake find LLVM and Clang in explicit prefix path"
+(cd cmaketest/explicit && CC=clang-$VERSION CXX=clang++-$VERSION CMAKE_PREFIX_PATH=/usr/lib/llvm-$VERSION cmake .. > /dev/null)
+rm -rf cmaketest
+
+# Test case for bug #900440
+rm -rf cmaketest && mkdir cmaketest
+cat > cmaketest/CMakeLists.txt <<EOF
+cmake_minimum_required(VERSION 2.8.12)
+project(testllvm)
+
+find_package(LLVM CONFIG REQUIRED)
+find_package(Clang CONFIG REQUIRED)
+
+if(NOT LLVM_VERSION STREQUAL Clang_VERSION)
+ #message(FATAL_ERROR "LLVM ${LLVM_VERSION} not matching to Clang ${Clang_VERSION}")
+endif()
+EOF
+mkdir cmaketest/foo/
+(cd cmaketest/foo && cmake .. > /dev/null)
+rm -rf cmaketest
+
+
+
+
+CLANG=clang-$VERSION
+#command -v "$CLANG" 1>/dev/null 2>/dev/null || { printf "Usage:\n%s CLANGEXE [ARGS]\n" "$0" 1>&2; exit 1; }
+#shift
+
+TEMPDIR=$(mktemp -d); trap "rm -rf \"$TEMPDIR\"" 0
+
+echo "Testing all other sanitizers ..."
+
+echo "int main() { return 1; }" > foo.c
+# fails to run on i386 with the following error:
+#clang: error: unsupported option '-fsanitize=efficiency-working-set' for target 'i686-pc-linux-gnu'
+clang-$VERSION -fsanitize=efficiency-working-set -o foo foo.c || true
+./foo &> /dev/null || true
+
+cat > "$TEMPDIR/test.c" <<EOF
+#include <stdlib.h>
+#include <stdio.h>
+int main ()
+{
+#if __has_feature(address_sanitizer)
+ puts("address_sanitizer");
+#endif
+#if __has_feature(thread_sanitizer)
+ puts("thread_sanitizer");
+#endif
+#if __has_feature(memory_sanitizer)
+ puts("memory_sanitizer");
+#endif
+#if __has_feature(undefined_sanitizer)
+ puts("undefined_sanitizer");
+#endif
+#if __has_feature(dataflow_sanitizer)
+ puts("dataflow_sanitizer");
+#endif
+#if __has_feature(efficiency_sanitizer)
+ puts("efficiency_sanitizer");
+#endif
+ printf("Ok\n");
+ return EXIT_SUCCESS;
+}
+EOF
+
+F=$(clang-$VERSION --target=x86_64-unknown-linux-gnu --rtlib=compiler-rt --print-libgcc-file-name)
+if test ! $F; then
+ echo "Cannot find $F"
+ echo "TODO check if the exit1 can be put back"
+# exit 1
+else
+ echo "$F is one of the compiler-rt file"
+fi
+
+# only for AMD64 for now
+# many sanitizers only work on AMD64
+# x32 programs need to be enabled in the kernel bootparams for debian
+# (https://wiki.debian.org/X32Port)
+#
+# SYSTEM should iterate multiple targets (eg. x86_64-unknown-none-gnu for embedded)
+# MARCH should iterate the library architectures via flags
+# LIB should iterate the different libraries
+echo "if it fails, please run"
+echo "apt-get install libc6-dev:i386 libgcc-5-dev:i386 libc6-dev-x32 libx32gcc-5-dev libx32gcc-8-dev"
+for SYSTEM in ""; do
+ for MARCH in -m64 -m32 -mx32 "-m32 -march=i686"; do
+ for LIB in --rtlib=compiler-rt -fsanitize=address -fsanitize=thread -fsanitize=memory -fsanitize=undefined -fsanitize=dataflow; do # -fsanitize=efficiency-working-set; do
+ if test "$MARCH" == "-m32" -o "$MARCH" == "-mx32"; then
+ if test $LIB == "-fsanitize=thread" -o $LIB == "-fsanitize=memory" -o $LIB == "-fsanitize=dataflow" -o $LIB == "-fsanitize=address" -o $LIB == "-fsanitize=undefined"; then
+ echo "Skip $MARCH / $LIB";
+ continue
+ fi
+ fi
+ if test "$MARCH" == "-m32 -march=i686"; then
+ if test $LIB == "-fsanitize=memory" -o $LIB == "-fsanitize=thread" -o $LIB == "-fsanitize=dataflow"; then
+ echo "Skip $MARCH / $LIB";
+ continue
+ fi
+ fi
+ XARGS="$SYSTEM $MARCH $LIB"
+ printf "\nTest: clang %s\n" "$XARGS"
+ rm -f "$TEMPDIR/test"
+ "$CLANG" $XARGS -o "$TEMPDIR/test" "$@" "$TEMPDIR/test.c" || true
+ [ ! -e "$TEMPDIR/test" ] || { "$TEMPDIR/test" || printf 'Error\n'; }
+ done
+ done
+done
+
+echo "If the following fails, try setting an environment variable such as:"
+echo "OBJC_INCLUDE_PATH=/usr/lib/gcc/x86_64-linux-gnu/8/include"
+echo "libobjc-8-dev should be also installed"
+echo "#include <objc/objc.h>" > foo.m
+#clang-$VERSION -c foo.m
+
+if test ! -f /usr/lib/llvm-$VERSION/lib/libclangBasic.a; then
+ echo "Install libclang-$VERSION-dev"
+ exit 1
+fi
+
+#clean up
+rm -f a.out bar crash-* foo foo.* lldb-cmd.txt main.* test_fuzzer.cc foo.* o
+rm -rf output matmul.* *profraw
+
+echo "Completed"
--- /dev/null
+#!/usr/bin/make -f
+
+TARGET_BUILD := build-llvm
+TARGET_BUILD_STAGE2 := $(TARGET_BUILD)/tools/clang/stage2-bins
+DEB_INST := $(CURDIR)/debian/tmp/
+
+# Disable to move the previous method
+BUILD_METHOD := stage2
+
+GXX_VERSIONED_PACKAGE := $(shell dpkg-query -W -f '$${Depends}' g++ | grep -o 'g++-[0-9][0-9.]*' | tail -n1 )
+GXX_VERSIONED_EXECUTABLE := $(shell dpkg -L $(GXX_VERSIONED_PACKAGE) | grep '/usr/bin/g++-[0-9][0-9.]*' | xargs ls -d | tail -n1 )
+GCC_VERSION := $(subst /usr/bin/g++-,,$(GXX_VERSIONED_EXECUTABLE))
+
+LLVM_VERSION := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9]+).*,\1,p")
+LLVM_VERSION_FULL := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-|\+)(.*),\1,p")
+ifeq ($(LLVM_VERSION),$(LLVM_VERSION_FULL))
+ LLVM_VERSION_FULL := $(LLVM_VERSION).0.0
+endif
+
+SONAME_EXT := 1
+SONAME_OPENMP := 5
+# Manage the case when the version is 3.5~svn213052-1~exp1 or 3.4.2-1
+DEBIAN_REVISION := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\3,p")
+ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+endif
+
+VENDOR=$(shell lsb_release -is)
+DISTRO=$(shell lsb_release -sc)
+
+DH_VERSION := $(shell dpkg -s debhelper | grep '^Version' | awk '{print $$2}')
+
+DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+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)
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+
+LDFLAGS_EXTRA =
+CXXFLAGS_EXTRA =
+CFLAGS_EXTRA =
+CONFIGURE_EXTRA =
+CMAKE_EXTRA = -DPYTHON_EXECUTABLE=/usr/bin/python3
+
+BASE_PATH := $(CURDIR)
+LIBCXX_EXCEPTIONS :=ON
+
+ifneq (,$(filter $(DEB_HOST_ARCH),s390x))
+ LIBCXX_EXCEPTIONS :=OFF
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),i386 armel mips mipsel powerpc powerpcspe riscv64))
+CMAKE_EXTRA += -DLIBOMP_LIBFLAGS="-latomic" -DCMAKE_SHARED_LINKER_FLAGS="-latomic"
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),armel))
+# For some reason, in the stage2 build, when clang is used to compile
+# itself. The atomic detection is failing on armel. Forcing the inclusion everywhere.
+LDFLAGS_EXTRA += -latomic
+endif
+
+# Cxx flags for building libcxx and libcxxabi
+LIBCXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
+
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) lt 4.9-20140411-1~ ; echo $$?),0)
+# Too old version of gcc. Force 4.9
+ GCC_VERSION := 4.9
+endif
+
+FORCE_NOT_GCC_9_DISTRO := eoan focal bullseye sid
+ifneq (,$(filter $(DISTRO),$(FORCE_NOT_GCC_9_DISTRO)))
+# Force gcc before 9 (gcc 8 on Debian unstable) because it causes
+# huge increase of the size of the .deb (because of .a and .so) and issues in the libs
+ GCC_VERSION := 8
+endif
+
+export CC=gcc-$(GCC_VERSION)
+export CXX=g++-$(GCC_VERSION)
+
+opt_flags = -O2 -DNDEBUG
+
+# Only enable g1 on archs which needs it (it fixes an OOM during dh_strip due to huge symbols)
+ifeq ($(DEB_HOST_ARCH_BITS),32)
+opt_flags += -g1
+else
+# Should be -g, but this causes buildd disk space issues
+opt_flags += -g1
+endif
+
+ifneq (,$(findstring $(DEB_HOST_ARCH),armel))
+ opt_flags += -marm
+ # 3.8 fails to build, disable the compiler_rt builtins
+ # See http://lists.llvm.org/pipermail/llvm-dev/2016-May/099761.html
+ CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ # Check for ancient libstdc++ fails due to atomics usage
+ CMAKE_EXTRA_LIBCXX += -DLLVM_COMPILER_CHECKED=ON
+ # Prevent clang from getting a > v4t default
+ # See bug #868779
+ CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabi
+endif
+
+
+ifneq (,$(findstring $(DEB_HOST_ARCH),armhf))
+# avoid an issue with openmp on armhf
+ CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=armv7l-unknown-linux-gnueabihf
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),mips64el))
+# avoid an issue with search path on mips64el
+# https://bugs.llvm.org/show_bug.cgi?id=41204
+ CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=mips64el-linux-gnuabi64
+endif
+
+
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) ge 4.8-20121128-1~ ; echo $$?),0)
+ control_vars = '-Vdep:devlibs=libstdc++-$(GCC_VERSION)-dev, libgcc-$(GCC_VERSION)-dev' \
+ '-Vdep:devlibs-objc=libobjc-$(GCC_VERSION)-dev'
+else ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) ge 4.7.2-10~ ; echo $$?),0)
+ control_vars = '-Vdep:devlibs=libstdc++6-$(GCC_VERSION)-dev, libgcc-$(GCC_VERSION)-dev' \
+ '-Vdep:devlibs-objc=libobjc-$(GCC_VERSION)-dev'
+else
+ control_vars = '-Vdep:devlibs=libstdc++6-$(GCC_VERSION)-dev'
+endif
+
+# Disabled:
+# Host compiler does not support '-fuse-ld=lld'
+# USE_LLD_ARCHS := amd64
+# ifneq (,$(filter $(DEB_HOST_ARCH),$(USE_LLD_ARCHS)))
+# CMAKE_EXTRA += -DLLVM_ENABLE_LLD=ON
+# endif
+
+BINUTILS_GOLD_ARCHS := amd64 arm64 armhf i386 ppc64 ppc64el x32 s390x hurd-i386 kfreebsd-amd64 kfreebsd-i386
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) ge 2.23.1-1~exp3 ; echo $$?),0)
+ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
+# -fused-ld=gold enables the gold linker (but is not supported by all archs / distro)
+ LDFLAGS_EXTRA += -fuse-ld=gold
+#--no-keep-files-mapped --no-map-whole-files
+ CXXFLAGS_EXTRA += -fuse-ld=gold
+ CFLAGS_EXTRA += -fuse-ld=gold
+#-Wl,--no-keep-files-mapped -Wl,--no-map-whole-files
+ CMAKE_EXTRA += -DLLVM_BINUTILS_INCDIR=/usr/include/
+endif
+endif
+
+CODECOVERAGE=no
+ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS)))
+# enable the code coverage
+ CODECOVERAGE=yes
+# for -fvisibility-inlines-hidden see http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130729/183016.html
+ CXXFLAGS_EXTRA += -fprofile-arcs -ftest-coverage
+ LDFLAGS_EXTRA += -coverage -lgcov
+ RUN_TEST=yes
+ # OpenMP doesn't respect LDFLAGS
+ CMAKE_EXTRA+= -DLIBOMP_LDFLAGS="-coverage -lgcov" # don't pass LDFLAGS_EXTRA because it expects gcc arg
+endif
+
+# Enable for bootstrap
+LDFLAGS_EXTRA += -fPIC -Wno-unused-command-line-argument -Wno-unknown-warning-option -Wl,--build-id
+CXXFLAGS_EXTRA += -fPIC -Wno-unused-command-line-argument -Wno-unknown-warning-option
+BOOTSTRAP_CXXFLAGS_EXTRA = $(CXXFLAGS_EXTRA) # Nothing for now. Keeping in case we need it
+CFLAGS_EXTRA += -fPIC -Wno-unused-command-line-argument -Wno-unknown-warning-option
+BOOTSTRAP_CFLAGS_EXTRA = $(CFLAGS_EXTRA) # Nothing for now. Keeping in case we need it
+
+# Enable polly (or not)
+POLLY_ENABLE=yes
+ifneq (,$(filter $(DEB_HOST_ARCH), powerpc powerpcspe))
+ POLLY_ENABLE=no
+endif
+
+# Enable openmp (or not)
+OPENMP_ENABLE=yes
+ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel powerpc powerpcspe riscv64 sparc64 s390x x32))
+ OPENMP_ENABLE=no
+endif
+
+RUN_TEST=yes
+ifneq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+ RUN_TEST=no
+endif
+
+ifneq (,$(filter scan-build,$(DEB_BUILD_OPTIONS)))
+# enable the build using scan-build
+# The package are installed through the variable declarations:
+# OTHERMIRROR="deb http://llvm.org/apt/unstable/ llvm-toolchain main"
+# EXTRAPACKAGES="clang-X"
+ PRE_PROCESS=scan-build-$(LLVM_VERSION) --show-description -analyzer-config stable-report-filename=true
+# -enable-checker optin.performance.Padding
+ PRE_PROCESS_CONF=scan-build-$(LLVM_VERSION)
+# no need to run tests in this case
+ RUN_TEST=no
+ CONFIGURE_EXTRA += --enable-assertions
+ CMAKE_EXTRA += -DLLVM_ENABLE_ASSERTIONS=ON
+endif
+
+ifneq (,$(filter coverity,$(DEB_BUILD_OPTIONS)))
+# enable the build using coverity
+# pbuilder contains BINDMOUNTS="/opt/cov-analysis/"
+# And we have some pbuilder hooks to configure and pack the result
+# Where the binaries are installed on the jenkins instance
+ PRE_PROCESS=PATH=$$PATH:/opt/cov-analysis/bin/ cov-build --dir cov-int
+# We don't want to check the temporary files produced by the configure
+ PRE_PROCESS_CONF=
+ COVERITY_ENABLE=1
+ CONFIGURE_EXTRA += --enable-assertions
+ CMAKE_EXTRA += -DLLVM_ENABLE_ASSERTIONS=ON
+# no need to run tests in this case
+ RUN_TEST=no
+else
+ COVERITY_ENABLE=0
+endif
+
+LLDB_ENABLE=yes
+LLDB_DISABLE_ARCHS := hurd-i386 ia64 powerpc powerpcspe ppc64 riscv64 s390x sparc64
+# hurd has threading issues
+ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH)))
+# Disable LLDB for this arch.
+ LLDB_ENABLE=no
+else
+# See https://llvm.org/bugs/show_bug.cgi?id=28898
+# Enable it again as it seems it is fixed upstream https://bugs.llvm.org/show_bug.cgi?id=35291
+# CMAKE_EXTRA += -DLLDB_DISABLE_LIBEDIT=ON
+endif
+
+LLD_ENABLE=yes
+
+ifneq (,$(filter $(DEB_HOST_ARCH_OS),linux))
+# only for linux
+ CMAKE_EXTRA += -DLLVM_USE_PERF=yes -DLLVM_ENABLE_LIBPFM=ON
+endif
+
+# Use thinlto for the link phase
+THIN_UNSUPPORTED_DISTRO := stretch xenial trusty
+# Don't enable for old distros
+ifeq (,$(filter $(DISTRO), $(THIN_UNSUPPORTED_DISTRO)))
+# Only enable it for archs supporting gold
+ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
+# armhf is not yet quite ready for Thin, it FTBFS
+# see https://buildd.debian.org/status/fetch.php?pkg=llvm-toolchain-8&arch=armhf&ver=1%3A8.0.1%7E%2Brc2-1%7Eexp1&stamp=1560334266&raw=0
+ifeq (,$(filter $(DEB_HOST_ARCH), armhf))
+ CMAKE_EXTRA += -DLLVM_ENABLE_LTO="Thin"
+endif
+endif
+endif
+
+DH_OPTIONS=
+OCAML_ENABLE= no
+OCAML_ARCHS := amd64 arm64 armhf i386 ppc64el s390x
+ifneq (,$(filter $(DEB_HOST_ARCH),$(OCAML_ARCHS)))
+# Enable OCAML for this arch.
+ OCAML_ENABLE=yes
+ OCAML_STDLIB_DIR ?= $(shell ocamlc -where)
+ DH_OPTIONS=--with ocaml
+endif
+
+LIBFUZZER_ENABLE=yes
+ifeq (,$(filter $(DEB_HOST_ARCH_OS),linux))
+ LIBFUZZER_ENABLE=no
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel))
+ LIBOMP_ARCH = mips
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), mips64 mips64el))
+ LIBOMP_ARCH = mips64
+endif
+
+
+%:
+ dh $@ $(DH_OPTIONS)
+
+
+preconfigure:
+ @echo "DEB_HOST_MULTIARCH=$(DEB_HOST_MULTIARCH)"
+ @echo "DEB_HOST_GNU_TYPE=$(DEB_HOST_GNU_TYPE)"
+ @echo "DEB_HOST_ARCH_BITS=$(DEB_HOST_ARCH_BITS)"
+ @echo "DEB_HOST_ARCH=$(DEB_HOST_ARCH)"
+ @echo "DEB_HOST_ARCH_OS=$(DEB_HOST_ARCH_OS)"
+ @echo "DISTRO=$(DISTRO)"
+
+ for f in debian/*.in; do \
+ 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
+
+ # Make install file executable for dh-exec
+ chmod +x debian/llvm-$(LLVM_VERSION)-dev.install
+
+# 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
+ mkdir -p $(TARGET_BUILD)
+ mkdir -p clang/include/clang/Debian
+ sed -e "s|@DEB_PATCHSETVERSION@|$(DEBIAN_REVISION)|" \
+ debian/debian_path.h > clang/include/clang/Debian/debian_path.h
+
+# Remove some old symlinks
+ cd tools/ && \
+ if test -h clang; then \
+ rm clang; \
+ fi; \
+ ln -s ../clang .; \
+ readlink clang
+
+ if test "$(POLLY_ENABLE)" = yes; then \
+ cd tools/ && \
+ if test -h polly; then \
+ rm polly; \
+ fi; \
+ ln -s ../polly .; \
+ fi
+
+ if test "$(LLD_ENABLE)" = yes; then \
+ cd tools/ && \
+ if test -h lld; then \
+ rm lld; \
+ fi; \
+ ln -s ../lld .; \
+ readlink lld; \
+ fi
+
+ if test "$(LLDB_ENABLE)" = yes; then \
+ cd tools/ && \
+ if test -h lldb; then \
+ rm lldb; \
+ fi; \
+ ln -s ../lldb .; \
+ fi
+
+ cd projects/ && \
+ if test -h compiler-rt; then \
+ rm compiler-rt; \
+ fi; \
+ ln -s ../compiler-rt .; \
+ readlink compiler-rt
+
+ if test "$(OPENMP_ENABLE)" = yes; then \
+ cd projects/ && \
+ if test -h openmp; then \
+ rm openmp; \
+ fi; \
+ ln -s ../openmp .; \
+ readlink openmp; \
+ fi
+
+ # Configure coverity (we need the compilers) + work around perf issues
+ -(if test $(COVERITY_ENABLE) -eq 1; then \
+ export PATH=$$PATH:/opt/cov-analysis/bin/; \
+ cov-configure --compiler clang --comptype clang; \
+ cov-configure --compiler gcc-$(GCC_VERSION) --comptype gcc; \
+ cov-configure --compiler g++-$(GCC_VERSION) --comptype gcc; \
+ cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc -- -fPIC -std=c++11; \
+ cov-configure -co /usr/bin/gcc-$(GCC_VERSION) --comptype gcc -- -fPIC; \
+ cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc -- -fPIC -std=c++11 -fno-exceptions; \
+ cov-configure -co /usr/bin/g++-$(GCC_VERSION) --comptype gcc --template \
+ --xml-option append_arg:"--ppp_translator" \
+ --xml-option append_arg:"replace/llvm::AlignOf<PrevTy>::Alignment/(llvm::AlignOf<PrevTy>::Alignment)" \
+ --xml-option append_arg:"--ppp_translator" \
+ --xml-option append_arg:"replace/llvm::AlignOf<NextTy>::Alignment/(llvm::AlignOf<NextTy>::Alignment)"; \
+ cov-configure --compiler c++ --comptype g++ --template \
+ --xml-option append_arg:"--ppp_translator" \
+ --xml-option append_arg:"replace/llvm::AlignOf<PrevTy>::Alignment/(llvm::AlignOf<PrevTy>::Alignment)" \
+ --xml-option append_arg:"--ppp_translator" \
+ --xml-option append_arg:"replace/llvm::AlignOf<NextTy>::Alignment/(llvm::AlignOf<NextTy>::Alignment)"; \
+ fi)
+
+ # Due to bug upstream, no symlink here
+ rm -fr tools/clang/tools/extra
+ cp -R -H clang-tools-extra tools/clang/tools/extra
+
+ echo "Running tests: $(RUN_TEST)"
+
+ # if cmake is installed in /tmp/cmake/ uses it
+ # Used to build llvm on old ubuntu (precise) on the llvm.org/apt/ ci
+ CMAKE_BIN=cmake; \
+ if test -f /tmp/cmake/bin/cmake; then \
+ CMAKE_BIN=/tmp/cmake/bin/cmake; \
+ fi; \
+ echo "Using cmake: $$CMAKE_BIN"; \
+ cd $(TARGET_BUILD) && \
+ $(PRE_PROCESS_CONF) $$CMAKE_BIN ../ \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$(opt_flags)" \
+ -DBOOTSTRAP_CMAKE_CXX_FLAGS='$(BOOTSTRAP_CXXFLAGS_EXTRA)' \
+ -DBOOTSTRAP_CMAKE_C_FLAGS='$(BOOTSTRAP_CFLAGS_EXTRA)' \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_INSTALL_UTILS=ON \
+ -DLLVM_VERSION_SUFFIX= \
+ -DLLVM_ENABLE_SPHINX=ON \
+ -DSPHINX_WARNINGS_AS_ERRORS=OFF \
+ -DLLVM_BUILD_LLVM_DYLIB=ON \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_FFI=ON \
+ $(CMAKE_EXTRA) \
+ -DLIBCLANG_LIBRARY_VERSION=$(SONAME_EXT) \
+ -DENABLE_LINKER_BUILD_ID=ON \
+ -DPOLLY_BUNDLED_JSONCPP=OFF \
+ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="AVR" \
+ -DCLANG_ENABLE_BOOTSTRAP=ON \
+ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
+ -DCLANG_VENDOR=$(VENDOR) \
+ -DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_VERBOSE_MAKEFILE;CMAKE_BUILD_TYPE;CMAKE_CXX_FLAGS_RELWITHDEBINFO;LLVM_LINK_LLVM_DYLIB;LLVM_INSTALL_UTILS;LLVM_VERSION_SUFFIX;LLVM_ENABLE_SPHINX;SPHINX_WARNINGS_AS_ERRORS;LLVM_BUILD_LLVM_DYLIB;LLVM_ENABLE_RTTI;LLVM_ENABLE_FFI;LIBCLANG_LIBRARY_VERSION;ENABLE_LINKER_BUILD_ID;POLLY_BUNDLED_JSONCPP;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;LLVM_USE_PERF;LLVM_ENABLE_ASSERTIONS;LLVM_BINUTILS_INCDIR;LLVM_HOST_TRIPLE;;LLVM_COMPILER_CHECKED;COMPILER_RT_BUILD_BUILTINS;LIBOMP_LIBFLAGS;CMAKE_SHARED_LINKER_FLAGS"
+
+
+# make
+VERBOSE=VERBOSE=1
+# ninja
+#VERBOSE=-v
+
+debian-full-build:
+ $(PRE_PROCESS) make $(NJOBS) -C $(TARGET_BUILD) $(VERBOSE) CFLAGS="$(CFLAGS_EXTRA)" CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" REQUIRES_RTTI=1 DEBUGMAKE=1 $(BUILD_METHOD)
+
+# Check the stage 2 build worked
+ if test "$(BUILD_METHOD)" = "stage2"; then \
+ if ! readelf --string-dump .comment $(TARGET_BUILD_STAGE2)/bin/clang 2>&1|grep -q "clang version"; then \
+ echo "clang hasn't been built using clang. Bye bye. Check that the stage2 build has been done."; \
+ fi; \
+ fi
+
+ touch $@
+
+debian-libfuzzer-build:
+ifeq (${LIBFUZZER_ENABLE},yes)
+ cd $(TARGET_BUILD) \
+ CFLAGS=`dpkg-buildflags --get CFLAGS`; \
+ CFLAGS="$$CFLAGS `dpkg-buildflags --get CPPFLAGS`"; \
+ echo $$CFLAGS; \
+ $(BASE_PATH)/$(TARGET_BUILD_STAGE2)/bin/clang++ -c $$CFLAGS -std=c++11 $(BASE_PATH)/compiler-rt/lib/fuzzer/*.cpp -IFuzzer; \
+ ar ruv libFuzzer.a Fuzzer*.o
+endif
+ touch $@
+
+
+LIBCXX_CMAKE_OPTIONS := \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
+ -DLLVM_CONFIG_PATH=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/llvm-config \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_CXX_COMPILER=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/clang++ \
+ -DCMAKE_C_COMPILER=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/clang \
+ -DCMAKE_CXX_FLAGS="$(LIBCXXFLAGS)" \
+ -DCMAKE_EXE_LINKER_FLAGS="" \
+ -DCMAKE_SHARED_LINKER_FLAGS="" \
+ -DCMAKE_MODULE_LINKER_FLAGS="" \
+ -DCMAKE_AR=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/llvm-ar \
+ -DCMAKE_RANLIB=$(CURDIR)/$(TARGET_BUILD_STAGE2)/bin/llvm-ranlib \
+ -DLLVM_EXTERNAL_LIT=$(BASE_PATH)/utils/lit/lit.py \
+ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
+ $(CMAKE_EXTRA) \
+ $(CMAKE_EXTRA_LIBCXX)
+
+debian-libcxx-build:
+# Builds libcxx
+
+ mkdir -p libcxx/build
+ mkdir -p libcxxabi/build
+
+ CMAKE_BIN=cmake; \
+ if test -f /tmp/cmake/bin/cmake; then \
+ CMAKE_BIN=/tmp/cmake/bin/cmake; \
+ fi; \
+ echo "Using cmake: $$CMAKE_BIN"; \
+ cd libcxxabi/build && \
+ $(PRE_PROCESS_CONF) $$CMAKE_BIN ../ \
+ $(LIBCXX_CMAKE_OPTIONS) \
+ -DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \
+ -DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \
+ -DLIBCXXABI_LIBCXX_INCLUDES=$(BASE_PATH)/libcxx/include \
+ -DLIBCXXABI_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
+ -DLLVM_ENABLE_RTTI=ON && \
+ $(PRE_PROCESS_CONF) make $(NJOBS) $(VERBOSE) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)"
+ touch $@
+
+debian-libcxxabi-build:
+# Builds libcxxabi
+
+ mkdir -p libcxxabi/build
+
+ CMAKE_BIN=cmake; \
+ if test -f /tmp/cmake/bin/cmake; then \
+ CMAKE_BIN=/tmp/cmake/bin/cmake; \
+ fi; \
+ echo "Using cmake: $$CMAKE_BIN"; \
+ cd libcxx/build && \
+ $(PRE_PROCESS_CONF) $$CMAKE_BIN ../ \
+ $(LIBCXX_CMAKE_OPTIONS) \
+ -DLIBCXX_CXX_ABI=libcxxabi \
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(BASE_PATH)/libcxxabi/include \
+ -DLIBCXX_CXX_ABI_LIBRARY_PATH=$(BASE_PATH)/libcxxabi/build/lib \
+ -DLIBCXX_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
+ -DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON && \
+ $(PRE_PROCESS_CONF) make $(NJOBS) $(VERBOSE) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)"
+ touch $@
+
+override_dh_auto_build: debian-full-build debian-libfuzzer-build debian-libcxx-build debian-libcxxabi-build
+
+override_dh_prep: build_doc
+ dh_prep
+
+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
+ -(if test "$(OCAML_ENABLE)" = yes; then \
+ make $(NJOBS) -C "$(TARGET_BUILD_STAGE2)/docs" ocaml_doc; \
+ fi)
+
+# Continue if failing, Ubuntu precise cannot generate manpages as sphinx is too old
+ -(cd $(TARGET_BUILD) && make $(NJOBS) docs-llvm-html docs-clang-html docs-clang-tools-html docs-polly-html docs-polly-man docs-clang-tools-man docs-clang-man docs-llvm-man)
+
+# Rename manpages
+ d=$(CURDIR)/docs/_build/man/; \
+ if test -d $$d; then \
+ cd $$d; \
+ for f in *.1; do \
+ echo "$$f"|grep $(LLVM_VERSION) || mv $$f `echo $$f|sed "s|\.1|-$(LLVM_VERSION).1|"`; \
+ done; \
+ else \
+ echo "could not find $$d"; \
+ fi
+# the clang doc generation only generates clang manpage
+# When it will do more, we should move that in the loop above
+ cd $(CURDIR)/clang/docs/_build/man/; mv clang.1 clang-$(LLVM_VERSION).1
+
+# Remove the copy of jquery. See bug #701087
+ for d in $(TARGET_BUILD)/docs/html/_static/ $(TARGET_BUILD)/tools/clang/docs/html/_static/ $(TARGET_BUILD)/tools/clang/tools/extra/docs/html/_static/; do \
+ cd $$d && rm -f jquery.js && ln -s /usr/share/javascript/jquery/jquery.js && cd -; \
+ cd $$d && rm -f underscore.js && ln -s /usr/share/javascript/underscore/underscore.js && cd -; \
+ done
+
+ mkdir -p debian/man/
+ ls -al clang/tools/scan-view/bin/scan-view
+ clang/tools/scan-view/bin/scan-view --help || true
+ help2man --no-info --version-string=$(LLVM_VERSION) clang/tools/scan-view/bin/scan-view > debian/man/scan-view-$(LLVM_VERSION).1 || true
+ help2man --no-info --version-string=$(LLVM_VERSION) clang/tools/clang-format/clang-format-diff.py > debian/man/clang-format-diff-$(LLVM_VERSION).1 || true
+
+ CMDS="llvm-dwarfdump llvm-mc llvm-mcmarkup llvm-objdump llvm-rtdyld llvm-size llvm-ranlib lldb lldb-mi clang-format clang clang++ clang-tblgen clang-check clang-cpp clang-import-test clang-tidy clang-apply-replacements clang-rename clang-query pp-trace sancov lli modularize clang-include-fixer find-all-symbols clang-reorder-fields ld.lld llvm-tblgen clang-change-namespace clang-offload-bundler clangd"; \
+ 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-info --version-string=$(LLVM_VERSION) $(TARGET_BUILD_STAGE2)/bin/$$f > debian/man/$$f-$(LLVM_VERSION).1; \
+ done
+ if test "$(OPENMP_ENABLE)" = yes; then \
+ cd openmp/runtime && doxygen doc/doxygen/config; cd -; \
+ cd openmp/runtime/doc/doxygen/generated/html/ && rm jquery.js && ln -s /usr/share/javascript/jquery/jquery.js; \
+ fi
+
+override_dh_auto_install:
+ # Clean up temporary files to make sure the install works
+ rm -rf $(find $(TARGET_BUILD) -wholename '*CMakeFiles*' -not -name CMakeLists.txt -a -name "*.dir" -type d)
+ # install/fast enables a make install without recompiling temporary files
+ if test "$(BUILD_METHOD)" = "stage2"; then \
+ $(MAKE) -C $(TARGET_BUILD) $(VERBOSE) stage2-install DESTDIR=$(DEB_INST)/; \
+ else \
+ $(MAKE) -C $(TARGET_BUILD) $(VERBOSE) install DESTDIR=$(DEB_INST)/; \
+ fi
+ # Not used on Linux.
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/argdumper
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/share/clang/clang-format-bbedit.applescript
+ # Remove bat files https://bugs.llvm.org/show_bug.cgi?id=30755
+ rm -f $(DEB_INST)/usr/share/clang/scan-build-$(LLVM_VERSION)/libexec/*.bat $(DEB_INST)/usr/share/clang/scan-build-$(LLVM_VERSION)/bin/*.bat
+
+ cp $(TARGET_BUILD_STAGE2)/bin/clang-query $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin
+
+ # Only run on executable, not script
+ chrpath -d `find $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/ -type f -executable -exec file -i '{}' \; | grep 'x-executable; charset=binary'|cut -d: -f1`
+ chrpath -d libcxxabi/build/lib/libc++abi.so.1.0
+ chrpath -d libcxx/build/lib/libc++.so.1.0
+
+ cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && rm -f libclang.so.$(SONAME_EXT) libclang-$(LLVM_VERSION).so; \
+ ln -s libclang-$(LLVM_VERSION).so.$(SONAME_EXT) libclang.so.$(SONAME_EXT)
+
+ cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && rm -f libomp.so; \
+ ln -s libomp.so.$(SONAME_OPENMP) libomp.so
+
+ if test "$(OPENMP_ENABLE)" = yes; then \
+ mkdir -p debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/include/openmp; \
+ cp -f openmp/runtime/exports/common*/include/* debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/include/openmp; \
+ cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib && cp libomp.so.$(SONAME_OPENMP) libomp-$(LLVM_VERSION).so.$(SONAME_OPENMP); \
+ fi
+
+# Remove artifact (where compiler-rt is built)
+# if test -d $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux; then \
+# cd $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux && rm -rf $$(find . -mindepth 2 -maxdepth 2 -type d) && rm -rf $$(find -empty) && rm -rf */.dir; \
+# fi
+
+ mkdir -p $(CURDIR)/debian/clang-$(LLVM_VERSION)/usr/bin/
+ cp compiler-rt/lib/asan/scripts/asan_symbolize.py $(CURDIR)/debian/clang-$(LLVM_VERSION)/usr/bin/asan_symbolize-$(LLVM_VERSION)
+
+ifeq (${LIBFUZZER_ENABLE},yes)
+ mkdir -p $(CURDIR)/debian/libfuzzer-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/
+ cp -v $(TARGET_BUILD)/libFuzzer.a $(CURDIR)/debian/libfuzzer-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/
+endif
+
+# Create this fake directory to make the install libclang-common-dev happy
+# under the unsupported archs of compiler-rt
+ mkdir -p $(DEB_INST)/usr/lib/clang/$(LLVM_VERSION)/lib
+ mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/lib/
+ mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION)/lib/clang_linux/
+ mkdir -p $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/clang_linux/
+ mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/share/
+# On some archs, the sanatizers are not built. As we explicitly includes some txt files, create
+# a fake txt to make sure it doesn't fail
+ echo "The *.txt files, if available, contain helper to override some of the errors messages." > $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/README.txt
+ echo "Please visit https://github.com/google/sanitizers/wiki/AddressSanitizer for help" >> $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/README.txt
+# Path changed. Make a copy of it
+ cp $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/README.txt $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/share/README.txt
+
+# idem for the lldb python binding
+ mkdir -p $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python3/dist-packages/
+ mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python3.*/site-packages/* $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python3/dist-packages/ || true
+
+# Remove things that CMake install but which aren't packaged yet,
+# or are packaged from the source or build tree.
+ mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang-$(LLVM_VERSION) \
+ $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/clang
+
+# Don't think it is used
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libPolly*a
+# Probably useless
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/*-packages/six.py
+ rm -rf $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/build/utils/lit/lit/__pycache__/ \
+ $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/build/utils/lit/lit/*/__pycache__/
+
+
+ $(MAKE) -C libcxxabi/build install DESTDIR=$(DEB_INST)
+ $(MAKE) -C libcxx/build install DESTDIR=$(DEB_INST)
+
+# Rename binaries
+ mkdir -p $(DEB_INST)/usr/bin/
+ cd $(DEB_INST)/usr/bin/; \
+ rm -f *; \
+ for f in ../lib/llvm-$(LLVM_VERSION)/bin/*; do \
+ ln -s $$f `basename $$f`-$(LLVM_VERSION); \
+ echo "Link $$f to `basename $$f`-$(LLVM_VERSION)"; \
+ done
+
+# Rename some stuff with the version name
+ cp $(CURDIR)/clang/tools/scan-build/man/scan-build.1 $(CURDIR)/clang/tools/scan-build/man/scan-build-$(LLVM_VERSION).1
+
+ # copy the vim files (except that tablegen does not exist for indent
+ VIM_DIRS="ftdetect ftplugin syntax indent"; \
+ for dir in $$VIM_DIRS; do \
+ cp -f $(CURDIR)/utils/vim/$$dir/llvm.vim $(CURDIR)/utils/vim/$$dir/llvm-$(LLVM_VERSION).vim; \
+ if test -f $(CURDIR)/utils/vim/$$dir/tablegen.vim; then \
+ cp -f $(CURDIR)/utils/vim/$$dir/tablegen.vim $(CURDIR)/utils/vim/$$dir/tablegen-$(LLVM_VERSION).vim; \
+ fi; \
+ done
+ cp -f $(CURDIR)/utils/vim/vimrc $(CURDIR)/utils/vim/llvm-$(LLVM_VERSION)-vimrc
+
+ cp -f $(CURDIR)/clang/tools/clang-format/clang-format-diff.py $(CURDIR)/clang/tools/clang-format/clang-format-diff-$(LLVM_VERSION)
+
+ cp -f $(CURDIR)/clang/tools/clang-format/clang-format.py clang/tools/clang-format/clang-format-$(LLVM_VERSION).py
+
+ rm -rf clang/tools/scan-build-$(LLVM_VERSION)
+ cp -fR $(CURDIR)/clang/tools/scan-build clang/tools/scan-build-$(LLVM_VERSION)
+
+ rm -rf clang/tools/scan-build-py-$(LLVM_VERSION)
+ cp -fR $(CURDIR)/clang/tools/scan-build-py clang/tools/scan-build-py-$(LLVM_VERSION)
+ chmod +x clang/tools/scan-build-py-$(LLVM_VERSION)/bin/*
+
+ rm -rf clang/tools/scan-view-$(LLVM_VERSION)
+ cp -fR $(CURDIR)/clang/tools/scan-view clang/tools/scan-view-$(LLVM_VERSION)
+
+# Remove some license files
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/include/llvm/Support/LICENSE.TXT
+
+# Disable CMake's package validation checks for target files that we may remove.
+ sed -i '/_IMPORT_CHECK_TARGETS \(Polly\|sancov\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
+
+# Disable CMake's package validation checks for binaries that may not be installed
+ sed -i 's|.*_IMPORT_CHECK_FILES_FOR_.*/bin/.*)|#&|' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
+
+# Managed in python*-lldb-X.Y.links.in
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/*-packages/lldb/_lldb.so
+
+# Manage the polly files. Sometimes, we build them. Sometimes not.
+ if test "$(POLLY_ENABLE)" = yes; then \
+ mkdir -p $(CURDIR)/debian/libclang-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/ $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/polly/; \
+ mv -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libpolly* \
+ $(CURDIR)/debian/libclang-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/; \
+ rm -rf $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/polly; \
+ mv -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/include/polly/ \
+ $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/; \
+ fi
+
+ mkdir -p $(CURDIR)/debian/usr/share/doc/llvm-$(LLVM_VERSION)-doc/ $(CURDIR)/debian/usr/share/doc/clang-$(LLVM_VERSION)-doc/
+ cp -R $(TARGET_BUILD)/docs/html $(CURDIR)/debian/usr/share/doc/llvm-$(LLVM_VERSION)-doc/
+ cp -R $(TARGET_BUILD)/tools/clang/docs/html $(CURDIR)/debian/usr/share/doc/clang-$(LLVM_VERSION)-doc/
+ cp -R $(TARGET_BUILD)/tools/clang/tools/extra/docs/html $(CURDIR)/debian/usr/share/doc/clang-$(LLVM_VERSION)-doc/clang-extra
+
+# Rename OCaml bindings
+ if test "$(OCAML_ENABLE)" = yes; then \
+ mkdir -p "$(DEB_INST)$(OCAML_STDLIB_DIR)"; \
+ mkdir -p "$(DEB_INST)usr/lib/llvm-$(LLVM_VERSION)/docs/ocaml/html/html"; \
+ mkdir -p "$(DEB_INST)usr/lib/llvm-$(LLVM_VERSION)/share/doc/llvm/ocaml-html/"; \
+ if test -d "$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/ocaml"; then \
+ mv -f "$(DEB_INST)usr/lib/llvm-$(LLVM_VERSION)/lib/ocaml" \
+ "$(DEB_INST)$(OCAML_STDLIB_DIR)/llvm-$(LLVM_VERSION)"; \
+ fi; \
+ 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 -plibclang$(SONAME_EXT)-$(LLVM_VERSION) -V"libclang$(SONAME_EXT)-$(LLVM_VERSION) (>= 1:8~svn298832-1~)" -- -c4
+ dh_makeshlibs -pliblldb-$(LLVM_VERSION) -V"liblldb-$(LLVM_VERSION) (>= 1:8~svn298832-1~)"
+ dh_makeshlibs -plibllvm$(LLVM_VERSION) -V"libllvm$(LLVM_VERSION) (>= 1:8~svn298832-1~)"
+ dh_makeshlibs -plibomp$(SONAME_OPENMP)-$(LLVM_VERSION) -V"libomp$(SONAME_OPENMP)-$(LLVM_VERSION) (>= 1:8~svn298832-1~)"
+ dh_makeshlibs --remaining-packages
+
+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 -Xlibclang_rt.asan-*.so -Xlibclang_rt.asan-*.so
+
+override_dh_installman:
+ if test -f lld/docs/ld.lld.1; then \
+ mv lld/docs/ld.lld.1 lld/docs/ld.lld-$(LLVM_VERSION).1; \
+ fi
+ dh_installman
+# Make sure that lli manpage is only in llvm-3.2-runtime (See #697117)
+ rm -f $(CURDIR)/debian/llvm-$(LLVM_VERSION)/usr/share/man/man1/lli*
+
+
+override_dh_strip:
+ : # running out of diskspace on the buildds
+ find $(TARGET_BUILD) -name '*.o' -o -name '*.a' -type f | xargs -r rm -f
+ifeq (0, $(strip $(shell dpkg --compare-versions $(DH_VERSION) ge 9.20160114; echo $$?)))
+ : # If we don't have the right version of debhelper, don't run the option
+ dh_strip -p libclang$(SONAME_EXT)-$(LLVM_VERSION) --dbgsym-migration='libclang$(SONAME_EXT)-$(LLVM_VERSION)-dbg (<< 1:8~svn327768-1~)'
+ dh_strip -p libllvm$(LLVM_VERSION) --dbgsym-migration='libllvm$(LLVM_VERSION)-dbg (<< 1:8~svn327768-1~)'
+ dh_strip -p liblldb-$(LLVM_VERSION) --dbgsym-migration='liblldb-$(LLVM_VERSION)-dbg (<< 1:8~svn327768-1~)'
+ dh_strip -p libomp$(SONAME_OPENMP)-$(LLVM_VERSION) --dbgsym-migration='libomp$(SONAME_OPENMP)-$(LLVM_VERSION)-dbg (<< 1:8~svn327768-1~)'
+endif
+# ifeq (${LLD_ENABLE},yes)
+# PATH=$(CURDIR)/:$$PATH dh_strip -p liblld-$(LLVM_VERSION) --dbg-package=liblld-$(LLVM_VERSION)-dbg
+# endif
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) lt 2.31.1-11 ; echo $$?),0)
+ : # building with clang, binutils/strip has hard time stripping some libs because of
+ : # https://sourceware.org/bugzilla/show_bug.cgi?id=23788
+ : # use llvm-strip instead
+ : # Workaround some issues with stripping by using llvm's
+ if test ! -f $(CURDIR)/strip; then \
+ ln -s $(CURDIR)/debian/llvm-$(LLVM_VERSION)/usr/lib/llvm-$(LLVM_VERSION)/bin/llvm-strip $(CURDIR)/strip; \
+ fi
+ ls -al $(CURDIR)/debian/.debhelper/*/dbgsym-root/usr/lib/debug/.build-id/*/*|| true
+ : # On some old version of Debian (stretch) and Ubuntu, Rules-Requires-Root isn't supported
+ : # Sometime, it fails because of chown: changing ownership of 'debian/.debhelper/clang-7/dbgsym-root/usr/lib/debug/.build-id/37/ba506ae9d2f82219bf5c552f7c09853052b2b0.debug': Operation not permitted
+ : # Therefor, continue when we encounter an error
+ PATH=$(CURDIR)/:$$PATH LD_LIBRARY_PATH=$(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/:/usr/lib/*/libfakeroot dh_strip -a -v || true
+ : # Remove the workaround
+ rm $(CURDIR)/strip
+ : # for some reasons, the +x might be removed
+ chmod -f +x $(CURDIR)/debian/*/usr/lib/llvm-$(LLVM_VERSION)/bin/* || true
+else
+ dh_strip -a -v
+endif
+
+override_dh_install:
+# cp $(TARGET_BUILD)/lib/libLLVM-$(LLVM_VERSION).so $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT)
+ifeq (${POLLY_ENABLE},yes)
+# only for arch:any builds
+ifneq (,$(filter libclang-common-$(LLVM_VERSION)-dev, $(shell dh_listpackages)))
+ dh_install -p libclang-common-$(LLVM_VERSION)-dev usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/polly/*.cmake usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/polly
+# On old Debian & Ubuntu, removing the files is necessary
+ rm -rf debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/polly/*.cmake
+else
+ rm -rf $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/polly/*.cmake
+endif
+endif
+ dh_install --fail-missing
+
+override_dh_installdeb:
+# Managed by the package
+ dh_installdeb -a
+
+ rm -f $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/*-packages/lldb/__init__.pyc $(CURDIR)/debian/python*-lldb-$(LLVM_VERSION)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/*-packages/lldb/__init__.pyc
+ rm -f $(CURDIR)/debian/clang-$(LLVM_VERSION)-examples/usr/share/doc/clang-$(LLVM_VERSION)-examples/examples/*Make*
+
+# Remove auto generated python pyc
+ find $(CURDIR)/debian/llvm-$(LLVM_VERSION)-tools/usr/lib/llvm-$(LLVM_VERSION)/ -name '*.pyc' | xargs -r rm -f
+
+ifeq (${RUN_TEST},yes)
+# List of the archs we know we have 100 % tests working
+ARCH_LLVM_TEST_OK := i386 amd64
+
+override_dh_auto_test:
+
+# LLVM tests
+ifneq (,$(findstring $(DEB_HOST_ARCH),$(ARCH_LLVM_TEST_OK)))
+# logs the output to check-llvm_build_log.txt for validation through autopkgtest
+ $(MAKE) $(NJOBS) -C $(TARGET_BUILD) stage2-check-llvm | tee check-llvm_build_log.txt
+else
+ $(MAKE) $(NJOBS) -C $(TARGET_BUILD) stage2-check-llvm || true
+endif
+
+# Clang tests
+ $(MAKE) $(NJOBS) -C $(TARGET_BUILD) stage2-check-clang || true
+
+# Clang extra tests (ex: clang-tidy)
+ $(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-clang-tools || true
+
+# LLD tests
+ifeq (${LLD_ENABLE},yes)
+ $(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-lld || true
+endif
+
+# Sanitizer
+ $(MAKE) $(NJOBS) -C $(TARGET_BUILD_STAGE2) check-sanitizer || true
+
+# Libcxx
+ $(MAKE) $(NJOBS) -C libcxx/build check-libcxx || true
+
+# Libcxxabi
+ $(MAKE) $(MAKE) -C libcxxabi/build check-libcxxabi || true
+
+# LLDB tests
+ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel))
+ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS)))
+# Create a symlink to run the testsuite: see https://bugs.archlinux.org/task/50759
+ cd $(CURDIR)/$(TARGET_BUILD)/lib/python*/*-packages/; \
+ if test ! -e _lldb.so; then \
+ ln -s lldb/_lldb.so; \
+ fi
+ if test "$(CODECOVERAGE)" = "no"; then \
+ LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:$(CURDIR)/$(TARGET_BUILD)/lib/ $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lldb || true; \
+ fi
+ # remove the workaround
+ rm $(CURDIR)/$(TARGET_BUILD)/lib/python*/*-packages/_lldb.so
+endif
+endif
+
+# Polly tests
+ifeq (${POLLY_ENABLE},yes)
+ $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-polly || true
+endif
+
+# Managed by debian build system
+ rm -f $(CURDIR)/$(TARGET_BUILD)/lib/python*/*-packages/lldb/_lldb.so
+
+# The compression of the code coverage report is done in the
+# hook B21GetCoverageResults on the server
+ if test "$(CODECOVERAGE)" = "yes"; then \
+ REPORT=reports/llvm-toolchain.info; \
+ mkdir -p reports/; \
+ lcov --directory $(TARGET_BUILD)/ --capture --ignore-errors source --output-file $$REPORT; \
+ lcov --remove $$REPORT "/usr*" -o $$REPORT; \
+ genhtml -o reports/coverage --show-details --highlight --legend $$REPORT; \
+ chmod 0755 `find reports/coverage -type d`; \
+ chmod 0644 `find reports/coverage -type f`; \
+ fi
+override_dh_auto_test:
+endif
+
+
+override_dh_gencontrol:
+ dh_gencontrol -- $(control_vars)
+
+
+override_dh_auto_clean:
+ rm -rf $(TARGET_BUILD) tools/clang/include/clang/Debian/debian_path.h docs/_build/ clang/docs/_build tools/clang/docs/_html/
+# QA tools
+ rm -rf cov-int/ reports/
+ rm -f `ls debian/*.in|sed -e "s|.in$$||g"`
+ find utils -name '*.pyc' | xargs -r rm -f
+ # Use -I because a test has a space in its name
+ find lldb/test -iname '*.pyc' | xargs -I{} -r rm -f {}
+ find test -name '*.pyc' -o -name '*.cm[ix]' | xargs -r rm -f
+ find test/Bindings -name '*.o' | xargs -r rm -f
+ rm -f tools/clang tools/polly tools/lld tools/lldb projects/compiler-rt
+ rm -rf tools/clang/tools/extra clang/tools/extra/
+ rm -f $(CURDIR)/utils/vim/llvm-$(LLVM_VERSION).vim $(CURDIR)/utils/vim/tablegen-$(LLVM_VERSION).vim
+ rm -f $(CURDIR)/clang/tools/clang-format/clang-format-diff-$(LLVM_VERSION)
+ rm -f $(CURDIR)/clang/tools/clang-format/clang-format-$(LLVM_VERSION).py
+ rm -rf libcxx/build libcxxabi/build
+ if test -f lld/docs/ld.lld-$(LLVM_VERSION).1; then \
+ mv lld/docs/ld.lld-$(LLVM_VERSION).1 lld/docs/ld.lld.1; \
+ fi
+
+.PHONY: override_dh_strip preconfigure debian-full-build debian-libfuzzer-build debian-libcxx-build debian-libcxxabi-build
--- /dev/null
+# Removed by patch remove-dbtree.diff
+source: source-is-missing clang/www/analyzer/scripts/dbtree.js
+# No longer used (we are using cmake now)
+source: outdated-autotools-helper-file autoconf/config.guess 2011-08-20
+source: outdated-autotools-helper-file autoconf/config.sub 2011-11-02
+# Reported here https://bugs.llvm.org/show_bug.cgi?id=32962
+# No activity, silent it to avoid false positive in automation
+source: license-problem-convert-utf-code lib/Support/ConvertUTF.cpp
+# A unit test. No big deal
+source: source-is-missing lldb/unittests/ObjectFile/ELF/Inputs/early-section-headers.so
+# Generated See https://github.com/llvm-mirror/lldb/commit/7aee683f410ffc27b61a8e9779b9df9a7c0fff7d#diff-dcfea8d8a36846a00781105f8618e06d
+source: source-is-missing lldb/lit/Modules/ELF/Inputs/PT_LOAD-overlap-section.elf
+
+# Makes sense for the testsuites
+source: source-contains-prebuilt-windows-binary lldb/unittests/SymbolFile/DWARF/Inputs/test-dwarf.exe
+source: source-contains-prebuilt-windows-binary lldb/unittests/SymbolFile/PDB/Inputs/test-pdb-types.exe
+source: source-contains-prebuilt-windows-binary lldb/unittests/SymbolFile/PDB/Inputs/test-pdb.exe
--- /dev/null
+3.0 (quilt)
--- /dev/null
+Test-Command: bash -v ./debian/qualify-clang.sh
+Depends: @, cmake, g++, file, dpkg-dev
+# Comment the dbgsym package because of bug #917528
+# dbgsym packages not being available in testing
+# clang-8-dbgsym, libclang1-8-dbgsym
+Restrictions: allow-stderr
+
+
+Test-Command: python3 -c "import lldb; print(lldb.__file__); print(lldb)"
+Depends: python3-lldb-8
+
+Test-Command: python3 -c "import clang; print(clang.__file__); print(clang)"
+Depends: python3-clang-8
--- /dev/null
+set -e
+ORIG_VERSION=8
+MAJOR_VERSION=8 # 8.0.1
+SVN_REV=`ls -1 *8_$MAJOR_VERSION*svn*bz2 | tail -1|perl -ne 'print "$1\n" if /svn(\d+)/;' | sort -ru`
+#SVN_REV=347285
+VERSION=svn$SVN_REV
+#VERSION=+rc3
+LLVM_ARCHIVE=llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig.tar.bz2
+echo "unpack of $LLVM_ARCHIVE"
+tar jxf $LLVM_ARCHIVE
+cd llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION/ || ( echo "Bad SVN_REV:\"$SVN_REV\"" && exit 1 )
+for f in ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-clang.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-clang-tools-extra.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-compiler-rt.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-lld.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-lldb.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-polly.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-libcxxabi.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-libcxx.tar.bz2 ../llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~$VERSION.orig-openmp.tar.bz2; do
+ echo "Unpack of $f"
+ tar jxf $f
+ done
+
+ln -s clang_$MAJOR_VERSION~$VERSION clang
+ln -s clang-tools-extra_$MAJOR_VERSION~$VERSION clang-tools-extra
+ln -s compiler-rt_$MAJOR_VERSION~$VERSION compiler-rt
+ln -s polly_$MAJOR_VERSION~$VERSION polly
+ln -s lldb_$MAJOR_VERSION~$VERSION lldb
+ln -s lld_$MAJOR_VERSION~$VERSION lld
+ln -s openmp_$MAJOR_VERSION~$VERSION openmp
+ln -s libcxx_$MAJOR_VERSION~$VERSION libcxx
+ln -s libcxxabi_$MAJOR_VERSION~$VERSION libcxxabi
+
+cp -R ../$ORIG_VERSION/debian .
+QUILT_PATCHES=debian/patches/ quilt push -a --fuzz=0
--- /dev/null
+version=3
+http://llvm.org/releases/download.html .*/llvm-(.*).src.tar.xz
+