[dgit import tarball llvm-toolchain-15 1:15.0.6-4 llvm-toolchain-15_15.0.6-4.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 10 release lives at in the "10" 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 8 9 10 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 github). 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~+20191018225217+3b123a2be6d.
+ (date+hour+short git hash).
+ Depending on the current snapshot version number and git 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 10 release
+branch at
+ https://github.com/llvm/llvm-project/branches
+you should use,
+
+ $ sh 10/debian/orig-tar.sh release/10.x
+
+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 9.0.1 release candidate rc3 at
+ https://github.com/llvm/llvm-project/tags
+you should use,
+
+ $ sh 10/debian/orig-tar.sh 10.0.1 rc3
+
+For a stable release, the syntax is:
+
+ $ sh 10/debian/orig-tar.sh 10.0.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.
+
+The Debian packaging is also used by apt.llvm.org.
+
+From 12.0.1-10 & 13.0.0-9, the build system use the runtimes build system.
+This is now the upstream preferred way to build llvm.
+It means that some projects like libc++ or compiler-rt are built once clang
+is built.
+
+= 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, MADD4 instructions are disabled.
+
+* For riscv64, the hard-float ABI is used instead of the float one, and
+ the target CPU is set to RV64GC instead of RV64I.
+
+* For s390x: set default abi to z196 for debian, and z13 for ubuntu.
+ See https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-10/+bug/1864226
+
+= Libraries =
+
+* sonames are created
+
+* Build-ID are enabled
+
+
+ -- Sylvestre Ledru <sylvestre@debian.org>, Mon, 30 Mar 2020 11:08:10 +0200
+
--- /dev/null
+* package utils/creduce-clang-crash.py
+
+* 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
+usr/bin/llvm-bolt-@LLVM_VERSION@
+usr/bin/llvm-bolt-heatmap-@LLVM_VERSION@
+usr/bin/llvm-boltdiff-@LLVM_VERSION@
+usr/bin/merge-fdata-@LLVM_VERSION@
+usr/bin/perf2bolt-@LLVM_VERSION@
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-bolt
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-bolt-heatmap
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-boltdiff
+usr/lib/llvm-@LLVM_VERSION@/bin/merge-fdata
+usr/lib/llvm-@LLVM_VERSION@/bin/perf2bolt
--- /dev/null
+llvm-toolchain-15 (1:15.0.6-4) unstable; urgency=medium
+
+ * link-grpc.diff: add the detection of other libs necessary for
+ grpc (Closes: #1025530)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 01 Jan 2023 15:46:39 +0100
+
+llvm-toolchain-15 (1:15.0.6-3) unstable; urgency=medium
+
+ * Build on spirv-15 for riscv64 too.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 30 Nov 2022 16:15:42 +0100
+
+llvm-toolchain-15 (1:15.0.6-2) unstable; urgency=medium
+
+ * Fix build on riscv64 by disabling WASM for now.
+ * Explicitly depend on spirv-14 for riscv64, to bootstrap spirv there.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 30 Nov 2022 15:31:52 +0100
+
+llvm-toolchain-15 (1:15.0.6-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 29 Nov 2022 15:25:58 +0100
+
+llvm-toolchain-15 (1:15.0.5-5) unstable; urgency=medium
+
+ * Add riscv64 to spirv-15 supported list, now that the bootstrap is
+ finished.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 22 Nov 2022 12:41:35 +0100
+
+llvm-toolchain-15 (1:15.0.5-4) unstable; urgency=medium
+
+ * Explicitly depend on spirv-14 for riscv64, to bootstrap spirv there.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 22 Nov 2022 10:58:27 +0100
+
+llvm-toolchain-15 (1:15.0.5-3) unstable; urgency=medium
+
+ * Depend again on spirv-15 for mips64el.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sun, 20 Nov 2022 06:54:23 +0100
+
+llvm-toolchain-15 (1:15.0.5-2) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Add libomp target library to mips64el (Closes: #1023101)
+ * Explictly depend on spirv-14 for mips64el, to ease bootstrapping
+ on buildds (this should be dropped once we build a spirv-15 in archive)
+ * Cherry-pick two upstream patches to unblock mesa build on arm* (Closes:
+ #1022577)
+
+ [ Sylvestre Ledru ]
+ * store the sccache results in /tmp/buildd/source/sccache-stats.json
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sat, 19 Nov 2022 23:25:04 +0100
+
+llvm-toolchain-15 (1:15.0.5-1) unstable; urgency=medium
+
+ * New upstream release
+ * Remove the swig patches (applied upstream)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 16 Nov 2022 09:11:01 +0100
+
+llvm-toolchain-15 (1:15.0.4-1) unstable; urgency=medium
+
+ [ Jordan Justen ]
+ * d/rules: Rename LLVM_SPIR_VERSION to LLVM_SPIRV_VERSION
+ * d/rules: Call bash to use 'command -v' to locate llvm-spirv executable
+ * debian: Bump llvm-spirv to 15 to match the llvm version
+ * d/rules: Set LLVM_SPIRV with cmake for libclc
+ * d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
+ * d/rules: Restore building libclc .bc output without spir-v support
+ * d/rules: Check for previous version of llvm-spirv as well
+ * d/control: Add llvm-spirv-14 as an alternative to llvm-spirv-15
+
+ [ Sylvestre Ledru ]
+ * New upstream release (Closes: #1023455)
+ * Cherry-pick patches to fix the FTBFS with swig + lldb (Closes: #1023444)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 02 Nov 2022 08:50:23 +0100
+
+llvm-toolchain-15 (1:15.0.3-2) unstable; urgency=medium
+
+ * Cherry-pick upstream fix to unbreak mips (closes: #1022169)
+ Thanks to YunQiang Su for the patch
+ https://reviews.llvm.org/D135553
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 28 Oct 2022 10:25:45 +0200
+
+llvm-toolchain-15 (1:15.0.3-1) unstable; urgency=medium
+
+ * Upload to unstable now that autopkgtest is green
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 23 Oct 2022 10:34:58 +0200
+
+llvm-toolchain-15 (1:15.0.3-1~exp2) experimental; urgency=medium
+
+ * Fix autopkgtest (remove move stuff from the cmake search)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 21 Oct 2022 23:53:23 +0200
+
+llvm-toolchain-15 (1:15.0.3-1~exp1) experimental; urgency=medium
+
+ * New stable release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 18 Oct 2022 14:04:32 +0200
+
+llvm-toolchain-15 (1:15.0.2-2~exp6) experimental; urgency=medium
+
+ * Disable LTO for now
+ * don't search for llvm-bolt, merge-fdata, etc in cmake
+ https://github.com/llvm/llvm-project/issues/58317
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 12 Oct 2022 16:19:03 +0200
+
+llvm-toolchain-15 (1:15.0.2-2~exp5) experimental; urgency=medium
+
+ * Only enable LTO for some archs
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 11 Oct 2022 09:15:56 +0200
+
+llvm-toolchain-15 (1:15.0.2-2~exp4) experimental; urgency=medium
+
+ * Only ship libbolt_rt_hugify.a & libbolt_rt_instr.a on amd64
+ * fix the cmake detection with libmlir
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 09 Oct 2022 20:09:46 +0200
+
+llvm-toolchain-15 (1:15.0.2-2~exp3) experimental; urgency=medium
+
+ * Build using LTO - better performances of the llvm-toolchain
+ binaires
+ * Build libfuzzer with C++ 17 ot unbreak it
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 08 Oct 2022 15:06:37 +0200
+
+llvm-toolchain-15 (1:15.0.2-2~exp2) experimental; urgency=medium
+
+ * Fix a typo to silent lintian (Closes: #1018770)
+ * Fix some hardcoded paths (Closes: #1020847)
+ * Suggest wasi-libc for clang
+
+ [ Witold Baryluk ]
+ * Allow libunwind-dev to be coinstallable (Closes: #1004112)
+
+ [ Faidon Liambotis ]
+ * Add better support for the WebAssembly (wasm32/wasm64) targets:
+ - Ship compiler-rt for the wasm32 and wasm64 targets. (Closes: #1010932)
+ - Add patch wasm-compiler-rt-default.diff to default to compiler-rt for
+ these targets. libgcc does not currently exist for WebAssembly in neither
+ Debian nor upstream, and therefore compiler-rt is the only option.
+ - Add patch wasm-sysroot-usr.diff to support a system-installed (i.e. shipped
+ in /usr) wasi-libc. (Closes: #1020746)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 06 Oct 2022 17:04:24 +0200
+
+llvm-toolchain-15 (1:15.0.2-2~exp1) experimental; urgency=medium
+
+ * Ship bolt
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 04 Oct 2022 15:21:19 +0200
+
+llvm-toolchain-15 (1:15.0.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 04 Oct 2022 12:46:25 +0200
+
+llvm-toolchain-15 (1:15.0.1-1) unstable; urgency=medium
+
+ * Upload to unstable now that we have removed 12 from the archive
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 04 Oct 2022 09:24:55 +0200
+
+llvm-toolchain-15 (1:15.0.1-1~exp2) experimental; urgency=medium
+
+ * Unbreak the clang symlink. See
+ https://github.com/llvm/llvm-project/issues/57857
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 21 Sep 2022 00:20:54 +0200
+
+llvm-toolchain-15 (1:15.0.1-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 20 Sep 2022 08:55:01 +0200
+
+llvm-toolchain-15 (1:15.0.0-2) experimental; urgency=medium
+
+ * Fix build on ppc64 and riscv64 (Closes: #1019582)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 12 Sep 2022 17:58:08 +0200
+
+llvm-toolchain-15 (1:15.0.0-1~exp1) experimental; urgency=medium
+
+ * New stable release
+ * syscall-mips64el-def.diff: fix the call to undeclared function 'syscall';
+ on mips
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 06 Sep 2022 09:13:19 +0200
+
+llvm-toolchain-15 (1:15.0.0~+rc3-1~exp2) experimental; urgency=medium
+
+ * Update of the build dep from llvm-spirv => llvm-spirv-14
+ as it is now versioned. It should build libclc
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 31 Aug 2022 17:10:33 +0200
+
+llvm-toolchain-15 (1:15.0.0~+rc3-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * For Debian Stretch for apt.llvm.org, use clang-14 to build
+ itself as gcc 7 isn't available
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 25 Aug 2022 13:32:14 +0200
+
+llvm-toolchain-15 (1:15.0.0~+rc2-1~exp1) experimental; urgency=medium
+
+ * Second testing release of 15
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 09 Aug 2022 17:47:53 +0200
+
+llvm-toolchain-15 (1:15.0.0~+rc1-1~exp1) experimental; urgency=medium
+
+ * First testing release of 15
+ * Remove 'debian/patches/revert-openmp-path.diff'
+ applied upstream
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 01 Aug 2022 09:30:39 +0200
+
+llvm-toolchain-15 (1:15~++20220727091640+d77882e66779-1~exp1) experimental; urgency=medium
+
+ * main is now 16. Creating a branch for 15.
+ * clang doesn't have a specific SONAME anymore.
+ See https://reviews.llvm.org/D129160 for the rational
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Jul 2022 09:27:50 +0200
+
+llvm-toolchain-snapshot (1:15~++20220724113059+7feab85df8e8-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Force the SSE2 on amd64 for compiler-rt/builtin:
+ https://reviews.llvm.org/D107082#3626632
+ * Ship llvm-debuginfod & llvm-dwarfutil in llvm-X.Y
+ * Install usr/lib/llvm-15/lib/libomptarget.so.15 in libomp5-15
+ And libomptarget.rtl.amdgpu.so.15, libomptarget.rtl.cuda.so.15 and
+ libomptarget.rtl.x86_64.so.15
+ * Add usr/lib/llvm-15/lib/libomptarget.devicertl.a to libomp-X-dev
+ only for [amd64 ppc64el arm64]
+ * On Debian Buster, unwind fails to link because pthread & dl aren't found.
+ Force the declaration as it is probably the case for every Debian & Ubuntu anyway.
+ See unwind-force-pthread-dl.diff & https://github.com/llvm/llvm-project/issues/55629
+ * Install llvm-driver-template.cpp.in in llvm-X.Y-dev
+ * Remove debian/patches/x86-fuzzer.patch (done differently upstream)
+ * Install UnicodeNameMappingGenerator in llvm-X.Y-tools
+ * Disable libclc when spir is below 14
+ Explicit load/store type does not match pointee type of pointer operand (Producer: 'LLVM15.0.0' Reader: 'LLVM 13.0.1')
+ * Add the option -DLLVM_ENABLE_CURL=ON
+ See https://github.com/llvm/llvm-project/issues/55289
+ * Install new binary clang-offload-packager in
+ clang-tools-15
+
+ [ John Paul Adrian Glaubitz ]
+ * Enable GRPC build dependency only on supported targets
+ * Disable compiler-rt built-ins on x32
+ * Limit parallel link jobs for all stages on sparc and sparc64
+ * Built compiler-rt for default target only on sparc and sparc64
+ * Drop sparc64-specific patch D98574.patch
+ * Drop sparc64-specific patch D98575.patch
+
+ [ Roman Lebedev ]
+ * Install new binary tblgen-lsp-server into mlir-15-tools
+
+ [ Michael Biebl ]
+ * Add support for systemd-binfmt (Closes: #1012370)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 24 Jul 2022 14:25:19 +0200
+
+llvm-toolchain-snapshot (1:15~++20220309105819+8bef17ed59aa-1~exp1) experimental; urgency=medium
+
+ * Try to unbreak the build (issue #54242)
+ MLIR undef issue
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 09 Mar 2022 22:58:29 +0100
+
+llvm-toolchain-snapshot (1:15~++20220202093833+1a3137dc8451-1~exp1) experimental; urgency=medium
+
+ * Install new llvm-remark-size-diff in llvm-X.Y
+ * Install clang-pseudo in clang-tools-X.Y
+ * mlir: use the cmake option to avoid installing object files
+ MLIR_INSTALL_AGGREGATE_OBJECTS
+ Closes upstream #53134
+ * Build clangd with GRPC support
+ Thanks to Sam McCall for the patch
+ * snapshot is now 15. 14 is in it own branch now
+ * Ship clang-linker-wrapper in clang-tools-X.Y
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 13 Feb 2022 23:25:57 +0100
+
+llvm-toolchain-14 (1:14.0.6-9) unstable; urgency=medium
+
+ * Disable the MLIR testsuite run because of a freeze
+ (Closes: #1024154)
+ See https://github.com/llvm/llvm-project/issues/58357
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 15 Nov 2022 18:23:44 +0100
+
+llvm-toolchain-14 (1:14.0.6-8) unstable; urgency=medium
+
+ * Fix the lldb swig issues (closes: #1023444)
+ * Enable LLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO to help with caching
+ * Adjust to protobuf 3.21 (Closes: #1023533)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 04 Nov 2022 19:36:56 +0100
+
+llvm-toolchain-14 (1:14.0.6-7) unstable; urgency=medium
+
+ * Disable the cmake search for all binaries
+ (cmake_import_check_files_for.*/bin/). Dunno why it regressed
+ but we wasted too much time on this.
+ * disable sccache on bionic
+
+ [ Jordan Justen ]
+ * d/rules: Call bash to use 'command -v' to location llvm-spirv executable
+ * d/rules: Set LLVM_SPIRV with cmake for libclc
+ * d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
+ * d/rules: Check for llvm-spirv with version suffix
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 27 Oct 2022 12:47:19 +0200
+
+llvm-toolchain-14 (1:14.0.6-6) unstable; urgency=medium
+
+ * Unbreak the cmake detection (Closes: #1021857, #1022414)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 23 Oct 2022 16:07:45 +0200
+
+llvm-toolchain-14 (1:14.0.6-5) unstable; urgency=medium
+
+ * Update of the build dep llvm-spirv => llvm-spirv-14
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 11 Oct 2022 08:39:18 +0200
+
+llvm-toolchain-14 (1:14.0.6-4) unstable; urgency=medium
+
+ * fix the cmake detection with libmlir
+ * Don't build wasm target on arm64 armel mips64el mipsel ppc64el armhf
+ for now
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 10 Oct 2022 13:47:25 +0200
+
+llvm-toolchain-14 (1:14.0.6-3) unstable; urgency=medium
+
+ * Fix a typo to silent lintian (Closes: #1018770)
+ * Fix some hardcoded paths (Closes: #1020847)
+ * Suggest wasi-libc for clang
+
+ [ Witold Baryluk ]
+ * Allow libunwind-dev to be coinstallable (Closes: #1004112)
+
+ [ Faidon Liambotis ]
+ * Add better support for the WebAssembly (wasm32/wasm64) targets:
+ - Ship compiler-rt for the wasm32 and wasm64 targets. (Closes: #1010932)
+ - Add patch wasm-compiler-rt-default.diff to default to compiler-rt for
+ these targets. libgcc does not currently exist for WebAssembly in neither
+ Debian nor upstream, and therefore compiler-rt is the only option.
+ - Add patch wasm-sysroot-usr.diff to support a system-installed (i.e. shipped
+ in /usr) wasi-libc. (Closes: #1020746)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 30 Aug 2022 16:10:33 +0200
+
+llvm-toolchain-14 (1:14.0.6-2) unstable; urgency=medium
+
+ [ Sam McCall ]
+ * Add conventional symlink to libc++ headers in /usr/include/c++/v1
+ See https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/-/merge_requests/95
+ for more information
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 23 Jul 2022 23:01:02 +0200
+
+llvm-toolchain-14 (1:14.0.6-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 25 Jun 2022 09:56:23 +0200
+
+llvm-toolchain-14 (1:14.0.5-1) unstable; urgency=medium
+
+ * New upstream release
+ * Only install grpc files libclang-X.Y-dev when grpc built
+ * Remove cv-insn-support.patch (applied upstream)
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable compiler-rt built-ins on x32
+
+ [ Michael Biebl ]
+ * Add support for systemd-binfmt (Closes: #1012368)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 11 Jun 2022 09:09:03 +0200
+
+llvm-toolchain-14 (1:14.0.4-4) unstable; urgency=medium
+
+ * autopkgtest: Restrict debian/qualify-clang.sh on
+ amd64 arm64 i386
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 03 Jun 2022 10:52:10 +0200
+
+llvm-toolchain-14 (1:14.0.4-3) unstable; urgency=medium
+
+ * Fix GRPC installation path and files
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 31 May 2022 12:09:28 +0200
+
+llvm-toolchain-14 (1:14.0.4-2) unstable; urgency=low
+
+ * Add breaks/replaces for grpc binaries being placed in another package in Ubuntu
+ * Fix GRPC installation for ports architectures
+ * Add support for Ubuntu kinetic
+ * rules: take some patches from Ubuntu to save extra space during build
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sun, 29 May 2022 12:53:47 +0200
+
+llvm-toolchain-14 (1:14.0.4-1) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Enable GRPC build dependency only on supported targets
+
+ [ Sylvestre Ledru ]
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 25 May 2022 08:49:20 +0200
+
+llvm-toolchain-14 (1:14.0.3-2) unstable; urgency=medium
+
+ * Fix an autopkgtest on arm (Closes:# 1010716)
+ Thanks to Pino Toscano for the patch
+ * Fix the search path for hip (Closes: #1010467)
+ * Add the option -DLLVM_ENABLE_CURL=ON
+ See https://github.com/llvm/llvm-project/issues/55289
+ (LP: #1971743)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 09 May 2022 20:40:39 +0200
+
+llvm-toolchain-14 (1:14.0.3-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 29 Apr 2022 09:23:16 +0200
+
+llvm-toolchain-14 (1:14.0.2-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Apr 2022 08:36:00 +0200
+
+llvm-toolchain-14 (1:14.0.1-1) unstable; urgency=medium
+
+ * New upstream release
+ Fixes the ABI issues
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 13 Apr 2022 09:33:24 +0200
+
+llvm-toolchain-14 (1:14.0.0-1) unstable; urgency=medium
+
+ * New stable release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 23 Mar 2022 08:41:26 +0100
+
+llvm-toolchain-14 (1:14.0.0~+rc4-1) unstable; urgency=medium
+
+ * New snapshot release (rc3 isn't a thing)
+ * Add an ugly workaround for Ubuntu jammy (some python files are installed in local/lib)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 11 Mar 2022 18:28:07 +0100
+
+llvm-toolchain-14 (1:14.0.0~+rc2-1~exp1) unstable; urgency=medium
+
+ * New snapshot release
+ * Also path LD_LIBRARY_PATH for install
+ when cmake binary backport like on bionic s390x (for apt.llvm.org)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 04 Mar 2022 20:06:44 +0100
+
+llvm-toolchain-14 (1:14.0.0~+rc1-1) unstable; urgency=medium
+
+ * First testing release of 14
+ * Upload to unstable
+ Changes for 13:
+ * mlir: use the cmake option to avoid installing object files
+ MLIR_INSTALL_AGGREGATE_OBJECTS
+ Closes upstream #53134
+ * Build clangd with GRPC support
+ Thanks to Sam McCall for the patch
+ * Revert e80c52986e1bb3afa6a92c58b1cb897877923a66 to be able to build on stretch
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 10 Feb 2022 09:25:26 +0100
+
+llvm-toolchain-14 (1:14~++20220202101403+91632c8ac97f-1~exp1) experimental; urgency=medium
+
+ * snapshot = 15, first 14 package
+ * Ship clang-linker-wrapper in clang-tools-X.Y
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 02 Feb 2022 22:14:13 +0100
+
+llvm-toolchain-14 (1:14~++20220128082735+c962b3fdf8dd-1~exp1) UNRELEASED; urgency=medium
+
+ * snapshot = 15, first 14 package
+ * Ship clang-linker-wrapper in clang-tools-X.Y
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 28 Jan 2022 08:27:53 +0100
+
+llvm-toolchain-snapshot (1:14~++20220123085548+413684313d9d-1~exp2) experimental; urgency=medium
+
+ * Hide some symbols for omp/arm* and other archs
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 24 Jan 2022 13:56:35 +0100
+
+llvm-toolchain-snapshot (1:14~++20220123085548+413684313d9d-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Ugly workaround to enable scan-build on runtimes
+ debian/patches/use-scan-build-runtimes.diff
+ * Python 2 => 3 to unbreak the 'scanbuild_py_makefile.txt' test
+ * Enable CLANG_DEFAULT_PIE_ON_LINUX
+ * Lower the debhelper dep to 10 for debian stretch
+ * Rename ocaml-nox => ocaml-base
+ * Update of the ocaml doc path to catch a different path
+
+ [ Samuel Thibault ]
+ * Explicitly link against -latomic on hurd-i386 as well.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 23 Jan 2022 20:48:09 +0100
+
+
+llvm-toolchain-snapshot (1:14~++20220107114130+3a604fdbcd5f-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 07 Jan 2022 23:58:01 +0100
+
+llvm-toolchain-snapshot (1:14~++20211230084136+a96fe1bf3b32-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Build and ship MLIR as 3 new packages (libmlir-14-dev, libmlir-14
+ and mlir-14-tools)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 29 Dec 2021 21:08:20 +0100
+
+llvm-toolchain-snapshot (1:14~++20211221121559+9e3ae8d296aa-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Remove some old mach lld libraries. Remove upstream in 9e3552523ebd3385487e01e3e7af37b8c0efaf57
+ liblldReaderWriter.a liblldDriver.a liblldYAML.a liblldCore.a liblldMachOOld.a
+ * Also install llvm-debuginfod-find in llvm-14
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 03 Dec 2021 13:19:39 +0100
+
+llvm-toolchain-snapshot (1:14~++20211113111058+6a40854ce507-1~exp1) experimental; urgency=medium
+
+ * experimental New snapshot release
+ * Adjust the libomp5 symbols
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 13 Nov 2021 23:15:48 +0100
+
+llvm-toolchain-snapshot (1:14~++20211113102219+b5ff187b7b51-1~exp1) experimental; urgency=medium
+
+ * Remove the triple patch. it is causing the library search path to fail.
+ Add a test in debian/qualify-clang.sh to verify we don't regress
+ * Fix the "all" build
+ * Disable LIBCXX_USE_COMPILER_RT on s390x, armel and x32 as it fails. See bug 52022
+ * Adjust the libomp_start_tool visibility on armhf
+ * Be more flexible to install libomptarget-*.bc
+ (ex: libomptarget-new-nvptx-*.bc are new)
+ * Force the i386 triple -DLLVM_HOST_TRIPLE=i386-linux-gnu
+ Sometimes, on i386, the library detection is failing (often on z3
+ or ffi)
+ 'Could NOT find Z3:'
+ * Add '-DCMAKE_FIND_DEBUG_MODE=true' to help with debugging
+ * Disable the build of libclc on old Ubuntu (Groovy & focal)
+ as llvm-spir is too old on these version.
+ See bug #52200
+ * Adjust the sphinx build as the makefile have been removed
+ * If lua is available on the system at built time, a lua lldb binding
+ was created. It was leading to some build failures depending
+ on the package installed on the build system.
+ Force the deactivation of the lua build when lldb is built.
+ * libomp: add new symbols
+ - GOMP_5.0.1
+ - GOMP_alloc
+ - GOMP_free
+ - __kmpc_aligned_alloc
+ - __kmpc_atomic_bool_1_cas
+ - __kmpc_atomic_bool_1_cas_cpt
+ - __kmpc_atomic_bool_2_cas
+ - __kmpc_atomic_bool_2_cas_cpt
+ - __kmpc_atomic_bool_4_cas
+ - __kmpc_atomic_bool_4_cas_cpt
+ - __kmpc_atomic_bool_8_cas
+ - __kmpc_atomic_bool_8_cas_cpt
+ - __kmpc_atomic_float10_max
+ - __kmpc_atomic_float10_max_cpt
+ - __kmpc_atomic_float10_min
+ - __kmpc_atomic_float10_min_cpt
+ - __kmpc_atomic_val_1_cas
+ - __kmpc_atomic_val_1_cas_cpt
+ - __kmpc_atomic_val_2_cas
+ - __kmpc_atomic_val_2_cas_cpt
+ - __kmpc_atomic_val_4_cas
+ - __kmpc_atomic_val_4_cas_cpt
+ - __kmpc_atomic_val_8_cas
+ - __kmpc_atomic_val_8_cas_cpt
+ - omp_aligned_alloc
+ - omp_aligned_calloc
+ * Install llvm-tli-checker in llvm-X.Y
+
+ [ Erik Maciejewski ]
+ * Merge migration to 2stage runtimes build 13 => 14
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 13 Nov 2021 10:26:41 +0100
+
+llvm-toolchain-snapshot (1:14~++20211111061527+d56b171ee965-1~exp1) experimental; urgency=medium
+
+ * Remove the triple patch. it is causing the library search path to fail.
+ Add a test in debian/qualify-clang.sh to verify we don't regress
+ * Fix the "all" build
+ * Disable LIBCXX_USE_COMPILER_RT on s390x, armel and x32 as it fails. See bug 52022
+ * Adjust the libomp_start_tool visibility on armhf
+ * Be more flexible to install libomptarget-*.bc
+ (ex: libomptarget-new-nvptx-*.bc are new)
+ * Force the i386 triple -DLLVM_HOST_TRIPLE=i386-linux-gnu
+ Sometimes, on i386, the library detection is failing (often on z3
+ or ffi)
+ 'Could NOT find Z3:'
+ * Add '-DCMAKE_FIND_DEBUG_MODE=true' to help with debugging
+ * Disable the build of libclc on old Ubuntu (Groovy & focal)
+ as llvm-spir is too old on these version.
+ See bug #52200
+ * Adjust the sphinx build as the makefile have been removed
+ * If lua is available on the system at built time, a lua lldb binding
+ was created. It was leading to some build failures depending
+ on the package installed on the build system.
+ Force the deactivation of the lua build when lldb is built.
+ * libomp: add new symbols
+ - GOMP_5.0.1
+ - GOMP_alloc
+ - GOMP_free
+ - __kmpc_aligned_alloc
+ - __kmpc_atomic_bool_1_cas
+ - __kmpc_atomic_bool_1_cas_cpt
+ - __kmpc_atomic_bool_2_cas
+ - __kmpc_atomic_bool_2_cas_cpt
+ - __kmpc_atomic_bool_4_cas
+ - __kmpc_atomic_bool_4_cas_cpt
+ - __kmpc_atomic_bool_8_cas
+ - __kmpc_atomic_bool_8_cas_cpt
+ - __kmpc_atomic_float10_max
+ - __kmpc_atomic_float10_max_cpt
+ - __kmpc_atomic_float10_min
+ - __kmpc_atomic_float10_min_cpt
+ - __kmpc_atomic_val_1_cas
+ - __kmpc_atomic_val_1_cas_cpt
+ - __kmpc_atomic_val_2_cas
+ - __kmpc_atomic_val_2_cas_cpt
+ - __kmpc_atomic_val_4_cas
+ - __kmpc_atomic_val_4_cas_cpt
+ - __kmpc_atomic_val_8_cas
+ - __kmpc_atomic_val_8_cas_cpt
+ - omp_aligned_alloc
+ - omp_aligned_calloc
+
+ [ Erik Maciejewski ]
+ * Merge migration to 2stage runtimes build 13 => 14
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 11 Nov 2021 18:19:57 +0100
+
+llvm-toolchain-snapshot (1:14~++20210926041028+6063e6b499c7-1~exp1) experimental; urgency=medium
+
+ * experimental New snapshot release
+ * Bring back the libc++/libc++abi options
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 26 Sep 2021 16:14:44 +0200
+
+llvm-toolchain-snapshot (1:14~++20210924122635+4a57f5d1e1c5-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release
+ * remove "scan-build-py-force-utf-8-opening.diff"
+ merged upstream
+ * Also install libomptarget-nvptx in libomp-X.Y-dev next to amdgcn
+ * Add -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF. it was turn on by default
+ in https://reviews.llvm.org/D107799
+ It was causing the second cmake (stage2) build to fail on z3 or libffi.
+ Sign that the compiler didn't work correctly.
+ * libcxxabi: Unbreak the CI by adding a silly symlink to _config_site
+ Far from perfect but it should be fixed by the runtime move:
+ https://reviews.llvm.org/D89013#3017317
+ * New symbols in libomp5-14:
+ - __kmpc_end_scope
+ - __kmpc_scope
+ - libomp_start_tool
+ (and remove some old missing symbols)
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind on m68k, sparc64 and x32
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 24 Sep 2021 12:31:05 +0200
+
+llvm-toolchain-snapshot (1:14~++20210924092749+e325ebb9c70b-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release
+ * remove "scan-build-py-force-utf-8-opening.diff"
+ merged upstream
+ * Also install libomptarget-nvptx in libomp-X.Y-dev next to amdgcn
+ * the libc++* & libunwind builds are installed in directory with triple
+ * remove the libc++ & libc++abi tasks as they are part of the process now
+ * Add -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF. it was turn on by default
+ in https://reviews.llvm.org/D107799
+ It was causing the second cmake (stage2) build to fail on z3 or libffi.
+ Sign that the compiler didn't work correctly.
+ * libcxxabi: Unbreak the CI by adding a silly symlink to _config_site
+ Far from perfect but it should be fixed by the runtime move:
+ https://reviews.llvm.org/D89013#3017317
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind on m68k, sparc64 and x32
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 24 Sep 2021 23:09:21 +0200
+
+llvm-toolchain-snapshot (1:14~++20210831081106+387a8dea7234-1~exp1) UNRELEASED; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release
+ * remove "scan-build-py-force-utf-8-opening.diff"
+ merged upstream
+ * Also install libomptarget-nvptx in libomp-X.Y-dev next to amdgcn
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind on m68k, sparc64 and x32
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release
+ * experimental New snapshot release
+ * experimental New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 31 Aug 2021 08:15:00 +0200
+
+llvm-toolchain-snapshot (1:14~++20210827020436+15b2a8e7faf6-1~exp2) UNRELEASED; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind-X.Y{-dev} packages on sparc and sparc64
+
+ [ Sylvestre Ledru ]
+ * Ship clang-repl as part of clang-tools-XX
+ See https://reviews.llvm.org/D106813
+ * Ship clang-nvlink-wrapper as part of clang-tools-XX
+ See https://reviews.llvm.org/D108291
+ * debuginfo-tests has been renamed to cross-project-tests
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 31 Aug 2021 22:17:35 +0200
+
+llvm-toolchain-snapshot (1:14~++20210827071740+3ec634e65a02-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release
+ * remove "scan-build-py-force-utf-8-opening.diff"
+ merged upstream
+ * Also install libomptarget-nvptx in libomp-X.Y-dev next to amdgcn
+ * Upload the various changes from 12 & 13
+ * remove "scan-build-py-force-utf-8-opening.diff"
+ merged upstream
+ * Also install libomptarget-nvptx in libomp-X.Y-dev next to amdgcn
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind on m68k, sparc64 and x32
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 27 Aug 2021 21:56:14 +0200
+
+llvm-toolchain-snapshot (1:14~++20210827020436+15b2a8e7faf6-1~exp2) UNRELEASED; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind-X.Y{-dev} packages on sparc and sparc64
+
+ -- John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> Sun, 29 Aug 2021 21:28:50 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc2-1) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind on m68k, sparc64 and x32
+
+ [ Gianfranco Costamagna ]
+ * integration-test-suite-test: fix build by using 13 as default version
+
+ [ Sylvestre Ledru ]
+ * New testing release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 27 Aug 2021 09:43:28 +0200
+
+llvm-toolchain-snapshot (1:14~++20210715093511+afc760ef3527-1~exp2) unstable; urgency=medium
+
+ * revert the s390 as it is probably fixed
+ * Rename some lld libs. Following 7a6482216ff02f81ed02ff4936f1b22d4b5a9a6c
+ lldMachO=>lldMachOOld and lldMachO2=>lldMach
+ * scan-build-py - Force the file open in utf-8. Fails on -14 on bionic
+ otherwise
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 06 Aug 2021 08:40:58 +0200
+
+llvm-toolchain-13 (1:13.0.1-9) UNRELEASED; urgency=medium
+
+ * d/rules: Don't send an empty string to cmake when llvm-spirv is not found
+
+ -- Jordan Justen <jljusten@debian.org> Fri, 28 Oct 2022 10:17:57 -0700
+
+llvm-toolchain-13 (1:13.0.1-8) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Disable the build of libclc on old Ubuntu (Groovy & focal)
+ as llvm-spir is too old on these version.
+ See bug #52200
+
+ [ Jordan Justen ]
+ * d/rules: Call bash to use 'command -v' to location llvm-spirv executable
+ * d/rules: Set LLVM_SPIRV with cmake for libclc
+ * d/patches: Drop libclc-llvm-spirv.diff now that we are setting LLVM_SPIRV
+ * d/rules: Check for llvm-spirv with version suffix
+
+ -- Jordan Justen <jljusten@debian.org> Wed, 26 Oct 2022 10:13:59 -0700
+
+llvm-toolchain-13 (1:13.0.1-7) unstable; urgency=medium
+
+ [ Michael Biebl ]
+ * Add support for systemd-binfmt (Closes: #1012367)
+
+ [ Sam McCall ]
+ * Add conventional symlink to libc++ headers in /usr/include/c++/v1
+ See https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/-/merge_requests/95
+ for more information
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 22 Jul 2022 15:10:20 +0200
+
+llvm-toolchain-13 (1:13.0.1-6) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable compiler-rt built-ins on x32
+
+ [ Gianfranco Costamagna ]
+ * Enable grpc on riscv64
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sat, 04 Jun 2022 15:30:38 +0200
+
+llvm-toolchain-13 (1:13.0.1-5) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Enable GRPC build dependency only on supported targets
+ * Exclude lib{Monitoring,RemoteIndex}*Proto.a on m68k and sparc64
+
+ [ Gianfranco Costamagna ]
+ * fix grpc architectures, avoiding to install them where not available
+ * Break/Replaces the Ubuntu library that moved GRPC binaries into the wrong location
+ * newline/tab fix in rules
+ * fix GRPC installation in port architectures
+ * Add patches from Upstream/Ubuntu to:
+ - Backport upstream patches to allow building EFI images for Ubuntu Core
+ for arm64 (LP: #1960300)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 26 May 2022 09:30:17 +0200
+
+llvm-toolchain-13 (1:13.0.1-4) unstable; urgency=medium
+
+ * Backport D115098 for Rust 1.59 (Closes: #1010150)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 09 May 2022 20:47:26 +0200
+
+llvm-toolchain-13 (1:13.0.1-3) unstable; urgency=medium
+
+ * Fix a typo in an header (closes: #1005195)
+
+ * Also install usr/lib/llvm-@LLVM_VERSION@/lib/libRemoteIndexProto.a
+ usr/lib/llvm-@LLVM_VERSION@/lib/libRemoteIndexServiceProto.a
+ usr/lib/llvm-@LLVM_VERSION@/lib/libMonitoringServiceProto.a
+ in libclang-X.Y-dev
+ (Closes: #1005666)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 08 Feb 2022 21:39:18 +0100
+
+llvm-toolchain-13 (1:13.0.1-2) unstable; urgency=medium
+
+ * mlir: use the cmake option to avoid installing object files
+ MLIR_INSTALL_AGGREGATE_OBJECTS
+ Closes upstream #53134
+ * Build clangd with GRPC support
+ Thanks to Sam McCall for the patch
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 05 Jan 2022 23:21:56 +0100
+
+llvm-toolchain-13 (1:13.0.1-1) unstable; urgency=medium
+
+ * New stable release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 03 Feb 2022 10:21:56 +0100
+
+llvm-toolchain-13 (1:13.0.1~+rc3-1~exp1) experimental; urgency=medium
+
+ [ Samuel Thibault ]
+ * Explicitly link against -latomic on all ports, not only the Linux ones.
+ * Stop hardcoding -DCMAKE_SYSTEM_NAME=Linux as cmake parameter, as it breaks
+ stage2 builds on non-Linux architectures
+
+ [ Pino Toscano ]
+ * debian/rules: Disable 64bit runtime build on hurd-i386 (Closes: #1003081).
+
+ [ Sylvestre Ledru ]
+ * New rc
+ * Lower the debhelper dep to 10 for debian stretch
+ * Rename ocaml-nox => ocaml-base (Closes: #1002609)
+ * Remove Build-Conflicts: ocaml
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 13 Jan 2022 21:17:23 +0100
+
+llvm-toolchain-13 (1:13.0.1~+rc1-1~exp4) experimental; urgency=medium
+
+ * Fix the cmake file with the mlir introducing
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 06 Jan 2022 14:30:59 +0100
+
+llvm-toolchain-13 (1:13.0.1~+rc1-1~exp3) experimental; urgency=medium
+
+ * Build and ship MLIR as 3 new packages (libmlir-13-dev, libmlir-13
+ and mlir-13-tools)
+ * Install bfd plugins in
+ /usr/lib/bfd-plugins/LLVMgold-@LLVM_VERSION@.so
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 31 Dec 2021 12:22:38 +0100
+
+llvm-toolchain-13 (1:13.0.1~+rc1-1~exp2) experimental; urgency=medium
+
+ * Bring back the dependency clang => llvm-13-linker-tools
+ * Unbreak llvm-toolchain-13 on buster.
+ -fuse-ld=gold wasn't passed to compiler-rt. it was using bfd.
+ And binutils shipping in buster has a bug preventing this to work:
+ https://github.com/llvm/llvm-project/issues/42339
+ * Remove AVR from LLVM_EXPERIMENTAL_TARGETS_TO_BUILD. stable since 11
+ https://releases.llvm.org/11.0.0/docs/ReleaseNotes.html#changes-to-the-avr-target
+ * Use the version suffix when calling wasm-ld => wasm-ld-13
+ https://bugzilla.mozilla.org/show_bug.cgi?id=1747145
+ * Fix run-clang-tidy symlink. it moved from /usr/lib/llvm-13/share/clang/run-clang-tidy
+ to /usr/lib/llvm-13/bin/run-clang-tidy
+ (Closes: #1001748)
+ * Install LLVMgold in usr/lib/bfd-plugins to help various tools to understand the
+ format (Closes: #919020)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 16 Dec 2021 14:28:09 +0100
+
+llvm-toolchain-13 (1:13.0.1~+rc1-1~exp1) experimental; urgency=medium
+
+ * New testing release
+ * Use parallel + -4 for the xz tarballs compression to make it faster
+ * Add manpages for git-clang-format & run-clang-tidy
+ * Add back -DLLVM_VERSION_SUFFIX=. Useless for 13 but necessary for snapshot
+ Otherwise, it adds "git" to the libs
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 11 Nov 2021 22:45:25 +0100
+
+llvm-toolchain-13 (1:13.0.0-9) unstable; urgency=medium
+
+ * Upload to unstable (all green on exp)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 08 Nov 2021 14:09:25 +0100
+
+llvm-toolchain-13 (1:13.0.0-9~exp2) experimental; urgency=medium
+
+ * patch compiler-rt build to add option to disable scudo standalone allocator
+ as it is not always supported by all debian baseline arch profiles
+ * add COMPILER_RT_BUILD_SCUDO_STANDALONE=OFF to armel build in debian/rules
+ since the baseline armv5t arch profile is not supported
+
+ -- Erik Maciejewski <mr.emacski@gmail.com> Fri, 05 Nov 2021 16:38:43 -0700
+
+llvm-toolchain-13 (1:13.0.0-9~exp1) experimental; urgency=medium
+
+ * Merge migration to 2stage runtimes build 12 => 13
+ * Adjust openmp runtime quilt patches from branch 12 for changes in upstream
+ (llvmorg-13.0.0) sources
+
+ -- Erik Maciejewski <mr.emacski@gmail.com> Wed, 03 Nov 2021 20:03:56 -0700
+
+llvm-toolchain-13 (1:13.0.0-8) unstable; urgency=medium
+
+ * Disable lldb on mipsel and mips64el as it isn't supported
+ See https://reviews.llvm.org/D102872
+ (Closes: #997011)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 23 Oct 2021 10:33:56 +0200
+
+llvm-toolchain-13 (1:13.0.0-7) unstable; urgency=medium
+
+ * Remove omp-device-info from LLVMExports.cmake (Closes: #996551)
+ For real this time
+ * Fix the link issue (hopefully on all archs) (Closes: #995827)
+ customs LDFLAGS were not passed to the stage2
+ * Trim trailing whitespace.
+ * Update watch file format version to 4.
+ * Update to compat 11.
+ oldstable has 12
+ bionic has 11
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 Oct 2021 07:36:28 +0200
+
+llvm-toolchain-13 (1:13.0.0-6) unstable; urgency=medium
+
+ * Remove omp-device-info from LLVMExports.cmake (Closes: #996551)
+ * Fix a atomic issue. Thanks to YunQiang Su for the patch
+ Partial fix for #995827
+ * Bring back the llvm manpages (Closes: #995684)
+ Were generated at the wrong place
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 15 Oct 2021 10:45:30 +0200
+
+llvm-toolchain-13 (1:13.0.0-5) unstable; urgency=medium
+
+ * Restrict the dependency on libunwind-13-dev from Package: libc++-13-dev
+ on amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64
+ (Closes: #996462)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 14 Oct 2021 12:33:15 +0200
+
+llvm-toolchain-13 (1:13.0.0-4) unstable; urgency=medium
+
+ * Instead of using llvm-* to install binaries in llvm-X.Y
+ list all the binaries one by one.
+ It will prevent "llvm-omp-device-info" to be installed in
+ llvm-X.Y which caused an explicit dependency on libomp
+ which caused llvm-X.Y to be NOT coinstallable anymore
+ * Move llvm-omp-device-info-X.Y from llvm-X to libompX-dev
+ Fixes upstream #52162
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 13 Oct 2021 13:29:51 +0200
+
+llvm-toolchain-13 (1:13.0.0-3) unstable; urgency=medium
+
+ * libc++-13-dev should depends on libunwind-13-dev
+ (Closes: #995810)
+ * Disable a tsan and two lldb tests on i386
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 06 Oct 2021 12:52:10 +0200
+
+llvm-toolchain-13 (1:13.0.0-2) unstable; urgency=medium
+
+ * Fix the libclang detection in cmake
+ (Closes: #994827)
+ * Adjust the testsuite after various changes
+ (rpass, libclang, polly lib, etc)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 03 Oct 2021 22:38:18 +0200
+
+llvm-toolchain-13 (1:13.0.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 01 Oct 2021 09:08:08 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc4-1) unstable; urgency=medium
+
+ * New testing release
+ * Ship clang-repl
+ See https://reviews.llvm.org/D106813
+ * Replace make by ninja for the build process
+ It is now more tested than make by upstream
+ And it is supposed to be faster
+ Removed openmp/bootstrap-with-openmp-version-export-missing.diff
+ as it seems that the ninja move fixed it
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 18 Sep 2021 19:30:47 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc3-1) unstable; urgency=medium
+
+ * New testing release
+ * Remove debian/patches/disable-no-omit-leaf.diff
+ as it is fixed upstream
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 11 Sep 2021 09:48:23 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc2-3) unstable; urgency=medium
+
+ * compiler-rt scudo, don't add the option
+ -mno-omit-leaf-frame-pointer when building on
+ armel & armhf
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 02 Sep 2021 21:35:26 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc2-2) unstable; urgency=medium
+
+ * Build with -DCMAKE_POSITION_INDEPENDENT_CODE=ON to libc++ and libc++abi
+ * The changes from 12.0.1-7
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind-X.Y{-dev} packages on sparc and sparc64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 29 Aug 2021 14:52:16 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc2-2) UNRELEASED; urgency=medium
+
+ * Build with -DCMAKE_POSITION_INDEPENDENT_CODE=ON to libc++ and libc++abi
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind-X.Y{-dev} packages on sparc and sparc64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 29 Aug 2021 14:52:16 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc1-2) unstable; urgency=medium
+
+ * clang-soname-extract-version.diff: improve the upstream declaration
+ * Fix the libclang links
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 19 Aug 2021 18:13:56 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc1-1) unstable; urgency=medium
+
+ * Upload to Unstable
+ * Add symbol clang_CompileCommand_getNumMappedSources to libclang
+ * Add a new variable called SONAME_CLANG as
+ clang soname has started with llvm-toolchain-13.
+ it is normal that 13 is what is seen in 14 or later version as
+ it is bumped only with abi changes
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 16 Aug 2021 16:00:12 +0200
+
+llvm-toolchain-13 (1:13.0.0~+rc1-1~exp1) unstable; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 03 Aug 2021 09:36:26 +0200
+
+llvm-toolchain-13 (1:13~++20210731010128+6eaf46beb462-1~exp1) experimental; urgency=medium
+
+ * Branching of snapshot into 13
+ * Adjust libclang:
+ - upstream decided to make it stable starting from 13, with the soname
+ - for now, I am not planning to rename libclang1-13 to libclang13 as it will
+ cause too much churn for a small gain as we will keep libllvm (while
+ losing the capability to have different versions in parallel installed)
+ See upstream c7b3a91017d26266d7556b1ac7c49b06f0109b91
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 20 Jul 2021 09:40:58 +0200
+
+llvm-toolchain-snapshot (1:13~++20210715093511+afc760ef3527-1~exp1) experimental; urgency=medium
+
+ * Refresh the lib of symbols in libomp
+ * As scan-build-py is installed by default ( https://reviews.llvm.org/D104138 )
+ update of the code
+ * Revert "Revert D94333.diff as it breaks the ci
+ https://reviews.llvm.org/D94333#2829043"
+ * Install usr/lib/llvm-13/lib/cmake/openmp/FindOpenMPTarget.cmake
+ in libomp-13-dev.install
+ * Revert of D103865 for causing bug 51026
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 15 Jul 2021 21:46:58 +0200
+
+llvm-toolchain-snapshot (1:13~++20210622112436+600074980410-1~exp1) UNRELEASED; urgency=medium
+
+ * Refresh the lib of symbols in libomp
+ * As scan-build-py is installed by default ( https://reviews.llvm.org/D104138 )
+ update of the code
+ * Fix the path to analyze-{cc,c++} for scan-build-py with
+ --intercept-first (scan-build-py-fix-analyze-path.diff)
+ * experimental New snapshot release
+ * experimental New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 22 Jun 2021 23:28:47 +0200
+
+llvm-toolchain-snapshot (1:13~++20210620054946+4c44b02d87bc-1~exp1) experimental; urgency=medium
+
+ * Enable lld on s390x
+ * remove libomptarget from openmp. done by upstream
+ in f2f88f3e7a110b2d4d9da446e45f0dba040e62b2
+ but install /usr/lib/llvm-13/lib/libomptarget-amdgcn-*.bc
+ Only install these files on amd64, ppc64el & arm64
+ See openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
+ * Revert D94333.diff as it breaks the ci
+ https://reviews.llvm.org/D94333#2829043
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable OpenMP on m68k
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 08 May 2021 13:12:43 +0200
+
+llvm-toolchain-snapshot (1:13~++20210418105309+a0898f0cecc7-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+ * "run-clang-tidy" install it
+ * Only enable libomp-13-doc on supported archs
+ * Verify that /proc is mounted. It makes some unexpected issues when
+ building from a chroot without /proc
+ * Fix the __config_site include issue
+ * Revert D95727 for causing bug 49818
+
+ [ John Paul Adrian Glaubitz ]
+ * Add upstream patch D98574 to fix clang macro definitions on sparc64
+ * Add upstream patch D98575 to fix 32-bit compiler-rt build on sparc64
+ * Enable building the new experimental M68k backend
+ * Set LLVM_HOST_TRIPLE to x86_64-linux-gnux32 on x32
+ * Set LLVM_DEFAULT_TARGET_TRIPLE to x86_64-linux-gnux32 on x32
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 18 Apr 2021 11:00:31 +0200
+
+llvm-toolchain-snapshot (1:13~++20210129063721+010b176cdefb-1~exp2) experimental; urgency=medium
+
+ * Enable OpenMP offload capabilities for NVDIA GPUs
+ See https://bugzilla.redhat.com/show_bug.cgi?id=1922914
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 01 Feb 2021 09:04:16 +0100
+
+llvm-toolchain-snapshot (1:13~++20201124100523+245052ac3080-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New branch (12 => 13)
+ * Workaround a static_assert on https://bugs.llvm.org/show_bug.cgi?id=48259
+ "static assertion failed: Recycler allocation size is less than object size!"
+ * Also install usr/lib/llvm-12/bin/ld64.lld.darwinnew & usr/bin/ld64.lld.darwinnew-12
+ * Also install usr/lib/llvm-12/lib/libomptarget.so.12 in libomp5-12
+
+ [ Gianfranco Costamagna ]
+ * Add upstream patch D92052 to fix a gcn offload compiler issue with gcc (Closes: #975692)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Jan 2021 16:02:16 +0100
+
+llvm-toolchain-12 (1:12.0.1-20) unstable; urgency=medium
+
+ * Also install usr/lib/llvm-@LLVM_VERSION@/lib/libRemoteIndexProto.a
+ usr/lib/llvm-@LLVM_VERSION@/lib/libRemoteIndexServiceProto.a
+ in libclang-X.Y-dev
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 13 Feb 2022 14:04:40 +0100
+
+llvm-toolchain-12 (1:12.0.1-19) unstable; urgency=medium
+
+ * Build clangd with GRPC support
+ Thanks to Sam McCall for the patch
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 29 Jan 2022 10:17:38 +0100
+
+llvm-toolchain-12 (1:12.0.1-18) unstable; urgency=medium
+
+ * Unbreak llvm-toolchain-12 on buster.
+ -fuse-ld=gold wasn't passed to compiler-rt. it was using bfd.
+ And binutils shipping in buster has a bug preventing this to work:
+ https://github.com/llvm/llvm-project/issues/42339
+ * Rename ocaml-nox => ocaml-base (Closes: #1002608)
+ * Remove Build-Conflicts: ocaml
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 16 Dec 2021 17:49:22 +0100
+
+llvm-toolchain-12 (1:12.0.1-17) unstable; urgency=medium
+
+ * Rebuild to workaround the coinstallability issue (Closes: #996858)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 30 Nov 2021 19:32:51 +0100
+
+llvm-toolchain-12 (1:12.0.1-16) unstable; urgency=medium
+
+ [ Erik Maciejewski ]
+ * use make variables populated by /usr/share/dpkg/buildflags.mk and remove
+ _EXTRA suffix from STAGE_1_ and STAGE_2_ flag vars to improve clarity and
+ readability for the multi-stage setup in debian/rules
+ * remove some redundant cmake options (options with the same value as their
+ default) from, and move PYTHON_EXECUTABLE cmake option to, the cmake
+ configure command in debian/rules
+ * re-disable fixfilepath in dpkg-buildflags in favor of using the more llvm
+ aware implementation provided by the llvm-project by setting
+ LLVM_USE_RELATIVE_PATHS_IN_FILES=ON in both stages of the toolchain
+ build in debian/rules
+
+ [ Sylvestre Ledru ]
+ * autopkgtest/integration-test-suite-test: restrict to arm64/amd64 for now
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 28 Oct 2021 16:45:49 +0200
+
+llvm-toolchain-12 (1:12.0.1-15) unstable; urgency=medium
+
+ * Disable lldb on mipsel and mips64el as it isn't supported
+ See https://reviews.llvm.org/D102872
+ (Closes: #997011)
+
+ [ Erik Maciejewski ]
+ * disable compiler-rt builtins for unsupported arch s390x in debian/rules
+ * set arm toolchain arch profiles explicitly to debian baselines in
+ debian/rules as the target host triples alone are ambiguous and compiler
+ defaults and debian baselines may not align
+ * add arch specific config for powerpc to debian/rules and set host target
+ triple and compiler-rt config to force correct arch profile for builtins
+ * set LIBCXX_USE_COMPILER_RT to OFF in debian/rules to disable builtins when
+ libunwind is not enabled since the unwind implementation with gnu builtins
+ will then be required
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 23 Oct 2021 10:33:56 +0200
+
+llvm-toolchain-12 (1:12.0.1-14) unstable; urgency=medium
+
+ * fix build flag inconsistencies (potentially causing build failures) by
+ utilizing dpkg-buildflags for defaults where appropriate and making sure all
+ flags intended for a given stage are also applied to the stage's builtins
+ and runtimes builds
+ * re-enable fixfilepath for use with dpkg-buildflags in debian/rules as it has
+ been supported since clang-10
+ * establish a consistent STAGE_[stage]_ prefix naming scheme for stage
+ variables and replace STAGE1_AND_STAGE2_ prefix with STAGE_ALL_ prefix for
+ better future-proofing in debian/rules
+ * modify stage dir var names to use new prefix scheme in debian/rules
+ * add explicit s390x build options to debian/rules, set
+ LLVM_HOST_TRIPLE=s390x-linux-gnu and COMPILER_RT_DEFAULT_TARGET_ONLY=ON
+ so that builtins are only built for the explicit host arch (Closes: #996802)
+
+ -- Erik Maciejewski <mr.emacski@gmail.com> Fri, 22 Oct 2021 03:12:48 -0700
+
+llvm-toolchain-12 (1:12.0.1-13) unstable; urgency=medium
+
+ * update rules to incorporate relevant arch specific configs from snapshot
+ * patch llvm runtimes cmake build to add a check and only set up and build
+ compiler-rt builtins if they have not been disabled in a runtimes build
+ * patch compiler-rt builtins cmake build to fix default arch detection for
+ armhf by adding the same target triple handling used for compiler-rt libs
+ * remove legacy var for use when libcxx was a standalone build
+
+ -- Erik Maciejewski <mr.emacski@gmail.com> Wed, 20 Oct 2021 09:04:42 -0700
+
+llvm-toolchain-12 (1:12.0.1-12) unstable; urgency=medium
+
+ * re-disable building builtins on armel as they still fail (Closes: #996828)
+ * add patch to libcxxabi cmake build for adding builtins to lib flags fixing
+ an issue where builtins were not being linked into libcxxabi when
+ LIBCXXABI_USE_COMPILER_RT=ON (Closes: #996796)
+
+ -- Erik Maciejewski <mr.emacski@gmail.com> Tue, 19 Oct 2021 01:28:50 -0700
+
+llvm-toolchain-12 (1:12.0.1-11) unstable; urgency=medium
+
+ * add missing LIBUNWIND_USE_COMPILER_RT to CLANG_BOOTSTRAP_PASSTHROUGH to link
+ correct compiler-rt lib in stage2
+ * consolidate two conditionals for libatomic that were essentially the same,
+ but the one removed could conflict with BOOTSTRAP_SHARED_LINK_FLAGS
+ elsewhere in the rules file
+ * attempt to fix arm builtins by adding COMPILER_RT_DEFAULT_TARGET_ONLY=ON to
+ armel and armhf toolchain build options to prevent related arches that might
+ not be supported on the build host from being included in the build (like
+ armv6m soft-float on the armhf build host)
+ * reorganize flags and cmake options around stages for the toolchain build
+ * set baseline arch to armv5t, remove older 3.8 workaround for armel build
+ * update to debian host triple for the armhf build
+
+ [ Jordan Justen ]
+ * d/rules: Add amdgcn-mesa-mesa3d to libclc build.
+ Closes: #993904, #995069
+
+ [ Sylvestre Ledru ]
+ * Bring back the llvm manpages (Closes: #995684)
+ Were generated at the wrong place
+
+ -- Erik Maciejewski <mr.emacski@gmail.com> Sat, 16 Oct 2021 09:07:25 -0700
+
+llvm-toolchain-12 (1:12.0.1-10) unstable; urgency=medium
+
+ * evolve llvm build configuration in rules to leverage the two stage build
+ with runtimes support whereby the resulting stage2 (final) compiler is used
+ to build the stage2 (final) runtimes as part of a single monolithic build
+ * the stage2 runtimes build now includes compiler-rt, libcxx and libcxxabi as
+ well as libunwind and openmp where supported. Additionally, legacy
+ corresponding standalone build targets are removed from the rules file
+ * patch openmp build to include required runtimes as dependencies to build
+ targets so they are built first when included as part of a runtimes build
+ since openmp can depend on them
+ * patch libclc build to set rpath for prepare_builtins build utility to find
+ correct stage2 libs at runtime when executed as part of a build
+ * patch libcxx build so that if libatomic is found, only link it if libgcc is
+ the rtlib
+ * patch compiler-rt build to suppress xray and testing warns when not enabled
+ * patch llvm linker detection to account for vendor being prepended to lld
+ version string
+ * remove several existing patches incorporating workarounds no longer required
+ by the modified build configuration
+
+ [ Sylvestre Ledru ]
+ * If parallel is not set in DEB_BUILD_OPTIONS, use nproc
+ * Add source-is-missing llvm/test/* / lldb/test/* / lld/test/*
+ to the source override
+ * Remove old override 'outdated-autotools-helper-file'
+
+ [ John Paul Adrian Glaubitz ]
+ * Disable libunwind on sparc, sparc64 and x32
+
+ -- Erik Maciejewski <mr.emacski@gmail.com> Wed, 06 Oct 2021 01:25:08 -0700
+
+llvm-toolchain-12 (1:12.0.1-9) unstable; urgency=medium
+
+ * Replace make by ninja for the build process
+ It is now more tested than make by upstream
+ And it is supposed to be faster
+ Removed openmp/bootstrap-with-openmp-version-export-missing.diff
+ as it seems that the ninja move fixed it
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 18 Sep 2021 11:03:29 +0200
+
+llvm-toolchain-12 (1:12.0.1-8) unstable; urgency=medium
+
+ * Add back CMAKE_EXTRA to build LLVM gold (Closes: #993664)
+
+ [ Gianfranco Costamagna ]
+ * Refresh symbols on riscv64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 04 Sep 2021 16:38:24 +0200
+
+llvm-toolchain-12 (1:12.0.1-7) unstable; urgency=medium
+
+ * Add debian/source/options to ignore the diff (much much faster to repack)
+ * cmake: use ON instead of YES for consistency
+ * Don't generate the llvm-mcmarkup & lldb-mi manpages (don't exist anymore)
+ (LP: #1940713)
+
+ [ Gianfranco Costamagna ]
+ * Add a patch to fix omp build on riscv64
+ * Don't build lldb on riscv64, fails to build due to missing
+ CreateHostNativeRegisterContextLinux implementation on this architecture.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 31 Aug 2021 20:56:40 +0200
+
+llvm-toolchain-12 (1:12.0.1-6) unstable; urgency=medium
+
+ * Fixup build process on riscv64, the architecture building was enabled
+ in control file but not in rules file, neither required build-deps were
+ installed. (note: this should fail, but at least we will have a build log
+ stored.
+ * Add ocaml support on riscv64.
+ * Don't require hello package on i386 (helps Ubuntu alternate dependencies)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 26 Aug 2021 15:33:24 +0200
+
+llvm-toolchain-12 (1:12.0.1-5) unstable; urgency=medium
+
+ [ Jordan Justen ]
+ * Include SPIR-V (*.spv) outputs in libclc package
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 25 Aug 2021 10:18:14 +0200
+
+llvm-toolchain-12 (1:12.0.1-4) unstable; urgency=medium
+
+ * Make libunwind-dev depends on libunwind
+ * Don't build libunwind on hurd, armel, powerpc & mipsel
+ * Remove old svn reference in the usage dh_strip & dh_makeshlibs
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 16 Aug 2021 22:04:17 +0200
+
+llvm-toolchain-12 (1:12.0.1-3) unstable; urgency=medium
+
+ * Build libunwind only on amd64 arm64 armhf i386
+ mips64el ppc64el ppc64 riscv64 sparc sparc64
+ Not supported on s390x for example
+ * libc++ & libc++ abi: only pass -DLIBCXXABI_USE_LLVM_UNWINDER=YES
+ if libunwind is available on the platform
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 01 Aug 2021 11:42:20 +0200
+
+llvm-toolchain-12 (1:12.0.1-2) unstable; urgency=medium
+
+ * Generate libunwind-12 & libunwind-12-dev packages
+ * Add the following option to the libc++ build:
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON
+ -DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON
+ -DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF
+ to address upstream bug 46321
+ * Make libc++abi use libunwind
+
+ [ Kasper Kantz ]
+ * Add riscv64 architecture in control
+ enable liblldb, libomp and others which are
+ currently unavailable in riscv64 repository.
+
+ [ Krzysztof Aleksander Pyrkosz ]
+ * Add libxml2 as a dependency as it is necessary
+ for llvm manifest tool (llvm-mt)
+ (Closes: #990537)
+
+ [ Jordan Justen ]
+ * d/rules: Adjust cmake defines to fix libclc.pc paths
+ * Add the following option to the libc++ build:
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON
+ -DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON
+ -DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF
+ to address upstream bug 46321
+ * Build libunwind
+
+ [ Kasper Kantz ]
+ * Add riscv64 architecture in control
+ enable liblldb, libomp and others which are
+ currently unavailable in riscv64 repository.
+
+ [ Krzysztof Aleksander Pyrkosz ]
+ * Add libxml2 as a dependency as it is necessary
+ for llvm manifest tool (llvm-mt)
+ (Closes: #990537)
+
+ [ Jordan Justen ]
+ * d/rules: Adjust cmake defines to fix libclc.pc paths
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 12 Jul 2021 08:19:59 +0200
+
+llvm-toolchain-12 (1:12.0.1-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 09 Jul 2021 09:13:12 +0200
+
+llvm-toolchain-12 (1:12.0.1~+rc4-1) unstable; urgency=medium
+
+ * New testing upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 03 Jul 2021 00:17:36 +0200
+
+llvm-toolchain-12 (1:12.0.1~+rc3-1) unstable; urgency=medium
+
+ * New testing upstream release
+ * Fix the path to analyze-{cc,c++} for scan-build-py with
+ --intercept-first (scan-build-py-fix-analyze-path.diff)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 26 Jun 2021 10:00:56 +0200
+
+llvm-toolchain-12 (1:12.0.1~+rc2-1) unstable; urgency=medium
+
+ * New testing upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 21 Jun 2021 16:06:36 +0200
+
+llvm-toolchain-12 (1:12.0.1~+rc1-1) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Add upstream patch D98574 to fix clang macro definitions on sparc64
+ * Add upstream patch D98575 to fix 32-bit compiler-rt build on sparc64
+
+ [ Sylvestre Ledru ]
+ * backport D101773 to fix an llvm ir issue on mipsel
+ in mips/mips-D101773-reloc.patch
+ thanks to Ximin Luo
+ (Closes: #988965)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 28 May 2021 23:27:27 +0200
+
+llvm-toolchain-12 (1:12.0.1~+rc1-1~exp1) unstable; urgency=medium
+
+ * New testing upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 26 May 2021 13:10:29 +0200
+
+llvm-toolchain-12 (1:12.0.0-3) unstable; urgency=medium
+
+ [ Timo Aaltonen ]
+ * Build libclc. (Closes: #942709)
+
+ [ Sylvestre Ledru ]
+ * Upload to unstable
+ * Also build lld on s390x
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 01 May 2021 19:33:27 +0200
+
+llvm-toolchain-12 (1:12.0.0-2) experimental; urgency=medium
+
+ [ Matthias Klose ]
+ * Improve the clean rule
+ * Disable again LTO
+ * Create a new package llvm-12-linker-tools:
+ Contains the LLVMgold and LLVMPolly linker plugins.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 15 Apr 2021 13:27:57 +0200
+
+llvm-toolchain-12 (1:12.0.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 15 Apr 2021 07:57:57 +0200
+
+llvm-toolchain-12 (1:12.0.0~++rc5-2) unstable; urgency=medium
+
+ * Add -DCMAKE_SUPPRESS_REGENERATION=ON to limit the number of calls
+ to cmake
+ Try to workaround a bug on llvm-toolchain-stretch-12-binaries
+ architecture=s390x,stretch
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 10 Apr 2021 14:59:07 +0200
+
+llvm-toolchain-12 (1:12.0.0~++rc5-1) unstable; urgency=medium
+
+ * New testing upstream release
+ * Verify that /proc is mounted. It makes some unexpected issues when
+ building from a chroot without /proc
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 08 Apr 2021 18:04:07 +0200
+
+llvm-toolchain-12 (1:12.0.0~++rc4-1) unstable; urgency=medium
+
+ * New testing upstream release
+ * Cherry-pick https://reviews.llvm.org/D99501 to allow -flto=auto
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 01 Apr 2021 08:56:19 +0200
+
+llvm-toolchain-12 (1:12.0.0~++rc3-4) unstable; urgency=medium
+
+ * Don't fail fsanitize=thread on i386, not supported
+ * Don't hard fail on z3 failures with "set -e" at the begin, if z3 support is not available we do fail and exit testsuite without checking the log
+ * Don't force gcc-11 anymore on riscv64, gcc-10 has the fixes now
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sat, 20 Mar 2021 17:16:26 +0100
+
+llvm-toolchain-12 (1:12.0.0~++rc3-3) unstable; urgency=medium
+
+ * Cherry-pick upstream commit e3cd3a3c91524c957e06bb0170343548f02b6842
+ bring back Reporter.py needing to make scan-view work.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 17 Mar 2021 13:11:46 +0100
+
+llvm-toolchain-12 (1:12.0.0~++rc3-2) unstable; urgency=medium
+
+ * Fixup omptarget regex error, missing escape
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 15 Mar 2021 21:04:46 +0100
+
+llvm-toolchain-12 (1:12.0.0~++rc3-1) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Upload to sid
+
+ [ Sylvestre Ledru ]
+ * Ignore source: invalid-arch-string-in-source-relation riscv64 [build-depends: g++-11 [riscv64]]
+
+ [ Matthias Klose ]
+ * Also disable CMake's package validation check for omptarget target files (Closes: #983838).
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 15 Mar 2021 11:18:42 +0100
+
+llvm-toolchain-12 (1:12.0.0~++rc3-1~exp1) experimental; urgency=medium
+
+ * New testing upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 10 Mar 2021 16:11:07 +0100
+
+llvm-toolchain-12 (1:12.0.0~++rc2-1~exp2) experimental; urgency=medium
+
+ * Refresh the openmp symbol list
+ In libomp.so.5:
+ - GOMP_taskwait_depend
+ - GOMP_teams_reg
+ - __kmpc_calloc
+ - __kmpc_realloc
+ - __kmpc_taskloop_5
+ And all libomptarget.so.12
+ * Only enable libomp-12-doc on supported archs
+
+ [ Matthias Klose <doko@ubuntu.com> ]
+ * Build using GCC 11 on riscv64 (Closes: #983837).
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 02 Mar 2021 13:25:24 +0100
+
+llvm-toolchain-12 (1:12.0.0~++rc2-1~exp1) experimental; urgency=medium
+
+ * New rc release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 24 Feb 2021 10:18:02 +0100
+
+llvm-toolchain-12 (1:12.0.0~++20210127035054+8e464dd76bef-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release now 12 as branched
+ * Workaround a static_assert on https://bugs.llvm.org/show_bug.cgi?id=48259
+ "static assertion failed: Recycler allocation size is less than object size!"
+ * Also install usr/lib/llvm-12/bin/ld64.lld.darwinnew & usr/bin/ld64.lld.darwinnew-12
+ * Also install usr/lib/llvm-12/lib/libomptarget.so.12 in libomp5-12
+
+ [ Gianfranco Costamagna ]
+ * Add upstream patch D92052 to fix a gcn offload compiler issue with gcc (Closes: #975692)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 27 Jan 2021 15:54:15 +0100
+
+llvm-toolchain-snapshot (1:12~++20201105093023+cc2a2bb5ce5-1~exp1) experimental; urgency=medium
+
+ * experimental New snapshot release
+ * lld-use-link-atomic-i386.diff Try to workaround a linker error
+ error: undefined reference to '__atomic_load'
+ on sid i386
+ * Bring back gold for ppc64el. Doko thinks it is fixed.
+
+ [ John Paul Adrian Glaubitz ]
+ * Limit maximum parallel link jobs to 4 on sparc and sparc64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 05 Nov 2020 09:42:14 +0100
+
+llvm-toolchain-snapshot (1:12~++20201019023155+5a8ac3cc63d-1~exp1) UNRELEASED; urgency=medium
+
+ * experimental New snapshot release
+ * experimental New snapshot release
+ * experimental New snapshot release
+ * experimental New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 19 Oct 2020 14:35:27 +0200
+
+llvm-toolchain-snapshot (1:12~++20200929085817+962a247aebb-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+ * Install omp.h in instead of /usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include/
+ instead of /usr/lib/llvm-@LLVM_VERSION@/include/openmp/omp
+ * Install split-file in llvm-X-tools (like lit)
+ * Add new symbols to libclang1:
+ - clang_CXRewriter_create
+ - clang_CXRewriter_dispose
+ - clang_CXRewriter_insertTextBefore
+ - clang_CXRewriter_overwriteChangedFiles
+ - clang_CXRewriter_removeText
+ - clang_CXRewriter_replaceText
+ - clang_CXRewriter_writeMainFileToStdOut
+ - clang_Cursor_getVarDeclInitializer
+ - clang_Cursor_hasVarDeclExternalStorage
+ - clang_Cursor_hasVarDeclGlobalStorage
+
+ [ John Paul Adrian Glaubitz ]
+ * Link against libatomic on mipsel to fix FTBFS in stage2
+ * Link against libatomic on powerpc to fix FTBFS in stage2
+ * Use dh-exec to exclude lib/libPolly*.a on powerpc and
+ powerpcspe from libclang-common-X.Y-dev.install.in
+ * Drop powerpcspe patches merged upstream:
+ - debian/patches/powerpcspe/D49754-powerpcspe-clang.diff
+ - debian/patches/powerpcspe/D54583-powerpcspe-double-parameter.diff
+ - debian/patches/powerpcspe/D56703-powerpcspe-register-spilling.diff
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 29 Sep 2020 21:01:53 +0200
+
+llvm-toolchain-snapshot (1:12~++20200902060857+888049b97a7-1~exp1) UNRELEASED; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Install omp.h in instead of /usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include/
+ instead of /usr/lib/llvm-@LLVM_VERSION@/include/openmp/omp
+ * Install split-file in llvm-X-tools (like lit)
+
+ [ John Paul Adrian Glaubitz ]
+ * Link against libatomic on mipsel to fix FTBFS in stage2
+ * Link against libatomic on powerpc to fix FTBFS in stage2
+ * Use dh-exec to exclude lib/libPolly*.a on powerpc and
+ powerpcspe from libclang-common-X.Y-dev.install.in
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 02 Sep 2020 18:12:46 +0200
+
+llvm-toolchain-snapshot (1:12~++20200804122259+4be13b15d69-1~exp2) UNRELEASED; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+ * Install omp.h in instead of /usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include/
+ instead of /usr/lib/llvm-@LLVM_VERSION@/include/openmp/omp
+ * Install split-file in llvm-X-tools (like lit)
+ * Add new symbols to libclang1:
+ - clang_CXRewriter_create
+ - clang_CXRewriter_dispose
+ - clang_CXRewriter_insertTextBefore
+ - clang_CXRewriter_overwriteChangedFiles
+ - clang_CXRewriter_removeText
+ - clang_CXRewriter_replaceText
+ - clang_CXRewriter_writeMainFileToStdOut
+ - clang_Cursor_getVarDeclInitializer
+ - clang_Cursor_hasVarDeclExternalStorage
+ - clang_Cursor_hasVarDeclGlobalStorage
+
+ [ John Paul Adrian Glaubitz ]
+ * Link against libatomic on mipsel to fix FTBFS in stage2
+ * Link against libatomic on powerpc to fix FTBFS in stage2
+ * Use dh-exec to exclude lib/libPolly*.a on powerpc and
+ powerpcspe from libclang-common-X.Y-dev.install.in
+ * Drop powerpcspe patches merged upstream:
+ - debian/patches/powerpcspe/D49754-powerpcspe-clang.diff
+ - debian/patches/powerpcspe/D54583-powerpcspe-double-parameter.diff
+ - debian/patches/powerpcspe/D56703-powerpcspe-register-spilling.diff
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 29 Sep 2020 20:57:09 +0200
+
+llvm-toolchain-snapshot (1:12~++20200715052739+d6e79e3dd6d-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Snapshot is now -12
+
+ [ Samuel Thibault ]
+ * debian/patches/hurd/hurd-EIEIO-undef.diff: Remove, upstreamed.
+ * debian/patches/hurd/hurd-cxx-paths.diff: Remove, upstreamed.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 08 Jul 2020 15:19:14 +0200
+
+llvm-toolchain-11 (1:11.1.0-3) unstable; urgency=medium
+
+ * Add two patches from ubuntu to fix lto and gcc-11 build failures
+ * Use minimum version for cmake-test
+ * Don't require libclang-11-dev on cmake-test
+ * Add new llvm-11-linker-tools (from Ubuntu)
+ * Merge new fixes from branch=9
+ * clang-11: Drop Recommends: libomp-11-dev
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 27 Sep 2021 15:50:46 +0200
+
+llvm-toolchain-11 (1:11.1.0-2) unstable; urgency=medium
+
+ * Adjust the cmake test to unbreak autopkgtest
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 26 Sep 2021 22:02:43 +0200
+
+llvm-toolchain-11 (1:11.1.0-1) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Upload to unstable
+ * bump autopkgtest cmake version (Closes: #994501)
+ Thanks to Timo Röhling for the patch
+
+ [ Gianfranco Costamagna ]
+ * Cherry-pick upstream commit to fix a libgl1-mesa-dri texture failure.
+ (Closes: #989545)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 24 Sep 2021 12:54:55 +0200
+
+llvm-toolchain-11 (1:11.1.0-1~exp2) experimental; urgency=medium
+
+ * Fix the default binary path for scan-build-py to clang-11 (instead of
+ clang) - see scan-build-py-fix-default-bin.diff
+ tested by
+ https://github.com/opencollab/llvm-toolchain-integration-test-suite/
+
+ [ Krzysztof Aleksander Pyrkosz ]
+ * Add libxml2 as a dependency as it is necessary
+ for llvm manifest tool (llvm-mt)
+ (Closes: #990537)
+ - not really working for now
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 17 Jul 2021 20:13:57 +0200
+
+llvm-toolchain-11 (1:11.1.0-1~exp1) experimental; urgency=medium
+
+ * New upstream release
+ Should be mostly minor fixes
+ Was driven by https://bugs.llvm.org/show_bug.cgi?id=46526
+ but as we are not impacted, I reverted the change in
+ debian/patches/revert-abi-change-clang.diff
+ * Also build lld on s390x
+ * Fix the path to analyze-{cc,c++} for scan-build-py with
+ --intercept-first (scan-build-py-fix-analyze-path.diff)
+ * Backport bug #47591 to fix a miscompilation in bpftrace
+ (Closes: #990220)
+ * Only enable libomp-11-doc on supported archs
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 01 Mar 2021 10:50:19 +0100
+
+llvm-toolchain-11 (1:11.0.1-2) unstable; urgency=medium
+
+ * Fix the changelog
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 06 Jan 2021 20:16:26 +0100
+
+llvm-toolchain-11 (1:11.0.1-1) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New stable release
+
+ [ Gianfranco Costamagna ]
+ * Drop old patch, upstream now
+ * Run dh_makeshlibs with -V parameter (Closes: #977814)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 06 Jan 2021 09:21:24 +0100
+
+llvm-toolchain-11 (1:11.0.1~+rc2-1) unstable; urgency=medium
+
+ * New snapshot release
+ * Remove 'gnu-assembler-compat.diff' - merged upstream
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 19 Dec 2020 09:38:48 +0100
+
+llvm-toolchain-11 (1:11.0.1~+rc1-1) unstable; urgency=medium
+
+ [ Alexander Volkov ]
+ * Fix description of libclang-cpp11-dev package.
+
+ [ Sylvestre Ledru ]
+ * Upload to unstable to help doko with gcc
+ 11.0.1 will be released before the freeze
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 16 Dec 2020 22:41:48 +0100
+
+llvm-toolchain-11 (1:11.0.1~+rc1-1~exp1) experimental; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * gnu-assembler-compat.diff: Add upstream patch D92052 to fix a
+ gcn offload compiler issue with gcc (Closes: #975692)
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+ * Remove fix-clang-format-bug-47589.patch (applied upstream)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 26 Nov 2020 10:14:43 +0100
+
+llvm-toolchain-9 (1:9.0.1-19) unstable; urgency=medium
+
+ * Add two patches from ubuntu to fix lto and gcc-11 build failures
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 27 Sep 2021 15:39:19 +0200
+
+llvm-toolchain-9 (1:9.0.1-18) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Cherry-pick nmu again. (version 16.1)
+ * bump minimum cmake version on qualify-clang.sh too
+ * simplify cmake test without minor version
+ [ Andreas Beckmann <anbe@debian.org> ]
+ * clang-9: Drop Recommends: libomp-9-dev which is not co-installable with
+ libomp-11-dev (and libomp-dev) for smoother upgrades of libomp-dev from
+ buster to bullseye. (Closes: #990452)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 27 Sep 2021 15:02:13 +0200
+
+llvm-toolchain-9 (1:9.0.1-17) unstable; urgency=medium
+
+ * Remove an old breaks/replaces for 9 which was causing
+ some issues on Debian buster. Thanks to Julien Wajsberg
+ for the bug report
+ * bump autopkgtest cmake version (Closes: #994501)
+ Thanks to Timo Röhling for the patch
+ * cherry pick 68d5235cb58f988c71b403334cd9482d663841ab to build
+ with newer version of the kernel
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 25 Sep 2021 16:00:36 +0200
+
+llvm-toolchain-9 (1:9.0.1-16) unstable; urgency=medium
+
+ * Only enable libomp-9-doc on supported archs
+
+ [ Adrian Bunk ]
+ * Fix the fuzzer build on i386.
+
+ [ Sylvestre Ledru ]
+ * Ignore some tests on i386 to get autopkgtest fixed (Closes: #972334)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 07 Nov 2020 15:53:51 +0100
+
+llvm-toolchain-11 (1:11.0.0-4) unstable; urgency=medium
+
+ * Cherry-pick some fixes from
+ https://github.com/opencollab/llvm-toolchain-integration-test-suite/
+ * Only install hwasan_symbolize when found
+ * Don't use gold on ppc64el. It fails to build in that case
+ (Closes: #972317)
+
+ [ John Paul Adrian Glaubitz ]
+ * Limit maximum parallel link jobs to 4 on sparc and sparc64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 31 Oct 2020 21:49:01 +0100
+
+llvm-toolchain-11 (1:11.0.0-3) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Rebuild to fix the coinstall issues (Closes: #972323)
+ * Replace use of deprecated $ADTTMP with $AUTOPKGTEST_TMP.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 19 Oct 2020 14:21:50 +0200
+
+llvm-toolchain-11 (1:11.0.0-2) unstable; urgency=medium
+
+ * Fix a clang-format issue. Fix bug #47589
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 12 Oct 2020 15:15:27 +0200
+
+llvm-toolchain-11 (1:11.0.0-1) unstable; urgency=medium
+
+ * New upstream release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 12 Oct 2020 11:14:19 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc6-1) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New rc release
+ * remove all artifacts after tests
+
+ [ Gianfranco Costamagna ]
+ * qualify-clang.sh: exclude z3 tests when support is not available,
+ not based on libz3-dev installation but on the error returned by
+ clang invocation
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 07 Oct 2020 16:38:40 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc5-1) unstable; urgency=medium
+
+ * New rc release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 30 Sep 2020 20:15:40 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc4-1) unstable; urgency=medium
+
+ * New rc release
+ * Fix one more test in autopkgtest
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 28 Sep 2020 22:21:47 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc3-2) unstable; urgency=medium
+
+ * Update of the symbol list of libomp5:
+ - GOMP_loop_maybe_nonmonotonic_runtime_next
+ - GOMP_loop_maybe_nonmonotonic_runtime_start
+ - GOMP_loop_nonmonotonic_runtime_next
+ - GOMP_loop_nonmonotonic_runtime_start
+ - GOMP_loop_ull_maybe_nonmonotonic_runtime_next
+ - GOMP_loop_ull_maybe_nonmonotonic_runtime_start
+ - GOMP_loop_ull_nonmonotonic_runtime_next
+ - GOMP_loop_ull_nonmonotonic_runtime_start
+ - GOMP_parallel_loop_maybe_nonmonotonic_runtime
+ - GOMP_parallel_loop_nonmonotonic_runtime
+ - omp_display_env
+ * Bring back LLVM_POLLY_LINK_INTO_TOOLS=ON to workaround the error
+ clang (LLVM option parsing): Unknown command line argument '-polly'.
+ Try: 'clang (LLVM option parsing) --help'
+ Also found in autopkgtest
+ * In the autopkgtest tests, update the opt arguments (-q removed and
+ -basicaa renamed to -basic-aa)
+ * Disable test executions on mipsel (timeout)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 27 Sep 2020 14:26:16 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc3-1) unstable; urgency=medium
+
+ * New rc release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 22 Sep 2020 17:19:40 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc2-6) unstable; urgency=medium
+
+ * Fix "libc++-11-dev includes libc++abi-11-dev headers"
+ (Closes: #969274)
+ * Install llvm examples in llvm-11-examples (Closes: #969339)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 07 Sep 2020 13:32:26 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc2-5) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Link against libatomic on powerpc to fix FTBFS in stage2
+ * Use dh-exec to exclude lib/libPolly*.a on powerpc and
+ powerpcspe from libclang-common-X.Y-dev.install.in
+
+ [ Gianfranco Costamagna ]
+ * autopkgtests: ignore binfmts enable command return value.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 31 Aug 2020 12:26:58 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc2-4) unstable; urgency=medium
+
+ * integration-test-suite-test: change the configuration for 11
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 28 Aug 2020 23:08:33 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc2-3) unstable; urgency=medium
+
+ * Fix testsuite by ignoring binfmts test
+ (can't be enabled on autopkgtests)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 28 Aug 2020 21:56:49 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc2-2) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Disable ocaml support on i386, not reasonable to support it there
+ (specially for Ubuntu)
+ * Enable binfmt support before using it in tests, to fix them
+
+ [ Sylvestre Ledru ]
+ * Also link against -latomic on mipsel to fix
+ /usr/[...]/atomic_base.h:426: undefined reference to `__atomic_load_8'
+ for lld to fix the FTBFS
+ * Fix a FTBFS on armel with libcxx-armhf-ftbfs.diff
+ atomic:2780:16: error: use of undeclared identifier '__libcpp_signed_lock_free'
+ typedef atomic<__libcpp_signed_lock_free> atomic_signed_lock_free;
+ ^
+ atomic:2781:16: error: unknown type name '__libcpp_unsigned_lock_free'; did you mean 'atomic_signed_lock_free'?
+ typedef atomic<__libcpp_unsigned_lock_free> atomic_unsigned_lock_free;
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 25 Aug 2020 10:44:00 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc2-1) unstable; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 20 Aug 2020 22:17:47 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc1-2) unstable; urgency=medium
+
+ * Don't install ompt-multiplex.h on armhf, mipsel and mips64el
+ (Closes: #967944)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 05 Aug 2020 15:23:25 +0200
+
+llvm-toolchain-11 (1:11.0.0~+rc1-1) unstable; urgency=medium
+
+ * Testing release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 29 Jul 2020 17:46:57 +0200
+
+llvm-toolchain-11 (1:11~++20200715043845+0e377e253c1-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * branching of snapshot into 11
+
+ [ Samuel Thibault ]
+ * debian/patches/hurd/hurd-EIEIO-undef.diff: Remove, upstreamed.
+ * debian/patches/hurd/hurd-cxx-paths.diff: Remove, upstreamed.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 15 Jul 2020 16:30:36 +0200
+
+llvm-toolchain-snapshot (1:11~++20200701093119+ffee8040534-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * libc++ requires the LLVM_PATH, adding it
+ * Remove no-z3.patch, seems to be merged upstream
+ * No longer install clang-import-test (upstream change)
+ See https://reviews.llvm.org/D82169
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 01 Jul 2020 09:34:28 +0200
+
+llvm-toolchain-snapshot (1:11~++20200623122106+cd6848f6e1d-1~exp1) experimental; urgency=medium
+
+ * experimental New snapshot release
+ * Add -DLLVM_POLLY_LINK_INTO_TOOLS=OFF to workaround
+ https://bugs.llvm.org/show_bug.cgi?id=45571
+ * New symbol clang_Type_getValueType added
+ * Install usr/lib/llvm-11/lib/cmake/lld/*.cmake
+ in liblld-11-dev
+ * Upstream change ad97ccf6b26a29262c9cbf5b3e7f6e84c6dcf55f
+ broke clangd-atomic-cmake.patch causing some undef symbol on
+ i386 and atomic
+ * Also install ompt-multiplex.h in libomp-X-dev
+ * revert-sphinx-deprecation.diff: revert the sphinx update as it breaks
+ debian buster
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 23 Jun 2020 00:24:07 +0200
+
+llvm-toolchain-snapshot (1:11~++20200621103028+10b0539772d-1~exp1) UNRELEASED; urgency=medium
+
+ * experimental New snapshot release
+ * Add -DLLVM_POLLY_LINK_INTO_TOOLS=OFF to workaround
+ https://bugs.llvm.org/show_bug.cgi?id=45571
+ * New symbol clang_Type_getValueType added
+ * Install usr/lib/llvm-11/lib/cmake/lld/*.cmake
+ in liblld-11-dev
+ * Upstream change ad97ccf6b26a29262c9cbf5b3e7f6e84c6dcf55f
+ broke clangd-atomic-cmake.patch causing some undef symbol on
+ i386 and atomic
+ * Also install ompt-multiplex.h in libomp-X-dev
+ * revert-sphinx-deprecation.diff: revert the sphinx update as it breaks debian
+ buster
+ * experimental New snapshot release
+ * Add -DLLVM_POLLY_LINK_INTO_TOOLS=OFF to workaround
+ https://bugs.llvm.org/show_bug.cgi?id=45571
+ * New symbol clang_Type_getValueType added
+ * Install usr/lib/llvm-11/lib/cmake/lld/*.cmake
+ in liblld-11-dev
+ * Upstream change ad97ccf6b26a29262c9cbf5b3e7f6e84c6dcf55f
+ broke clangd-atomic-cmake.patch causing some undef symbol on
+ i386 and atomic
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 21 Jun 2020 10:33:23 +0200
+
+llvm-toolchain-snapshot (1:11~++20200520051603+e8f6b0e583c-1~exp1) UNRELEASED; urgency=medium
+
+ * experimental New snapshot release
+ * Add -DLLVM_POLLY_LINK_INTO_TOOLS=OFF to workaround
+ https://bugs.llvm.org/show_bug.cgi?id=45571
+ * New symbol clang_Type_getValueType added
+ * Install usr/lib/llvm-11/lib/cmake/lld/*.cmake
+ in liblld-11-dev
+ * Upstream change ad97ccf6b26a29262c9cbf5b3e7f6e84c6dcf55f
+ broke clangd-atomic-cmake.patch causing some undef symbol on
+ i386 and atomic
+ * experimental New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 20 May 2020 17:19:34 +0200
+
+llvm-toolchain-snapshot (1:11~++20200411120955+c65e6079fc9-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Bring back libc++-experimental
+ * remove no-cgi.patch - applied upstream
+ * Also install liblldMachO2.a in liblld
+ * Reorder the cmake arg
+ * Update the copyright file with recent changes (Closes: #956287)
+ Thanks to Michael Lustfield for the detective work
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 11 Apr 2020 12:27:18 +0200
+
+llvm-toolchain-snapshot (1:11~++20200409051253+d08105482e1-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Bring back libc++-experimental
+ * remove no-cgi.patch - applied upstream
+ * Also install liblldMachO2.a in liblld
+ * Reorder the cmake arg
+ * Update the copyright file with recent changes (Closes: #956287)
+ Thanks to Michael Lustfield for the detective work
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 09 Apr 2020 17:21:05 +0200
+
+llvm-toolchain-snapshot (1:11~++20200307074845+ec1d1f6ae70-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release
+ * Install clang-tidy headers in libclang-X.Y-dev
+ Path: usr/lib/llvm-11/include/clang-tidy/
+ Introduced upstream in https://reviews.llvm.org/D73236
+
+ [ Samuel Thibault ]
+ * hurd/hurd-cxx-paths.diff: Drop part of patch applied upstream, fix it so
+ it can be applied.
+ * clang-tools-X.Y.install.in: Do not try to install hwasan_symbolize on
+ hurd-any.
+
+ [ Gianfranco Costamagna ]
+ * Add patch to port from old cgi to new html python3 method
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 07 Mar 2020 19:51:40 +0100
+
+llvm-toolchain-snapshot (1:11~++20200123111717+04fd2041561-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * experimental New snapshot release - 11
+ * Merge recent 9 changes (python 3 and testsuite mostly)
+
+ [ Gianfranco Costamagna ]
+ * fix lldb-10 -P path print (Closes: #945445)
+ * Fix lldb python installation path and symlinks
+ * Drop version constraint from libffi-dev library, satisfied since
+ old-old-stable
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 23 Jan 2020 14:52:30 +0100
+
+llvm-toolchain-10 (1:10.0.1-8) unstable; urgency=medium
+
+ * Don't use gold on ppc64el. It fails to build in that case
+ (Closes: #972317)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 31 Oct 2020 14:13:25 +0100
+
+llvm-toolchain-10 (1:10.0.1-7) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * debian/patches/hurd/hurd-cxx-paths.diff: Add missing GCC installation
+ initialization.
+
+ [ Sylvestre Ledru ]
+ * Replace use of deprecated $ADTTMP with $AUTOPKGTEST_TMP.
+ * Rebuild to address the incompat issues (Closes: #972282)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 22 Oct 2020 22:29:07 +0200
+
+llvm-toolchain-10 (1:10.0.1-6) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Add debian/* to the copyright file. Uses the same license
+ as LLVM
+
+ [ Julien Cristau ]
+ * Cherry-pick "[PowerPC] PPCBoolRetToInt: Don't translate Constant's
+ operands". Fixes rustc crash building firefox-esr.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 02 Sep 2020 13:55:46 +0200
+
+llvm-toolchain-10 (1:10.0.1-5) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Use dh-exec to exclude lib/libPolly*.a on powerpc and
+ powerpcspe from libclang-common-X.Y-dev.install.in
+
+ [ Gianfranco Costamagna ]
+ * autopkgtests: ignore binfmts enable command return value.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Mon, 31 Aug 2020 12:28:24 +0200
+
+llvm-toolchain-10 (1:10.0.1-4) unstable; urgency=medium
+
+ * Fix testsuite by ignoring binfmts test
+ (can't be enabled on autopkgtests)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 28 Aug 2020 21:54:05 +0200
+
+llvm-toolchain-10 (1:10.0.1-3) unstable; urgency=medium
+
+ * Fix testsuite by enabling binfmts support before using it
+ (the default is disabled)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 27 Aug 2020 12:42:20 +0200
+
+llvm-toolchain-10 (1:10.0.1-2) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * patches/hurd/hurd-cxx-paths.diff: Refresh, some of the factorization was
+ backported from 11 to 10.
+
+ [ Gianfranco Costamagna ]
+ * debian/patches/mips-force-nomadd4.patch: Apply and rebase patch to disable
+ nomadd4 on mips* (Closes: #964989)
+ - thanks Yunqiang Su <wzssyqa@gmail.com> for the patch
+
+ [ Steve Langasek ]
+ * Drop ocaml support on i386, which pulls in a series of packages which
+ is not reasonable to support.
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sun, 23 Aug 2020 22:57:55 +0200
+
+llvm-toolchain-10 (1:10.0.1-1) unstable; urgency=medium
+
+ * New release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 21 Jul 2020 18:29:06 +0200
+
+llvm-toolchain-10 (1:10.0.1~+rc4-1) unstable; urgency=medium
+
+ * New RC release (of course, I was wrong)
+ * Update the binfmt-support postinstall to match what is done elsewhere
+ in Debian
+ * Add binfmt-support to one of the autopkgtest tests
+ And make sure that the test is only executed when installed correctly
+ Otherwise, fails with
+ "./foo.bc: cannot execute binary file: Exec format error"
+ * patches/remove-trailing-space-version.diff: cherry-pick an upstream patch
+ to address https://bugs.llvm.org/show_bug.cgi?id=38998#c15
+ trailing whitespace of clang full version causing a display issue
+ when building the linux kernel with clang
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 08 Jul 2020 10:49:26 +0200
+
+llvm-toolchain-10 (1:10.0.1~+rc3-1) unstable; urgency=medium
+
+ * New rc release. Should be the last (this is why I am
+ uploading to unstable)
+ * Ship with integration-test-suite-test and run it with autopkgtest
+ integration-test-suite-test is a project started by Serge Guelton
+ and myself.
+ The goal is to provide a set of tests to verify that llvm/clang/etc
+ are working as expected in a distro (Linux, BSD, etc).
+ But also to bring a set of expectations of what a LLVM toolchain should
+ looks like when shipping to users.
+ Serge is taking care of that work for Fedora/Redhat.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 07 Jul 2020 09:44:59 +0200
+
+llvm-toolchain-10 (1:10.0.1~+rc2-1~exp1) experimental; urgency=medium
+
+ * New rc release
+ * Pass CLANG_VENDOR to CLANG_BOOTSTRAP_PASSTHROUGH
+ Fix https://bugs.llvm.org/show_bug.cgi?id=38998
+ For our friends of https://github.com/ClangBuiltLinux/
+ * remove try-to-fix-polly-link.patch and D74453-riscv-atomic_cmp_xchg.diff
+ (applied upstream)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 27 Jun 2020 11:28:28 +0200
+
+llvm-toolchain-10 (1:10.0.1~+rc1-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * first rc of 10.0.1
+ * Enable LLVM_ENABLE_DUMP (Closes: #956966)
+ * Move binfmt-support as Recommends llvm-10-runtime
+ instead of a strong dependencies (Closes: #958127)
+ * build libc++ with -DLIBCXX_USE_COMPILER_RT=YES
+ and -DLIBCXXABI_USE_COMPILER_RT=YES
+ * Remove D76596.diff (merged upstream)
+
+ [ Gianfranco Costamagna ]
+ * Don't run tests on riscv64/Ubuntu for now, the virtual machines timeout
+ during testsuite (probably lack of proper capable hardware to run it)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 19 May 2020 08:17:26 +0200
+
+llvm-toolchain-10 (1:10.0.0-4) unstable; urgency=medium
+
+ * Also ship polly libs in libclang-common-10-dev.
+ Fixes bug #44870 (upstream)
+ * move risc patches into their own directory
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 10 Apr 2020 10:27:41 +0200
+
+llvm-toolchain-10 (1:10.0.0-3) unstable; urgency=medium
+
+ * ppc64el/autopkgtest: Just like with arm64, ignore two tests
+ * Update the copyright file with recent changes (Closes: #956287)
+ Thanks to Michael Lustfield for the detective work
+
+ [ Jessica Clarke ]
+ * Cherry-pick upstream patch D74453 to fix atomic compare-and-swap on
+ riscv64.
+
+ [ William Grant ]
+ * debian/patches/riscv64-multilib-empty.patch: Adjust riscv64 GCC detector
+ to also check for existence of crtbegin.o in the default multilib dir,
+ like most other ports. Fixes FTBFS on riscv64, since on Ubuntu
+ /usr/lib/gcc/riscv64-linux-gnu/10 exists but is empty (gcc-10-base is
+ installed, but libgcc-10-dev is not).
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 02 Apr 2020 21:48:13 +0200
+
+llvm-toolchain-10 (1:10.0.0-2) unstable; urgency=medium
+
+ [ Dimitri John Ledkov <xnox@ubuntu.com> ]
+ * s390x: set default abi to z196 for debian, and z13 for ubuntu.
+ LP: #1864226
+
+ [ Matthias Klose <doko@ubuntu.com> ]
+ * Apply D76596.diff, proposed backport from the trunk. LP: #1867173.
+ This was causing postgresql to FTBFS with llvm 10
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 27 Mar 2020 05:16:28 +0100
+
+llvm-toolchain-10 (1:10.0.0-1) unstable; urgency=medium
+
+ * New release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 24 Mar 2020 17:37:07 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc6-1) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Sixth RC release
+ * Really fix the arm64 autopkgtest
+
+ [ Gianfranco Costamagna ]
+ * debian/patches/d21664cce1db8debe2528f36b1fbd2b8af9c9401.patch:
+ - cherry-pick upstream commit to hopefully unbreak mesa builds
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 23 Mar 2020 20:39:36 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc5-1) unstable; urgency=medium
+
+ * Fifth RC release
+ * Make autopkgtest/qualify-clang.sh work on arm64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 19 Mar 2020 15:59:43 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc4-1) unstable; urgency=medium
+
+ * Fourth RC release
+ * Disable the emmintrin.h build test in qualify-clang.sh on arm64
+ * Add some tests for clangd usage
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 13 Mar 2020 20:42:36 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc3-1) unstable; urgency=medium
+
+ * Third RC release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 04 Mar 2020 14:56:12 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc2-3) unstable; urgency=medium
+
+ * Disable libfuzzer on x86
+ https://bugs.llvm.org/show_bug.cgi?id=43677
+ FTBFS otherwise
+ * Add a libclang-cpp10-dev package (needed to unbreak the cmake)
+ https://bugs.llvm.org/show_bug.cgi?id=42432
+ This makes libclang-cpp10 usable and polish the links and dups
+ * Fix the *clang* desc as C++17 is supported
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 01 Mar 2020 20:59:25 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc2-2) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * Bring back libfuzzer, for some reasons I don't remember
+ I disabled it:
+ https://bugs.llvm.org/show_bug.cgi?id=41956
+ * Silent the polly tests in debian/qualify-clang.sh
+ clang (LLVM option parsing): Unknown command line argument
+ '-polly'. Try: 'clang (LLVM option parsing) --help'
+
+ [ Aurelien Jarno ]
+ * Also disable hwasan_symbolize on mipsel mips64el riscv64
+
+ [ Gianfranco Costamagna ]
+ * Patch to convert old python3 cgi method into the new html one
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 29 Feb 2020 14:04:22 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc2-1) unstable; urgency=medium
+
+ * Upload to unstable to get ci.debian.net testing
+ * Also disable hwasan_symbolize on armel s390x powerpc ppc64
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 16 Feb 2020 14:50:53 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc2-1~exp1) experimental; urgency=medium
+
+ * Second RC release
+ - Should fix the s390x issue (reported upstream)
+ (Closes: #950900)
+ * Do not try to install hwasan_symbolize on armhf ppc64el
+ as it isn't built
+ (Closes: #950899)
+
+ [ Samuel Thibault ]
+ * hurd/hurd-cxx-paths.diff: Fix patch so it can be applied.
+ * clang-tools-X.Y.install.in: Do not try to install hwasan_symbolize on
+ hurd-any.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 06 Feb 2020 10:37:39 +0100
+
+llvm-toolchain-10 (1:10.0.0~+rc1-1~exp1) experimental; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * fix lldb-10 -P path print (Closes: #945445)
+ * Fix lldb python installation path and symlinks
+ * Drop version constraint from libffi-dev library, satisfied since
+ old-old-stable
+
+ [ Sylvestre Ledru ]
+ * First RC release
+ * For now, disable ThinLTO usage because:
+ - LLVM_ENABLE_LTO doesn't work with gcc >= 9 (option not accepted)
+ - BOOTSTRAP_LLVM_ENABLE_LTO is producing some large binary
+ (uses llvm ir instead of binary code)
+ See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943623
+ * Thanks to this previous change, don't hardcode gcc 8
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 03 Feb 2020 10:30:50 +0100
+
+llvm-toolchain-10 (1:10~++20200121023453+de4b2a7fad6-1~exp1) experimental; urgency=medium
+
+ * Branch llvm-toolchain-10 into its own branch
+ * Merge recent 9 changes (python 3 and testsuite mostly)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 21 Jan 2020 14:38:02 +0100
+
+llvm-toolchain-snapshot (1:10~+20191229111838+6991d5728f1-1~exp1) experimental; urgency=medium
+
+ * experimental New snapshot release
+ * Add a '+' in the version (as the old upload is high than the one without)
+ Will be removed in 11
+ * Sync 9 into 10
+ * Change of the version layout date+short git version
+ * Install /usr/lib/llvm-@LLVM_VERSION@/lib/libarcher_static.a
+ /usr/lib/llvm-@LLVM_VERSION@/lib/libarcher.so in libomp-X-dev
+ * Install usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/bin/hwasan_symbolize in clang-tools-X.Y
+ * Introduce python3-clang-10 (closes: #942826)
+ * Remove python-lldb-10
+ * Remove Python 2 deps (Closes: #945695)
+ * Disable the polly testsuite:
+ - freezing in the current build
+ - not a big deal if failing
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 29 Dec 2019 12:47:15 +0100
+
+llvm-toolchain-snapshot (1:10~+201911120943210600592dd459242-1~exp1) experimental; urgency=medium
+
+ * Repack to move to git
+ * Change the versioning scheme to git:
+ Infos of the last commit
+ - ~+ (this syntax is to make sure that this version > ~svn)
+ - date
+ - hour/minute/second
+ - short git hash
+ * Move the checkout of the sources from svn to git
+ * Use -DLLVM_ENABLE_PROJECTS instead of symlinks
+ * Use -DBOOTSTRAP_LLVM_ENABLE_LTO instead of
+ -DLLVM_ENABLE_LTO (not sure what it wasn't done)
+ * clang: Force the installation of libclang-cpp with the exact same version
+ and remove libclang as dep
+ * Bunch of changes coming from the branch 9
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 12 Nov 2019 16:51:40 +0100
+
+llvm-toolchain-snapshot (1:10~svn375339-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Last upload before the move to git
+ * lldb-libname.diff: disable for now, seems it that it is now handled
+ by cmake https://reviews.llvm.org/D68858. TODO: check it still work
+ * Remove "revert-r373786-libclang-cpp.diff" (applied upstream)
+ * Add dependency between libclang-cpp => libllvm with the exact version
+ (Closes: #942526)
+ * Build using -DCLANG_LINK_CLANG_DYLIB=ON to force the usage of dynamic
+ library instead of static library when building clang tools.
+ Decreases the total size from 510M to 278M (amd64)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 19 Oct 2019 12:19:36 +0200
+
+llvm-toolchain-snapshot (1:10~svn374655-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Install pp-trace, clang-move and clang-offload-wrapper in
+ clang-tools-10
+ * Revert
+ "[clang-tools-extra] [cmake] Link against libclang-cpp whenever
+ possible" as it introduces a dep from libclang to libclang-cpp
+ Breaking the symbol list (and people should like to libclang-cpp
+ if they want to use C++ api)
+ https://bugs.llvm.org/show_bug.cgi?id=43589
+ * Added a check in debian/rules to prevent that from happening again
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 12 Oct 2019 16:27:53 +0200
+
+llvm-toolchain-snapshot (1:10~svn372920-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Add two new symbols to libclang1:
+ - clang_install_aborting_llvm_fatal_error_handler
+ - clang_uninstall_llvm_fatal_error_handler
+ * site-packages renamed to dist-packages in python3-lldb-10
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 07 Sep 2019 09:07:01 +0200
+
+llvm-toolchain-snapshot (1:10~svn370840-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Update of the license file. Upstream moved to Apache 2
+ with LLVM exception (Closes: #935149)
+ * 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
+ * Rename libclang-cpp1-10 to libclang-cpp10 to match the soname and libllvm10
+ naming (at some point, all libs should do that ...)
+ * New symbols in libomp5:
+ - GOMP_loop_nonmonotonic_dynamic_next
+ - GOMP_loop_nonmonotonic_dynamic_start
+ - GOMP_loop_nonmonotonic_guided_next
+ - GOMP_loop_nonmonotonic_guided_start
+ - GOMP_loop_ull_nonmonotonic_dynamic_next
+ - GOMP_loop_ull_nonmonotonic_dynamic_start
+ - GOMP_loop_ull_nonmonotonic_guided_next
+ - GOMP_loop_ull_nonmonotonic_guided_start
+ - GOMP_parallel_loop_nonmonotonic_dynamic
+ - GOMP_parallel_loop_nonmonotonic_guided
+ * Workaround bug https://bugs.llvm.org/show_bug.cgi?id=42994
+ (fails to link on Debian buster)
+ * for Ubuntu xenial: pass PYTHON_EXE to the stage2 build
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 04 Sep 2019 11:42:50 +0200
+
+llvm-toolchain-snapshot (1:10~svn368740-1~exp1) experimental; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Fixed wrong shlib generation of libomp5 library
+ * clangd: fix missing epoch in breaks/replaces relationship
+ * testsuite, add python, used in some test
+ * Cherry-pick various fixes from branch 8 and 9, do not break anymore with libllvm3.9v4
+
+ [ Aurelien Jarno ]
+ * Add support for riscv64:
+ - Always link with -latomic on riscv64.
+ - patches/clang-riscv64-multiarch.diff: add multiarch paths for riscv64.
+ - patches/clang-riscv64-rv64gc.diff: default to lp64d ABI and rv64gc ISA.
+ * Document riscv64 debian specific changes in README.source.
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+ * lldb-mi removed
+ * Ship clangd-10 as a new package (Closes: #932432)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 13 Aug 2019 21:37:46 +0200
+
+llvm-toolchain-snapshot (1:10~svn368706-1~exp1) experimental; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * lldb-mi removed
+
+ [ Gianfranco Costamagna ]
+ * clangd: fix missing epoch in breaks/replaces relationship
+ * testsuite, add python, used in some test
+ * Cherry-pick various fixes from branch 8 and 9, do not break anymore with libllvm3.9v4
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 13 Aug 2019 17:55:41 +0200
+
+llvm-toolchain-snapshot (1:10~svn366440-1~exp1) experimental; urgency=medium
+
+ * New version in snapshot (10)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Jul 2019 18:58:32 +0200
+
+llvm-toolchain-9 (1:9.0.1-15) unstable; urgency=low
+
+ * Replace use of deprecated $ADTTMP with $AUTOPKGTEST_TMP.
+ * Ensure fixfilepath feature is disabled. The fixfilepath
+ feature sets a -ffile-prefix-map flag, which is only
+ supported in clang-10. (Closes: #972751).
+ Thanks to Vagrant Cascadian for the patch
+ * Don't use gold on ppc64el. It fails to build in that case
+ (Closes: #972317)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 31 Oct 2020 14:09:15 +0100
+
+llvm-toolchain-9 (1:9.0.1-14) unstable; urgency=medium
+
+ * debian/patches/b288d90b39f4b905c02092a9bfcfd6d78f99b191.patch:
+ * debian/patches/3185c30c54d0af5bffbff3bcfd721668d086ff10.patch:
+ - cherry-pick upstream fixes for ppc64el build failure (Closes: #968174)
+ * Previous version closed bug: 964988 (Closes: #964988)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sat, 15 Aug 2020 21:53:41 +0200
+
+llvm-toolchain-9 (1:9.0.1-13) unstable; urgency=medium
+
+ [ Aurelien Jarno ]
+ * Add mips-force-nomadd4.diff to default to +nomadd4 on MIPS. (Closes:
+ #964988)
+
+ [ Ximin Luo ]
+ * Add 373184.patch to fix soundness issue affecting rustc. (Closes: #959877)
+ * Add f8e146f3430de3a6cd904f3f3f7aa1bfaefee14c.patch to fix big-endian
+ miscompilation affecting rustc.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 07 Jul 2020 18:18:00 +0200
+
+llvm-toolchain-9 (1:9.0.1-12) unstable; urgency=medium
+
+ [ Jessica Clarke ]
+ * Cherry-pick upstream patch D74453 to fix atomic compare-and-swap on
+ riscv64.
+
+ [ William Grant ]
+ * debian/patches/riscv64-multilib-empty.patch: Adjust riscv64 GCC detector
+ to also check for existence of crtbegin.o in the default multilib dir,
+ like most other ports. Fixes FTBFS on riscv64, since on Ubuntu
+ /usr/lib/gcc/riscv64-linux-gnu/10 exists but is empty (gcc-10-base is
+ installed, but libgcc-10-dev is not).
+
+ -- Jessica Clarke <jrtc27@debian.org> Wed, 01 Apr 2020 16:23:55 +0100
+
+llvm-toolchain-9 (1:9.0.1-11) unstable; urgency=medium
+
+ * Allow one to build g++ 9 & 10 to fix a gcc build dependency
+ (closes: #955144)
+ And disable thin lto on all archs
+ It needs gcc-8 after after 8 will reject the -flto=thin arg
+ And BOOTSTRAP_LLVM_ENABLE_LTO will generate .so with llvm IR instead
+ of native code
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 31 Mar 2020 21:11:56 +0200
+
+llvm-toolchain-9 (1:9.0.1-10) unstable; urgency=medium
+
+ * debian/patches/947f9692440836dcb8d88b74b69dd379d85974ce.patch:
+ - cherry-pick upstream fix for glibc 2.31
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sat, 07 Mar 2020 01:01:35 +0100
+
+llvm-toolchain-9 (1:9.0.1-9) unstable; urgency=medium
+
+ * Add patch to fix python3.8 test failures with deprecated cgi method, move
+ to new html parser
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 25 Feb 2020 15:28:58 +0100
+
+llvm-toolchain-9 (1:9.0.1-8) unstable; urgency=medium
+
+ * Add two new python autopkgtests to avoid regressions in the future
+ * Fix m68k architecture
+ * Add Myself to uploaders
+ * Revert site-packages/dist-packages hacking mv, this is done upstream now
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 23 Jan 2020 14:30:57 +0100
+
+llvm-toolchain-9 (1:9.0.1-7) unstable; urgency=medium
+
+ * Add dependency on libclang-cpp-9 from llvm-9-dev (Closes: #946761)
+ * fix lldb-9 -P path print (Closes: #945445)
+ * Fix lldb python installation path and symlinks
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 21 Jan 2020 13:05:06 +0100
+
+llvm-toolchain-9 (1:9.0.1-6) unstable; urgency=medium
+
+ * Team upload.
+ * Add some more python3 shebangs (Closes: #948497)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 10 Jan 2020 09:37:55 +0100
+
+llvm-toolchain-9 (1:9.0.1-5) unstable; urgency=medium
+
+ * Install clang in Python3 directory (Closes: #948409)
+ - thanks Mike Gabriel for the helpful report!
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Wed, 08 Jan 2020 12:15:06 +0100
+
+llvm-toolchain-9 (1:9.0.1-4) unstable; urgency=medium
+
+ * Source only upload to sid
+ * Force a python3 shebang on python modules to fix testsuite
+ * Do not run z3 tests if z3 support is not enabled
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Sat, 04 Jan 2020 08:52:02 +0100
+
+llvm-toolchain-9 (1:9.0.1-3) unstable; urgency=medium
+
+ [ John Paul Adrian Glaubitz ]
+ * Build polly docs and manpages only when polly is enabled (Closes: #947236)
+
+ [ Sylvestre Ledru ]
+ * Introduce python3-clang-9 (closes: #942826)
+ * Remove python-lldb-9
+ * Remove Python 2 deps (Closes: #945695)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 29 Dec 2019 12:37:34 +0100
+
+llvm-toolchain-9 (1:9.0.1-2) unstable; urgency=medium
+
+ [ James Clarke ]
+ * Include upstream patch D71028 for rust mips tests (Closes: #946874)
+
+ [ Aurelien Jarno ]
+ * Include upstream patch D60657 for rust support on riscv64.
+
+ -- James Clarke <jrtc27@debian.org> Fri, 20 Dec 2019 18:30:29 +0000
+
+llvm-toolchain-9 (1:9.0.1-1) unstable; urgency=medium
+
+ * New stable release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 19 Dec 2019 13:48:21 +0100
+
+llvm-toolchain-9 (1:9.0.1~+rc3-2) unstable; urgency=medium
+
+ * Team upload.
+ [ Gianfranco Costamagna ]
+ * Commit Breaks/Replaces into git
+
+ [ Julian Andres Klode ]
+ * Fix llvm-9-tools Breaks/Replaces libclang-common-9-dev (<< 1:9.0.1~+rc2)
+ (Closes: #946473)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Thu, 19 Dec 2019 00:26:04 +0100
+
+llvm-toolchain-9 (1:9.0.1~+rc3-1) unstable; urgency=medium
+
+ [ Sylvestre Ledru ]
+ * New snapshot release + upload to unstable
+ * Use secure URI in debian/watch.
+ * Move source package lintian overrides to debian/source.
+ * Remove patches force-gcc-header-obj.diff, hurd-pathmax.diff, impl-
+ path-hurd.diff, libcxxabi-arm-ehabi-fix.patch, libcxxabi-test-don-t-
+ fail-extended-long-double.patch, revert-change-soname.diff, try-to-
+ unbreak-thinlto.diff that are missing from debian/patches/series.
+ * Rely on pre-initialized dpkg-architecture variables.
+ * Move transitional package libclang-cpp1-9 to oldlibs/optional per
+ policy 4.0.1.
+
+ [ Aurelien Jarno ]
+ * llvm-riscv64-fix-cffi.diff: backport patch to fix CFI directives on
+ riscv64 from master.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 14 Dec 2019 12:43:17 +0100
+
+llvm-toolchain-9 (1:9.0.1~+rc2-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Fix some paths, upstream moved from site-packages
+ to dist-packages for python packages
+ * Move yaml-bench from libclang-common-X.Y-dev to llvm-X.Y-tools where
+ it belongs
+ See http://lists.llvm.org/pipermail/llvm-dev/2019-December/137337.html
+ * Add a project in the cmake-test to silent a warning
+ (Closes: #945489)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 03 Dec 2019 07:56:16 +0100
+
+llvm-toolchain-9 (1:9.0.1~+rc1-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 24 Nov 2019 14:51:29 +0100
+
+llvm-toolchain-9 (1:9.0.0-5) UNRELEASED; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Patch cmake files to disable the z3 support in Ubuntu
+ * Simplify rules file to put -g1 everywhere
+
+ [ Sylvestre Ledru ]
+ * Add a project in the cmake-test to silent a warning (Closes: #945489)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 26 Nov 2019 09:24:38 +0100
+
+llvm-toolchain-9 (1:9.0.0-4) unstable; urgency=medium
+
+ [ Samuel Thibault ]
+ * hurd-cxx-paths.diff: Re-introduce patch to find C++ headers.
+ * hurd-EIEIO-undef.diff: Drop patch, already fixed a different way upstream.
+ * hurd-pathmax.diff: Drop now-useless parts.
+
+ [ Sylvestre Ledru ]
+ * Add libz3-dev as dependencies on llvm-X.Y-dev (Closes: #943996)
+ * Update build-dep libpfm4-dev to linux-any.
+ Thanks to Samuel Thibault for the patch
+
+ [ Gianfranco Costamagna ]
+ * Add also Ubuntu focal to the gcc-8 arch list
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 05 Nov 2019 10:30:26 +0100
+
+llvm-toolchain-9 (1:9.0.0-3) unstable; urgency=medium
+
+ * Seems to be ok, uploading to unstable
+ (Closes: #942864) fuzzer issues
+ (Closes: #943623) libclangIndex.a are llvm ir bitcode
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 31 Oct 2019 20:36:09 +0100
+
+llvm-toolchain-9 (1:9.0.0-3~exp2) experimental; urgency=medium
+
+ [ Weston Ortiz ]
+ * Remove incorrect Breaks/Conflicts for lldb-9 package
+ https://bugs.llvm.org/show_bug.cgi?id=43451
+
+ [ Sylvestre Ledru ]
+ * disable-fuzzer-compiler-rt.diff: bring back this patch.
+ Still breaks i386 compiler-rt/fuzzer
+ Disable fuzzer only for i386
+ * Use stage2 files to build the doc. For some reasons, clang-tools-extra
+ html generation stopped working
+ * Disable z3 when the version is too old
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 31 Oct 2019 00:29:09 +0100
+
+llvm-toolchain-9 (1:9.0.0-3~exp1) experimental; urgency=medium
+
+ * Revert the change -DBOOTSTRAP_LLVM_ENABLE_LTO to use
+ -DLLVM_ENABLE_LTO to see if it fixes 943623
+ and/or 942864
+ Disable disable-fuzzer-compiler-rt.diff to evaluate the whole thing
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 29 Oct 2019 20:05:38 +0100
+
+llvm-toolchain-9 (1:9.0.0-2) unstable; urgency=medium
+
+ * polly, openmp & lldb aren't enabled for every platform
+ So, add to PROJECTS only when enabled
+ * clang: Force the installation of libclang-cpp with the exact same version
+ and remove libclang as dep
+ * With the github move, libfuzzer is now compiled as part of the build
+ process. It fails to compile for some unexpected reasons.
+ As I have been compiling libfuzzer by hand for a while, just still
+ do this.
+ See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942864
+ https://bugs.llvm.org/show_bug.cgi?id=43677
+ disable-fuzzer-compiler-rt.diff
+ * Disable all kfreebsd patches:
+ - Needs rebasing on snapshot often
+ - Didn't build on Debian for a while
+ - Not forwarded upstream
+ - No support from the team
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sun, 20 Oct 2019 17:27:50 +0200
+
+llvm-toolchain-9 (1:9.0.0-1) unstable; urgency=medium
+
+ * Repack to move to git
+ * Move the checkout of the sources from svn to git
+ * Use -DLLVM_ENABLE_PROJECTS instead of symlinks
+ * Use -DBOOTSTRAP_LLVM_ENABLE_LTO instead of
+ -DLLVM_ENABLE_LTO (not sure what it wasn't done)
+ * Add dependency between libclang-cpp => libllvm with the exact version
+ (Closes: #942526)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 19 Oct 2019 10:30:41 +0200
+
+llvm-toolchain-9 (1:9-3) unstable; urgency=medium
+
+ * python-clang-9: missing dependency on libclang-9-dev
+ (Closes: #941890)
+ * Enable Z3 solver (llvm & clang) to improve the quality of the static
+ analysis results
+ * Do not fail the test suite on the -lclang-cpp failing
+ I think I need to create a libclang-cpp-dev package to unblock it
+ (but dunno why it works locally)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 17 Oct 2019 18:38:28 +0200
+
+llvm-toolchain-9 (1:9-2) unstable; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Enable lldb on s390x too, it builds fine now
+ * python*lldb, depend on liblldb-9 to avoid failure during import
+ * Add a basic cmake test to see if the package is imported correctly
+
+ [ Sylvestre Ledru ]
+ * add a cpuid check
+ * /disable-lit-cpuid-install.diff: Remove the lit-cpuid from the llvm
+ install.
+ It is provided by lldb and we don't want to add this as a new
+ dep from llvm-dev (Closes: #941082 #941306)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 03 Oct 2019 18:14:21 +0200
+
+llvm-toolchain-9 (1:9-1) unstable; urgency=medium
+
+ * New release
+ * Fix the FTBFS on all platform by adding -DCLANG_BUILD_EXAMPLES=OFF
+ to cmake.
+ So, the following libs aren't built anymore:
+ - usr/lib/llvm-9/lib/SampleAnalyzerPlugin.so
+ - usr/lib/llvm-9/lib/CheckerDependencyHandlingAnalyzerPlugin.so
+ - usr/lib/llvm-9/lib/CheckerOptionHandlingAnalyzerPlugin.so
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 24 Sep 2019 21:09:57 +0200
+
+llvm-toolchain-9 (1:9~+rc5-1~exp2) experimental; urgency=medium
+
+ * debian/patches/D67877.patch: fix LLVMExports.cmake with upstream-proposed
+ patch (Closes: #941082)
+
+ -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 24 Sep 2019 18:57:31 +0200
+
+llvm-toolchain-9 (1:9~+rc5-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 13 Sep 2019 14:45:01 +0200
+
+llvm-toolchain-9 (1:9~+rc4-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 10 Sep 2019 15:25:46 +0200
+
+llvm-toolchain-9 (1:9~+rc3-1~exp3) experimental; urgency=medium
+
+ * 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
+ (Closes: #939472)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 06 Sep 2019 23:27:28 +0200
+
+llvm-toolchain-9 (1:9~+rc3-1~exp2) experimental; urgency=medium
+
+ * 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
+ * Fix a link issue (Closes: #939172)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 02 Sep 2019 10:46:45 +0200
+
+llvm-toolchain-9 (1:9~+rc3-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Update of the license file. Upstream moved to Apache 2
+ with LLVM exception (Closes: #935149)
+ * remove 0050-Remove-explicit-python-version-list.patch
+ bug-43011-mips.diff as they are merged upstream
+ * llvm-9-dev depends on llvm-9-tools
+ Since https://reviews.llvm.org/D56606, LLVMExports.cmake
+ requires FileCheck when LLVM_INSTALL_UTILS=ON is enabled (which
+ is the case here).
+ See https://bugs.llvm.org/show_bug.cgi?id=43035
+ * Also add PYTHON_EXECUTABLE to the CLANG_BOOTSTRAP_PASSTHROUGH option
+ to fix an issue on xenial
+ * Add clangd-X => libclang-common-X-dev dependency
+ See https://bugs.llvm.org/show_bug.cgi?id=43152
+ * Remove the -lc++experimental test from the qualify-clang.sh script
+ as the lib has been removed in 9~svn366022-1~exp1
+ * Also install libclang-cpp in /usr/lib/llvm-X/lib/libclang-cpp.so.X
+ * Improve the fix-clang-path-and-build.diff patch
+ If this package was built with libclang-common installed on the system,
+ it could fail with 'use of undeclared identifier' because
+ #include_next was failing as it was expecting the next header to be
+ libstdc++
+ Now, if the local build headers are found, don't include system's
+ * Rename libclang-cpp1-9 to libclang-cpp9 to match the soname and libllvm9
+ naming (at some point, all libs should do that ...)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 27 Aug 2019 23:38:11 +0200
+
+llvm-toolchain-9 (1:9~+rc2-1~exp2) experimental; urgency=medium
+
+ * Try to fix the mips* ftbfs
+ See bug 43011
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 22 Aug 2019 18:17:32 +0200
+
+llvm-toolchain-9 (1:9~+rc2-1~exp1) experimental; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Add back python-* dependencies to fix tools not really ready for python3
+ * Fix missing epoch in breaks/replaces
+
+ [ Sylvestre Ledru ]
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Wed, 14 Aug 2019 10:36:17 +0200
+
+llvm-toolchain-9 (1:9~+rc1-1~exp2) experimental; urgency=medium
+
+ [ Gianfranco Costamagna ]
+ * Fixed wrong shlib generation of libomp5 library
+ * Add python to testsuite
+
+ [ Sylvestre Ledru ]
+ * Move lit-cpuid from llvm-tools to lldb (wrong package)
+ * Ship clangd-9 as a new package (Closes: #932432)
+
+ [ Aurelien Jarno ]
+ * Add support for riscv64:
+ - Always link with -latomic on riscv64.
+ - patches/clang-riscv64-multiarch.diff: add multiarch paths for riscv64.
+ - patches/clang-riscv64-rv64gc.diff: default to lp64d ABI and rv64gc ISA.
+ - patches/libcxx/libcxx-riscv64-cycletimer.diff: backport riscv64
+ cycletimer support from upstream.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 03 Aug 2019 11:41:07 +0200
+
+llvm-toolchain-9 (1:9~+rc1-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 29 Jul 2019 22:16:33 +0200
+
+llvm-toolchain-snapshot (1:9~svn366022-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * New symbols in libomp5 added in the symbol file
+ - __kmpc_omp_target_task_alloc
+ - __kmpc_task_allow_completion_event
+ - __kmpc_task_reduction_modifier_fini
+ - __kmpc_task_reduction_modifier_init
+ - __kmpc_taskred_init
+ - __kmpc_taskred_modifier_init
+ - omp_fulfill_event
+ - omp_fulfill_event_
+ * Bring back bootstrap-fix-include-next.diff which has been removed from
+ an unknown reason
+ * Remove libc++experimental.a (seems to be not installed)
+ * Install python3-setuptools as it seems that lldb moved to python 3
+ Was failing with
+ "ModuleNotFoundError: No module named 'distutils.sysconfig'"
+ * liblldb.a has been removed upstream
+ * Ship libclang-cpp1-9 as a new package
+ * Ship python3-lldb-9 as a new package
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 18 Jul 2019 15:52:37 +0200
+
+llvm-toolchain-snapshot (1:9~svn364913-1~exp1) experimental; urgency=medium
+
+ [ Andreas Beckmann ]
+ * For now, lld doesn't generate shared libs. Removing the files
+ (Closes: #857653, LP: #1829677)
+
+ [ Gianfranco Costamagna ]
+ * Do not enable Thin on armhf for now, it FTBFS
+
+ [ Sylvestre Ledru ]
+ * Cherry-pick the recent changes from the 8 branch
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Tue, 02 Jul 2019 14:36:52 +0200
+
+llvm-toolchain-snapshot (1:9~svn362869-1~exp2) experimental; urgency=medium
+
+ * New snapshot release
+ * Install clang-scan-deps as part of clang-tools
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 15 Jun 2019 10:47:18 +0200
+
+llvm-toolchain-snapshot (1:9~svn362869-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * remove debian/patches/reproducible-pch.diff
+ done upstream
+ * No longer install lldb-test (disable upstream in 358574)
+ * Install lit-cpuid in llvm-9-tools
+ * libclang-X.Y: add clang_Cursor_isAnonymousRecordDecl to the list of symbols
+ * New snapshot release
+ * remove debian/patches/reproducible-pch.diff
+ done upstream
+ * No longer install lldb-test (disable upstream in 358574)
+ * Install lit-cpuid in llvm-9-tools
+ * libclang-X.Y: add clang_Cursor_isAnonymousRecordDecl and
+ clang_Cursor_isInlineNamespace to the list of symbols
+ * lldb-static-assert.diff (revert a patch failing the build)
+ * New snapshot release
+ * remove debian/patches/reproducible-pch.diff
+ done upstream
+ * No longer install lldb-test (disable upstream in 358574)
+ * Install lit-cpuid in llvm-9-tools
+ * libclang-X.Y: add clang_Cursor_isAnonymousRecordDecl and
+ clang_Cursor_isInlineNamespace to the list of symbols
+ * Install usr/lib/llvm-9/lib/{SampleAnalyzerPlugin.so,
+ CheckerDependencyHandlingAnalyzerPlugin.so,
+ CheckerOptionHandlingAnalyzerPlugin.so}
+ in libclang-9-dev
+ * 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> Sat, 08 Jun 2019 11:12:47 +0200
+
+llvm-toolchain-snapshot (1:9~svn358327-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Remove libc++fs.a (done upstream)
+ * add clang-doc in clang-tools
+ * python2.7/site-packages/readline.so removed from liblldb
+ * libOptRemarks.so has been renamed to libRemarks.so
+ * new symbol: omp_get_supported_active_levels
+
+ [ Gianfranco Costamagna ]
+ * Commit Ubuntu delta to 8 and snapshot branches
+
+ [ Matthias Klose ]
+ * Remove the autopkg test for a genuine LLVM bug.
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Sat, 13 Apr 2019 11:06:00 +0200
+
+llvm-toolchain-snapshot (1:9~svn354105-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+
+ [ John Paul Adrian Glaubitz ]
+ * Remove usr/lib/llvm-@LLVM_VERSION@/lib/LLVM*.so
+ from debian/llvm-X.Y-dev.install.in and install
+ the files conditionally in debian/rules
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Fri, 15 Feb 2019 09:32:35 +0100
+
+llvm-toolchain-snapshot (1:9~svn353106-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Install lldb-instr-X in lldb-X
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 04 Feb 2019 23:44:27 +0100
+
+llvm-toolchain-snapshot (1:9~svn351420-1~exp2) experimental; urgency=medium
+
+ * Remove 'Multi-Arch: same' in libclang
+ (Closes: #874248)
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 04 Feb 2019 23:42:28 +0100
+
+llvm-toolchain-snapshot (1:9~svn351420-1~exp1) experimental; urgency=medium
+
+ * New snapshot release
+ * Fix a typo in the arch declaration
+ * Remove patch D54677-hurd-path_max.diff (applied upstream)
+ * 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
+ - __kmpc_pause_resource (from v9)
+ - omp_pause_resource (from v9)
+ - omp_pause_resource_all (from v9)
+
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Mon, 04 Feb 2019 23:42:20 +0100
+
+llvm-toolchain-snapshot (1:9~svn351375-1~exp1) experimental; urgency=medium
+
+ * New snapshot release and move to 9 as upstream branched
+ * 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> Wed, 16 Jan 2019 21:59:29 +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
+
+ -- Sylvestre Ledru <sylvestre@debian.org> Thu, 29 Aug 2019 09:42:41 +0200
+
+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~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 compatibility.
+ 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 transitional 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
+clang/docs/_build/html/
+
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-doc-default-stylesheet.css
+usr/lib/llvm-@LLVM_VERSION@/share/clang/index.js
+
--- /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
+debian/man/git-clang-format-@LLVM_VERSION@.1
+
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-tidy
+usr/lib/llvm-@LLVM_VERSION@/bin/run-clang-tidy
+usr/lib/llvm-@LLVM_VERSION@/share/clang/clang-tidy-diff.py
+
+usr/bin/clang-tidy-@LLVM_VERSION@
+usr/bin/run-clang-tidy-@LLVM_VERSION@
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/bin/run-clang-tidy usr/bin/run-clang-tidy-@LLVM_VERSION@.py
+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
+debian/man/run-clang-tidy-@LLVM_VERSION@.1
\ No newline at end of file
--- /dev/null
+#!/usr/bin/dh-exec
+
+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/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
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-doc
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-scan-deps
+usr/lib/llvm-@LLVM_VERSION@/bin/pp-trace
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-move
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-offload-wrapper
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-repl
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-nvlink-wrapper
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-linker-wrapper
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-pseudo
+usr/lib/llvm-@LLVM_VERSION@/bin/clang-offload-packager
+
+usr/lib/llvm-@LLVM_VERSION@/bin/analyze-build
+usr/lib/llvm-@LLVM_VERSION@/bin/intercept-build
+usr/lib/llvm-@LLVM_VERSION@/bin/scan-build-py
+usr/lib/llvm-@LLVM_VERSION@/lib/libear/__init__.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libear/config.h.in
+usr/lib/llvm-@LLVM_VERSION@/lib/libear/ear.c
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/__init__.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/analyze.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/arguments.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/clang.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/compilation.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/intercept.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/report.py
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/resources/scanview.css
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/resources/selectable.js
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/resources/sorttable.js
+usr/lib/llvm-@LLVM_VERSION@/lib/libscanbuild/shell.py
+usr/lib/llvm-@LLVM_VERSION@/libexec/analyze-c++
+usr/lib/llvm-@LLVM_VERSION@/libexec/analyze-cc
+usr/lib/llvm-@LLVM_VERSION@/libexec/intercept-c++
+usr/lib/llvm-@LLVM_VERSION@/libexec/intercept-cc
+
+[!armel !armhf !ppc64el !hurd-any !s390x !powerpc !ppc64 !mipsel !mips64el !sparc64 !riscv64] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/bin/hwasan_symbolize
+
+clang/tools/scan-build-@LLVM_VERSION@ usr/share/clang/
+clang/tools/scan-view-@LLVM_VERSION@ usr/share/clang/
+
+usr/bin/scan-build-py-@LLVM_VERSION@
+usr/bin/analyze-build-@LLVM_VERSION@
+usr/bin/intercept-build-@LLVM_VERSION@
+
+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-refactor-@LLVM_VERSION@
+usr/bin/diagtool-@LLVM_VERSION@
+usr/bin/hmaptool-@LLVM_VERSION@
+usr/bin/clang-extdef-mapping-@LLVM_VERSION@
+usr/bin/clang-doc-@LLVM_VERSION@
+usr/bin/clang-scan-deps-@LLVM_VERSION@
+usr/bin/clang-move-@LLVM_VERSION@
+usr/bin/pp-trace-@LLVM_VERSION@
+usr/bin/clang-offload-wrapper-@LLVM_VERSION@
+usr/bin/clang-repl-@LLVM_VERSION@
+usr/bin/clang-nvlink-wrapper-@LLVM_VERSION@
+usr/bin/clang-linker-wrapper-@LLVM_VERSION@
+usr/bin/clang-pseudo-@LLVM_VERSION@
+usr/bin/clang-offload-packager-@LLVM_VERSION@
--- /dev/null
+usr/share/clang/scan-build-@LLVM_VERSION@/bin/scan-build usr/bin/scan-build-@LLVM_VERSION@
+usr/share/clang/scan-view-@LLVM_VERSION@/bin/scan-view usr/bin/scan-view-@LLVM_VERSION@
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/bin/hwasan_symbolize usr/bin/hwasan_symbolize-@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
+debian/man/clang-repl-@LLVM_VERSION@.1
+debian/man/clang-nvlink-wrapper-@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-15
+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 (>= 10.0), cmake, ninja-build,
+ chrpath, texinfo, sharutils,
+ libelf-dev,
+ libffi-dev,
+ lsb-release, patchutils, diffstat, xz-utils, python3-dev,
+ libedit-dev, libncurses5-dev, swig, python3-six, python3-sphinx (>= 1.3.6),
+ binutils-dev,
+ libxml2-dev,
+ libjsoncpp-dev, pkg-config,
+ lcov, procps, help2man, zlib1g-dev,
+ g++-multilib [amd64 i386 kfreebsd-amd64 mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32],
+ libjs-mathjax, python3-recommonmark,
+ doxygen, gfortran,
+ ocaml-base [amd64 arm64 armhf ppc64el riscv64 s390x] | ocaml-nox [amd64 arm64 armhf ppc64el riscv64 s390x],
+ ocaml-findlib [amd64 arm64 armhf ppc64el riscv64 s390x],
+ libctypes-ocaml-dev [amd64 arm64 armhf ppc64el riscv64 s390x],
+ dh-exec, dh-ocaml [amd64 arm64 armhf ppc64el riscv64 s390x],
+ libpfm4-dev [linux-any], python3-setuptools, libz3-dev,
+ llvm-spirv-15 [ amd64 arm64 armel armhf mips64el mipsel ppc64el riscv64 s390x ] <!stage1> |
+ llvm-spirv-14 [ amd64 arm64 armel armhf mips64el mipsel ppc64el riscv64 s390x ] <!stage1> | hello [!i386],
+ spirv-tools [ linux-any ] | hello [ !i386],
+ libcurl4-dev,
+ libgrpc++-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x],
+ protobuf-compiler-grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x],
+ libprotobuf-dev [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x],
+ protobuf-compiler [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x]
+# "| hello" is for older buster/bionic distros without spirv support
+Build-Conflicts: oprofile
+Standards-Version: 4.2.1
+Homepage: https://www.llvm.org/
+Vcs-Git: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain.git -b 15
+Vcs-Browser: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/tree/15
+
+# ------------- clang -------------
+
+Package: clang-15
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
+ ${dep:devlibs-objc}, libclang-common-15-dev (= ${binary:Version}),
+ llvm-15-linker-tools (= ${binary:Version}),
+ libclang1-15 (= ${binary:Version}), libc6-dev, binutils
+Provides: c-compiler, objc-compiler, c++-compiler
+Recommends: llvm-15-dev, python3
+# libomp-15-dev
+Suggests: clang-15-doc, wasi-libc
+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, 14 and 17 standards and also
+ provides most of the support of C++20.
+
+Package: clang-tools-15
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, clang-15 (= ${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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This package contains some clang-based tools like scan-build, clang-cl, etc.
+
+Package: clang-format-15
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
+ libllvm15 (= ${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-15
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
+ libllvm15 (= ${binary:Version}), libclang-common-15-dev,
+ clang-tools-15, 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-15
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends},
+ libclang-common-15-dev (= ${binary:Version})
+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-15-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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This package contains the documentation.
+
+Package: libclang1-15
+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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ 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-15-dev
+Architecture: any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
+ ${dep:devlibs-objc}, libclang1-15 (= ${binary:Version}),
+ libclang-common-15-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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This package contains the Clang headers to develop extensions over
+ libclang1-15.
+
+Package: libclang-common-15-dev
+Architecture: any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm15 (= ${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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This package contains the Clang generic headers and some libraries
+ (profiling, etc).
+
+Package: libclang-cpp15
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm15 (= ${binary:Version})
+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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This package contains the Clang C++ library.
+ .
+ The C++ Interface to Clang provides an 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-cpp15-dev
+Architecture: any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs},
+ libclang-cpp15 (= ${binary:Version})
+# Move of libclang-cpp.so into libclang-cpp15.dev
+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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This package contains the Clang C++ library.
+ .
+ The C++ Interface to Clang provides an 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.
+ .
+ This package contains symlinks without a version number, which needed by
+ linker at build time.
+
+
+Package: libfuzzer-15-dev
+Architecture: linux-any
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, clang-15 (= ${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-15
+Section: python
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3, libclang-15-dev
+Replaces: python-clang-x.y,
+Conflicts: python-clang-x.y
+Provides: python-clang-x.y
+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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This binding package provides access to the Clang compiler and libraries.
+
+Package: clang-15-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, 14 and 17 standards and also
+ provides most of the support of C++20.
+ .
+ This package contains the Clang examples.
+
+# ------------- LLVM -------------
+
+Package: libllvm15
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+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-15-linker-tools
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Modular compiler and toolchain technologies - Plugins
+ 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 LLVMgold and LLVMPolly linker plugins.
+
+Package: llvm-15
+Architecture: any
+Suggests: llvm-15-doc
+Depends: llvm-15-runtime (= ${binary:Version}),
+ llvm-15-linker-tools (= ${binary:Version}),
+ ${shlibs:Depends}, ${misc:Depends}
+Recommends: llvm-15-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 X96, SparcV10, PowerPC or many other architectures.
+
+Package: llvm-15-runtime
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Recommends: binfmt-support | systemd
+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-15-dev
+Architecture: any
+Depends: ${shlibs:Depends}, libffi-dev, ${misc:Depends},
+ llvm-15 (= ${binary:Version}), libllvm15 (= ${binary:Version}), libtinfo-dev,
+ llvm-15-tools (= ${binary:Version}), libclang-cpp15 (= ${binary:Version}),
+ libz3-dev, libxml2-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-15-tools
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, python3,
+ python3-pygments, python3-yaml,
+# Because of yaml-bench
+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-15-ocaml-dev
+Section: ocaml
+Architecture: amd64 arm64 armhf ppc64el s390x riscv64
+Suggests: llvm-15-doc
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-15-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-15-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-15-examples
+Section: doc
+Architecture: all
+Depends: ${misc:Depends}, llvm-15-dev (>= ${source:Version}), llvm-15-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-15
+Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 riscv64
+# ia64 hurd powerpc have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm15 (= ${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-15
+Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 riscv64
+# ia64 hurd powerpc have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm15 (= ${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-15-dev
+Section: libdevel
+Architecture: amd64 arm64 armel armhf i386 mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 riscv64
+# ia64 hurd powerpc have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, lld-15 (= ${binary:Version}),
+ liblld-15 (= ${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-15
+Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm15 (= ${binary:Version}), llvm-15-dev,
+ python3-lldb-15
+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-15
+Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm15 (= ${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: python3-lldb-15
+Section: python
+Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends}, liblldb-15 (= ${binary:Version}), python3-six
+Conflicts: python3-lldb-x.y
+Replaces: python3-lldb-x.y
+Provides: python3-lldb-x.y
+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-15-dev
+Section: libdevel
+Architecture: amd64 arm64 armel armhf i386 ppc64el kfreebsd-amd64 kfreebsd-i386 s390 s390x sparc hppa m68k sh4 x32
+# ia64 hurd powerpc powerpcspe ppc64 alpha riscv64 s390x sparc64 mipsel mips64el have been removed
+Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-15 (= ${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-15-dev
+Section: libdevel
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64
+Depends: libomp5-15 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Suggests: libomp-15-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-15
+Multi-Arch: same
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64
+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-15-doc
+Section: doc
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64
+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-15
+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++-15-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: libc++1-15 (= ${binary:Version}), ${misc:Depends},
+ libunwind-15-dev [amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64]
+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-15
+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-15-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends: libc++abi1-15 (= ${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++
+
+# ------------- libclc -------------
+
+Package: libclc-15
+Section: libs
+Architecture: all
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends},
+ libclc-15-dev (= ${binary:Version}),
+ libclang-common-15-dev,
+Breaks: libclc-amdgcn, libclc-ptx, libclc-r600
+Provides: libclc-x.y
+Conflicts: libclc-x.y
+Replaces: libclc-x.y, libclc-amdgcn, libclc-ptx, libclc-r600,
+Description: OpenCL C language implementation - platform support
+ libclc is an open implementation of the OpenCL C programming language,
+ as specified by the OpenCL 1.1 Specification.
+ .
+ This package contains support for the amdgcn (AMD GPU), PTX and r600
+ platforms.
+
+Package: libclc-15-dev
+Section: libdevel
+Architecture: all
+Multi-Arch: foreign
+Depends:
+ ${misc:Depends},
+Breaks: libclc-dev
+Provides: libclc-x.y-dev
+Conflicts: libclc-x.y-dev
+Replaces: libclc-dev, libclc-x.y-dev
+Description: OpenCL C language implementation - development files
+ libclc is an open implementation of the OpenCL C programming language,
+ as specified by the OpenCL 1.1 Specification.
+ .
+ This package contains development header files.
+
+# ------------- libunwind -------------
+
+Package: libunwind-15
+Section: libs
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64
+Multi-Arch: same
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Provides: libunwind-x.y
+Conflicts: libunwind-x.y
+Replaces: libunwind-x.y
+Description: production-quality unwinder
+ libunwind is a production-quality unwinder, with platform support for DWARF
+ unwind info, SjLj, and ARM EHABI.
+ .
+ The low level libunwind API was designed to work either in-process (aka local)
+ or to operate on another process (aka remote), but only the local path has
+ been implemented. Remote unwinding remains as future work.
+
+Package: libunwind-15-dev
+Section: libdevel
+Architecture: amd64 arm64 armhf i386 mips64el ppc64el ppc64 riscv64
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libunwind-15 (= ${binary:Version})
+Provides: libunwind-dev, libunwind-x.y-dev
+Conflicts: libunwind-dev, libunwind-x.y-dev
+Replaces: libunwind-dev, libunwind-x.y-dev
+Description: production-quality unwinder
+ libunwind is a production-quality unwinder, with platform support for DWARF
+ unwind info, SjLj, and ARM EHABI.
+ .
+ The low level libunwind API was designed to work either in-process (aka local)
+ or to operate on another process (aka remote), but only the local path has
+ been implemented. Remote unwinding remains as future work.
+
+# ------------- mlir -------------
+
+Package: mlir-15-tools
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Multi-Level Intermediate Representation tools
+ Novel approach to building reusable and extensible compiler infrastructure.
+ MLIR aims to address software fragmentation, improve compilation for
+ heterogeneous hardware, significantly reduce the cost of building domain
+ specific compilers, and aid in connecting existing compilers together.
+ .
+ This package provides tools.
+
+Package: libmlir-15
+Section: libs
+Architecture: any
+Multi-Arch: same
+Depends: ${shlibs:Depends},
+ ${misc:Depends}
+Provides: libmlir-x.y
+Conflicts: libmlir-x.y
+Replaces: libmlir-x.y
+Description: Multi-Level Intermediate Representation library
+ Novel approach to building reusable and extensible compiler infrastructure.
+ MLIR aims to address software fragmentation, improve compilation for
+ heterogeneous hardware, significantly reduce the cost of building domain
+ specific compilers, and aid in connecting existing compilers together.
+
+
+Package: libmlir-15-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ ${misc:Depends},
+ libmlir-15 (= ${binary:Version})
+Breaks: libmlir-dev
+Provides: libmlir-x.y-dev
+Conflicts: libmlir-x.y-dev
+Replaces: libmlir-dev, libmlir-x.y-dev
+Description: Multi-Level Intermediate Representation library
+ Novel approach to building reusable and extensible compiler infrastructure.
+ MLIR aims to address software fragmentation, improve compilation for
+ heterogeneous hardware, significantly reduce the cost of building domain
+ specific compilers, and aid in connecting existing compilers together.
+
+
+# ------------- bolt -------------
+
+Package: bolt-15
+Architecture: amd64
+# Disable on arm64 because libbolt_rt_hugify.a isn't generated
+Depends: ${shlibs:Depends}, ${misc:Depends}, libbolt-15-dev (= ${binary:Version}),
+Pre-Depends: ${misc:Pre-Depends}
+Description: Post-link optimizer
+ It achieves the improvements by optimizing application's code layout based on
+ execution profile gathered by sampling profiler.
+
+Package: libbolt-15-dev
+Section: libdevel
+Architecture: amd64
+#arm64
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Post-link optimizer
+ It achieves the improvements by optimizing application's code layout based on
+ execution profile gathered by sampling profiler.
+
--- /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: APACHE-2-LLVM-EXCEPTIONS
+ On Debian systems the full text of the Apache Software License 2.0 can be
+ found in the `/usr/share/common-licenses/Apache-2.0' file.
+ .
+ ---- LLVM Exceptions to the Apache 2.0 License ----
+ .
+ As an exception, if, as a result of your compiling your source code, portions
+ of this Software are embedded into an Object form of such source code, you
+ may redistribute such embedded portions in such Object form without complying
+ with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
+ .
+ In addition, if you combine or link compiled forms of this Software with
+ software that is licensed under the GPLv2 ("Combined Software") and if a
+ court of competent jurisdiction determines that the patent provision (Section
+ 3), the indemnity provision (Section 9) or other Section of the License
+ conflicts with the conditions of the GPLv2, you may retroactively and
+ prospectively choose to deem waived or otherwise exclude such Section(s) of
+ the License, but only in their entirety and only with respect to the Combined
+ Software.
+
+Files: debian/*
+Copyright: 2003-2020 Sylvestre Ledru and others
+License: APACHE-2-LLVM-EXCEPTIONS
+ On Debian systems the full text of the Apache Software License 2.0 can be
+ found in the `/usr/share/common-licenses/Apache-2.0' file.
+ .
+ ---- LLVM Exceptions to the Apache 2.0 License ----
+ .
+ As an exception, if, as a result of your compiling your source code, portions
+ of this Software are embedded into an Object form of such source code, you
+ may redistribute such embedded portions in such Object form without complying
+ with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
+ .
+ In addition, if you combine or link compiled forms of this Software with
+ software that is licensed under the GPLv2 ("Combined Software") and if a
+ court of competent jurisdiction determines that the patent provision (Section
+ 3), the indemnity provision (Section 9) or other Section of the License
+ conflicts with the conditions of the GPLv2, you may retroactively and
+ prospectively choose to deem waived or otherwise exclude such Section(s) of
+ the License, but only in their entirety and only with respect to the Combined
+ Software.
+
+Files: compiler-rt/lib/BlocksRuntime/*
+ lldb/tools/debugserver/source/MacOSX/stack_logging.h
+Copyright: 2008-2010 Apple, Inc.
+License: MIT
+
+Files: llvm/lib/Support/reg*
+Copyright: 1992, 1993, 1994 Henry Spencer
+ 1992, 1993, 1994 The Regents of the University of California
+License: BSD-3-clause
+
+Files: llvm/lib/Support/MD5.cpp llvm/include/llvm/Support/MD5.h
+Copyright: 2001 Alexander Peslyak <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: lldb/third_party/Python/module/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: llvm/llvmtest/YAMLParser/*
+Copyright: 2006 Kirill Simonov
+License: MIT
+
+Files: llvm/utils/unittest/googletest/*
+Copyright: 2006-2008, Google Inc.
+License: BSD-3-Clause
+
+Files: llvm/utils/unittest/googlemock/*
+Copyright: 2008, Google Inc.
+License: BSD-3-Clause
+
+Files: clang/lib/Headers/cuda_wrappers/*
+ clang/lib/Headers/avx512vlvp2intersectintrin.h
+ clang/lib/Headers/avx512vp2intersectintrin.h
+Copyright: 2016-2020, Google Inc.
+ 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.
+
+
+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/bin/dh-exec
+
+[amd64] /usr/lib/llvm-@LLVM_VERSION@/lib/libbolt_rt_hugify.a
+[amd64] /usr/lib/llvm-@LLVM_VERSION@/lib/libbolt_rt_instr.a
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a
+usr/lib/llvm-@LLVM_VERSION@/include/c++/
+usr/lib/llvm-@LLVM_VERSION@/include/c++/v1/
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++experimental.a
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so /usr/lib/@DEB_HOST_MULTIARCH@/libc++.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a /usr/lib/@DEB_HOST_MULTIARCH@/libc++.a
+usr/lib/llvm-@LLVM_VERSION@/include/c++/v1 /usr/include/c++/v1
--- /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++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/bin/dh-exec
+
+usr/lib/llvm-@LLVM_VERSION@/include/clang
+usr/lib/llvm-@LLVM_VERSION@/include/clang-c
+usr/lib/llvm-@LLVM_VERSION@/include/clang-tidy
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang*a
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang-@LLVM_VERSION@*.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libfindAllSymbols.a
+
+# clangd grpc architectures
+#grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] usr/lib/llvm-@LLVM_VERSION@/lib/libclangdRemoteIndexProto.a
+#grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] usr/lib/llvm-@LLVM_VERSION@/lib/libclangdRemoteIndexServiceProto.a
+#grpc [amd64 arm64 armel armhf mips64el mipsel ppc64 ppc64el powerpc riscv64 s390x] usr/lib/llvm-@LLVM_VERSION@/lib/libclangdMonitoringServiceProto.a
--- /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/bin/dh-exec
+
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include
+
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/*.txt
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/share/*.txt
+
+[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/libPolly*.a
--- /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-cpp.so
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp@LLVM_VERSION@.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so /usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp@LLVM_VERSION@.so
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libclang-cpp.so.@LLVM_VERSION@ /usr/lib/@DEB_HOST_MULTIARCH@/libclang-cpp.so.@LLVM_VERSION@
--- /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 libclang-@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.13 libclang1-@LLVM_VERSION@ #MINVER#
+ (optional)LLVM_13@LLVM_13 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getArgText@LLVM_13 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getCommandName@LLVM_13 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getNumArgs@LLVM_13 1:5.0~svn298832-1~
+ clang_BlockCommandComment_getParagraph@LLVM_13 1:5.0~svn298832-1~
+ clang_CXCursorSet_contains@LLVM_13 1:5.0~svn298832-1~
+ clang_CXCursorSet_insert@LLVM_13 1:5.0~svn298832-1~
+ clang_CXIndex_getGlobalOptions@LLVM_13 1:5.0~svn298832-1~
+ clang_CXIndex_setGlobalOptions@LLVM_13 1:5.0~svn298832-1~
+ clang_CXIndex_setInvocationEmissionPathOption@LLVM_13 1:6.0~svn320926-1~
+ clang_CXRewriter_create@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_CXRewriter_dispose@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_CXRewriter_insertTextBefore@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_CXRewriter_overwriteChangedFiles@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_CXRewriter_removeText@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_CXRewriter_replaceText@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_CXRewriter_writeMainFileToStdOut@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_CXXConstructor_isConvertingConstructor@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXConstructor_isCopyConstructor@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXConstructor_isDefaultConstructor@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXConstructor_isMoveConstructor@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXField_isMutable@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXMethod_isConst@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXMethod_isDefaulted@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXMethod_isPureVirtual@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXMethod_isStatic@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXMethod_isVirtual@LLVM_13 1:5.0~svn298832-1~
+ clang_CXXRecord_isAbstract@LLVM_13 1:6.0~svn320926-1~
+ clang_Comment_getChild@LLVM_13 1:5.0~svn298832-1~
+ clang_Comment_getKind@LLVM_13 1:5.0~svn298832-1~
+ clang_Comment_getNumChildren@LLVM_13 1:5.0~svn298832-1~
+ clang_Comment_isWhitespace@LLVM_13 1:5.0~svn298832-1~
+ clang_CompilationDatabase_dispose@LLVM_13 1:5.0~svn298832-1~
+ clang_CompilationDatabase_fromDirectory@LLVM_13 1:5.0~svn298832-1~
+ clang_CompilationDatabase_getAllCompileCommands@LLVM_13 1:5.0~svn298832-1~
+ clang_CompilationDatabase_getCompileCommands@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommand_getArg@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommand_getDirectory@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommand_getFilename@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommand_getMappedSourceContent@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommand_getMappedSourcePath@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommand_getNumArgs@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommand_getNumMappedSources@LLVM_13 1:13.0.0~++20210811042606+b33de5411594-1~
+ clang_CompileCommands_dispose@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommands_getCommand@LLVM_13 1:5.0~svn298832-1~
+ clang_CompileCommands_getSize@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_Evaluate@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getArgument@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getBriefCommentText@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getCXXManglings@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getCommentRange@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getMangling@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getModule@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getNumArguments@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getNumTemplateArguments@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getObjCDeclQualifiers@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getObjCManglings@LLVM_13 1:6.0~svn320926-1~
+ clang_Cursor_getObjCPropertyAttributes@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getObjCPropertyGetterName@LLVM_13 1:8~svn339515-1~
+ clang_Cursor_getObjCPropertySetterName@LLVM_13 1:8~svn339515-1~
+ clang_Cursor_getObjCSelectorIndex@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getOffsetOfField@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getParsedComment@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getRawCommentText@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getReceiverType@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getSpellingNameRange@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getStorageClass@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentKind@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentType@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentUnsignedValue@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getTemplateArgumentValue@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_getVarDeclInitializer@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_Cursor_hasAttrs@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_hasVarDeclExternalStorage@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_Cursor_hasVarDeclGlobalStorage@LLVM_13 1:12~++20200906115111+ff218cbc84f-1~
+ clang_Cursor_isAnonymous@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isAnonymousRecordDecl@LLVM_13 1:9~svn359771-1~
+ clang_Cursor_isBitField@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isDynamicCall@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isExternalSymbol@LLVM_13 1:5.0~+rc1~
+ clang_Cursor_isFunctionInlined@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isInlineNamespace@LLVM_13 1:9~svn360566-1~
+ clang_Cursor_isMacroBuiltin@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isMacroFunctionLike@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isNull@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isObjCOptional@LLVM_13 1:5.0~svn298832-1~
+ clang_Cursor_isVariadic@LLVM_13 1:5.0~svn298832-1~
+ clang_EnumDecl_isScoped@LLVM_13 1:5.0~+rc1~
+ clang_EvalResult_dispose@LLVM_13 1:5.0~svn298832-1~
+ clang_EvalResult_getAsDouble@LLVM_13 1:5.0~svn298832-1~
+ clang_EvalResult_getAsInt@LLVM_13 1:5.0~svn298832-1~
+ clang_EvalResult_getAsLongLong@LLVM_13 1:5.0~svn302377-1~
+ clang_EvalResult_getAsStr@LLVM_13 1:5.0~svn298832-1~
+ clang_EvalResult_getAsUnsigned@LLVM_13 1:5.0~svn302377-1~
+ clang_EvalResult_getKind@LLVM_13 1:5.0~svn298832-1~
+ clang_EvalResult_isUnsignedInt@LLVM_13 1:5.0~svn302377-1~
+ clang_File_isEqual@LLVM_13 1:5.0~svn298832-1~
+ clang_File_tryGetRealPathName@LLVM_13 1:7~svn329516-1~
+ clang_FullComment_getAsHTML@LLVM_13 1:5.0~svn298832-1~
+ clang_FullComment_getAsXML@LLVM_13 1:5.0~svn298832-1~
+ clang_HTMLStartTagComment_isSelfClosing@LLVM_13 1:5.0~svn298832-1~
+ clang_HTMLStartTag_getAttrName@LLVM_13 1:5.0~svn298832-1~
+ clang_HTMLStartTag_getAttrValue@LLVM_13 1:5.0~svn298832-1~
+ clang_HTMLStartTag_getNumAttrs@LLVM_13 1:5.0~svn298832-1~
+ clang_HTMLTagComment_getAsString@LLVM_13 1:5.0~svn298832-1~
+ clang_HTMLTagComment_getTagName@LLVM_13 1:5.0~svn298832-1~
+ clang_IndexAction_create@LLVM_13 1:5.0~svn298832-1~
+ clang_IndexAction_dispose@LLVM_13 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getArgText@LLVM_13 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getCommandName@LLVM_13 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getNumArgs@LLVM_13 1:5.0~svn298832-1~
+ clang_InlineCommandComment_getRenderKind@LLVM_13 1:5.0~svn298832-1~
+ clang_InlineContentComment_hasTrailingNewline@LLVM_13 1:5.0~svn298832-1~
+ clang_Location_isFromMainFile@LLVM_13 1:5.0~svn298832-1~
+ clang_Location_isInSystemHeader@LLVM_13 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_create@LLVM_13 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_dispose@LLVM_13 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_setFrameworkModuleName@LLVM_13 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_setUmbrellaHeader@LLVM_13 1:5.0~svn298832-1~
+ clang_ModuleMapDescriptor_writeToBuffer@LLVM_13 1:5.0~svn298832-1~
+ clang_Module_getASTFile@LLVM_13 1:5.0~svn298832-1~
+ clang_Module_getFullName@LLVM_13 1:5.0~svn298832-1~
+ clang_Module_getName@LLVM_13 1:5.0~svn298832-1~
+ clang_Module_getNumTopLevelHeaders@LLVM_13 1:5.0~svn298832-1~
+ clang_Module_getParent@LLVM_13 1:5.0~svn298832-1~
+ clang_Module_getTopLevelHeader@LLVM_13 1:5.0~svn298832-1~
+ clang_Module_isSystem@LLVM_13 1:5.0~svn298832-1~
+ clang_ParamCommandComment_getDirection@LLVM_13 1:5.0~svn298832-1~
+ clang_ParamCommandComment_getParamIndex@LLVM_13 1:5.0~svn298832-1~
+ clang_ParamCommandComment_getParamName@LLVM_13 1:5.0~svn298832-1~
+ clang_ParamCommandComment_isDirectionExplicit@LLVM_13 1:5.0~svn298832-1~
+ clang_ParamCommandComment_isParamIndexValid@LLVM_13 1:5.0~svn298832-1~
+ clang_PrintingPolicy_dispose@LLVM_13 1:7~svn324835-1~
+ clang_PrintingPolicy_getProperty@LLVM_13 1:7~svn324835-1~
+ clang_PrintingPolicy_setProperty@LLVM_13 1:7~svn324835-1~
+ clang_Range_isNull@LLVM_13 1:5.0~svn298832-1~
+ clang_TParamCommandComment_getDepth@LLVM_13 1:5.0~svn298832-1~
+ clang_TParamCommandComment_getIndex@LLVM_13 1:5.0~svn298832-1~
+ clang_TParamCommandComment_getParamName@LLVM_13 1:5.0~svn298832-1~
+ clang_TParamCommandComment_isParamPositionValid@LLVM_13 1:5.0~svn298832-1~
+ clang_TargetInfo_dispose@LLVM_13 1:5.0~svn302377-1~
+ clang_TargetInfo_getPointerWidth@LLVM_13 1:5.0~svn302377-1~
+ clang_TargetInfo_getTriple@LLVM_13 1:5.0~svn302377-1~
+ clang_TextComment_getText@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getAlignOf@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getCXXRefQualifier@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getClassType@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getModifiedType@LLVM_13 1:8~svn339515-1~
+ clang_Type_getNamedType@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getNullability@LLVM_13 1:8~svn339515-1~
+ clang_Type_getNumObjCProtocolRefs@LLVM_13 1:8~svn339515-1~
+ clang_Type_getNumObjCTypeArgs@LLVM_13 1:8~svn339515-1~
+ clang_Type_getNumTemplateArguments@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getObjCEncoding@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getObjCObjectBaseType@LLVM_13 1:8~svn339515-1~
+ clang_Type_getObjCProtocolDecl@LLVM_13 1:8~svn339515-1~
+ clang_Type_getObjCTypeArg@LLVM_13 1:8~svn339515-1~
+ clang_Type_getOffsetOf@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getSizeOf@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getTemplateArgumentAsType@LLVM_13 1:5.0~svn298832-1~
+ clang_Type_getValueType@LLVM_13 1:13~++20200417041528+cc0ec3fdb9d-1~
+ clang_Type_isTransparentTagTypedef@LLVM_13 1:5.0~svn302377-1~
+ clang_Type_visitFields@LLVM_13 1:5.0~svn298832-1~
+ clang_VerbatimBlockLineComment_getText@LLVM_13 1:5.0~svn298832-1~
+ clang_VerbatimLineComment_getText@LLVM_13 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_addFileMapping@LLVM_13 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_create@LLVM_13 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_dispose@LLVM_13 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_setCaseSensitivity@LLVM_13 1:5.0~svn298832-1~
+ clang_VirtualFileOverlay_writeToBuffer@LLVM_13 1:5.0~svn298832-1~
+ clang_annotateTokens@LLVM_13 1:5.0~svn298832-1~
+ clang_codeCompleteAt@LLVM_13 1:5.0~svn298832-1~
+ clang_codeCompleteGetContainerKind@LLVM_13 1:5.0~svn298832-1~
+ clang_codeCompleteGetContainerUSR@LLVM_13 1:5.0~svn298832-1~
+ clang_codeCompleteGetContexts@LLVM_13 1:5.0~svn298832-1~
+ clang_codeCompleteGetDiagnostic@LLVM_13 1:5.0~svn298832-1~
+ clang_codeCompleteGetNumDiagnostics@LLVM_13 1:5.0~svn298832-1~
+ clang_codeCompleteGetObjCSelector@LLVM_13 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCCategory@LLVM_13 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCClass@LLVM_13 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCIvar@LLVM_13 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCMethod@LLVM_13 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCProperty@LLVM_13 1:5.0~svn298832-1~
+ clang_constructUSR_ObjCProtocol@LLVM_13 1:5.0~svn298832-1~
+ clang_createCXCursorSet@LLVM_13 1:5.0~svn298832-1~
+ clang_createIndex@LLVM_13 1:5.0~svn298832-1~
+ clang_createTranslationUnit2@LLVM_13 1:5.0~svn298832-1~
+ clang_createTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_createTranslationUnitFromSourceFile@LLVM_13 1:5.0~svn298832-1~
+ clang_defaultCodeCompleteOptions@LLVM_13 1:5.0~svn298832-1~
+ clang_defaultDiagnosticDisplayOptions@LLVM_13 1:5.0~svn298832-1~
+ clang_defaultEditingTranslationUnitOptions@LLVM_13 1:5.0~svn298832-1~
+ clang_defaultReparseOptions@LLVM_13 1:5.0~svn298832-1~
+ clang_defaultSaveOptions@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeCXCursorSet@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeCXPlatformAvailability@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeCXTUResourceUsage@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeCodeCompleteResults@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeDiagnostic@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeDiagnosticSet@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeIndex@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeOverriddenCursors@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeSourceRangeList@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeString@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeStringSet@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeTokens@LLVM_13 1:5.0~svn298832-1~
+ clang_disposeTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_enableStackTraces@LLVM_13 1:5.0~svn298832-1~
+ clang_equalCursors@LLVM_13 1:5.0~svn298832-1~
+ clang_equalLocations@LLVM_13 1:5.0~svn298832-1~
+ clang_equalRanges@LLVM_13 1:5.0~svn298832-1~
+ clang_equalTypes@LLVM_13 1:5.0~svn298832-1~
+ clang_executeOnThread@LLVM_13 1:5.0~svn298832-1~
+ clang_findIncludesInFile@LLVM_13 1:5.0~svn298832-1~
+ clang_findIncludesInFileWithBlock@LLVM_13 1:5.0~svn298832-1~
+ clang_findReferencesInFile@LLVM_13 1:5.0~svn298832-1~
+ clang_findReferencesInFileWithBlock@LLVM_13 1:5.0~svn298832-1~
+ clang_formatDiagnostic@LLVM_13 1:5.0~svn298832-1~
+ clang_free@LLVM_13 1:5.0~svn298832-1~
+ clang_getAddressSpace@LLVM_13 1:5.0~+rc1~
+ clang_getAllSkippedRanges@LLVM_13 1:5.0~svn302377-1~
+ clang_getArgType@LLVM_13 1:5.0~svn298832-1~
+ clang_getArrayElementType@LLVM_13 1:5.0~svn298832-1~
+ clang_getArraySize@LLVM_13 1:5.0~svn298832-1~
+ clang_getBuildSessionTimestamp@LLVM_13 1:5.0~svn298832-1~
+ clang_getCString@LLVM_13 1:5.0~svn298832-1~
+ clang_getCXTUResourceUsage@LLVM_13 1:5.0~svn298832-1~
+ clang_getCXXAccessSpecifier@LLVM_13 1:5.0~svn298832-1~
+ clang_getCanonicalCursor@LLVM_13 1:5.0~svn298832-1~
+ clang_getCanonicalType@LLVM_13 1:5.0~svn298832-1~
+ clang_getChildDiagnostics@LLVM_13 1:5.0~svn298832-1~
+ clang_getClangVersion@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionAnnotation@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionAvailability@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionBriefComment@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionChunkCompletionString@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionChunkKind@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionChunkText@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionFixIt@LLVM_13 1:7~svn334604-1~
+ clang_getCompletionNumAnnotations@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionNumFixIts@LLVM_13 1:7~svn334604-1~+0~
+ clang_getCompletionParent@LLVM_13 1:5.0~svn298832-1~
+ clang_getCompletionPriority@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursor@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorAvailability@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorCompletionString@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorDefinition@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorDisplayName@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorExceptionSpecificationType@LLVM_13 1:5.0~+rc1~
+ clang_getCursorExtent@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorKind@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorKindSpelling@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorLanguage@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorLexicalParent@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorLinkage@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorPlatformAvailability@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorPrettyPrinted@LLVM_13 1:7~svn324835-1~
+ clang_getCursorPrintingPolicy@LLVM_13 1:7~svn324835-1~
+ clang_getCursorReferenceNameRange@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorReferenced@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorResultType@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorSemanticParent@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorSpelling@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorTLSKind@LLVM_13 1:6.0~svn320926-1~
+ clang_getCursorType@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorUSR@LLVM_13 1:5.0~svn298832-1~
+ clang_getCursorVisibility@LLVM_13 1:5.0~svn298832-1~
+ clang_getDeclObjCTypeEncoding@LLVM_13 1:5.0~svn298832-1~
+ clang_getDefinitionSpellingAndExtent@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnostic@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticCategory@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticCategoryName@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticCategoryText@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticFixIt@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticInSet@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticNumFixIts@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticNumRanges@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticOption@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticRange@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticSetFromTU@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticSeverity@LLVM_13 1:5.0~svn298832-1~
+ clang_getDiagnosticSpelling@LLVM_13 1:5.0~svn298832-1~
+ clang_getElementType@LLVM_13 1:5.0~svn298832-1~
+ clang_getEnumConstantDeclUnsignedValue@LLVM_13 1:5.0~svn298832-1~
+ clang_getEnumConstantDeclValue@LLVM_13 1:5.0~svn298832-1~
+ clang_getEnumDeclIntegerType@LLVM_13 1:5.0~svn298832-1~
+ clang_getExceptionSpecificationType@LLVM_13 1:5.0~+rc1~
+ clang_getExpansionLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getFieldDeclBitWidth@LLVM_13 1:5.0~svn298832-1~
+ clang_getFile@LLVM_13 1:5.0~svn298832-1~
+ clang_getFileContents@LLVM_13 1:6.0~svn321745-1~
+ clang_getFileLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getFileName@LLVM_13 1:5.0~svn298832-1~
+ clang_getFileTime@LLVM_13 1:5.0~svn298832-1~
+ clang_getFileUniqueID@LLVM_13 1:5.0~svn298832-1~
+ clang_getFunctionTypeCallingConv@LLVM_13 1:5.0~svn298832-1~
+ clang_getIBOutletCollectionType@LLVM_13 1:5.0~svn298832-1~
+ clang_getIncludedFile@LLVM_13 1:5.0~svn298832-1~
+ clang_getInclusions@LLVM_13 1:5.0~svn298832-1~
+ clang_getInstantiationLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getLocationForOffset@LLVM_13 1:5.0~svn298832-1~
+ clang_getModuleForFile@LLVM_13 1:5.0~svn298832-1~
+ clang_getNullCursor@LLVM_13 1:5.0~svn298832-1~
+ clang_getNullLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getNullRange@LLVM_13 1:5.0~svn298832-1~
+ clang_getNumArgTypes@LLVM_13 1:5.0~svn298832-1~
+ clang_getNumCompletionChunks@LLVM_13 1:5.0~svn298832-1~
+ clang_getNumDiagnostics@LLVM_13 1:5.0~svn298832-1~
+ clang_getNumDiagnosticsInSet@LLVM_13 1:5.0~svn298832-1~
+ clang_getNumElements@LLVM_13 1:5.0~svn298832-1~
+ clang_getNumOverloadedDecls@LLVM_13 1:5.0~svn298832-1~
+ clang_getOverloadedDecl@LLVM_13 1:5.0~svn298832-1~
+ clang_getOverriddenCursors@LLVM_13 1:5.0~svn298832-1~
+ clang_getPointeeType@LLVM_13 1:5.0~svn298832-1~
+ clang_getPresumedLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getRange@LLVM_13 1:5.0~svn298832-1~
+ clang_getRangeEnd@LLVM_13 1:5.0~svn298832-1~
+ clang_getRangeStart@LLVM_13 1:5.0~svn298832-1~
+ clang_getRemappings@LLVM_13 1:5.0~svn298832-1~
+ clang_getRemappingsFromFileList@LLVM_13 1:5.0~svn298832-1~
+ clang_getResultType@LLVM_13 1:5.0~svn298832-1~
+ clang_getSkippedRanges@LLVM_13 1:5.0~svn298832-1~
+ clang_getSpecializedCursorTemplate@LLVM_13 1:5.0~svn298832-1~
+ clang_getSpellingLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getTUResourceUsageName@LLVM_13 1:5.0~svn298832-1~
+ clang_getTemplateCursorKind@LLVM_13 1:5.0~svn298832-1~
+ clang_getToken@LLVM_13 1:7~svn334604-1~
+ clang_getTokenExtent@LLVM_13 1:5.0~svn298832-1~
+ clang_getTokenKind@LLVM_13 1:5.0~svn298832-1~
+ clang_getTokenLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_getTokenSpelling@LLVM_13 1:5.0~svn298832-1~
+ clang_getTranslationUnitCursor@LLVM_13 1:5.0~svn298832-1~
+ clang_getTranslationUnitSpelling@LLVM_13 1:5.0~svn298832-1~
+ clang_getTranslationUnitTargetInfo@LLVM_13 1:5.0~svn302377-1~
+ clang_getTypeDeclaration@LLVM_13 1:5.0~svn298832-1~
+ clang_getTypeKindSpelling@LLVM_13 1:5.0~svn298832-1~
+ clang_getTypeSpelling@LLVM_13 1:5.0~svn298832-1~
+ clang_getTypedefDeclUnderlyingType@LLVM_13 1:5.0~svn298832-1~
+ clang_getTypedefName@LLVM_13 1:5.0~+rc1~
+ clang_hashCursor@LLVM_13 1:5.0~svn298832-1~
+ clang_indexLoc_getCXSourceLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_indexLoc_getFileLocation@LLVM_13 1:5.0~svn298832-1~
+ clang_indexSourceFile@LLVM_13 1:5.0~svn298832-1~
+ clang_indexSourceFileFullArgv@LLVM_13 1:5.0~svn298832-1~
+ clang_indexTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getCXXClassDeclInfo@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getClientContainer@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getClientEntity@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getIBOutletCollectionAttrInfo@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getObjCCategoryDeclInfo@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getObjCContainerDeclInfo@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getObjCInterfaceDeclInfo@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getObjCPropertyDeclInfo@LLVM_13 1:5.0~svn298832-1~
+ clang_index_getObjCProtocolRefListInfo@LLVM_13 1:5.0~svn298832-1~
+ clang_index_isEntityObjCContainerKind@LLVM_13 1:5.0~svn298832-1~
+ clang_index_setClientContainer@LLVM_13 1:5.0~svn298832-1~
+ clang_index_setClientEntity@LLVM_13 1:5.0~svn298832-1~
+ clang_install_aborting_llvm_fatal_error_handler@LLVM_13 1:10~svn371796-1~
+ clang_isAttribute@LLVM_13 1:5.0~svn298832-1~
+ clang_isConstQualifiedType@LLVM_13 1:5.0~svn298832-1~
+ clang_isCursorDefinition@LLVM_13 1:5.0~svn298832-1~
+ clang_isDeclaration@LLVM_13 1:5.0~svn298832-1~
+ clang_isExpression@LLVM_13 1:5.0~svn298832-1~
+ clang_isFileMultipleIncludeGuarded@LLVM_13 1:5.0~svn298832-1~
+ clang_isFunctionTypeVariadic@LLVM_13 1:5.0~svn298832-1~
+ clang_isInvalid@LLVM_13 1:5.0~svn298832-1~
+ clang_isInvalidDeclaration@LLVM_13 1:7~svn321385-1~
+ clang_isPODType@LLVM_13 1:5.0~svn298832-1~
+ clang_isPreprocessing@LLVM_13 1:5.0~svn298832-1~
+ clang_isReference@LLVM_13 1:5.0~svn298832-1~
+ clang_isRestrictQualifiedType@LLVM_13 1:5.0~svn298832-1~
+ clang_isStatement@LLVM_13 1:5.0~svn298832-1~
+ clang_isTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_isUnexposed@LLVM_13 1:5.0~svn298832-1~
+ clang_isVirtualBase@LLVM_13 1:5.0~svn298832-1~
+ clang_isVolatileQualifiedType@LLVM_13 1:5.0~svn298832-1~
+ clang_loadDiagnostics@LLVM_13 1:5.0~svn298832-1~
+ clang_parseTranslationUnit2@LLVM_13 1:5.0~svn298832-1~
+ clang_parseTranslationUnit2FullArgv@LLVM_13 1:5.0~svn298832-1~
+ clang_parseTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_remap_dispose@LLVM_13 1:5.0~svn298832-1~
+ clang_remap_getFilenames@LLVM_13 1:5.0~svn298832-1~
+ clang_remap_getNumFiles@LLVM_13 1:5.0~svn298832-1~
+ clang_reparseTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_saveTranslationUnit@LLVM_13 1:5.0~svn298832-1~
+ clang_sortCodeCompletionResults@LLVM_13 1:5.0~svn298832-1~
+ clang_suspendTranslationUnit@LLVM_13 1:5.0~+rc1~
+ clang_toggleCrashRecovery@LLVM_13 1:5.0~svn298832-1~
+ clang_tokenize@LLVM_13 1:5.0~svn298832-1~
+ clang_uninstall_llvm_fatal_error_handler@LLVM_13 1:10~svn371796-1~
+ clang_visitChildren@LLVM_13 1:5.0~svn298832-1~
+ clang_visitChildrenWithBlock@LLVM_13 1:5.0~svn298832-1~
--- /dev/null
+usr/include/clc
+usr/lib/pkgconfig/libclc.pc
+libclc/check_external_calls.sh usr/lib/llvm-@LLVM_VERSION@/share/libclc
--- /dev/null
+usr/lib/clc/*.bc
+#spv usr/lib/clc/*.spv
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/include/lld
+usr/lib/llvm-@LLVM_VERSION@/lib/cmake/lld/*.cmake
--- /dev/null
+#usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/
+usr/lib/llvm-@LLVM_VERSION@/lib/liblldELF.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/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/
+usr/lib/llvm-@LLVM_VERSION@/share/doc/LLVM/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/mlir-c/
+usr/lib/llvm-@LLVM_VERSION@/include/mlir/
+usr/lib/llvm-@LLVM_VERSION@/lib/cmake/mlir/
+
+usr/lib/llvm-@LLVM_VERSION@/lib/libMLIR.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libMLIR*.a
+usr/lib/llvm-@LLVM_VERSION@/lib/libmlir*.so
--- /dev/null
+libmlir-@LLVM_VERSION@-dev: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/*
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libMLIR.so.*
+usr/lib/llvm-@LLVM_VERSION@/lib/libmlir*.so.*
--- /dev/null
+libmlir-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/*
--- /dev/null
+#!/usr/bin/dh-exec
+
+/usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include/omp*.h
+[!armhf !mips64el !mipsel] /usr/lib/llvm-@LLVM_VERSION@/include/ompt-multiplex.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
+[!armhf !mips64el] /usr/lib/llvm-@LLVM_VERSION@/lib/libarcher_static.a
+[!armhf !mips64el] /usr/lib/llvm-@LLVM_VERSION@/lib/libarcher.so
+
+[amd64 ppc64el arm64 mips64el ppc64 riscv64] /usr/lib/llvm-@LLVM_VERSION@/lib/libomptarget.devicertl.a
+
+[amd64 ppc64el arm64 mips64el ppc64 riscv64] /usr/lib/llvm-@LLVM_VERSION@/lib/libomptarget-*.bc
+
+usr/lib/llvm-@LLVM_VERSION@/lib/cmake/openmp/*.cmake
+
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-omp-device-info
+usr/bin/llvm-omp-device-info-@LLVM_VERSION@
--- /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
+usr/lib/llvm-@LLVM_VERSION@/lib/libomptarget*.so.@LLVM_VERSION@
--- /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_5.0.1@GOMP_5.0.1 14
+ GOMP_5.0@GOMP_5.0 11
+ GOMP_alloc@GOMP_5.0.1 14
+ GOMP_alloc@VERSION 14
+ 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_free@GOMP_5.0.1 14
+ GOMP_free@VERSION 14
+ 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_start@GOMP_5.0 13
+ GOMP_loop_doacross_start@VERSION 13
+ 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_maybe_nonmonotonic_runtime_next@GOMP_5.0 11
+ GOMP_loop_maybe_nonmonotonic_runtime_next@VERSION 11
+ GOMP_loop_maybe_nonmonotonic_runtime_start@GOMP_5.0 11
+ GOMP_loop_maybe_nonmonotonic_runtime_start@VERSION 11
+ GOMP_loop_nonmonotonic_dynamic_next@GOMP_4.5 10
+ GOMP_loop_nonmonotonic_dynamic_next@VERSION 10
+ GOMP_loop_nonmonotonic_dynamic_start@GOMP_4.5 10
+ GOMP_loop_nonmonotonic_dynamic_start@VERSION 10
+ GOMP_loop_nonmonotonic_guided_next@GOMP_4.5 10
+ GOMP_loop_nonmonotonic_guided_next@VERSION 10
+ GOMP_loop_nonmonotonic_guided_start@GOMP_4.5 10
+ GOMP_loop_nonmonotonic_guided_start@VERSION 10
+ GOMP_loop_nonmonotonic_runtime_next@GOMP_5.0 11
+ GOMP_loop_nonmonotonic_runtime_next@VERSION 11
+ GOMP_loop_nonmonotonic_runtime_start@GOMP_5.0 11
+ GOMP_loop_nonmonotonic_runtime_start@VERSION 11
+ 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_start@GOMP_5.0 13
+ GOMP_loop_ordered_start@VERSION 13
+ 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_start@GOMP_5.0 13
+ GOMP_loop_start@VERSION 13
+ 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_start@GOMP_5.0 13
+ GOMP_loop_ull_doacross_start@VERSION 13
+ 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_maybe_nonmonotonic_runtime_next@GOMP_5.0 11
+ GOMP_loop_ull_maybe_nonmonotonic_runtime_next@VERSION 11
+ GOMP_loop_ull_maybe_nonmonotonic_runtime_start@GOMP_5.0 11
+ GOMP_loop_ull_maybe_nonmonotonic_runtime_start@VERSION 11
+ GOMP_loop_ull_nonmonotonic_dynamic_next@GOMP_4.5 10
+ GOMP_loop_ull_nonmonotonic_dynamic_next@VERSION 10
+ GOMP_loop_ull_nonmonotonic_dynamic_start@GOMP_4.5 10
+ GOMP_loop_ull_nonmonotonic_dynamic_start@VERSION 10
+ GOMP_loop_ull_nonmonotonic_guided_next@GOMP_4.5 10
+ GOMP_loop_ull_nonmonotonic_guided_next@VERSION 10
+ GOMP_loop_ull_nonmonotonic_guided_start@GOMP_4.5 10
+ GOMP_loop_ull_nonmonotonic_guided_start@VERSION 10
+ GOMP_loop_ull_nonmonotonic_runtime_next@GOMP_5.0 11
+ GOMP_loop_ull_nonmonotonic_runtime_next@VERSION 11
+ GOMP_loop_ull_nonmonotonic_runtime_start@GOMP_5.0 11
+ GOMP_loop_ull_nonmonotonic_runtime_start@VERSION 11
+ 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_start@GOMP_5.0 13
+ GOMP_loop_ull_ordered_start@VERSION 13
+ 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_start@GOMP_5.0 13
+ GOMP_loop_ull_start@VERSION 13
+ 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_maybe_nonmonotonic_runtime@GOMP_5.0 11
+ GOMP_parallel_loop_maybe_nonmonotonic_runtime@VERSION 11
+ GOMP_parallel_loop_nonmonotonic_dynamic@GOMP_4.5 10
+ GOMP_parallel_loop_nonmonotonic_dynamic@VERSION 10
+ GOMP_parallel_loop_nonmonotonic_guided@GOMP_4.5 10
+ GOMP_parallel_loop_nonmonotonic_guided@VERSION 10
+ GOMP_parallel_loop_nonmonotonic_runtime@GOMP_5.0 11
+ GOMP_parallel_loop_nonmonotonic_runtime@VERSION 11
+ 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_reductions@GOMP_5.0 13
+ GOMP_parallel_reductions@VERSION 13
+ 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_sections2_start@GOMP_5.0 13
+ GOMP_sections2_start@VERSION 13
+ 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_task_reduction_remap@GOMP_5.0 13
+ GOMP_task_reduction_remap@VERSION 13
+ GOMP_taskgroup_end@GOMP_4.0 0.20140926
+ GOMP_taskgroup_end@VERSION 0.20140926
+ GOMP_taskgroup_reduction_register@GOMP_5.0 13
+ GOMP_taskgroup_reduction_register@VERSION 13
+ GOMP_taskgroup_reduction_unregister@GOMP_5.0 13
+ GOMP_taskgroup_reduction_unregister@VERSION 13
+ 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_taskwait_depend@GOMP_5.0 12
+ GOMP_taskwait_depend@VERSION 12
+ GOMP_taskyield@GOMP_3.0 0.20131209
+ GOMP_taskyield@VERSION 0.20131209
+ GOMP_teams@GOMP_4.0 0.20140926
+ GOMP_teams@VERSION 0.20140926
+ GOMP_teams_reg@GOMP_5.0 12
+ GOMP_teams_reg@VERSION 12
+ GOMP_workshare_task_reduction_unregister@GOMP_5.0 13
+ GOMP_workshare_task_reduction_unregister@VERSION 13
+ 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_5.0@OMP_5.0 13
+ 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
+ __kmp_reap_worker@VERSION 0.20130715
+ __kmp_release_64@VERSION 0.20140926
+ __kmp_thread_pool@VERSION 0.20130412
+ __kmp_wait_4@VERSION 9
+ __kmp_wait_64@VERSION 0.20140926
+ __kmpc_aligned_alloc@VERSION 14
+ __kmpc_alloc@VERSION 8
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_10@VERSION 0.20130412
+ __kmpc_atomic_16@VERSION 0.20130412
+ __kmpc_atomic_1@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_1_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_1_cas_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_2_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_2_cas_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_4_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_4_cas_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_8_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_bool_8_cas_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_add_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_div_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_div_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_div_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_mul_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_rd@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_sub_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_sub_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_sub_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx10_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_cmplx4_div_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx4_div_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_cmplx4_mul_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_cmplx4_sub_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx4_sub_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx4_sub_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx4_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx4_wr@VERSION 0.20130412
+ __kmpc_atomic_cmplx8_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_cmplx8_div_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx8_div_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_cmplx8_mul_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx8_rd@VERSION 0.20130412
+ __kmpc_atomic_cmplx8_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx8_sub_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx8_sub_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx8_sub_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx8_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_cmplx8_wr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed1_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed1_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed1_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed1_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed1_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_fixed1_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed1_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed1_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed1_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed1_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed1u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed1u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed2_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed2_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed2_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed2_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed2_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_fixed2_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed2_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed2_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed2_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed2_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed2u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed2u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed4_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed4_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed4_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed4_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed4_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_fixed4_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed4_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed4_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed4_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed4_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed4u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed4u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed8_orl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed8_rd@VERSION 0.20130412
+ __kmpc_atomic_fixed8_shl@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed8_shl_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed8_shl_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_fixed8_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed8_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed8_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed8_wr@VERSION 0.20130412
+ __kmpc_atomic_fixed8_xor@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_fixed8u_shr_cpt@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_fixed8u_shr_cpt_rev@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_div@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_max@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_max_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_min@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_min_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_mul@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__kmpc_atomic_float10_rd@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float10_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_float10_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_float4_rd@VERSION 0.20130412
+ __kmpc_atomic_float4_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_float4_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float4_wr@VERSION 0.20130412
+ __kmpc_atomic_float8_add@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_float8_rd@VERSION 0.20130412
+ __kmpc_atomic_float8_sub@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__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 !riscv64)__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 !riscv64)__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 !riscv64)__kmpc_atomic_float8_swp@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_float8_wr@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_start@VERSION 0.20130412
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_1_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_1_cas_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_2_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_2_cas_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_4_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_4_cas_cpt@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_8_cas@VERSION 14
+ (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !arm64 !armel !armhf !riscv64)__kmpc_atomic_val_8_cas_cpt@VERSION 14
+ __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_calloc@VERSION 12
+ __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_allocator@VERSION 9
+ __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_masked@VERSION 13
+ __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_scope@VERSION 14
+ __kmpc_end_serialized_parallel@VERSION 0.20130412
+ __kmpc_end_single@VERSION 0.20130412
+ __kmpc_end_taskgroup@VERSION 0.20130412
+ __kmpc_error@VERSION 13
+ __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_allocator@VERSION 9
+ __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_masked@VERSION 13
+ __kmpc_master@VERSION 0.20130412
+ __kmpc_ok_to_fork@VERSION 0.20130412
+ __kmpc_omp_reg_task_with_affinity@VERSION 8
+ __kmpc_omp_target_task_alloc@VERSION 9
+ __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_pause_resource@VERSION 9
+ __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_teams_51@VERSION 13
+ __kmpc_push_num_threads@VERSION 0.20130412
+ __kmpc_push_proc_bind@VERSION 0.20130412
+ __kmpc_realloc@VERSION 12
+ __kmpc_reduce@VERSION 0.20130412
+ __kmpc_reduce_nowait@VERSION 0.20130412
+ __kmpc_scope@VERSION 14
+ __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_allow_completion_event@VERSION 9
+ __kmpc_task_reduction_get_th_data@VERSION 5.0
+ __kmpc_task_reduction_init@VERSION 5.0
+ __kmpc_task_reduction_modifier_fini@VERSION 9
+ __kmpc_task_reduction_modifier_init@VERSION 9
+ __kmpc_taskgroup@VERSION 0.20130412
+ __kmpc_taskloop@VERSION 3.9.0
+ __kmpc_taskloop_5@VERSION 12
+ __kmpc_taskred_init@VERSION 9
+ __kmpc_taskred_modifier_init@VERSION 9
+ __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
+ kmp_max_mem_alloc@VERSION 9
+ (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
+#MISSING: 14# (arch=!mips !mipsel !ppc64 !ppc64el !mips64 !mips64el !armel !armhf)libomp_start_tool@VERSION 14
+ omp_aligned_alloc@VERSION 14
+ omp_aligned_calloc@VERSION 14
+ omp_alloc@VERSION 8
+ omp_calloc@VERSION 12
+ omp_capture_affinity@OMP_5.0 13
+ omp_capture_affinity@VERSION 8
+ omp_capture_affinity_@OMP_5.0 13
+ omp_capture_affinity_@VERSION 8
+ omp_cgroup_mem_alloc@VERSION 8
+ omp_const_mem_alloc@VERSION 8
+ omp_const_mem_space@VERSION 9
+ omp_control_tool@VERSION 6.0
+ omp_control_tool_@VERSION 8
+ omp_default_mem_alloc@VERSION 8
+ omp_default_mem_space@VERSION 9
+ omp_destroy_allocator@VERSION 9
+ omp_destroy_allocator_@VERSION 9
+ 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@OMP_5.0 13
+ omp_display_affinity@VERSION 8
+ omp_display_affinity_@OMP_5.0 13
+ omp_display_affinity_@VERSION 8
+ omp_display_env@VERSION 11
+ omp_display_env_@VERSION 11
+ omp_free@VERSION 8
+ omp_fulfill_event@VERSION 9
+ omp_fulfill_event_@VERSION 9
+ 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@OMP_5.0 13
+ omp_get_affinity_format@VERSION 8
+ omp_get_affinity_format_@OMP_5.0 13
+ 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@OMP_4.5 13
+ omp_get_initial_device@VERSION 8
+ omp_get_initial_device_@OMP_4.5 13
+ 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_teams@VERSION 13
+ omp_get_max_teams_@VERSION 13
+ 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_supported_active_levels@VERSION 9
+ omp_get_supported_active_levels_@VERSION 9
+ 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_teams_thread_limit@VERSION 13
+ omp_get_teams_thread_limit_@VERSION 13
+ 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_high_bw_mem_space@VERSION 9
+ 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_allocator@VERSION 9
+ omp_init_allocator_@VERSION 9
+ 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_large_cap_mem_space@VERSION 9
+ omp_low_lat_mem_alloc@VERSION 8
+ omp_low_lat_mem_space@VERSION 9
+ omp_null_allocator@VERSION 9
+ omp_pause_resource@OMP_5.0 13
+ omp_pause_resource@VERSION 9
+ omp_pause_resource_@OMP_5.0 13
+ omp_pause_resource_@VERSION 9
+ omp_pause_resource_all@OMP_5.0 13
+ omp_pause_resource_all@VERSION 9
+ omp_pause_resource_all_@OMP_5.0 13
+ omp_pause_resource_all_@VERSION 9
+ omp_pteam_mem_alloc@VERSION 8
+ omp_realloc@VERSION 12
+ omp_set_affinity_format@OMP_5.0 13
+ omp_set_affinity_format@VERSION 8
+ omp_set_affinity_format_@OMP_5.0 13
+ 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_teams@VERSION 13
+ omp_set_num_teams_@VERSION 13
+ 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
+ omp_set_teams_thread_limit@VERSION 13
+ omp_set_teams_thread_limit_@VERSION 13
+#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@/lib/libunwind.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libunwind.a
+usr/include/libunwind
+
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libunwind.so /usr/lib/@DEB_HOST_MULTIARCH@/libunwind.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libunwind.a /usr/lib/@DEB_HOST_MULTIARCH@/libunwind.a
--- /dev/null
+libunwind-@LLVM_VERSION@-dev: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libunwind.a
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libunwind.so.*
--- /dev/null
+usr/lib/llvm-@LLVM_VERSION@/lib/libunwind.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libunwind.so.1.0
+usr/lib/@DEB_HOST_MULTIARCH@/libunwind.so.1.0 /usr/lib/@DEB_HOST_MULTIARCH@/libunwind.so.1
--- /dev/null
+libunwind-@LLVM_VERSION@: arch-dependent-file-not-in-arch-specific-directory usr/lib/llvm-@LLVM_VERSION@/lib/libunwind.so.1.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-server*
+usr/lib/llvm-@LLVM_VERSION@/bin/lldb-argdumper
+
+usr/bin/lldb-@LLVM_VERSION@*
+usr/bin/lldb-server-@LLVM_VERSION@*
+usr/bin/lldb-argdumper-@LLVM_VERSION@
+usr/bin/lldb-vscode-@LLVM_VERSION@
+usr/bin/lldb-instr-@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
--- /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
+usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@*.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.so
+usr/lib/llvm-@LLVM_VERSION@/lib/libRemarks.*
+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
+debian/tmp/usr/lib/llvm-@LLVM_VERSION@/lib/cmake/llvm/llvm-driver-template.cpp.in
+
+llvm/utils/vim/indent/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/indent/
+
+llvm/utils/vim/syntax/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/syntax/
+llvm/utils/vim/syntax/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/syntax/
+
+llvm/utils/vim/ftdetect/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/ftdetect/
+llvm/utils/vim/ftdetect/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/ftdetect/
+
+llvm/utils/vim/ftplugin/llvm-@LLVM_VERSION@.vim usr/share/vim/addons/ftplugin/
+llvm/utils/vim/ftplugin/tablegen-@LLVM_VERSION@.vim usr/share/vim/addons/ftplugin/
+
+llvm/utils/vim/llvm-@LLVM_VERSION@-vimrc usr/share/vim/addons
+
+
+llvm/utils/emacs/emacs.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/
+llvm/utils/emacs/llvm-mode.el usr/share/emacs/site-lisp/llvm-@LLVM_VERSION@/
+llvm/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
+llvm/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
+llvm/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
+#!/usr/bin/dh-exec
+
+usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.so.@LLVM_VERSION@
+[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/LLVM*.so
--- /dev/null
+#!/usr/bin/dh-exec
+
+[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/LLVMgold.so usr/lib/bfd-plugins/LLVMgold-@LLVM_VERSION@.so
--- /dev/null
+:llvm-@LLVM_VERSION@-runtime.binfmt:M::BC::/usr/bin/lli-@LLVM_VERSION@:
--- /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/
+debian/llvm-@LLVM_VERSION@-runtime.binfmt.conf usr/lib/binfmt.d/
+
--- /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 command -v update-binfmts >/dev/null; 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 command -v update-binfmts >/dev/null; 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@/bin/split-file
+usr/lib/llvm-@LLVM_VERSION@/bin/yaml-bench
+usr/lib/llvm-@LLVM_VERSION@/bin/UnicodeNameMappingGenerator
+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
+
+
+llvm/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@
+usr/bin/yaml-bench-@LLVM_VERSION@
+usr/bin/split-file-@LLVM_VERSION@
+usr/bin/UnicodeNameMappingGenerator-@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-PerfectShuffle
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-ar
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-as
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-bcanalyzer
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-c-test
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-cat
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-cfi-verify
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-config
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-cov
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-cvtres
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-cxxdump
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-cxxfilt
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-cxxmap
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-diff
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-dis
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-dwarfdump
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-dwarfutil
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-dwp
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-exegesis
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-extract
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-gsymutil
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-ifs
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-jitlink
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-jitlink-executor
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-libtool-darwin
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-link
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-lipo
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-lto
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-lto2
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-mc
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-mca
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-ml
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-modextract
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-mt
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-nm
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-objcopy
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-objdump
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-opt-report
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-pdbutil
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-profdata
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-profgen
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-rc
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-readobj
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-reduce
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-rtdyld
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-sim
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-size
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-split
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-stress
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-strings
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-symbolizer
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-tapi-diff
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-tblgen
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-undname
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-xray
+usr/lib/llvm-@LLVM_VERSION@/bin/obj2yaml
+usr/lib/llvm-@LLVM_VERSION@/bin/opt
+usr/lib/llvm-@LLVM_VERSION@/bin/sanstats
+usr/lib/llvm-@LLVM_VERSION@/bin/verify-uselistorder
+usr/lib/llvm-@LLVM_VERSION@/bin/yaml2obj
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-addr2line
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-bitcode-strip
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-dlltool
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-install-name-tool
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-lib
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-otool
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-ranlib
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-readelf
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-strip
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-windres
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-tli-checker
+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/lib/llvm-@LLVM_VERSION@/bin/llvm-debuginfod
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-debuginfod-find
+usr/lib/llvm-@LLVM_VERSION@/bin/llvm-remark-size-diff
+
+usr/bin/llvm-PerfectShuffle-@LLVM_VERSION@
+usr/bin/llvm-addr2line-@LLVM_VERSION@
+usr/bin/llvm-ar-@LLVM_VERSION@
+usr/bin/llvm-as-@LLVM_VERSION@
+usr/bin/llvm-bcanalyzer-@LLVM_VERSION@
+usr/bin/llvm-bitcode-strip-@LLVM_VERSION@
+usr/bin/llvm-c-test-@LLVM_VERSION@
+usr/bin/llvm-cat-@LLVM_VERSION@
+usr/bin/llvm-cfi-verify-@LLVM_VERSION@
+usr/bin/llvm-config-@LLVM_VERSION@
+usr/bin/llvm-cov-@LLVM_VERSION@
+usr/bin/llvm-cvtres-@LLVM_VERSION@
+usr/bin/llvm-cxxdump-@LLVM_VERSION@
+usr/bin/llvm-cxxfilt-@LLVM_VERSION@
+usr/bin/llvm-cxxmap-@LLVM_VERSION@
+usr/bin/llvm-diff-@LLVM_VERSION@
+usr/bin/llvm-dis-@LLVM_VERSION@
+usr/bin/llvm-dlltool-@LLVM_VERSION@
+usr/bin/llvm-dwarfdump-@LLVM_VERSION@
+usr/bin/llvm-dwarfutil-@LLVM_VERSION@
+usr/bin/llvm-dwp-@LLVM_VERSION@
+usr/bin/llvm-exegesis-@LLVM_VERSION@
+usr/bin/llvm-extract-@LLVM_VERSION@
+usr/bin/llvm-gsymutil-@LLVM_VERSION@
+usr/bin/llvm-ifs-@LLVM_VERSION@
+usr/bin/llvm-install-name-tool-@LLVM_VERSION@
+usr/bin/llvm-jitlink-@LLVM_VERSION@
+usr/bin/llvm-jitlink-executor-@LLVM_VERSION@
+usr/bin/llvm-lib-@LLVM_VERSION@
+usr/bin/llvm-libtool-darwin-@LLVM_VERSION@
+usr/bin/llvm-link-@LLVM_VERSION@
+usr/bin/llvm-lipo-@LLVM_VERSION@
+usr/bin/llvm-lto-@LLVM_VERSION@
+usr/bin/llvm-lto2-@LLVM_VERSION@
+usr/bin/llvm-mc-@LLVM_VERSION@
+usr/bin/llvm-mca-@LLVM_VERSION@
+usr/bin/llvm-ml-@LLVM_VERSION@
+usr/bin/llvm-modextract-@LLVM_VERSION@
+usr/bin/llvm-mt-@LLVM_VERSION@
+usr/bin/llvm-nm-@LLVM_VERSION@
+usr/bin/llvm-objcopy-@LLVM_VERSION@
+usr/bin/llvm-objdump-@LLVM_VERSION@
+usr/bin/llvm-opt-report-@LLVM_VERSION@
+usr/bin/llvm-otool-@LLVM_VERSION@
+usr/bin/llvm-pdbutil-@LLVM_VERSION@
+usr/bin/llvm-profdata-@LLVM_VERSION@
+usr/bin/llvm-profgen-@LLVM_VERSION@
+usr/bin/llvm-ranlib-@LLVM_VERSION@
+usr/bin/llvm-rc-@LLVM_VERSION@
+usr/bin/llvm-readelf-@LLVM_VERSION@
+usr/bin/llvm-readobj-@LLVM_VERSION@
+usr/bin/llvm-reduce-@LLVM_VERSION@
+usr/bin/llvm-rtdyld-@LLVM_VERSION@
+usr/bin/llvm-sim-@LLVM_VERSION@
+usr/bin/llvm-size-@LLVM_VERSION@
+usr/bin/llvm-split-@LLVM_VERSION@
+usr/bin/llvm-stress-@LLVM_VERSION@
+usr/bin/llvm-strings-@LLVM_VERSION@
+usr/bin/llvm-strip-@LLVM_VERSION@
+usr/bin/llvm-symbolizer-@LLVM_VERSION@
+usr/bin/llvm-tapi-diff-@LLVM_VERSION@
+usr/bin/llvm-tblgen-@LLVM_VERSION@
+usr/bin/llvm-undname-@LLVM_VERSION@
+usr/bin/llvm-windres-@LLVM_VERSION@
+usr/bin/llvm-xray-@LLVM_VERSION@
+usr/bin/llvm-tli-checker-@LLVM_VERSION@
+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-*
+usr/bin/llvm-debuginfod-@LLVM_VERSION@
+usr/bin/llvm-debuginfod-find-*
+usr/bin/llvm-remark-size-diff-*
--- /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-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
+llvm/docs/_build/man/*
+debian/man/llvm-dwarfdump-@LLVM_VERSION@.1
+debian/man/llvm-mc-@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/bin/bash -eu
+
+# Initial version:
+# https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/rawhide/f/brp-llvm-compile-lto-elf
+
+CLANG_FLAGS=$@
+
+if test -z $P_TO_LLVM; then
+ echo "P_TO_LLVM isn't set"
+ exit 1
+fi
+
+if test -z $NJOBS; then
+ echo "NJOBS isn't set"
+ exit 1
+fi
+
+if test -z $VERSION; then
+ echo "VERSION isn't set"
+ exit 1
+fi
+
+NCPUS=$NJOBS
+
+check_convert_bitcode () {
+ local file_name=$(realpath ${1})
+ local file_type=$(file ${file_name})
+ shift
+ CLANG_FLAGS="$@"
+
+ if [[ "${file_type}" == *"LLVM IR bitcode"* ]]; then
+ # check for an indication that the bitcode was
+ # compiled with -flto
+ ${P_TO_LLVM}/debian/tmp/usr/bin/llvm-bcanalyzer-${VERSION} -dump ${file_name} | grep -xP '.*\-flto((?!-fno-lto).)*' 2>&1 > /dev/null
+ if [ $? -eq 0 ]; then
+ echo "Compiling LLVM bitcode file ${file_name}."
+ ${P_TO_LLVM}/debian/tmp/usr/bin/clang-${VERSION} -fno-lto -opaque-pointers -Wno-unused-command-line-argument \
+ -x ir ${file_name} -c -o ${file_name}
+ fi
+ elif [[ "${file_type}" == *"current ar archive"* ]]; then
+ echo "Unpacking ar archive ${file_name} to check for LLVM bitcode components."
+ # create archive stage for objects
+ local archive_stage=$(mktemp -d)
+ local archive=${file_name}
+ pushd ${archive_stage}
+ ar x ${archive}
+ for archived_file in $(find -not -type d); do
+ check_convert_bitcode ${archived_file} ${CLANG_FLAGS}
+ echo "Repacking ${archived_file} into ${archive}."
+ ${P_TO_LLVM}/debian/tmp/usr/bin/llvm-ar-${VERSION} r ${archive} ${archived_file}
+ done
+ popd
+ fi
+}
+
+echo "Checking for LLVM bitcode artifacts"
+export -f check_convert_bitcode
+find "$P_TO_LLVM/debian/" -type f -name "*.[ao]" -print0 | \
+ xargs -0 -r -n1 -P$NCPUS bash -c "check_convert_bitcode \$@ $CLANG_FLAGS" ARG0
--- /dev/null
+/usr/lib/llvm-3.1/build
--- /dev/null
+usr/bin/mlir-*
+usr/bin/tblgen-lsp-server-@LLVM_VERSION@
+
+usr/lib/llvm-@LLVM_VERSION@/bin/mlir-*
+usr/lib/llvm-@LLVM_VERSION@/bin/tblgen-lsp-server
--- /dev/null
+#!/bin/sh
+# This script will create the following tarball:
+# llvm-toolchain-XX_XX\~+20200120101212+de4b2a7fad6.orig.tar.xz
+
+set -e
+
+# commands:
+# sh 9/debian/orig-tar.sh release/9.x
+# sh 9/debian/orig-tar.sh 9.0.0 rc3
+# sh 9/debian/orig-tar.sh 9.0.1 rc3
+# Stable release
+# sh 9/debian/orig-tar.sh 9.0.0 9.0.0
+
+
+# To create an rc1 release:
+# sh 9/debian/orig-tar.sh release/9.x
+CURRENT_PATH=$(pwd)
+EXPORT_PATH=$(pwd)
+
+if test -n "${JENKINS_HOME}"; then
+ # For apt.llvm.org, reuse the same repo
+ echo "Built from Jenkins. Will export the repo in $HOME/"
+ EXPORT_PATH="$HOME/"
+fi
+
+GIT_BASE_URL=https://github.com/llvm/llvm-project
+GIT_TOOLCHAIN_CHECK=https://github.com/opencollab/llvm-toolchain-integration-test-suite.git
+
+reset_repo ()
+{
+ cd $1
+ git clean -qfd
+ git checkout .
+ git remote update > /dev/null
+ git reset --hard origin/main > /dev/null
+ git clean -qfd
+ git checkout main > /dev/null
+ git pull
+ cd -
+}
+
+PATH_DEBIAN="$(pwd)/$(dirname $0)/../"
+cd "$PATH_DEBIAN"
+
+git stash && git pull && git stash apply || true
+
+MAJOR_VERSION=$(dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9]+).*,\1,p")
+if test -z "$MAJOR_VERSION"; then
+ echo "Could not detect the major version"
+ exit 1
+fi
+
+CURRENT_VERSION=$(dpkg-parsechangelog | sed -rne "s,^Version: 1:([0-9.]+)(~|-)(.*),\1,p")
+if test -z "$CURRENT_VERSION"; then
+ echo "Could not detect the full version"
+ exit 1
+fi
+
+cd - &> /dev/null
+echo "MAJOR_VERSION=$MAJOR_VERSION / CURRENT_VERSION=$CURRENT_VERSION"
+if test -n "$1"; then
+# https://github.com/llvm/llvm-project/tree/release/9.x
+# For example: sh 4.0/debian/orig-tar.sh release/9.x
+ BRANCH=$1
+ if ! echo "$1"|grep -q release/; then
+ # The first argument is NOT a branch, means that it is a stable release
+ FINAL_RELEASE=true
+ EXACT_VERSION=$1
+ fi
+else
+ # No argument, we need trunk
+ cd "$PATH_DEBIAN"
+ SOURCE=$(dpkg-parsechangelog |grep ^Source|awk '{print $2}')
+ cd - &> /dev/null
+ if test "$SOURCE" != "llvm-toolchain-snapshot"; then
+ echo "Checkout of the main is only available for llvm-toolchain-snapshot"
+ exit 1
+ fi
+ BRANCH="main"
+fi
+
+if test -n "$1" -a -n "$2"; then
+# https://github.com/llvm/llvm-project/releases/tag/llvmorg-9.0.0
+# For example: sh 4.0/debian/orig-tar.sh 4.0.1 rc3
+# or sh 9/debian/orig-tar.sh 9.0.0
+ TAG=$2
+ RCRELEASE="true"
+ EXACT_VERSION=$1
+fi
+
+# Update or retrieve the repo
+mkdir -p git-archive
+cd git-archive
+if test -d $EXPORT_PATH/llvm-project; then
+ echo "Updating repo in $EXPORT_PATH/llvm-project"
+ # Update it
+ reset_repo $EXPORT_PATH/llvm-project
+else
+ # Download it
+ echo "Cloning the repo in $EXPORT_PATH/llvm-project"
+ git clone $GIT_BASE_URL $EXPORT_PATH/llvm-project
+fi
+
+if test -d $EXPORT_PATH/llvm-toolchain-integration-test-suite; then
+ echo "Updating repo in $EXPORT_PATH/llvm-toolchain-integration-test-suite"
+ # Update it
+ reset_repo $EXPORT_PATH/llvm-toolchain-integration-test-suite
+else
+ echo "Clone llvm-toolchain-integration-test-suite into $EXPORT_PATH/llvm-toolchain-integration-test-suite"
+ git clone $GIT_TOOLCHAIN_CHECK $EXPORT_PATH/llvm-toolchain-integration-test-suite
+fi
+
+cd $EXPORT_PATH/llvm-project
+if test -z "$TAG" -a -z "$FINAL_RELEASE"; then
+ # Building a branch
+ git checkout $BRANCH
+ git reset --hard origin/$BRANCH
+ if test $BRANCH != "main"; then
+ VERSION=$(echo $BRANCH|cut -d/ -f2|cut -d. -f1)
+ if ! echo "$MAJOR_VERSION"|grep -q "$VERSION"; then
+ echo "mismatch in version: Dir=$MAJOR_VERSION Provided=$VERSION"
+ exit 1
+ fi
+ else
+ # No argument, take main. So, it can only be snapshot
+ VERSION=$MAJOR_VERSION
+ MAJOR_VERSION=snapshot
+ fi
+ if test $MAJOR_VERSION != "snapshot"; then
+ # When upstream released X, they will update X to have X.0.1
+ # In general, in Debian, we will keep X until X.0.1 is released (or rc in experimental)
+ # However, on apt.llvm.org, we will update the version to have X.0.1
+ # This code is doing that.
+ CURRENT_VERSION="$(grep -oP 'set\(\s*LLVM_VERSION_(MAJOR|MINOR|PATCH)\s\K[0-9]+' llvm/CMakeLists.txt | paste -sd '.')"
+ fi
+ # the + is here to make sure that this version is considered more recent than the svn
+ # dpkg --compare-versions 10~svn374977-1~exp1 lt 10~+2019-svn374977-1~exp1
+ # to verify that
+ VERSION="${CURRENT_VERSION}~++$(date +'%Y%m%d%I%M%S')+$(git log -1 --pretty=format:'%h')"
+else
+
+ if ! echo "$EXACT_VERSION"|grep -q "$MAJOR_VERSION"; then
+ echo "Mismatch in version: Dir=$MAJOR_VERSION Provided=$EXACT_VERSION"
+ exit 1
+ fi
+ git_tag="llvmorg-$EXACT_VERSION"
+ VERSION=$EXACT_VERSION
+ if test -n "$TAG"; then
+ git_tag="$git_tag-$TAG"
+ VERSION="$VERSION~+$TAG"
+ fi
+
+ git checkout "$git_tag" > /dev/null
+
+fi
+
+# cleanup
+rm -rf */www/
+
+cd ../
+BASE="llvm-toolchain-${MAJOR_VERSION}_${VERSION}"
+FILENAME="${BASE}.orig.tar.xz"
+
+cp -R llvm-toolchain-integration-test-suite llvm-project/integration-test-suite
+# Argument to compress faster (for the cost of time)
+export XZ_OPT="-4 -T$(nproc)"
+echo "Compressing to $FILENAME"
+time tar Jcf $CURRENT_PATH/"$FILENAME" --exclude .git --exclude build-llvm --transform="s|llvm-project|$BASE|" -C $EXPORT_PATH llvm-project
+rm -rf llvm-project/integration-test-suite
+
+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 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(-)
+
+Index: llvm-toolchain-snapshot_15~++20220726081233+0df7d8bc355d/cmake/Modules/FindPrefixFromConfig.cmake
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220726081233+0df7d8bc355d.orig/cmake/Modules/FindPrefixFromConfig.cmake
++++ llvm-toolchain-snapshot_15~++20220726081233+0df7d8bc355d/cmake/Modules/FindPrefixFromConfig.cmake
+@@ -39,10 +39,10 @@ function(find_prefix_from_config out_var
+ # install prefix, and avoid hard-coding any absolute paths.
+ set(config_code
+ "# Compute the installation prefix from this LLVMConfig.cmake file location."
+- "get_filename_component(${prefix_var} \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
++ "get_filename_component(${prefix_var} \"\${CMAKE_CURRENT_LIST_FILE}\" REALPATH)")
+ # Construct the proper number of get_filename_component(... PATH)
+ # calls to compute the installation prefix.
+- string(REGEX REPLACE "/" ";" _count "${path_to_leave}")
++ string(REGEX REPLACE "/" ";" _count "prefix/${path_to_leave}")
+ foreach(p ${_count})
+ list(APPEND config_code
+ "get_filename_component(${prefix_var} \"\${${prefix_var}}\" PATH)")
--- /dev/null
+From 8984b5d9a9bb143844e716db79388808f6944270 Mon Sep 17 00:00:00 2001
+From: Sylvestre Ledru <sylvestre@debian.org>
+Date: Sun, 18 Oct 2020 18:56:17 +0200
+Subject: [PATCH 1/3] tsan doesn't work on arm
+
+---
+ tests/test_tsan.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/integration-test-suite/tests/test_tsan.c b/tests/test_tsan.c
+index ed9aaec..197d3a4 100644
+--- a/integration-test-suite/tests/test_tsan.c
++++ b/integration-test-suite/tests/test_tsan.c
+@@ -5,6 +5,7 @@
+ // RUN: %llvm-nm %t | grep __tsan
+ // RUN: env TSAN_OPTIONS="log_path=stdout:exitcode=0" %t 2>&1 > %t.out
+ // RUN: grep -q "data race" %t.out
++// XFAIL: arm
+
+ #include <pthread.h>
+ #include <stdio.h>
+--
+2.28.0
+
--- /dev/null
+From 77f09cd056d5183fa048d2b8fdc29302dca25ed7 Mon Sep 17 00:00:00 2001
+From: Sylvestre Ledru <sylvestre@debian.org>
+Date: Mon, 19 Oct 2020 14:43:32 +0200
+Subject: [PATCH 2/3] Disable test_asan_heap.c for arm (#30)
+
+Unsupported on this arch:
+clang: error: unsupported option '-fsanitize=thread' for target 'armv7l-unknown-linux-gnueabihf'
+---
+ tests/test_asan_heap.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/integration-test-suite/tests/test_asan_heap.c b/tests/test_asan_heap.c
+index 828ac4f..f021703 100644
+--- a/integration-test-suite/tests/test_asan_heap.c
++++ b/integration-test-suite/tests/test_asan_heap.c
+@@ -4,6 +4,7 @@
+ // RUN: %clang -o %t -fsanitize=address -O1 -fno-omit-frame-pointer -g %s
+ // RUN: env ASAN_OPTIONS="log_path=stdout:exitcode=0" %t 2>&1 > %t.out
+ // RUN: grep -q "heap-use-after-free" %t.out
++// XFAIL: arm
+
+ #include <stdlib.h>
+ int main() {
+--
+2.28.0
+
--- /dev/null
+From 5fd1282d17fb5db341239af2853ab12f4ff141c8 Mon Sep 17 00:00:00 2001
+From: Sylvestre Ledru <sylvestre@debian.org>
+Date: Mon, 19 Oct 2020 14:55:20 +0200
+Subject: [PATCH 3/3] leaksan: add a test (#31)
+
+---
+ tests/test_leaksan.c | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+ create mode 100644 tests/test_leaksan.c
+
+diff --git a/integration-test-suite/tests/test_leaksan.c b/tests/test_leaksan.c
+new file mode 100644
+index 0000000..db425a1
+--- /dev/null
++++ b/integration-test-suite/tests/test_leaksan.c
+@@ -0,0 +1,16 @@
++// Test asan use after free
++//
++// REQUIRES: clang
++// RUN: %clang -o %t -fsanitize=address -g %s
++// RUN: env ASAN_OPTIONS="log_path=stdout:exitcode=0" %t 2>&1 > %t.out
++// RUN: grep -q "detected memory leaks" %t.out
++
++#include <stdlib.h>
++
++void *p;
++
++int main() {
++ p = malloc(7);
++ p = 0; // The memory is leaked here.
++ return 0;
++}
+--
+2.28.0
+
--- /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_15~++20220407011631+46f0e2ceb487/clang/tools/libclang/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/tools/libclang/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/libclang/CMakeLists.txt
+@@ -117,7 +117,7 @@ if (UNIX AND ${CMAKE_SYSTEM_NAME} MATCHE
+ remove_definitions("-D_XOPEN_SOURCE=700")
+ endif()
+
+-add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} INSTALL_WITH_TOOLCHAIN
++add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} INSTALL_WITH_TOOLCHAIN SONAME
+ OUTPUT_NAME ${output_name}
+ ${SOURCES}
+
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/tools/llvm-shlib/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/tools/llvm-shlib/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/tools/llvm-shlib/CMakeLists.txt
+@@ -32,6 +32,8 @@ if(LLVM_BUILD_LLVM_DYLIB)
+ endif()
+ add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${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_11~++20200326111000+4673699a470/clang/docs/analyzer/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/clang/docs/analyzer/conf.py
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/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_11~++20200326111000+4673699a470/clang/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/clang/docs/conf.py
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/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_11~++20200326111000+4673699a470/polly/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/polly/docs/conf.py
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/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-snapshot_14~++20220112110040+612f5ed88231/clang-tools-extra/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231.orig/clang-tools-extra/docs/conf.py
++++ llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231/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-snapshot_14~++20220112110040+612f5ed88231/clang-tools-extra/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231.orig/clang-tools-extra/docs/doxygen.cfg.in
++++ llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231/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-snapshot_14~++20220112110040+612f5ed88231/clang/docs/analyzer/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231.orig/clang/docs/analyzer/conf.py
++++ llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231/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-snapshot_14~++20220112110040+612f5ed88231/clang/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231.orig/clang/docs/conf.py
++++ llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231/clang/docs/conf.py
+@@ -141,6 +141,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-snapshot_14~++20220112110040+612f5ed88231/clang/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231.orig/clang/docs/doxygen.cfg.in
++++ llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231/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-snapshot_14~++20220112110040+612f5ed88231/llvm/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231.orig/llvm/docs/doxygen.cfg.in
++++ llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231/llvm/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 = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js
++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-snapshot_14~++20220112110040+612f5ed88231/polly/docs/doxygen.cfg.in
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231.orig/polly/docs/doxygen.cfg.in
++++ llvm-toolchain-snapshot_14~++20220112110040+612f5ed88231/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
+---
+ 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_15~++20220723123759+d959324e1efe/clang/include/clang/Basic/Builtins.def
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/clang/include/clang/Basic/Builtins.def
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/include/clang/Basic/Builtins.def
+@@ -624,8 +624,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")
+@@ -1143,8 +1143,8 @@ LIBBUILTIN(getcontext, "iK*", "fjT",
+ LIBBUILTIN(_longjmp, "vJi", "frT", "setjmp.h", ALL_GNU_LANGUAGES)
+ LIBBUILTIN(siglongjmp, "vSJi", "frT", "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_15~++20220723123759+d959324e1efe/clang/lib/AST/Decl.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/clang/lib/AST/Decl.cpp
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/lib/AST/Decl.cpp
+@@ -4139,13 +4139,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_15~++20220723123759+d959324e1efe/clang/lib/Sema/SemaChecking.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/clang/lib/Sema/SemaChecking.cpp
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/lib/Sema/SemaChecking.cpp
+@@ -1223,8 +1223,8 @@ void Sema::checkFortifiedBuiltinMemoryFu
+ case Builtin::BI__builtin___memcpy_chk:
+ case Builtin::BI__builtin___memmove_chk:
+ case Builtin::BI__builtin___memset_chk:
+- case Builtin::BI__builtin___strlcat_chk:
+- case Builtin::BI__builtin___strlcpy_chk:
++// case Builtin::BI__builtin___strlcat_chk:
++// case Builtin::BI__builtin___strlcpy_chk:
+ case Builtin::BI__builtin___strncat_chk:
+ case Builtin::BI__builtin___strncpy_chk:
+ case Builtin::BI__builtin___stpncpy_chk:
+@@ -5890,10 +5890,10 @@ bool Sema::CheckFunctionCall(FunctionDec
+ switch (CMId) {
+ case 0:
+ return false;
+- case Builtin::BIstrlcpy: // fallthrough
++/* case Builtin::BIstrlcpy: // fallthrough
+ case Builtin::BIstrlcat:
+ CheckStrlcpycatArguments(TheCall, FnInfo);
+- break;
++ break;*/
+ case Builtin::BIstrncat:
+ CheckStrncatArguments(TheCall, FnInfo);
+ break;
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
+@@ -652,10 +652,10 @@ void GenericTaintChecker::initTaintRules
+
+ {{CDF_MaybeBuiltin, {BI.getName(Builtin::BIstrncat)}},
+ TR::Prop({{1, 2}}, {{0, ReturnValueIndex}})},
+- {{CDF_MaybeBuiltin, {BI.getName(Builtin::BIstrlcpy)}},
++/* {{CDF_MaybeBuiltin, {BI.getName(Builtin::BIstrlcpy)}},
+ TR::Prop({{1, 2}}, {{0}})},
+ {{CDF_MaybeBuiltin, {BI.getName(Builtin::BIstrlcat)}},
+- TR::Prop({{1, 2}}, {{0}})},
++ TR::Prop({{1, 2}}, {{0}})},*/
+ {{CDF_MaybeBuiltin, {"snprintf"}},
+ TR::Prop({{1}, 3}, {{0, ReturnValueIndex}})},
+ {{CDF_MaybeBuiltin, {"sprintf"}},
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/test/Sema/builtins.c
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/clang/test/Sema/builtins.c
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/test/Sema/builtins.c
+@@ -197,12 +197,10 @@ void test18(void) {
+ void *ptr;
+
+ 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));
+
+ 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-error {{incompatible integer to pointer conversion}}
+- ptr = __builtin___strlcat_chk(dst, src, sizeof(dst), sizeof(dst)); // expected-error {{incompatible integer to pointer conversion}}
+ }
+
+ void no_ms_builtins(void) {
+@@ -217,6 +215,7 @@ void unavailable(void) {
+ }
+
+ // 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);
+
+@@ -238,6 +237,7 @@ void Test19(void)
+ // expected-note {{change size argument to be the size of the destination}} \
+ // expected-warning {{'strlcat' will always overflow; destination buffer has size 20, but size argument is 40}}
+ }
++*/
+
+ // rdar://11076881
+ char * Test20(char *p, const char *in, unsigned n)
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/test/Sema/warn-strlcpycat-size.c
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/clang/test/Sema/warn-strlcpycat-size.c
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/clang/test/Sema/warn-strlcpycat-size.c
+@@ -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(void) {
+- 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_14~++20211114120952+5b4bfd8c2415/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/clang/lib/Driver/ToolChains/Arch/ARM.cpp
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/clang/lib/Driver/ToolChains/Arch/ARM.cpp
+@@ -361,7 +361,7 @@ arm::FloatABI arm::getDefaultFloatABI(co
+ case llvm::Triple::MuslEABI:
+ case llvm::Triple::EABI:
+ // EABI is always AAPCS, and if it was not marked 'hard', it's softfp
+- return FloatABI::SoftFP;
++ return FloatABI::Soft;
+ case llvm::Triple::Android:
+ return (SubArch >= 7) ? FloatABI::SoftFP : FloatABI::Soft;
+ default:
--- /dev/null
+Index: llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/llvm/lib/Support/Triple.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/llvm/lib/Support/Triple.cpp
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/llvm/lib/Support/Triple.cpp
+@@ -1830,7 +1830,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
+diff --git a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
+--- a/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
++++ b/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
+@@ -1604,8 +1604,25 @@
+ const TargetRegisterClass *G8RC = &PPC::G8RCRegClass;
+ const TargetRegisterClass *GPRC = &PPC::GPRCRegClass;
+ const TargetRegisterClass *RC = is64Bit ? G8RC : GPRC;
+- Register SRegHi = MF.getRegInfo().createVirtualRegister(RC),
+- SReg = MF.getRegInfo().createVirtualRegister(RC);
++ bool ScavengingFailed = RS && RS->getRegsAvailable(RC).none() &&
++ RS->getRegsAvailable(&PPC::VSFRCRegClass).any();
++ Register SRegHi, SReg, VSReg;
++
++ // The register scavenger is unable to get a GPR but can get a VSR. We
++ // need to stash a GPR into a VSR so that we can free one up.
++ if (ScavengingFailed && Subtarget.hasDirectMove()) {
++ // Pick a volatile register and if we are spilling/restoring that
++ // particular one, pick the next one.
++ SRegHi = SReg = is64Bit ? PPC::X4 : PPC::R4;
++ if (MI.getOperand(0).getReg() == SReg)
++ SRegHi = SReg = SReg + 1;
++ VSReg = MF.getRegInfo().createVirtualRegister(&PPC::VSFRCRegClass);
++ BuildMI(MBB, II, dl, TII.get(is64Bit ? PPC::MTVSRD : PPC::MTVSRWZ), VSReg)
++ .addReg(SReg);
++ } else {
++ SRegHi = MF.getRegInfo().createVirtualRegister(RC);
++ SReg = MF.getRegInfo().createVirtualRegister(RC);
++ }
+ unsigned NewOpcode = 0u;
+
+ // Insert a set of rA with the full offset value before the ld, st, or add
+@@ -1645,6 +1662,12 @@
+ Register StackReg = MI.getOperand(FIOperandNum).getReg();
+ MI.getOperand(OperandBase).ChangeToRegister(StackReg, false);
+ MI.getOperand(OperandBase + 1).ChangeToRegister(SReg, false, false, true);
++
++ // If we stashed a value from a GPR into a VSR, we need to get it back after
++ // spilling the register.
++ if (ScavengingFailed && Subtarget.hasDirectMove())
++ BuildMI(MBB, ++II, dl, TII.get(is64Bit ? PPC::MFVSRD : PPC::MFVSRWZ), SReg)
++ .addReg(VSReg);
+
+ // Since these are not real X-Form instructions, we must
+ // add the registers and access 0(NewReg) rather than
+diff --git a/llvm/test/CodeGen/PowerPC/pr52894-32bit.ll b/llvm/test/CodeGen/PowerPC/pr52894-32bit.ll
+new file mode 100644
+--- /dev/null
++++ b/llvm/test/CodeGen/PowerPC/pr52894-32bit.ll
+@@ -0,0 +1,290 @@
++; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
++; RUN: -mcpu=pwr8 -mtriple=powerpcle < %s | FileCheck %s
++; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
++; RUN: -mcpu=pwr8 -mtriple=powerpc < %s | FileCheck %s
++%struct.d = type { [131072 x i32] }
++
++@a = dso_local local_unnamed_addr global [4096 x i32] zeroinitializer, align 4
++
++; Function Attrs: mustprogress uwtable
++define dso_local void @_Z1g1dILi17EE(%struct.d* nocapture noundef readnone byval(%struct.d) align 4 %0) local_unnamed_addr #0 {
++; CHECK-LABEL: _Z1g1dILi17EE:
++; CHECK: mtfprwz f0, r4
++; CHECK: stwx [[REG:r[0-9]+]], r1, r4
++; CHECK: mffprwz r4, f0
++; CHECK: mtfprwz f0, r4
++; CHECK: lwzx [[REG]], r1, r4
++; CHECK: mffprwz r4, f0
++entry:
++ %c = alloca %struct.d, align 4
++ %1 = bitcast %struct.d* %c to i8*
++ call void @llvm.lifetime.start.p0i8(i64 524288, i8* nonnull %1) #3
++ br label %vector.body
++
++vector.body: ; preds = %vector.body.1, %entry
++ %index = phi i32 [ 0, %entry ], [ %index.next.1, %vector.body.1 ]
++ %vec.ind = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %entry ], [ %vec.ind.next.1, %vector.body.1 ]
++ %step.add = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
++ %step.add21 = add <4 x i32> %vec.ind, <i32 8, i32 8, i32 8, i32 8>
++ %step.add22 = add <4 x i32> %vec.ind, <i32 12, i32 12, i32 12, i32 12>
++ %step.add23 = add <4 x i32> %vec.ind, <i32 16, i32 16, i32 16, i32 16>
++ %step.add24 = add <4 x i32> %vec.ind, <i32 20, i32 20, i32 20, i32 20>
++ %step.add25 = add <4 x i32> %vec.ind, <i32 24, i32 24, i32 24, i32 24>
++ %step.add26 = add <4 x i32> %vec.ind, <i32 28, i32 28, i32 28, i32 28>
++ %step.add27 = add <4 x i32> %vec.ind, <i32 32, i32 32, i32 32, i32 32>
++ %step.add28 = add <4 x i32> %vec.ind, <i32 36, i32 36, i32 36, i32 36>
++ %step.add29 = add <4 x i32> %vec.ind, <i32 40, i32 40, i32 40, i32 40>
++ %step.add30 = add <4 x i32> %vec.ind, <i32 44, i32 44, i32 44, i32 44>
++ %2 = getelementptr inbounds [4096 x i32], [4096 x i32]* @a, i32 0, i32 %index
++ %3 = bitcast i32* %2 to <4 x i32>*
++ store <4 x i32> %vec.ind, <4 x i32>* %3, align 4
++ %4 = getelementptr inbounds i32, i32* %2, i32 4
++ %5 = bitcast i32* %4 to <4 x i32>*
++ store <4 x i32> %step.add, <4 x i32>* %5, align 4
++ %6 = getelementptr inbounds i32, i32* %2, i32 8
++ %7 = bitcast i32* %6 to <4 x i32>*
++ store <4 x i32> %step.add21, <4 x i32>* %7, align 4
++ %8 = getelementptr inbounds i32, i32* %2, i32 12
++ %9 = bitcast i32* %8 to <4 x i32>*
++ store <4 x i32> %step.add22, <4 x i32>* %9, align 4
++ %10 = getelementptr inbounds i32, i32* %2, i32 16
++ %11 = bitcast i32* %10 to <4 x i32>*
++ store <4 x i32> %step.add23, <4 x i32>* %11, align 4
++ %12 = getelementptr inbounds i32, i32* %2, i32 20
++ %13 = bitcast i32* %12 to <4 x i32>*
++ store <4 x i32> %step.add24, <4 x i32>* %13, align 4
++ %14 = getelementptr inbounds i32, i32* %2, i32 24
++ %15 = bitcast i32* %14 to <4 x i32>*
++ store <4 x i32> %step.add25, <4 x i32>* %15, align 4
++ %16 = getelementptr inbounds i32, i32* %2, i32 28
++ %17 = bitcast i32* %16 to <4 x i32>*
++ store <4 x i32> %step.add26, <4 x i32>* %17, align 4
++ %18 = getelementptr inbounds i32, i32* %2, i32 32
++ %19 = bitcast i32* %18 to <4 x i32>*
++ store <4 x i32> %step.add27, <4 x i32>* %19, align 4
++ %20 = getelementptr inbounds i32, i32* %2, i32 36
++ %21 = bitcast i32* %20 to <4 x i32>*
++ store <4 x i32> %step.add28, <4 x i32>* %21, align 4
++ %22 = getelementptr inbounds i32, i32* %2, i32 40
++ %23 = bitcast i32* %22 to <4 x i32>*
++ store <4 x i32> %step.add29, <4 x i32>* %23, align 4
++ %24 = getelementptr inbounds i32, i32* %2, i32 44
++ %25 = bitcast i32* %24 to <4 x i32>*
++ store <4 x i32> %step.add30, <4 x i32>* %25, align 4
++ %index.next = add nuw nsw i32 %index, 48
++ %26 = icmp eq i32 %index.next, 4080
++ br i1 %26, label %for.body, label %vector.body.1
++
++vector.body.1: ; preds = %vector.body
++ %vec.ind.next = add <4 x i32> %vec.ind, <i32 48, i32 48, i32 48, i32 48>
++ %step.add.1 = add <4 x i32> %vec.ind, <i32 52, i32 52, i32 52, i32 52>
++ %step.add21.1 = add <4 x i32> %vec.ind, <i32 56, i32 56, i32 56, i32 56>
++ %step.add22.1 = add <4 x i32> %vec.ind, <i32 60, i32 60, i32 60, i32 60>
++ %step.add23.1 = add <4 x i32> %vec.ind, <i32 64, i32 64, i32 64, i32 64>
++ %step.add24.1 = add <4 x i32> %vec.ind, <i32 68, i32 68, i32 68, i32 68>
++ %step.add25.1 = add <4 x i32> %vec.ind, <i32 72, i32 72, i32 72, i32 72>
++ %step.add26.1 = add <4 x i32> %vec.ind, <i32 76, i32 76, i32 76, i32 76>
++ %step.add27.1 = add <4 x i32> %vec.ind, <i32 80, i32 80, i32 80, i32 80>
++ %step.add28.1 = add <4 x i32> %vec.ind, <i32 84, i32 84, i32 84, i32 84>
++ %step.add29.1 = add <4 x i32> %vec.ind, <i32 88, i32 88, i32 88, i32 88>
++ %step.add30.1 = add <4 x i32> %vec.ind, <i32 92, i32 92, i32 92, i32 92>
++ %27 = getelementptr inbounds [4096 x i32], [4096 x i32]* @a, i32 0, i32 %index.next
++ %28 = bitcast i32* %27 to <4 x i32>*
++ store <4 x i32> %vec.ind.next, <4 x i32>* %28, align 4
++ %29 = getelementptr inbounds i32, i32* %27, i32 4
++ %30 = bitcast i32* %29 to <4 x i32>*
++ store <4 x i32> %step.add.1, <4 x i32>* %30, align 4
++ %31 = getelementptr inbounds i32, i32* %27, i32 8
++ %32 = bitcast i32* %31 to <4 x i32>*
++ store <4 x i32> %step.add21.1, <4 x i32>* %32, align 4
++ %33 = getelementptr inbounds i32, i32* %27, i32 12
++ %34 = bitcast i32* %33 to <4 x i32>*
++ store <4 x i32> %step.add22.1, <4 x i32>* %34, align 4
++ %35 = getelementptr inbounds i32, i32* %27, i32 16
++ %36 = bitcast i32* %35 to <4 x i32>*
++ store <4 x i32> %step.add23.1, <4 x i32>* %36, align 4
++ %37 = getelementptr inbounds i32, i32* %27, i32 20
++ %38 = bitcast i32* %37 to <4 x i32>*
++ store <4 x i32> %step.add24.1, <4 x i32>* %38, align 4
++ %39 = getelementptr inbounds i32, i32* %27, i32 24
++ %40 = bitcast i32* %39 to <4 x i32>*
++ store <4 x i32> %step.add25.1, <4 x i32>* %40, align 4
++ %41 = getelementptr inbounds i32, i32* %27, i32 28
++ %42 = bitcast i32* %41 to <4 x i32>*
++ store <4 x i32> %step.add26.1, <4 x i32>* %42, align 4
++ %43 = getelementptr inbounds i32, i32* %27, i32 32
++ %44 = bitcast i32* %43 to <4 x i32>*
++ store <4 x i32> %step.add27.1, <4 x i32>* %44, align 4
++ %45 = getelementptr inbounds i32, i32* %27, i32 36
++ %46 = bitcast i32* %45 to <4 x i32>*
++ store <4 x i32> %step.add28.1, <4 x i32>* %46, align 4
++ %47 = getelementptr inbounds i32, i32* %27, i32 40
++ %48 = bitcast i32* %47 to <4 x i32>*
++ store <4 x i32> %step.add29.1, <4 x i32>* %48, align 4
++ %49 = getelementptr inbounds i32, i32* %27, i32 44
++ %50 = bitcast i32* %49 to <4 x i32>*
++ store <4 x i32> %step.add30.1, <4 x i32>* %50, align 4
++ %index.next.1 = add nuw nsw i32 %index, 96
++ %vec.ind.next.1 = add <4 x i32> %vec.ind, <i32 96, i32 96, i32 96, i32 96>
++ br label %vector.body
++
++vector.body37: ; preds = %vector.body37.1, %for.body
++ %index38 = phi i32 [ 0, %for.body ], [ %index.next53.1, %vector.body37.1 ]
++ %vec.ind39 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %for.body ], [ %vec.ind.next52.1, %vector.body37.1 ]
++ %step.add40 = add <4 x i32> %vec.ind39, <i32 4, i32 4, i32 4, i32 4>
++ %step.add41 = add <4 x i32> %vec.ind39, <i32 8, i32 8, i32 8, i32 8>
++ %step.add42 = add <4 x i32> %vec.ind39, <i32 12, i32 12, i32 12, i32 12>
++ %step.add43 = add <4 x i32> %vec.ind39, <i32 16, i32 16, i32 16, i32 16>
++ %step.add44 = add <4 x i32> %vec.ind39, <i32 20, i32 20, i32 20, i32 20>
++ %step.add45 = add <4 x i32> %vec.ind39, <i32 24, i32 24, i32 24, i32 24>
++ %step.add46 = add <4 x i32> %vec.ind39, <i32 28, i32 28, i32 28, i32 28>
++ %step.add47 = add <4 x i32> %vec.ind39, <i32 32, i32 32, i32 32, i32 32>
++ %step.add48 = add <4 x i32> %vec.ind39, <i32 36, i32 36, i32 36, i32 36>
++ %step.add49 = add <4 x i32> %vec.ind39, <i32 40, i32 40, i32 40, i32 40>
++ %step.add50 = add <4 x i32> %vec.ind39, <i32 44, i32 44, i32 44, i32 44>
++ %51 = getelementptr inbounds [4096 x i32], [4096 x i32]* @a, i32 0, i32 %index38
++ %52 = bitcast i32* %51 to <4 x i32>*
++ store <4 x i32> %vec.ind39, <4 x i32>* %52, align 4
++ %53 = getelementptr inbounds i32, i32* %51, i32 4
++ %54 = bitcast i32* %53 to <4 x i32>*
++ store <4 x i32> %step.add40, <4 x i32>* %54, align 4
++ %55 = getelementptr inbounds i32, i32* %51, i32 8
++ %56 = bitcast i32* %55 to <4 x i32>*
++ store <4 x i32> %step.add41, <4 x i32>* %56, align 4
++ %57 = getelementptr inbounds i32, i32* %51, i32 12
++ %58 = bitcast i32* %57 to <4 x i32>*
++ store <4 x i32> %step.add42, <4 x i32>* %58, align 4
++ %59 = getelementptr inbounds i32, i32* %51, i32 16
++ %60 = bitcast i32* %59 to <4 x i32>*
++ store <4 x i32> %step.add43, <4 x i32>* %60, align 4
++ %61 = getelementptr inbounds i32, i32* %51, i32 20
++ %62 = bitcast i32* %61 to <4 x i32>*
++ store <4 x i32> %step.add44, <4 x i32>* %62, align 4
++ %63 = getelementptr inbounds i32, i32* %51, i32 24
++ %64 = bitcast i32* %63 to <4 x i32>*
++ store <4 x i32> %step.add45, <4 x i32>* %64, align 4
++ %65 = getelementptr inbounds i32, i32* %51, i32 28
++ %66 = bitcast i32* %65 to <4 x i32>*
++ store <4 x i32> %step.add46, <4 x i32>* %66, align 4
++ %67 = getelementptr inbounds i32, i32* %51, i32 32
++ %68 = bitcast i32* %67 to <4 x i32>*
++ store <4 x i32> %step.add47, <4 x i32>* %68, align 4
++ %69 = getelementptr inbounds i32, i32* %51, i32 36
++ %70 = bitcast i32* %69 to <4 x i32>*
++ store <4 x i32> %step.add48, <4 x i32>* %70, align 4
++ %71 = getelementptr inbounds i32, i32* %51, i32 40
++ %72 = bitcast i32* %71 to <4 x i32>*
++ store <4 x i32> %step.add49, <4 x i32>* %72, align 4
++ %73 = getelementptr inbounds i32, i32* %51, i32 44
++ %74 = bitcast i32* %73 to <4 x i32>*
++ store <4 x i32> %step.add50, <4 x i32>* %74, align 4
++ %index.next53 = add nuw nsw i32 %index38, 48
++ %75 = icmp eq i32 %index.next53, 4080
++ br i1 %75, label %for.body5, label %vector.body37.1
++
++vector.body37.1: ; preds = %vector.body37
++ %vec.ind.next52 = add <4 x i32> %vec.ind39, <i32 48, i32 48, i32 48, i32 48>
++ %step.add40.1 = add <4 x i32> %vec.ind39, <i32 52, i32 52, i32 52, i32 52>
++ %step.add41.1 = add <4 x i32> %vec.ind39, <i32 56, i32 56, i32 56, i32 56>
++ %step.add42.1 = add <4 x i32> %vec.ind39, <i32 60, i32 60, i32 60, i32 60>
++ %step.add43.1 = add <4 x i32> %vec.ind39, <i32 64, i32 64, i32 64, i32 64>
++ %step.add44.1 = add <4 x i32> %vec.ind39, <i32 68, i32 68, i32 68, i32 68>
++ %step.add45.1 = add <4 x i32> %vec.ind39, <i32 72, i32 72, i32 72, i32 72>
++ %step.add46.1 = add <4 x i32> %vec.ind39, <i32 76, i32 76, i32 76, i32 76>
++ %step.add47.1 = add <4 x i32> %vec.ind39, <i32 80, i32 80, i32 80, i32 80>
++ %step.add48.1 = add <4 x i32> %vec.ind39, <i32 84, i32 84, i32 84, i32 84>
++ %step.add49.1 = add <4 x i32> %vec.ind39, <i32 88, i32 88, i32 88, i32 88>
++ %step.add50.1 = add <4 x i32> %vec.ind39, <i32 92, i32 92, i32 92, i32 92>
++ %76 = getelementptr inbounds [4096 x i32], [4096 x i32]* @a, i32 0, i32 %index.next53
++ %77 = bitcast i32* %76 to <4 x i32>*
++ store <4 x i32> %vec.ind.next52, <4 x i32>* %77, align 4
++ %78 = getelementptr inbounds i32, i32* %76, i32 4
++ %79 = bitcast i32* %78 to <4 x i32>*
++ store <4 x i32> %step.add40.1, <4 x i32>* %79, align 4
++ %80 = getelementptr inbounds i32, i32* %76, i32 8
++ %81 = bitcast i32* %80 to <4 x i32>*
++ store <4 x i32> %step.add41.1, <4 x i32>* %81, align 4
++ %82 = getelementptr inbounds i32, i32* %76, i32 12
++ %83 = bitcast i32* %82 to <4 x i32>*
++ store <4 x i32> %step.add42.1, <4 x i32>* %83, align 4
++ %84 = getelementptr inbounds i32, i32* %76, i32 16
++ %85 = bitcast i32* %84 to <4 x i32>*
++ store <4 x i32> %step.add43.1, <4 x i32>* %85, align 4
++ %86 = getelementptr inbounds i32, i32* %76, i32 20
++ %87 = bitcast i32* %86 to <4 x i32>*
++ store <4 x i32> %step.add44.1, <4 x i32>* %87, align 4
++ %88 = getelementptr inbounds i32, i32* %76, i32 24
++ %89 = bitcast i32* %88 to <4 x i32>*
++ store <4 x i32> %step.add45.1, <4 x i32>* %89, align 4
++ %90 = getelementptr inbounds i32, i32* %76, i32 28
++ %91 = bitcast i32* %90 to <4 x i32>*
++ store <4 x i32> %step.add46.1, <4 x i32>* %91, align 4
++ %92 = getelementptr inbounds i32, i32* %76, i32 32
++ %93 = bitcast i32* %92 to <4 x i32>*
++ store <4 x i32> %step.add47.1, <4 x i32>* %93, align 4
++ %94 = getelementptr inbounds i32, i32* %76, i32 36
++ %95 = bitcast i32* %94 to <4 x i32>*
++ store <4 x i32> %step.add48.1, <4 x i32>* %95, align 4
++ %96 = getelementptr inbounds i32, i32* %76, i32 40
++ %97 = bitcast i32* %96 to <4 x i32>*
++ store <4 x i32> %step.add49.1, <4 x i32>* %97, align 4
++ %98 = getelementptr inbounds i32, i32* %76, i32 44
++ %99 = bitcast i32* %98 to <4 x i32>*
++ store <4 x i32> %step.add50.1, <4 x i32>* %99, align 4
++ %index.next53.1 = add nuw nsw i32 %index38, 96
++ %vec.ind.next52.1 = add <4 x i32> %vec.ind39, <i32 96, i32 96, i32 96, i32 96>
++ br label %vector.body37
++
++for.body: ; preds = %vector.body
++ store i32 4080, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4080), align 4
++ store i32 4081, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4081), align 4
++ store i32 4082, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4082), align 4
++ store i32 4083, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4083), align 4
++ store i32 4084, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4084), align 4
++ store i32 4085, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4085), align 4
++ store i32 4086, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4086), align 4
++ store i32 4087, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4087), align 4
++ store i32 4088, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4088), align 4
++ store i32 4089, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4089), align 4
++ store i32 4090, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4090), align 4
++ store i32 4091, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4091), align 4
++ store i32 4092, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4092), align 4
++ store i32 4093, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4093), align 4
++ store i32 4094, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4094), align 4
++ store i32 4095, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4095), align 4
++ call void @_ZN1dILi17EE1eEv(%struct.d* noundef nonnull align 4 dereferenceable(524288) %c)
++ br label %vector.body37
++
++for.body5: ; preds = %vector.body37
++ store i32 4080, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4080), align 4
++ store i32 4081, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4081), align 4
++ store i32 4082, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4082), align 4
++ store i32 4083, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4083), align 4
++ store i32 4084, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4084), align 4
++ store i32 4085, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4085), align 4
++ store i32 4086, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4086), align 4
++ store i32 4087, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4087), align 4
++ store i32 4088, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4088), align 4
++ store i32 4089, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4089), align 4
++ store i32 4090, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4090), align 4
++ store i32 4091, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4091), align 4
++ store i32 4092, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4092), align 4
++ store i32 4093, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4093), align 4
++ store i32 4094, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4094), align 4
++ store i32 4095, i32* getelementptr inbounds ([4096 x i32], [4096 x i32]* @a, i32 0, i32 4095), align 4
++ call void @_Z1h1dILi17EE(%struct.d* noundef nonnull byval(%struct.d) align 4 %c)
++ call void @llvm.lifetime.end.p0i8(i64 524288, i8* nonnull %1) #3
++ ret void
++}
++
++; Function Attrs: argmemonly mustprogress nocallback nofree nosync nounwind willreturn
++declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1
++
++; Function Attrs: argmemonly mustprogress nocallback nofree nosync nounwind willreturn
++declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1
++
++declare dso_local void @_ZN1dILi17EE1eEv(%struct.d* noundef nonnull align 4 dereferenceable(524288)) local_unnamed_addr #2
++
++declare dso_local void @_Z1h1dILi17EE(%struct.d* noundef byval(%struct.d) align 4) local_unnamed_addr #2
++
++attributes #0 = { nounwind }
+diff --git a/llvm/test/CodeGen/PowerPC/pr52894.ll b/llvm/test/CodeGen/PowerPC/pr52894.ll
+new file mode 100644
+--- /dev/null
++++ b/llvm/test/CodeGen/PowerPC/pr52894.ll
+@@ -0,0 +1,246 @@
++; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
++; RUN: -mcpu=pwr8 -mtriple=powerpc64le < %s | FileCheck %s
++; RUN: llc -verify-machineinstrs -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
++; RUN: -mcpu=pwr8 -mtriple=powerpc64 < %s | FileCheck %s
++%struct.d = type { [131072 x i32] }
++
++@a = dso_local local_unnamed_addr global [4096 x i32] zeroinitializer, align 4
++
++; Function Attrs: mustprogress uwtable
++define dso_local void @_Z1g1dILi17EE(ptr nocapture noundef readnone byval(%struct.d) align 8 %0) local_unnamed_addr #0 {
++; CHECK-LABEL: _Z1g1dILi17EE:
++; CHECK: mtfprd f0, r4
++; CHECK: stdx [[REG:r[0-9]+]], r1, r4
++; CHECK: mffprd r4, f0
++; CHECK: mtfprd f0, r4
++; CHECK: ldx [[REG]], r1, r4
++; CHECK: mffprd r4, f0
++; CHECK: mtfprd f0, r4
++; CHECK: stdx [[REG2:r[0-9]+]], r1, r4
++; CHECK: mffprd r4, f0
++; CHECK: mtfprd f0, r4
++; CHECK: ldx [[REG2]], r1, r4
++; CHECK: mffprd r4, f0
++entry:
++ %c = alloca %struct.d, align 8
++ call void @llvm.lifetime.start.p0(i64 524288, ptr nonnull %c) #3
++ br label %vector.body
++
++vector.body: ; preds = %vector.body.1, %entry
++ %index = phi i64 [ 0, %entry ], [ %index.next.1, %vector.body.1 ]
++ %vec.ind = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %entry ], [ %vec.ind.next.1, %vector.body.1 ]
++ %step.add = add <4 x i32> %vec.ind, <i32 4, i32 4, i32 4, i32 4>
++ %step.add24 = add <4 x i32> %vec.ind, <i32 8, i32 8, i32 8, i32 8>
++ %step.add25 = add <4 x i32> %vec.ind, <i32 12, i32 12, i32 12, i32 12>
++ %step.add26 = add <4 x i32> %vec.ind, <i32 16, i32 16, i32 16, i32 16>
++ %step.add27 = add <4 x i32> %vec.ind, <i32 20, i32 20, i32 20, i32 20>
++ %step.add28 = add <4 x i32> %vec.ind, <i32 24, i32 24, i32 24, i32 24>
++ %step.add29 = add <4 x i32> %vec.ind, <i32 28, i32 28, i32 28, i32 28>
++ %step.add30 = add <4 x i32> %vec.ind, <i32 32, i32 32, i32 32, i32 32>
++ %step.add31 = add <4 x i32> %vec.ind, <i32 36, i32 36, i32 36, i32 36>
++ %step.add32 = add <4 x i32> %vec.ind, <i32 40, i32 40, i32 40, i32 40>
++ %step.add33 = add <4 x i32> %vec.ind, <i32 44, i32 44, i32 44, i32 44>
++ %1 = getelementptr inbounds [4096 x i32], ptr @a, i64 0, i64 %index
++ store <4 x i32> %vec.ind, ptr %1, align 4
++ %2 = getelementptr inbounds i32, ptr %1, i64 4
++ store <4 x i32> %step.add, ptr %2, align 4
++ %3 = getelementptr inbounds i32, ptr %1, i64 8
++ store <4 x i32> %step.add24, ptr %3, align 4
++ %4 = getelementptr inbounds i32, ptr %1, i64 12
++ store <4 x i32> %step.add25, ptr %4, align 4
++ %5 = getelementptr inbounds i32, ptr %1, i64 16
++ store <4 x i32> %step.add26, ptr %5, align 4
++ %6 = getelementptr inbounds i32, ptr %1, i64 20
++ store <4 x i32> %step.add27, ptr %6, align 4
++ %7 = getelementptr inbounds i32, ptr %1, i64 24
++ store <4 x i32> %step.add28, ptr %7, align 4
++ %8 = getelementptr inbounds i32, ptr %1, i64 28
++ store <4 x i32> %step.add29, ptr %8, align 4
++ %9 = getelementptr inbounds i32, ptr %1, i64 32
++ store <4 x i32> %step.add30, ptr %9, align 4
++ %10 = getelementptr inbounds i32, ptr %1, i64 36
++ store <4 x i32> %step.add31, ptr %10, align 4
++ %11 = getelementptr inbounds i32, ptr %1, i64 40
++ store <4 x i32> %step.add32, ptr %11, align 4
++ %12 = getelementptr inbounds i32, ptr %1, i64 44
++ store <4 x i32> %step.add33, ptr %12, align 4
++ %index.next = add nuw nsw i64 %index, 48
++ %13 = icmp eq i64 %index.next, 4080
++ br i1 %13, label %for.body, label %vector.body.1
++
++vector.body.1: ; preds = %vector.body
++ %vec.ind.next = add <4 x i32> %vec.ind, <i32 48, i32 48, i32 48, i32 48>
++ %step.add.1 = add <4 x i32> %vec.ind, <i32 52, i32 52, i32 52, i32 52>
++ %step.add24.1 = add <4 x i32> %vec.ind, <i32 56, i32 56, i32 56, i32 56>
++ %step.add25.1 = add <4 x i32> %vec.ind, <i32 60, i32 60, i32 60, i32 60>
++ %step.add26.1 = add <4 x i32> %vec.ind, <i32 64, i32 64, i32 64, i32 64>
++ %step.add27.1 = add <4 x i32> %vec.ind, <i32 68, i32 68, i32 68, i32 68>
++ %step.add28.1 = add <4 x i32> %vec.ind, <i32 72, i32 72, i32 72, i32 72>
++ %step.add29.1 = add <4 x i32> %vec.ind, <i32 76, i32 76, i32 76, i32 76>
++ %step.add30.1 = add <4 x i32> %vec.ind, <i32 80, i32 80, i32 80, i32 80>
++ %step.add31.1 = add <4 x i32> %vec.ind, <i32 84, i32 84, i32 84, i32 84>
++ %step.add32.1 = add <4 x i32> %vec.ind, <i32 88, i32 88, i32 88, i32 88>
++ %step.add33.1 = add <4 x i32> %vec.ind, <i32 92, i32 92, i32 92, i32 92>
++ %14 = getelementptr inbounds [4096 x i32], ptr @a, i64 0, i64 %index.next
++ store <4 x i32> %vec.ind.next, ptr %14, align 4
++ %15 = getelementptr inbounds i32, ptr %14, i64 4
++ store <4 x i32> %step.add.1, ptr %15, align 4
++ %16 = getelementptr inbounds i32, ptr %14, i64 8
++ store <4 x i32> %step.add24.1, ptr %16, align 4
++ %17 = getelementptr inbounds i32, ptr %14, i64 12
++ store <4 x i32> %step.add25.1, ptr %17, align 4
++ %18 = getelementptr inbounds i32, ptr %14, i64 16
++ store <4 x i32> %step.add26.1, ptr %18, align 4
++ %19 = getelementptr inbounds i32, ptr %14, i64 20
++ store <4 x i32> %step.add27.1, ptr %19, align 4
++ %20 = getelementptr inbounds i32, ptr %14, i64 24
++ store <4 x i32> %step.add28.1, ptr %20, align 4
++ %21 = getelementptr inbounds i32, ptr %14, i64 28
++ store <4 x i32> %step.add29.1, ptr %21, align 4
++ %22 = getelementptr inbounds i32, ptr %14, i64 32
++ store <4 x i32> %step.add30.1, ptr %22, align 4
++ %23 = getelementptr inbounds i32, ptr %14, i64 36
++ store <4 x i32> %step.add31.1, ptr %23, align 4
++ %24 = getelementptr inbounds i32, ptr %14, i64 40
++ store <4 x i32> %step.add32.1, ptr %24, align 4
++ %25 = getelementptr inbounds i32, ptr %14, i64 44
++ store <4 x i32> %step.add33.1, ptr %25, align 4
++ %index.next.1 = add nuw nsw i64 %index, 96
++ %vec.ind.next.1 = add <4 x i32> %vec.ind, <i32 96, i32 96, i32 96, i32 96>
++ br label %vector.body
++
++vector.body40: ; preds = %vector.body40.1, %for.body
++ %index41 = phi i64 [ 0, %for.body ], [ %index.next56.1, %vector.body40.1 ]
++ %vec.ind42 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %for.body ], [ %vec.ind.next55.1, %vector.body40.1 ]
++ %step.add43 = add <4 x i32> %vec.ind42, <i32 4, i32 4, i32 4, i32 4>
++ %step.add44 = add <4 x i32> %vec.ind42, <i32 8, i32 8, i32 8, i32 8>
++ %step.add45 = add <4 x i32> %vec.ind42, <i32 12, i32 12, i32 12, i32 12>
++ %step.add46 = add <4 x i32> %vec.ind42, <i32 16, i32 16, i32 16, i32 16>
++ %step.add47 = add <4 x i32> %vec.ind42, <i32 20, i32 20, i32 20, i32 20>
++ %step.add48 = add <4 x i32> %vec.ind42, <i32 24, i32 24, i32 24, i32 24>
++ %step.add49 = add <4 x i32> %vec.ind42, <i32 28, i32 28, i32 28, i32 28>
++ %step.add50 = add <4 x i32> %vec.ind42, <i32 32, i32 32, i32 32, i32 32>
++ %step.add51 = add <4 x i32> %vec.ind42, <i32 36, i32 36, i32 36, i32 36>
++ %step.add52 = add <4 x i32> %vec.ind42, <i32 40, i32 40, i32 40, i32 40>
++ %step.add53 = add <4 x i32> %vec.ind42, <i32 44, i32 44, i32 44, i32 44>
++ %26 = getelementptr inbounds [4096 x i32], ptr @a, i64 0, i64 %index41
++ store <4 x i32> %vec.ind42, ptr %26, align 4
++ %27 = getelementptr inbounds i32, ptr %26, i64 4
++ store <4 x i32> %step.add43, ptr %27, align 4
++ %28 = getelementptr inbounds i32, ptr %26, i64 8
++ store <4 x i32> %step.add44, ptr %28, align 4
++ %29 = getelementptr inbounds i32, ptr %26, i64 12
++ store <4 x i32> %step.add45, ptr %29, align 4
++ %30 = getelementptr inbounds i32, ptr %26, i64 16
++ store <4 x i32> %step.add46, ptr %30, align 4
++ %31 = getelementptr inbounds i32, ptr %26, i64 20
++ store <4 x i32> %step.add47, ptr %31, align 4
++ %32 = getelementptr inbounds i32, ptr %26, i64 24
++ store <4 x i32> %step.add48, ptr %32, align 4
++ %33 = getelementptr inbounds i32, ptr %26, i64 28
++ store <4 x i32> %step.add49, ptr %33, align 4
++ %34 = getelementptr inbounds i32, ptr %26, i64 32
++ store <4 x i32> %step.add50, ptr %34, align 4
++ %35 = getelementptr inbounds i32, ptr %26, i64 36
++ store <4 x i32> %step.add51, ptr %35, align 4
++ %36 = getelementptr inbounds i32, ptr %26, i64 40
++ store <4 x i32> %step.add52, ptr %36, align 4
++ %37 = getelementptr inbounds i32, ptr %26, i64 44
++ store <4 x i32> %step.add53, ptr %37, align 4
++ %index.next56 = add nuw nsw i64 %index41, 48
++ %38 = icmp eq i64 %index.next56, 4080
++ br i1 %38, label %for.body5, label %vector.body40.1
++
++vector.body40.1: ; preds = %vector.body40
++ %vec.ind.next55 = add <4 x i32> %vec.ind42, <i32 48, i32 48, i32 48, i32 48>
++ %step.add43.1 = add <4 x i32> %vec.ind42, <i32 52, i32 52, i32 52, i32 52>
++ %step.add44.1 = add <4 x i32> %vec.ind42, <i32 56, i32 56, i32 56, i32 56>
++ %step.add45.1 = add <4 x i32> %vec.ind42, <i32 60, i32 60, i32 60, i32 60>
++ %step.add46.1 = add <4 x i32> %vec.ind42, <i32 64, i32 64, i32 64, i32 64>
++ %step.add47.1 = add <4 x i32> %vec.ind42, <i32 68, i32 68, i32 68, i32 68>
++ %step.add48.1 = add <4 x i32> %vec.ind42, <i32 72, i32 72, i32 72, i32 72>
++ %step.add49.1 = add <4 x i32> %vec.ind42, <i32 76, i32 76, i32 76, i32 76>
++ %step.add50.1 = add <4 x i32> %vec.ind42, <i32 80, i32 80, i32 80, i32 80>
++ %step.add51.1 = add <4 x i32> %vec.ind42, <i32 84, i32 84, i32 84, i32 84>
++ %step.add52.1 = add <4 x i32> %vec.ind42, <i32 88, i32 88, i32 88, i32 88>
++ %step.add53.1 = add <4 x i32> %vec.ind42, <i32 92, i32 92, i32 92, i32 92>
++ %39 = getelementptr inbounds [4096 x i32], ptr @a, i64 0, i64 %index.next56
++ store <4 x i32> %vec.ind.next55, ptr %39, align 4
++ %40 = getelementptr inbounds i32, ptr %39, i64 4
++ store <4 x i32> %step.add43.1, ptr %40, align 4
++ %41 = getelementptr inbounds i32, ptr %39, i64 8
++ store <4 x i32> %step.add44.1, ptr %41, align 4
++ %42 = getelementptr inbounds i32, ptr %39, i64 12
++ store <4 x i32> %step.add45.1, ptr %42, align 4
++ %43 = getelementptr inbounds i32, ptr %39, i64 16
++ store <4 x i32> %step.add46.1, ptr %43, align 4
++ %44 = getelementptr inbounds i32, ptr %39, i64 20
++ store <4 x i32> %step.add47.1, ptr %44, align 4
++ %45 = getelementptr inbounds i32, ptr %39, i64 24
++ store <4 x i32> %step.add48.1, ptr %45, align 4
++ %46 = getelementptr inbounds i32, ptr %39, i64 28
++ store <4 x i32> %step.add49.1, ptr %46, align 4
++ %47 = getelementptr inbounds i32, ptr %39, i64 32
++ store <4 x i32> %step.add50.1, ptr %47, align 4
++ %48 = getelementptr inbounds i32, ptr %39, i64 36
++ store <4 x i32> %step.add51.1, ptr %48, align 4
++ %49 = getelementptr inbounds i32, ptr %39, i64 40
++ store <4 x i32> %step.add52.1, ptr %49, align 4
++ %50 = getelementptr inbounds i32, ptr %39, i64 44
++ store <4 x i32> %step.add53.1, ptr %50, align 4
++ %index.next56.1 = add nuw nsw i64 %index41, 96
++ %vec.ind.next55.1 = add <4 x i32> %vec.ind42, <i32 96, i32 96, i32 96, i32 96>
++ br label %vector.body40
++
++for.body: ; preds = %vector.body
++ store i32 4080, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4080), align 4
++ store i32 4081, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4081), align 4
++ store i32 4082, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4082), align 4
++ store i32 4083, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4083), align 4
++ store i32 4084, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4084), align 4
++ store i32 4085, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4085), align 4
++ store i32 4086, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4086), align 4
++ store i32 4087, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4087), align 4
++ store i32 4088, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4088), align 4
++ store i32 4089, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4089), align 4
++ store i32 4090, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4090), align 4
++ store i32 4091, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4091), align 4
++ store i32 4092, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4092), align 4
++ store i32 4093, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4093), align 4
++ store i32 4094, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4094), align 4
++ store i32 4095, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4095), align 4
++ call void @_ZN1dILi17EE1eEv(ptr noundef nonnull align 4 dereferenceable(524288) %c)
++ br label %vector.body40
++
++for.body5: ; preds = %vector.body40
++ store i32 4080, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4080), align 4
++ store i32 4081, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4081), align 4
++ store i32 4082, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4082), align 4
++ store i32 4083, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4083), align 4
++ store i32 4084, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4084), align 4
++ store i32 4085, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4085), align 4
++ store i32 4086, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4086), align 4
++ store i32 4087, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4087), align 4
++ store i32 4088, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4088), align 4
++ store i32 4089, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4089), align 4
++ store i32 4090, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4090), align 4
++ store i32 4091, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4091), align 4
++ store i32 4092, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4092), align 4
++ store i32 4093, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4093), align 4
++ store i32 4094, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4094), align 4
++ store i32 4095, ptr getelementptr inbounds ([4096 x i32], ptr @a, i64 0, i64 4095), align 4
++ call void @_Z1h1dILi17EE(ptr noundef nonnull byval(%struct.d) align 8 %c)
++ call void @llvm.lifetime.end.p0(i64 524288, ptr nonnull %c) #3
++ ret void
++}
++
++; Function Attrs: argmemonly mustprogress nocallback nofree nosync nounwind willreturn
++declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
++
++; Function Attrs: argmemonly mustprogress nocallback nofree nosync nounwind willreturn
++declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
++
++declare void @_ZN1dILi17EE1eEv(ptr noundef nonnull align 4 dereferenceable(524288)) local_unnamed_addr #2
++
++declare void @_Z1h1dILi17EE(ptr noundef byval(%struct.d) align 8) local_unnamed_addr #2
++attributes #0 = { nounwind }
+
--- /dev/null
+Origin: https://reviews.llvm.org/D67877
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941082
+
+Index: llvm-toolchain-snapshot_11~++20200409051253+d08105482e1/clang/lib/Analysis/plugins/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200409051253+d08105482e1.orig/clang/lib/Analysis/plugins/CMakeLists.txt
++++ llvm-toolchain-snapshot_11~++20200409051253+d08105482e1/clang/lib/Analysis/plugins/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-if(CLANG_ENABLE_STATIC_ANALYZER AND LLVM_ENABLE_PLUGINS)
++if(CLANG_ENABLE_STATIC_ANALYZER AND LLVM_ENABLE_PLUGINS AND CLANG_BUILD_EXAMPLES)
+ add_subdirectory(SampleAnalyzer)
+ add_subdirectory(CheckerDependencyHandling)
+ add_subdirectory(CheckerOptionHandling)
+Index: llvm-toolchain-snapshot_11~++20200409051253+d08105482e1/clang/test/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200409051253+d08105482e1.orig/clang/test/CMakeLists.txt
++++ llvm-toolchain-snapshot_11~++20200409051253+d08105482e1/clang/test/CMakeLists.txt
+@@ -138,14 +138,12 @@ if( NOT CLANG_BUILT_STANDALONE )
+ endif()
+ endif()
+
+-if (CLANG_ENABLE_STATIC_ANALYZER)
+- if (LLVM_ENABLE_PLUGINS)
+- list(APPEND CLANG_TEST_DEPS
+- SampleAnalyzerPlugin
+- CheckerDependencyHandlingAnalyzerPlugin
+- CheckerOptionHandlingAnalyzerPlugin
+- )
+- endif()
++if (CLANG_ENABLE_STATIC_ANALYZER AND CLANG_BUILD_EXAMPLES AND LLVM_ENABLE_PLUGINS)
++ list(APPEND CLANG_TEST_DEPS
++ SampleAnalyzerPlugin
++ CheckerDependencyHandlingAnalyzerPlugin
++ CheckerOptionHandlingAnalyzerPlugin
++ )
+ endif()
+
+ # Copy gen_ast_dump_json_test.py to the clang build dir. This allows invoking
--- /dev/null
+Index: llvm/lib/MC/MCParser/ELFAsmParser.cpp
+===================================================================
+--- a/llvm/lib/MC/MCParser/ELFAsmParser.cpp
++++ b/llvm/lib/MC/MCParser/ELFAsmParser.cpp
+@@ -652,10 +652,13 @@
+ !(SectionName == ".eh_frame" && Type == ELF::SHT_PROGBITS))
+ Error(loc, "changed section type for " + SectionName + ", expected: 0x" +
+ utohexstr(Section->getType()));
+- if (Section->getFlags() != Flags)
++ // Check that flags are used consistently. However, the GNU assembler permits
++ // to leave out in subsequent uses of the same sections; for compatibility,
++ // do likewise.
++ if ((Flags || Size || !TypeName.empty()) && Section->getFlags() != Flags)
+ Error(loc, "changed section flags for " + SectionName + ", expected: 0x" +
+ utohexstr(Section->getFlags()));
+- if (Section->getEntrySize() != Size)
++ if ((Flags || Size || !TypeName.empty()) && Section->getEntrySize() != Size)
+ Error(loc, "changed section entsize for " + SectionName +
+ ", expected: " + Twine(Section->getEntrySize()));
+
+Index: llvm/test/MC/ELF/section-entsize-changed.s
+===================================================================
+--- a/llvm/test/MC/ELF/section-entsize-changed.s
++++ b/llvm/test/MC/ELF/section-entsize-changed.s
+@@ -10,3 +10,26 @@
+ .pushsection .foo,"aM",@progbits,4
+
+ .pushsection .foo,"aM",@progbits,1
++
++
++bar:
++.section .bar,"ax",@progbits
++
++.section .bar
++
++# CHECK: {{.*}}.s:[[# @LINE+1]]:1: error: changed section flags for .bar, expected: 0x6
++.section .bar,"awx",@progbits
++
++# CHECK: {{.*}}.s:[[# @LINE+1]]:1: error: changed section flags for .bar, expected: 0x6
++.pushsection .bar,"a",@progbits
++
++.pushsection .bar
++
++foobar:
++.section .foobar,"ax",@progbits; .byte 1
++
++# CHECK: {{.*}}.s:[[# @LINE+1]]:1: error: changed section flags for .foobar, expected: 0x6
++.section .foobar,"",@progbits; .byte 2
++
++# CHECK: {{.*}}.s:[[# @LINE+1]]:1: error: changed section flags for .foobar, expected: 0x6
++.section .foobar,"a",@progbits; .byte 3
+Index: llvm/test/MC/ELF/section-omitted-attributes.s
+===================================================================
+--- /dev/null
++++ llvm/test/MC/ELF/section-omitted-attributes.s
+@@ -0,0 +1,21 @@
++# RUN: llvm-mc -triple=x86_64 %s -o - | FileCheck %s
++
++// CHECK: .section .foo,"aM",@progbits,1
++// CHECK: .section .bar,"aM",@progbits,4
++
++foo:
++.section .foo,"aM",@progbits,1
++
++.section .foo
++
++.pushsection .foo
++
++.pushsection .foo
++
++.section .bar,"aM",@progbits,4
++
++.section .bar
++
++.pushsection .bar,"aM",@progbits,4
++
++.pushsection .bar
--- /dev/null
+From b5caa68fb2444f0fc0e459be3b7a3da88a68b566 Mon Sep 17 00:00:00 2001
+From: David Green <david.green@arm.com>
+Date: Tue, 1 Nov 2022 15:00:56 +0000
+Subject: [PATCH] [ARM] Tests for various NEON vector compares. NFC
+
+---
+ llvm/test/CodeGen/ARM/vcmpz.ll | 301 +++++++++++++++++++++++++++++++++
+ 1 file changed, 301 insertions(+)
+ create mode 100644 llvm/test/CodeGen/ARM/vcmpz.ll
+
+diff --git a/llvm/test/CodeGen/ARM/vcmpz.ll b/llvm/test/CodeGen/ARM/vcmpz.ll
+new file mode 100644
+index 000000000000..f800346a6b56
+--- /dev/null
++++ b/llvm/test/CodeGen/ARM/vcmpz.ll
+@@ -0,0 +1,301 @@
++; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
++; RUN: llc < %s -mtriple=armv8-eabi -mattr=+neon | FileCheck %s
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_eq(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_eq:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q0, q0, q1
++; CHECK-NEXT: bx lr
++ %2 = icmp eq <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_ne(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_ne:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q8, q0, q1
++; CHECK-NEXT: vmvn q0, q8
++; CHECK-NEXT: bx lr
++ %2 = icmp ne <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_slt(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_slt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcgt.s32 q0, q1, q0
++; CHECK-NEXT: bx lr
++ %2 = icmp slt <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_sle(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_sle:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcge.s32 q0, q1, q0
++; CHECK-NEXT: bx lr
++ %2 = icmp sle <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_sgt(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_sgt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcgt.s32 q0, q0, q1
++; CHECK-NEXT: bx lr
++ %2 = icmp sgt <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_sge(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_sge:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcge.s32 q0, q0, q1
++; CHECK-NEXT: bx lr
++ %2 = icmp sge <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_ult(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_ult:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcgt.u32 q0, q1, q0
++; CHECK-NEXT: bx lr
++ %2 = icmp ult <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_ule(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_ule:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcge.u32 q0, q1, q0
++; CHECK-NEXT: bx lr
++ %2 = icmp ule <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_ugt(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_ugt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcgt.u32 q0, q0, q1
++; CHECK-NEXT: bx lr
++ %2 = icmp ugt <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_uge(<4 x i32> %0, <4 x i32> %b) {
++; CHECK-LABEL: vcmpz_uge:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcge.u32 q0, q0, q1
++; CHECK-NEXT: bx lr
++ %2 = icmp uge <4 x i32> %0, %b
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_eq(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_eq:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp eq <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ne(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_ne:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q8, q0, #0
++; CHECK-NEXT: vmvn q0, q8
++; CHECK-NEXT: bx lr
++ %2 = icmp ne <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_slt(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_slt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vclt.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp slt <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_sle(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_sle:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcle.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp sle <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_sgt(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_sgt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcgt.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp sgt <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_sge(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_sge:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcge.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp sge <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ult(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_ult:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vmov.i32 q0, #0x0
++; CHECK-NEXT: bx lr
++ %2 = icmp ult <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++;define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ule(<4 x i32> %0) {
++; %2 = icmp ule <4 x i32> %0, zeroinitializer
++; %3 = sext <4 x i1> %2 to <4 x i32>
++; ret <4 x i32> %3
++;}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ugt(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_ugt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q8, q0, #0
++; CHECK-NEXT: vmvn q0, q8
++; CHECK-NEXT: bx lr
++ %2 = icmp ugt <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_uge(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_uge:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vmov.i8 q0, #0xff
++; CHECK-NEXT: bx lr
++ %2 = icmp uge <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_eq(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_eq:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp eq <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ne(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_ne:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q8, q0, #0
++; CHECK-NEXT: vmvn q0, q8
++; CHECK-NEXT: bx lr
++ %2 = icmp ne <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_slt(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_slt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcgt.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp slt <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_sle(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_sle:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcge.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp sle <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_sgt(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_sgt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vclt.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp sgt <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_sge(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_sge:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vcle.s32 q0, q0, #0
++; CHECK-NEXT: bx lr
++ %2 = icmp sge <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ult(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_ult:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vceq.i32 q8, q0, #0
++; CHECK-NEXT: vmvn q0, q8
++; CHECK-NEXT: bx lr
++ %2 = icmp ult <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ule(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_ule:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vmov.i8 q0, #0xff
++; CHECK-NEXT: bx lr
++ %2 = icmp ule <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ugt(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_ugt:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vmov.i32 q0, #0x0
++; CHECK-NEXT: bx lr
++ %2 = icmp ugt <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
++
++;define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_uge(<4 x i32> %0) {
++; %2 = icmp uge <4 x i32> zeroinitializer, %0
++; %3 = sext <4 x i1> %2 to <4 x i32>
++; ret <4 x i32> %3
++;}
--- /dev/null
+Index: llvm-toolchain-15-15.0.2/bolt/tools/merge-fdata/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.2.orig/bolt/tools/merge-fdata/CMakeLists.txt
++++ llvm-toolchain-15-15.0.2/bolt/tools/merge-fdata/CMakeLists.txt
+@@ -11,6 +11,6 @@ add_bolt_tool(merge-fdata
+ set_target_properties(merge-fdata PROPERTIES FOLDER "BOLT")
+
+ # Emit relocations for BOLT meta test (bolt/test/runtime/meta-merge-fdata.test)
+-if (BOLT_INCLUDE_TESTS AND UNIX AND NOT APPLE)
+- target_link_options(merge-fdata PRIVATE LINKER:--emit-relocs)
+-endif()
++# if (BOLT_INCLUDE_TESTS AND UNIX AND NOT APPLE)
++# target_link_options(merge-fdata PRIVATE LINKER:--emit-relocs)
++# endif()
--- /dev/null
+Index: llvm-toolchain-15-15.0.1/bolt/lib/Core/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Core/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/Core/CMakeLists.txt
+@@ -24,6 +24,7 @@ add_llvm_library(LLVMBOLTCore
+ ParallelUtilities.cpp
+ Relocation.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
+ LINK_LIBS
+ ${LLVM_PTHREAD_LIB}
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/lib/Passes/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Passes/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/Passes/CMakeLists.txt
+@@ -46,6 +46,8 @@ add_llvm_library(LLVMBOLTPasses
+ VeneerElimination.cpp
+ RetpolineInsertion.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ LINK_LIBS
+ ${LLVM_PTHREAD_LIB}
+
+Index: llvm-toolchain-15-15.0.1/bolt/lib/Profile/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Profile/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/Profile/CMakeLists.txt
+@@ -7,6 +7,8 @@ add_llvm_library(LLVMBOLTProfile
+ YAMLProfileReader.cpp
+ YAMLProfileWriter.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ LINK_COMPONENTS
+ Support
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/lib/Rewrite/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Rewrite/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/Rewrite/CMakeLists.txt
+@@ -33,6 +33,8 @@ add_llvm_library(LLVMBOLTRewrite
+ MachORewriteInstance.cpp
+ RewriteInstance.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ LINK_LIBS
+ ${LLVM_PTHREAD_LIB}
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/lib/RuntimeLibs/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/RuntimeLibs/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/RuntimeLibs/CMakeLists.txt
+@@ -10,6 +10,8 @@ add_llvm_library(LLVMBOLTRuntimeLibs
+ RuntimeLibrary.cpp
+ HugifyRuntimeLibrary.cpp
+ InstrumentationRuntimeLibrary.cpp
++
++ DISABLE_LLVM_LINK_LLVM_DYLIB
+ )
+
+ target_link_libraries(LLVMBOLTRuntimeLibs
+Index: llvm-toolchain-15-15.0.1/bolt/lib/Target/AArch64/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Target/AArch64/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/Target/AArch64/CMakeLists.txt
+@@ -8,6 +8,8 @@ set(LLVM_LINK_COMPONENTS
+ add_llvm_library(LLVMBOLTTargetAArch64
+ AArch64MCPlusBuilder.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ DEPENDS
+ AArch64CommonTableGen
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/lib/Target/X86/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Target/X86/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/Target/X86/CMakeLists.txt
+@@ -11,6 +11,8 @@ add_llvm_library(LLVMBOLTTargetX86
+ X86MCPlusBuilder.cpp
+ X86MCSymbolizer.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ DEPENDS
+ X86CommonTableGen
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/lib/Utils/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Utils/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/lib/Utils/CMakeLists.txt
+@@ -2,6 +2,8 @@ add_llvm_library(LLVMBOLTUtils
+ CommandLineOpts.cpp
+ Utils.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ LINK_LIBS
+ ${LLVM_PTHREAD_LIB}
+
+Index: llvm-toolchain-15-15.0.1/bolt/tools/driver/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/tools/driver/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/tools/driver/CMakeLists.txt
+@@ -14,6 +14,8 @@ endif()
+ add_bolt_tool(llvm-bolt
+ llvm-bolt.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ DEPENDS
+ ${BOLT_DRIVER_DEPS}
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/tools/heatmap/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/tools/heatmap/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/tools/heatmap/CMakeLists.txt
+@@ -7,6 +7,7 @@ set(LLVM_LINK_COMPONENTS
+
+ add_bolt_tool(llvm-bolt-heatmap
+ heatmap.cpp
++ DISABLE_LLVM_LINK_LLVM_DYLIB
+ )
+
+ target_link_libraries(llvm-bolt-heatmap
+Index: llvm-toolchain-15-15.0.1/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
+@@ -5,4 +5,6 @@ set(LLVM_LINK_COMPONENTS
+
+ add_llvm_fuzzer(llvm-bolt-fuzzer
+ llvm-bolt-fuzzer.cpp
++
++ DISABLE_LLVM_LINK_LLVM_DYLIB
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/tools/merge-fdata/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/tools/merge-fdata/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/tools/merge-fdata/CMakeLists.txt
+@@ -3,6 +3,8 @@ set(LLVM_LINK_COMPONENTS Support)
+ add_bolt_tool(merge-fdata
+ merge-fdata.cpp
+
++ DISABLE_LLVM_LINK_LLVM_DYLIB
++
+ DEPENDS
+ intrinsics_gen
+ )
+Index: llvm-toolchain-15-15.0.1/bolt/unittests/Core/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/unittests/Core/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/unittests/Core/CMakeLists.txt
+@@ -9,6 +9,8 @@ add_bolt_unittest(CoreTests
+ BinaryContext.cpp
+ MCPlusBuilder.cpp
+ DynoStats.cpp
++
++ DISABLE_LLVM_LINK_LLVM_DYLIB
+ )
+
+ target_link_libraries(CoreTests
+Index: llvm-toolchain-15-15.0.1/bolt/unittests/Profile/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15-15.0.1.orig/bolt/unittests/Profile/CMakeLists.txt
++++ llvm-toolchain-15-15.0.1/bolt/unittests/Profile/CMakeLists.txt
+@@ -1,5 +1,7 @@
+ add_bolt_unittest(ProfileTests
+ DataAggregator.cpp
++
++ DISABLE_LLVM_LINK_LLVM_DYLIB
+ )
+
+ target_link_libraries(ProfileTests
--- /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-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Headers/inttypes.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Headers/inttypes.h
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Headers/inttypes.h
+@@ -6,7 +6,7 @@
+ *
+ \*===----------------------------------------------------------------------===*/
+
+-#ifndef __CLANG_INTTYPES_H
++#if !defined(__CLANG_INTTYPES_H) || !defined(_INTTYPES_H)
+ // AIX system headers need inttypes.h to be re-enterable while _STD_TYPES_T
+ // is defined until an inclusion of it without _STD_TYPES_T occurs, in which
+ // case the header guard macro is defined.
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Headers/limits.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Headers/limits.h
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Headers/limits.h
+@@ -6,7 +6,7 @@
+ *
+ \*===----------------------------------------------------------------------===*/
+
+-#ifndef __CLANG_LIMITS_H
++#if !defined(__CLANG_LIMITS_H) || !defined(_LIBC_LIMITS_H_)
+ #define __CLANG_LIMITS_H
+
+ /* The system's limits.h may, in turn, try to #include_next GCC's limits.h.
--- /dev/null
+From e3cd3a3c91524c957e06bb0170343548f02b6842 Mon Sep 17 00:00:00 2001
+From: Tom Stellard <tstellar@redhat.com>
+Date: Thu, 11 Feb 2021 22:28:19 +0000
+Subject: [PATCH] Partially Revert "scan-view: Remove Reporter.py and
+ associated AppleScript files"
+
+This reverts some of commit dbb01536f6f49fa428f170e34466072ef439b3e9.
+
+The Reporter module was still being used by the ScanView.py module and deleting
+it caused scan-view to fail. This commit adds back Reporter.py but removes the
+code the references the AppleScript files which were removed in
+dbb01536f6f49fa428f170e34466072ef439b3e9.
+
+Reviewed By: NoQ
+
+Differential Revision: https://reviews.llvm.org/D96367
+---
+ clang/tools/scan-view/CMakeLists.txt | 1 +
+ clang/tools/scan-view/share/Reporter.py | 183 ++++++++++++++++++++++++
+ 2 files changed, 184 insertions(+)
+ create mode 100644 clang/tools/scan-view/share/Reporter.py
+
+diff --git a/clang/tools/scan-view/CMakeLists.txt b/clang/tools/scan-view/CMakeLists.txt
+index dd3d33439299..eccc6b83195b 100644
+--- a/clang/tools/scan-view/CMakeLists.txt
++++ b/clang/tools/scan-view/CMakeLists.txt
+@@ -5,6 +5,7 @@ set(BinFiles
+
+ set(ShareFiles
+ ScanView.py
++ Reporter.py
+ startfile.py
+ bugcatcher.ico)
+
+diff --git a/clang/tools/scan-view/share/Reporter.py b/clang/tools/scan-view/share/Reporter.py
+new file mode 100644
+index 000000000000..31a14fb0cf74
+--- /dev/null
++++ b/clang/tools/scan-view/share/Reporter.py
+@@ -0,0 +1,183 @@
++#!/usr/bin/env python
++# -*- coding: utf-8 -*-
++
++"""Methods for reporting bugs."""
++
++import subprocess, sys, os
++
++__all__ = ['ReportFailure', 'BugReport', 'getReporters']
++
++#
++
++class ReportFailure(Exception):
++ """Generic exception for failures in bug reporting."""
++ def __init__(self, value):
++ self.value = value
++
++# Collect information about a bug.
++
++class BugReport(object):
++ def __init__(self, title, description, files):
++ self.title = title
++ self.description = description
++ self.files = files
++
++# Reporter interfaces.
++
++import os
++
++import email, mimetypes, smtplib
++from email import encoders
++from email.message import Message
++from email.mime.base import MIMEBase
++from email.mime.multipart import MIMEMultipart
++from email.mime.text import MIMEText
++
++#===------------------------------------------------------------------------===#
++# ReporterParameter
++#===------------------------------------------------------------------------===#
++
++class ReporterParameter(object):
++ def __init__(self, n):
++ self.name = n
++ def getName(self):
++ return self.name
++ def getValue(self,r,bugtype,getConfigOption):
++ return getConfigOption(r.getName(),self.getName())
++ def saveConfigValue(self):
++ return True
++
++class TextParameter (ReporterParameter):
++ def getHTML(self,r,bugtype,getConfigOption):
++ return """\
++<tr>
++<td class="form_clabel">%s:</td>
++<td class="form_value"><input type="text" name="%s_%s" value="%s"></td>
++</tr>"""%(self.getName(),r.getName(),self.getName(),self.getValue(r,bugtype,getConfigOption))
++
++class SelectionParameter (ReporterParameter):
++ def __init__(self, n, values):
++ ReporterParameter.__init__(self,n)
++ self.values = values
++
++ def getHTML(self,r,bugtype,getConfigOption):
++ default = self.getValue(r,bugtype,getConfigOption)
++ return """\
++<tr>
++<td class="form_clabel">%s:</td><td class="form_value"><select name="%s_%s">
++%s
++</select></td>"""%(self.getName(),r.getName(),self.getName(),'\n'.join(["""\
++<option value="%s"%s>%s</option>"""%(o[0],
++ o[0] == default and ' selected="selected"' or '',
++ o[1]) for o in self.values]))
++
++#===------------------------------------------------------------------------===#
++# Reporters
++#===------------------------------------------------------------------------===#
++
++class EmailReporter(object):
++ def getName(self):
++ return 'Email'
++
++ def getParameters(self):
++ return [TextParameter(x) for x in ['To', 'From', 'SMTP Server', 'SMTP Port']]
++
++ # Lifted from python email module examples.
++ def attachFile(self, outer, path):
++ # Guess the content type based on the file's extension. Encoding
++ # will be ignored, although we should check for simple things like
++ # gzip'd or compressed files.
++ ctype, encoding = mimetypes.guess_type(path)
++ if ctype is None or encoding is not None:
++ # No guess could be made, or the file is encoded (compressed), so
++ # use a generic bag-of-bits type.
++ ctype = 'application/octet-stream'
++ maintype, subtype = ctype.split('/', 1)
++ if maintype == 'text':
++ fp = open(path)
++ # Note: we should handle calculating the charset
++ msg = MIMEText(fp.read(), _subtype=subtype)
++ fp.close()
++ else:
++ fp = open(path, 'rb')
++ msg = MIMEBase(maintype, subtype)
++ msg.set_payload(fp.read())
++ fp.close()
++ # Encode the payload using Base64
++ encoders.encode_base64(msg)
++ # Set the filename parameter
++ msg.add_header('Content-Disposition', 'attachment', filename=os.path.basename(path))
++ outer.attach(msg)
++
++ def fileReport(self, report, parameters):
++ mainMsg = """\
++BUG REPORT
++---
++Title: %s
++Description: %s
++"""%(report.title, report.description)
++
++ if not parameters.get('To'):
++ raise ReportFailure('No "To" address specified.')
++ if not parameters.get('From'):
++ raise ReportFailure('No "From" address specified.')
++
++ msg = MIMEMultipart()
++ msg['Subject'] = 'BUG REPORT: %s'%(report.title)
++ # FIXME: Get config parameters
++ msg['To'] = parameters.get('To')
++ msg['From'] = parameters.get('From')
++ msg.preamble = mainMsg
++
++ msg.attach(MIMEText(mainMsg, _subtype='text/plain'))
++ for file in report.files:
++ self.attachFile(msg, file)
++
++ try:
++ s = smtplib.SMTP(host=parameters.get('SMTP Server'),
++ port=parameters.get('SMTP Port'))
++ s.sendmail(msg['From'], msg['To'], msg.as_string())
++ s.close()
++ except:
++ raise ReportFailure('Unable to send message via SMTP.')
++
++ return "Message sent!"
++
++class BugzillaReporter(object):
++ def getName(self):
++ return 'Bugzilla'
++
++ def getParameters(self):
++ return [TextParameter(x) for x in ['URL','Product']]
++
++ def fileReport(self, report, parameters):
++ raise NotImplementedError
++
++
++class RadarClassificationParameter(SelectionParameter):
++ def __init__(self):
++ SelectionParameter.__init__(self,"Classification",
++ [['1', 'Security'], ['2', 'Crash/Hang/Data Loss'],
++ ['3', 'Performance'], ['4', 'UI/Usability'],
++ ['6', 'Serious Bug'], ['7', 'Other']])
++
++ def saveConfigValue(self):
++ return False
++
++ def getValue(self,r,bugtype,getConfigOption):
++ if bugtype.find("leak") != -1:
++ return '3'
++ elif bugtype.find("dereference") != -1:
++ return '2'
++ elif bugtype.find("missing ivar release") != -1:
++ return '3'
++ else:
++ return '7'
++
++###
++
++def getReporters():
++ reporters = []
++ reporters.append(EmailReporter())
++ return reporters
++
--- /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_15~++20211115120952+5b4bfd8c2415/clang/tools/scan-build/libexec/ccc-analyzer
+===================================================================
+--- llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415.orig/clang/tools/scan-build/libexec/ccc-analyzer
++++ llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415/clang/tools/scan-build/libexec/ccc-analyzer
+@@ -93,7 +93,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++-15'; }
+
+ $IsCXX = 1
+ }
+@@ -102,7 +102,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-15'; }
+
+ $IsCXX = 0
+ }
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/include/llvm/Support/ARMTargetParser.def
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/include/llvm/Support/ARMTargetParser.def
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/include/llvm/Support/ARMTargetParser.def
+@@ -76,7 +76,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_15~++20220407011631+46f0e2ceb487/llvm/lib/Target/ARM/ARM.td
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/lib/Target/ARM/ARM.td
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/lib/Target/ARM/ARM.td
+@@ -855,7 +855,8 @@ def ARMv6sm : Architecture<"armv6s-m",
+ FeatureStrictAlign]>;
+
+ def ARMv7a : Architecture<"armv7-a", "ARMv7a", [HasV7Ops,
+- FeatureNEON,
++ FeatureVFP3,
++ FeatureVFP3_D16,
+ FeatureDB,
+ FeatureDSP,
+ FeatureAClass,
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Driver/ToolChains/Arch/X86.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Driver/ToolChains/Arch/X86.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Driver/ToolChains/Arch/X86.cpp
+@@ -109,8 +109,8 @@ std::string x86::getX86TargetCPU(const D
+ case llvm::Triple::FreeBSD:
+ return "i686";
+ 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_15~++20220407011631+46f0e2ceb487/clang/tools/clang-format/clang-format-diff.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/tools/clang-format/clang-format-diff.py
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/clang-format/clang-format-diff.py
+@@ -63,7 +63,7 @@ def main():
+ 'fallback in case clang-format is invoked with'
+ '-style=file, but can not find the .clang-format'
+ 'file to use.')
+- parser.add_argument('-binary', default='clang-format',
++ parser.add_argument('-binary', default='clang-format-15',
+ help='location of binary to use for clang-format')
+ args = parser.parse_args()
+
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/clang-format/clang-format.el
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/tools/clang-format/clang-format.el
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/clang-format/clang-format.el
+@@ -37,7 +37,7 @@
+ :group 'tools)
+
+ (defcustom clang-format-executable
+- (or (executable-find "clang-format")
++ (or (executable-find "clang-format-15")
+ "clang-format")
+ "Location of the clang-format executable.
+
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/clang-format/clang-format.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/tools/clang-format/clang-format.py
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/clang-format/clang-format.py
+@@ -48,7 +48,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-15'
+ if vim.eval('exists("g:clang_format_path")') == "1":
+ binary = vim.eval('g:clang_format_path')
+
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab.orig/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
++++ llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
+@@ -225,8 +225,10 @@ def main():
+ action='store_true', help='allow alpha checkers from '
+ 'clang-analyzer.')
+ parser.add_argument('-clang-tidy-binary', metavar='PATH',
++ default='clang-tidy-15',
+ help='path to clang-tidy binary')
+ parser.add_argument('-clang-apply-replacements-binary', metavar='PATH',
++ default='clang-apply-replacements-15',
+ help='path to clang-apply-replacements binary')
+ parser.add_argument('-checks', default=None,
+ help='checks filter, when not specified, use clang-tidy '
--- /dev/null
+commit ca467542eecfc621eea7fefb3c7e3849c6b43ac7
+Author: Sylvestre Ledru <sylvestre@debian.org>
+Date: Fri May 29 09:13:08 2020 +0200
+
+ [CMake] Pass CLANG_VENDOR variables into later stages
+
+ We are already passing CLANG_VERSION_* & PACKAGE_VENDOR
+
+diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
+index 7dadc5f6e91..5a5e34aacbe 100644
+--- a/clang/CMakeLists.txt
++++ b/clang/CMakeLists.txt
+@@ -711,6 +711,7 @@ if (CLANG_ENABLE_BOOTSTRAP)
+ CLANG_VERSION_MAJOR
+ CLANG_VERSION_MINOR
+ CLANG_VERSION_PATCHLEVEL
++ CLANG_VENDOR
+ LLVM_VERSION_SUFFIX
+ LLVM_BINUTILS_INCDIR
+ CLANG_REPOSITORY_STRING
--- /dev/null
+Index: llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/clang-tools-extra/clangd/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/clang-tools-extra/clangd/CMakeLists.txt
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/clang-tools-extra/clangd/CMakeLists.txt
+@@ -52,6 +52,11 @@ endif()
+
+ include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}/../clang-tidy")
+
++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
+ ASTSignals.cpp
+@@ -164,6 +169,7 @@ clang_target_link_libraries(clangDaemon
+ target_link_libraries(clangDaemon
+ PRIVATE
+ ${LLVM_PTHREAD_LIB}
++ ${CLANGD_ATOMIC_LIB}
+
+ clangTidy
+
--- /dev/null
+add option to disable compiler-rt scudo standalone allocator as it is
+not always supported by all arch profiles such as arm5vt of ARM32 arch
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/compiler-rt/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/CMakeLists.txt
+@@ -267,6 +267,12 @@ option(COMPILER_RT_USE_BUILTINS_LIBRARY
+
+ include(config-ix)
+
++option(COMPILER_RT_BUILD_SCUDO_STANDALONE
++ "override whether or not to build scudo standalone" ON)
++if(NOT COMPILER_RT_BUILD_SCUDO_STANDALONE)
++ set(COMPILER_RT_HAS_SCUDO_STANDALONE FALSE)
++endif()
++
+ #================================
+ # Setup Compiler Flags
+ #================================
--- /dev/null
+fix builtins armhf default arch detection by adding the same armhf triple
+handling use for compiler-rt
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/lib/builtins/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/compiler-rt/lib/builtins/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/lib/builtins/CMakeLists.txt
+@@ -27,6 +27,11 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURR
+
+ load_llvm_config()
+ construct_compiler_rt_default_triple()
++ if ("${COMPILER_RT_DEFAULT_TARGET_TRIPLE}" MATCHES ".*hf$")
++ if (${COMPILER_RT_DEFAULT_TARGET_ARCH} MATCHES "^arm")
++ set(COMPILER_RT_DEFAULT_TARGET_ARCH "armhf")
++ endif()
++ endif()
+
+ include(SetPlatformToolchainTools)
+ if(APPLE)
--- /dev/null
+suppress warnings for xray and testing when not enabled
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/cmake/Modules/CompilerRTUtils.cmake
+@@ -324,15 +324,15 @@ macro(load_llvm_config)
+
+ # Detect if we have the LLVMXRay and TestingSupport library installed and
+ # available from llvm-config.
++ set(COMPILER_RT_HAS_LLVMXRAY FALSE)
+ execute_process(
+ COMMAND ${LLVM_CONFIG_PATH} "--ldflags" "--libs" "xray"
+ RESULT_VARIABLE HAD_ERROR
+ OUTPUT_VARIABLE CONFIG_OUTPUT
+ ERROR_QUIET)
+- if (HAD_ERROR)
++ if (HAD_ERROR AND COMPILER_RT_BUILD_XRAY)
+ message(WARNING "llvm-config finding xray failed with status ${HAD_ERROR}")
+- set(COMPILER_RT_HAS_LLVMXRAY FALSE)
+- else()
++ elseif(COMPILER_RT_BUILD_XRAY)
+ string(REGEX REPLACE "[ \t]*[\r\n]+[ \t]*" ";" CONFIG_OUTPUT ${CONFIG_OUTPUT})
+ list(GET CONFIG_OUTPUT 0 LDFLAGS)
+ list(GET CONFIG_OUTPUT 1 LIBLIST)
+@@ -349,7 +349,7 @@ macro(load_llvm_config)
+ RESULT_VARIABLE HAD_ERROR
+ OUTPUT_VARIABLE CONFIG_OUTPUT
+ ERROR_QUIET)
+- if (HAD_ERROR)
++ if (HAD_ERROR AND COMPILER_RT_INCLUDE_TESTS)
+ message(WARNING "llvm-config finding testingsupport failed with status ${HAD_ERROR}")
+ elseif(COMPILER_RT_INCLUDE_TESTS)
+ string(REGEX REPLACE "[ \t]*[\r\n]+[ \t]*" ";" CONFIG_OUTPUT ${CONFIG_OUTPUT})
--- /dev/null
+Index: llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/llvm/lib/ExecutionEngine/PerfJITEvents/PerfJITEventListener.cpp
+@@ -304,8 +304,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_14~++20211114120952+5b4bfd8c2415/llvm/lib/Support/Unix/Memory.inc
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/llvm/lib/Support/Unix/Memory.inc
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/llvm/lib/Support/Unix/Memory.inc
+@@ -245,7 +245,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_11~++20200326111000+4673699a470/lldb/third_party/Python/module/unittest2/unittest2/runner.py
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/lldb/third_party/Python/module/unittest2/unittest2/runner.py
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/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_15~++20220407011631+46f0e2ceb487/compiler-rt/lib/xray/xray_tsc.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/compiler-rt/lib/xray/xray_tsc.h
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/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
+Index: llvm-toolchain-9-9/lldb/utils/lit-cpuid/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-9-9.orig/lldb/utils/lit-cpuid/CMakeLists.txt
++++ llvm-toolchain-9-9/lldb/utils/lit-cpuid/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-add_llvm_utility(lit-cpuid
++add_lldb_executable(lit-cpuid
+ lit-cpuid.cpp
+ )
+
--- /dev/null
+Description: Silent a test failing on yakkety amd64
+ /tmp/buildd/llvm-toolchain-snapshot-4.0~svn279801/llvm/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_15~++20220407011631+46f0e2ceb487/llvm/test/tools/llvm-symbolizer/print_context.c
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/test/tools/llvm-symbolizer/print_context.c
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/test/tools/llvm-symbolizer/print_context.c
+@@ -18,6 +18,7 @@ int main() {
+ // Inputs/print_context.o built with plain -g -c from this source file
+ // Specifying -Xclang -fdebug-compilation-dir -Xclang . to make the debug info
+ // location independent.
++// XFAIL: *
+
+ // CHECK: inc
+ // CHECK-NEXT: print_context.c:3
--- /dev/null
+Index: llvm-toolchain-snapshot_14~++20211105102832+020ca1747d6c/llvm/unittests/Support/Path.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211105102832+020ca1747d6c.orig/llvm/unittests/Support/Path.cpp
++++ llvm-toolchain-snapshot_14~++20211105102832+020ca1747d6c/llvm/unittests/Support/Path.cpp
+@@ -677,7 +677,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) {
+@@ -761,7 +761,8 @@ 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) {
+ checkSeparators(HomeDir);
+ ASSERT_NO_ERROR(fs::real_path(HomeDir, Expected));
+ checkSeparators(Expected);
+@@ -770,6 +771,7 @@ TEST_F(FileSystemTest, RealPath) {
+ 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_15~++20220314071859+3b61587c9e27/llvm/include/llvm/Support/X86TargetParser.def
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220314071859+3b61587c9e27.orig/llvm/include/llvm/Support/X86TargetParser.def
++++ llvm-toolchain-snapshot_15~++20220314071859+3b61587c9e27/llvm/include/llvm/Support/X86TargetParser.def
+@@ -225,7 +225,7 @@ CPU_SPECIFIC("pentium_mmx", "pentium-mmx
+ CPU_SPECIFIC("pentium_ii", "pentium2", 'E', "+cmov,+mmx")
+ CPU_SPECIFIC("pentium_iii", "pentium3", 'H', "+cmov,+mmx,+sse")
+ CPU_SPECIFIC_ALIAS("pentium_iii_no_xmm_regs", "pentium3", "pentium_iii")
+-CPU_SPECIFIC("pentium_4", "pentium4", 'J', "+cmov,+mmx,+sse,+sse2")
++CPU_SPECIFIC("pentium_4", "pentium4", 'J', "+cmov,+mmx,+sse")
+ CPU_SPECIFIC("pentium_m", "pentium-m", 'K', "+cmov,+mmx,+sse,+sse2")
+ CPU_SPECIFIC("pentium_4_sse3", "prescott", 'L', "+cmov,+mmx,+sse,+sse2,+sse3")
+ CPU_SPECIFIC("core_2_duo_ssse3", "core2", 'M', "+cmov,+mmx,+sse,+sse2,+sse3,+ssse3")
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/utils/lit/lit/Test.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/utils/lit/lit/Test.py
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/utils/lit/lit/Test.py
+@@ -52,7 +52,7 @@ XFAIL = ResultCode('XFAIL',
+ UNRESOLVED = ResultCode('UNRESOLVED', 'Unresolved', True)
+ TIMEOUT = ResultCode('TIMEOUT', 'Timed Out', True)
+ FAIL = ResultCode('FAIL', 'Failed', True)
+-XPASS = ResultCode('XPASS', 'Unexpectedly Passed', True)
++XPASS = ResultCode('XPASS', 'Unexpectedly Passed', False)
+
+
+ # Test metric values.
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Driver/ToolChains/Linux.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Driver/ToolChains/Linux.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Driver/ToolChains/Linux.cpp
+@@ -12,6 +12,7 @@
+ #include "Arch/PPC.h"
+ #include "Arch/RISCV.h"
+ #include "CommonArgs.h"
++#include "clang/Basic/Version.h"
+ #include "clang/Config/config.h"
+ #include "clang/Driver/Distro.h"
+ #include "clang/Driver/Driver.h"
+@@ -579,8 +580,18 @@ void Linux::AddClangSystemIncludeArgs(co
+ SmallString<128> ResourceDirInclude(D.ResourceDir);
+ llvm::sys::path::append(ResourceDirInclude, "include");
+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc) &&
+- (!getTriple().isMusl() || DriverArgs.hasArg(options::OPT_nostdlibinc)))
+- addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude);
++ (!getTriple().isMusl() || DriverArgs.hasArg(options::OPT_nostdlibinc))) {
++ if (llvm::sys::fs::exists(ResourceDirInclude)) {
++ /* Include the build include directory only
++ * Otherwise, it fails with stage2 when clang headers are available on the system
++ * they usually fail because of the include_next. Two llvm/clang headers are found
++ * while we are waiting for the lib C++ (std or not)
++ */
++ addSystemInclude(DriverArgs, CC1Args, ResourceDirInclude);
++ } else {
++ addSystemInclude(DriverArgs, CC1Args, "/usr/include/clang/" + std::string(CLANG_VERSION_STRING) + "/include/");
++ }
++ }
+
+ if (DriverArgs.hasArg(options::OPT_nostdlibinc))
+ return;
--- /dev/null
+From f970b007e55d6dab6d84d98a39658a58019eb06e Mon Sep 17 00:00:00 2001
+From: David Green <david.green@arm.com>
+Date: Wed, 2 Nov 2022 22:34:05 +0000
+Subject: [PATCH] [ARM] Fix vector ule zero lowering
+
+The instruction icmp ule <4 x i32> %0, zeroinitializer will usually be
+simplified to icmp eq <4 x i32> %0, zeroinitializer. It is not
+guaranteed though, and the code for lowering vector compares could pick
+the wrong form of the instruction if this happened. I've tried to make
+the code more explicit about the supported conditions.
+
+This fixes NEON being unable to select VCMPZ with HS conditions, and
+fixes some incorrect MVE patterns.
+
+Fixes #58514.
+
+Differential Revision: https://reviews.llvm.org/D136447
+---
+ llvm/lib/Target/ARM/ARMISelLowering.cpp | 18 +++++++-------
+ llvm/test/CodeGen/ARM/vcmpz.ll | 30 ++++++++++++++++--------
+ llvm/test/CodeGen/Thumb2/mve-pred-and.ll | 3 ++-
+ llvm/test/CodeGen/Thumb2/mve-pred-or.ll | 3 ++-
+ llvm/test/CodeGen/Thumb2/mve-pred-xor.ll | 3 ++-
+ llvm/test/CodeGen/Thumb2/mve-vcmpz.ll | 18 +++++++++-----
+ 6 files changed, 47 insertions(+), 28 deletions(-)
+
+diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp
+index c84fe4d66197..b822f15ed193 100644
+--- a/llvm/lib/Target/ARM/ARMISelLowering.cpp
++++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp
+@@ -6829,25 +6829,25 @@ static SDValue LowerVSETCC(SDValue Op, SelectionDAG &DAG,
+
+ // If one of the operands is a constant vector zero, attempt to fold the
+ // comparison to a specialized compare-against-zero form.
+- SDValue SingleOp;
+- if (ISD::isBuildVectorAllZeros(Op1.getNode()))
+- SingleOp = Op0;
+- else if (ISD::isBuildVectorAllZeros(Op0.getNode())) {
++ if (ISD::isBuildVectorAllZeros(Op0.getNode()) &&
++ (Opc == ARMCC::GE || Opc == ARMCC::GT || Opc == ARMCC::EQ ||
++ Opc == ARMCC::NE)) {
+ if (Opc == ARMCC::GE)
+ Opc = ARMCC::LE;
+ else if (Opc == ARMCC::GT)
+ Opc = ARMCC::LT;
+- SingleOp = Op1;
++ std::swap(Op0, Op1);
+ }
+
+ SDValue Result;
+- if (SingleOp.getNode()) {
+- Result = DAG.getNode(ARMISD::VCMPZ, dl, CmpVT, SingleOp,
++ if (ISD::isBuildVectorAllZeros(Op1.getNode()) &&
++ (Opc == ARMCC::GE || Opc == ARMCC::GT || Opc == ARMCC::LE ||
++ Opc == ARMCC::LT || Opc == ARMCC::NE || Opc == ARMCC::EQ))
++ Result = DAG.getNode(ARMISD::VCMPZ, dl, CmpVT, Op0,
+ DAG.getConstant(Opc, dl, MVT::i32));
+- } else {
++ else
+ Result = DAG.getNode(ARMISD::VCMP, dl, CmpVT, Op0, Op1,
+ DAG.getConstant(Opc, dl, MVT::i32));
+- }
+
+ Result = DAG.getSExtOrTrunc(Result, dl, VT);
+
+diff --git a/llvm/test/CodeGen/ARM/vcmpz.ll b/llvm/test/CodeGen/ARM/vcmpz.ll
+index f800346a6b56..51b5d28d8192 100644
+--- a/llvm/test/CodeGen/ARM/vcmpz.ll
++++ b/llvm/test/CodeGen/ARM/vcmpz.ll
+@@ -174,11 +174,16 @@ define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ult(<4 x i32> %0) {
+ ret <4 x i32> %3
+ }
+
+-;define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ule(<4 x i32> %0) {
+-; %2 = icmp ule <4 x i32> %0, zeroinitializer
+-; %3 = sext <4 x i1> %2 to <4 x i32>
+-; ret <4 x i32> %3
+-;}
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ule(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zr_ule:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vmov.i32 q8, #0x0
++; CHECK-NEXT: vcge.u32 q0, q8, q0
++; CHECK-NEXT: bx lr
++ %2 = icmp ule <4 x i32> %0, zeroinitializer
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
+
+ define arm_aapcs_vfpcc <4 x i32> @vcmpz_zr_ugt(<4 x i32> %0) {
+ ; CHECK-LABEL: vcmpz_zr_ugt:
+@@ -294,8 +299,13 @@ define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_ugt(<4 x i32> %0) {
+ ret <4 x i32> %3
+ }
+
+-;define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_uge(<4 x i32> %0) {
+-; %2 = icmp uge <4 x i32> zeroinitializer, %0
+-; %3 = sext <4 x i1> %2 to <4 x i32>
+-; ret <4 x i32> %3
+-;}
++define arm_aapcs_vfpcc <4 x i32> @vcmpz_zl_uge(<4 x i32> %0) {
++; CHECK-LABEL: vcmpz_zl_uge:
++; CHECK: @ %bb.0:
++; CHECK-NEXT: vmov.i32 q8, #0x0
++; CHECK-NEXT: vcge.u32 q0, q8, q0
++; CHECK-NEXT: bx lr
++ %2 = icmp uge <4 x i32> zeroinitializer, %0
++ %3 = sext <4 x i1> %2 to <4 x i32>
++ ret <4 x i32> %3
++}
+diff --git a/llvm/test/CodeGen/Thumb2/mve-pred-and.ll b/llvm/test/CodeGen/Thumb2/mve-pred-and.ll
+index e745fafdbea7..e8d5eadabf7f 100644
+--- a/llvm/test/CodeGen/Thumb2/mve-pred-and.ll
++++ b/llvm/test/CodeGen/Thumb2/mve-pred-and.ll
+@@ -122,8 +122,9 @@ entry:
+ define arm_aapcs_vfpcc <4 x i32> @cmpulez_v4i1(<4 x i32> %a, <4 x i32> %b) {
+ ; CHECK-LABEL: cmpulez_v4i1:
+ ; CHECK: @ %bb.0: @ %entry
++; CHECK-NEXT: vmov.i32 q2, #0x0
+ ; CHECK-NEXT: vpt.i32 eq, q0, zr
+-; CHECK-NEXT: vcmpt.u32 cs, q1, zr
++; CHECK-NEXT: vcmpt.u32 cs, q2, q1
+ ; CHECK-NEXT: vpsel q0, q0, q1
+ ; CHECK-NEXT: bx lr
+ entry:
+diff --git a/llvm/test/CodeGen/Thumb2/mve-pred-or.ll b/llvm/test/CodeGen/Thumb2/mve-pred-or.ll
+index cb3f554e21b0..435ddf0a6e57 100644
+--- a/llvm/test/CodeGen/Thumb2/mve-pred-or.ll
++++ b/llvm/test/CodeGen/Thumb2/mve-pred-or.ll
+@@ -123,7 +123,8 @@ entry:
+ define arm_aapcs_vfpcc <4 x i32> @cmpulez_v4i1(<4 x i32> %a, <4 x i32> %b) {
+ ; CHECK-LABEL: cmpulez_v4i1:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u32 cs, q1, zr
++; CHECK-NEXT: vmov.i32 q2, #0x0
++; CHECK-NEXT: vcmp.u32 cs, q2, q1
+ ; CHECK-NEXT: vpnot
+ ; CHECK-NEXT: vpst
+ ; CHECK-NEXT: vcmpt.i32 ne, q0, zr
+diff --git a/llvm/test/CodeGen/Thumb2/mve-pred-xor.ll b/llvm/test/CodeGen/Thumb2/mve-pred-xor.ll
+index e5fef332034f..0ff262e6b53a 100644
+--- a/llvm/test/CodeGen/Thumb2/mve-pred-xor.ll
++++ b/llvm/test/CodeGen/Thumb2/mve-pred-xor.ll
+@@ -151,7 +151,8 @@ entry:
+ define arm_aapcs_vfpcc <4 x i32> @cmpulez_v4i1(<4 x i32> %a, <4 x i32> %b) {
+ ; CHECK-LABEL: cmpulez_v4i1:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u32 cs, q1, zr
++; CHECK-NEXT: vmov.i32 q2, #0x0
++; CHECK-NEXT: vcmp.u32 cs, q2, q1
+ ; CHECK-NEXT: vmrs r0, p0
+ ; CHECK-NEXT: vcmp.i32 eq, q0, zr
+ ; CHECK-NEXT: vmrs r1, p0
+diff --git a/llvm/test/CodeGen/Thumb2/mve-vcmpz.ll b/llvm/test/CodeGen/Thumb2/mve-vcmpz.ll
+index fcb9d136307f..aaf49c76a07a 100644
+--- a/llvm/test/CodeGen/Thumb2/mve-vcmpz.ll
++++ b/llvm/test/CodeGen/Thumb2/mve-vcmpz.ll
+@@ -110,7 +110,8 @@ entry:
+ define arm_aapcs_vfpcc <4 x i32> @vcmp_ulez_v4i32(<4 x i32> %src, <4 x i32> %a, <4 x i32> %b) {
+ ; CHECK-LABEL: vcmp_ulez_v4i32:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u32 cs, q0, zr
++; CHECK-NEXT: vmov.i32 q3, #0x0
++; CHECK-NEXT: vcmp.u32 cs, q3, q0
+ ; CHECK-NEXT: vpsel q0, q1, q2
+ ; CHECK-NEXT: bx lr
+ entry:
+@@ -229,7 +230,8 @@ entry:
+ define arm_aapcs_vfpcc <8 x i16> @vcmp_ulez_v8i16(<8 x i16> %src, <8 x i16> %a, <8 x i16> %b) {
+ ; CHECK-LABEL: vcmp_ulez_v8i16:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u16 cs, q0, zr
++; CHECK-NEXT: vmov.i32 q3, #0x0
++; CHECK-NEXT: vcmp.u16 cs, q3, q0
+ ; CHECK-NEXT: vpsel q0, q1, q2
+ ; CHECK-NEXT: bx lr
+ entry:
+@@ -348,7 +350,8 @@ entry:
+ define arm_aapcs_vfpcc <16 x i8> @vcmp_ulez_v16i8(<16 x i8> %src, <16 x i8> %a, <16 x i8> %b) {
+ ; CHECK-LABEL: vcmp_ulez_v16i8:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u8 cs, q0, zr
++; CHECK-NEXT: vmov.i32 q3, #0x0
++; CHECK-NEXT: vcmp.u8 cs, q3, q0
+ ; CHECK-NEXT: vpsel q0, q1, q2
+ ; CHECK-NEXT: bx lr
+ entry:
+@@ -489,7 +492,8 @@ entry:
+ define arm_aapcs_vfpcc <4 x i32> @vcmp_r_ugez_v4i32(<4 x i32> %src, <4 x i32> %a, <4 x i32> %b) {
+ ; CHECK-LABEL: vcmp_r_ugez_v4i32:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u32 cs, q0, zr
++; CHECK-NEXT: vmov.i32 q3, #0x0
++; CHECK-NEXT: vcmp.u32 cs, q3, q0
+ ; CHECK-NEXT: vpsel q0, q1, q2
+ ; CHECK-NEXT: bx lr
+ entry:
+@@ -608,7 +612,8 @@ entry:
+ define arm_aapcs_vfpcc <8 x i16> @vcmp_r_ugez_v8i16(<8 x i16> %src, <8 x i16> %a, <8 x i16> %b) {
+ ; CHECK-LABEL: vcmp_r_ugez_v8i16:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u16 cs, q0, zr
++; CHECK-NEXT: vmov.i32 q3, #0x0
++; CHECK-NEXT: vcmp.u16 cs, q3, q0
+ ; CHECK-NEXT: vpsel q0, q1, q2
+ ; CHECK-NEXT: bx lr
+ entry:
+@@ -727,7 +732,8 @@ entry:
+ define arm_aapcs_vfpcc <16 x i8> @vcmp_r_ugez_v16i8(<16 x i8> %src, <16 x i8> %a, <16 x i8> %b) {
+ ; CHECK-LABEL: vcmp_r_ugez_v16i8:
+ ; CHECK: @ %bb.0: @ %entry
+-; CHECK-NEXT: vcmp.u8 cs, q0, zr
++; CHECK-NEXT: vmov.i32 q3, #0x0
++; CHECK-NEXT: vcmp.u8 cs, q3, q0
+ ; CHECK-NEXT: vpsel q0, q1, q2
+ ; CHECK-NEXT: bx lr
+ entry:
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20200326152000+4673699a470/clang/tools/scan-view/bin/scan-view
+===================================================================
+--- llvm-toolchain-snapshot_15~++20200326152000+4673699a470.orig/clang/tools/scan-view/bin/scan-view
++++ llvm-toolchain-snapshot_15~++20200326152000+4673699a470/clang/tools/scan-view/bin/scan-view
+@@ -28,6 +28,7 @@ kDefaultPort = 8181
+ kMaxPortsToTry = 100
+
+ ###
++BASE_DIR = '/usr/share/clang/scan-view-15'
+
+
+ def url_is_up(url):
+@@ -65,7 +66,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-15_15.0.1~++20220920090008+b73d2c8c720a/llvm/include/llvm/Target/TargetMachine.h
+===================================================================
+--- llvm-toolchain-15_15.0.1~++20220920090008+b73d2c8c720a.orig/llvm/include/llvm/Target/TargetMachine.h
++++ llvm-toolchain-15_15.0.1~++20220920090008+b73d2c8c720a/llvm/include/llvm/Target/TargetMachine.h
+@@ -447,13 +447,13 @@ public:
+ raw_pwrite_stream &, raw_pwrite_stream *,
+ CodeGenFileType, CGPassBuilderOption,
+ PassInstrumentationCallbacks *) {
+- return make_error<StringError>("buildCodeGenPipeline is not overriden",
++ return make_error<StringError>("buildCodeGenPipeline is not overridden",
+ inconvertibleErrorCode());
+ }
+
+ virtual std::pair<StringRef, bool> getPassNameFromLegacyName(StringRef) {
+ llvm_unreachable(
+- "getPassNameFromLegacyName parseMIRPipeline is not overriden");
++ "getPassNameFromLegacyName parseMIRPipeline is not overridden");
+ }
+
+ /// Add passes to the specified pass manager to get machine code emitted with
--- /dev/null
+Index: llvm-toolchain-14-14.0.6/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
+===================================================================
+--- llvm-toolchain-14-14.0.6.orig/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
++++ llvm-toolchain-14-14.0.6/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h
+@@ -84,7 +84,7 @@ protected:
+ #ifndef NDEBUG
+ ~RefCountedBase() {
+ assert(RefCount == 0 &&
+- "Destruction occured when there are still references to this.");
++ "Destruction occurred when there are still references to this.");
+ }
+ #else
+ // Default the destructor in release builds, A trivial destructor may enable
+@@ -115,7 +115,7 @@ protected:
+ #ifndef NDEBUG
+ ~ThreadSafeRefCountedBase() {
+ assert(RefCount == 0 &&
+- "Destruction occured when there are still references to this.");
++ "Destruction occurred when there are still references to this.");
+ }
+ #else
+ // Default the destructor in release builds, A trivial destructor may enable
+Index: llvm-toolchain-14-14.0.6/llvm/include/llvm/Support/CommandLine.h
+===================================================================
+--- llvm-toolchain-14-14.0.6.orig/llvm/include/llvm/Support/CommandLine.h
++++ llvm-toolchain-14-14.0.6/llvm/include/llvm/Support/CommandLine.h
+@@ -1308,7 +1308,7 @@ template <> struct applicator<Formatting
+ template <> struct applicator<MiscFlags> {
+ static void opt(MiscFlags MF, Option &O) {
+ assert((MF != Grouping || O.ArgStr.size() == 1) &&
+- "cl::Grouping can only apply to single charater Options.");
++ "cl::Grouping can only apply to single character Options.");
+ O.setMiscFlag(MF);
+ }
+ };
--- /dev/null
+Index: llvm-toolchain-15_15.0.1~++20220920090008+b73d2c8c720a/compiler-rt/lib/builtins/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-15_15.0.1~++20220920090008+b73d2c8c720a.orig/compiler-rt/lib/builtins/CMakeLists.txt
++++ llvm-toolchain-15_15.0.1~++20220920090008+b73d2c8c720a/compiler-rt/lib/builtins/CMakeLists.txt
+@@ -707,8 +707,11 @@ else ()
+ if (COMPILER_RT_HAS_FCF_PROTECTION_FLAG)
+ append_list_if(COMPILER_RT_ENABLE_CET -fcf-protection=full BUILTIN_CFLAGS)
+ endif()
+-
++ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
++ append_list_if(COMPILER_RT_HAS_FLOAT16 -msse2 -DCOMPILER_RT_HAS_FLOAT16 BUILTIN_CFLAGS)
++ else ()
+ append_list_if(COMPILER_RT_HAS_FLOAT16 -DCOMPILER_RT_HAS_FLOAT16 BUILTIN_CFLAGS)
++ endif()
+
+ append_list_if(COMPILER_RT_HAS_STD_C11_FLAG -std=c11 BUILTIN_CFLAGS)
+
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Basic/FileManager.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Basic/FileManager.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Basic/FileManager.cpp
+@@ -599,6 +599,12 @@ FileManager::getNoncachedStatValue(Strin
+ return std::error_code();
+ }
+
++// 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-snapshot_15~++20220407011631+46f0e2ceb487/lldb/include/lldb/lldb-defines.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/lldb/include/lldb/lldb-defines.h
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/lldb/include/lldb/lldb-defines.h
+@@ -15,6 +15,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-snapshot_15~++20220407011631+46f0e2ceb487/polly/lib/External/ppcg/cuda_common.c
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/polly/lib/External/ppcg/cuda_common.c
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/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.
+ */
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/mlir/lib/ExecutionEngine/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/mlir/lib/ExecutionEngine/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/mlir/lib/ExecutionEngine/CMakeLists.txt
+@@ -57,7 +57,7 @@ endif(LLVM_USE_PERF)
+ add_mlir_library(MLIRExecutionEngine
+ ExecutionEngine.cpp
+
+- EXCLUDE_FROM_LIBMLIR
++# EXCLUDE_FROM_LIBMLIR
+
+ ADDITIONAL_HEADER_DIRS
+ ${MLIR_MAIN_INCLUDE_DIR}/mlir/ExecutionEngine
--- /dev/null
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/CMakeLists.txt
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/CMakeLists.txt
+@@ -867,7 +867,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-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Basic/Targets.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/clang/lib/Basic/Targets.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Basic/Targets.cpp
+@@ -470,8 +470,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:
+@@ -529,8 +529,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-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Basic/Targets/OSTargets.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/clang/lib/Basic/Targets/OSTargets.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Basic/Targets/OSTargets.h
+@@ -265,7 +265,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 {
+@@ -282,7 +282,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+@@ -83,9 +83,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
+@@ -461,10 +466,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
+@@ -1148,10 +1155,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
+@@ -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
+@@ -525,9 +527,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_platform.h
+@@ -15,7 +15,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
+
+@@ -25,12 +25,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
+@@ -112,7 +118,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/asan/asan_linux.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/asan/asan_linux.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/asan/asan_linux.cpp
+@@ -37,7 +37,7 @@
+ #include <unistd.h>
+ #include <unwind.h>
+
+-#if SANITIZER_FREEBSD
++#if SANITIZER_FREEBSD && !SANITIZER_KFREEBSD
+ #include <sys/link_elf.h>
+ #endif
+
+@@ -47,7 +47,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>
+@@ -60,7 +64,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/ubsan/ubsan_platform.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/ubsan/ubsan_platform.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/ubsan/ubsan_platform.h
+@@ -14,7 +14,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S
+@@ -192,7 +192,7 @@ ASM_SYMBOL_INTERCEPTOR(setjmp):
+ // obtain SP, store in %rdi, first argument to `void __tsan_setjmp(uptr sp)`
+ #if defined(__FreeBSD__) || defined(__NetBSD__)
+ lea 8(%rsp), %rdi
+-#elif defined(__linux__) || defined(__APPLE__)
++#elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__APPLE__)
+ lea 16(%rsp), %rdi
+ #else
+ # error "Unknown platform"
+@@ -233,7 +233,7 @@ ASM_SYMBOL_INTERCEPTOR(_setjmp):
+ // obtain SP, store in %rdi, first argument to `void __tsan_setjmp(uptr sp)`
+ #if defined(__FreeBSD__) || defined(__NetBSD__)
+ lea 8(%rsp), %rdi
+-#elif defined(__linux__) || defined(__APPLE__)
++#elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__APPLE__)
+ lea 16(%rsp), %rdi
+ #else
+ # error "Unknown platform"
+@@ -281,7 +281,7 @@ ASM_SYMBOL_INTERCEPTOR(sigsetjmp):
+ // obtain SP, store in %rdi, first argument to `void __tsan_setjmp(uptr sp)`
+ #if defined(__FreeBSD__) || defined(__NetBSD__)
+ lea 24(%rsp), %rdi
+-#elif defined(__linux__) || defined(__APPLE__)
++#elif defined(__linux__) || defined(__FreeBSD_kernel__) || defined(__APPLE__)
+ lea 32(%rsp), %rdi
+ #else
+ # error "Unknown platform"
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerDefs.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/fuzzer/FuzzerDefs.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerUtilPosix.cpp
+@@ -133,7 +133,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerExtraCounters.cpp
+@@ -11,7 +11,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerExtFunctionsWeak.cpp
+@@ -13,7 +13,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/fuzzer/FuzzerUtilLinux.cpp
+@@ -9,7 +9,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_freebsd.h
+@@ -20,7 +20,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_bsd.cpp
+@@ -37,7 +37,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-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -24,7 +24,9 @@
+ #include "sanitizer_glibc_version.h"
+ #endif
+
++#if !SANITIZER_KFREEBSD
+ # define GET_LINK_MAP_BY_DLOPEN_HANDLE(handle) ((link_map*)(handle))
++#endif
+
+ namespace __sanitizer {
+ extern unsigned struct_utsname_sz;
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc
+@@ -19,7 +19,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
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+@@ -109,10 +109,14 @@ typedef struct user_fpregs elf_fpregset_
+ #include <wordexp.h>
+ #endif
+
+-#if SANITIZER_LINUX && !SANITIZER_ANDROID
++#if (SANITIZER_LINUX && !SANITIZER_ANDROID) || SANITIZER_KFREEBSD
+ #include <glob.h>
+ #include <obstack.h>
++#if SANITIZER_KFREEBSD
++#include <sys/mqueue.h>
++#else
+ #include <mqueue.h>
++#endif
+ #include <net/if_ppp.h>
+ #include <netax25/ax25.h>
+ #include <netipx/ipx.h>
+@@ -150,8 +154,12 @@ typedef struct user_fpregs elf_fpregset_
+ #include <linux/if_ppp.h>
+ #endif
+
+-#if SANITIZER_LINUX
++#if SANITIZER_LINUX || SANITIZER_KFREEBSD
++#if SANITIZER_KFREEBSD
++#include <sys/link.h>
++#else
+ #include <link.h>
++#endif
+ #include <sys/vfs.h>
+ #include <sys/epoll.h>
+ #include <linux/capability.h>
--- /dev/null
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/include/llvm/ADT/Triple.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/include/llvm/ADT/Triple.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/include/llvm/ADT/Triple.h
+@@ -161,7 +161,7 @@ public:
+ FreeBSD,
+ Fuchsia,
+ IOS,
+- KFreeBSD,
++ kFreeBSD,
+ Linux,
+ Lv2, // PS3
+ MacOSX,
+@@ -588,8 +588,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.
+@@ -609,7 +609,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-snapshot_10~+20191020075550+5b8546023f3/libcxx/include/__config
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/libcxx/include/__config
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxx/include/__config
+@@ -1085,6 +1085,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(__wasi__) || \
+ defined(__NetBSD__) || \
--- /dev/null
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/openmp/runtime/src/kmp.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp.h
+@@ -1142,6 +1142,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-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp_ftn_entry.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/openmp/runtime/src/kmp_ftn_entry.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp_ftn_entry.h
+@@ -531,7 +531,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-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp_platform.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/openmp/runtime/src/kmp_platform.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp_platform.h
+@@ -18,6 +18,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
+@@ -56,6 +57,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
+@@ -78,12 +84,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-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp_runtime.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/openmp/runtime/src/kmp_runtime.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/kmp_runtime.cpp
+@@ -8114,7 +8114,7 @@ __kmp_determine_reduction_method(
+ KMP_ARCH_MIPS64 || KMP_ARCH_RISCV64
+
+ #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;
+
+@@ -8142,7 +8142,7 @@ __kmp_determine_reduction_method(
+
+ #elif KMP_ARCH_X86 || KMP_ARCH_ARM || KMP_ARCH_AARCH || KMP_ARCH_MIPS
+
+-#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS || KMP_OS_HURD
++#if KMP_OS_LINUX || KMP_OS_FREEBSD || KMP_OS_WINDOWS || KMP_OS_HURD || KMP_OS_KFREEBSD
+
+ // basic tuning
+
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/z_Linux_util.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/openmp/runtime/src/z_Linux_util.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/openmp/runtime/src/z_Linux_util.cpp
+@@ -472,7 +472,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;
+@@ -526,7 +526,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;
+@@ -1798,7 +1798,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);
+
+@@ -2042,7 +2042,7 @@ int __kmp_is_address_mapped(void *addr)
+ // Free resources.
+ fclose(file);
+ KMP_INTERNAL_FREE(name);
+-#elif KMP_OS_FREEBSD
++#elif KMP_OS_FREEBSD || KMP_OS_KFREEBSD
+ char *buf;
+ size_t lstsz;
+ int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()};
--- /dev/null
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxx/src/thread.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/libcxx/src/thread.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/libcxx/src/thread.cpp
+@@ -18,7 +18,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-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/clang/lib/Driver/CMakeLists.txt
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/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-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/Driver.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/clang/lib/Driver/Driver.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/Driver.cpp
+@@ -26,6 +26,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"
+@@ -4727,6 +4728,9 @@ const ToolChain &Driver::getToolChain(co
+ case llvm::Triple::FreeBSD:
+ TC = std::make_unique<toolchains::FreeBSD>(*this, Target, Args);
+ break;
++ case llvm::Triple::kFreeBSD:
++ TC = std::make_unique<toolchains::kFreeBSD>(*this, Target, Args);
++ break;
+ case llvm::Triple::Minix:
+ TC = std::make_unique<toolchains::Minix>(*this, Target, Args);
+ break;
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/ToolChains/Clang.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/clang/lib/Driver/ToolChains/Clang.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/ToolChains/Clang.cpp
+@@ -453,7 +453,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-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/ToolChains/Gnu.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/clang/lib/Driver/ToolChains/Gnu.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/ToolChains/Gnu.cpp
+@@ -578,6 +578,20 @@ void tools::gnutools::Linker::ConstructJ
+
+ if (!Args.hasArg(options::OPT_nolibc))
+ CmdArgs.push_back("-lc");
++ 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)
+@@ -1957,7 +1971,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[] = {
+@@ -1966,7 +1981,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-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/ToolChains/KFreeBSD.cpp
+===================================================================
+--- /dev/null
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/ToolChains/KFreeBSD.cpp
+@@ -0,0 +1,458 @@
++//===--- 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::Scudo;
++ Res |= SanitizerKind::HWAddress;
++ Res |= SanitizerKind::KernelHWAddress;
++ }
++ if (IsX86 || IsX86_64)
++ Res |= SanitizerKind::Function;
++
++ return Res;
++}
++
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/clang/lib/Driver/ToolChains/KFreeBSD.h
+===================================================================
+--- /dev/null
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/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-snapshot_10~+20191020075550+5b8546023f3/llvm/unittests/ADT/TripleTest.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/unittests/ADT/TripleTest.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/unittests/ADT/TripleTest.cpp
+@@ -98,6 +98,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-snapshot_10~+20191020075550+5b8546023f3/llvm/lib/Support/Triple.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/lib/Support/Triple.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/lib/Support/Triple.cpp
+@@ -183,7 +183,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";
+@@ -488,7 +488,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-snapshot_10~+20191020075550+5b8546023f3/llvm/lib/Support/Unix/Path.inc
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/lib/Support/Unix/Path.inc
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/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-snapshot_10~+20191020075550+5b8546023f3/llvm/lib/Target/X86/X86Subtarget.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/lib/Target/X86/X86Subtarget.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/lib/Target/X86/X86Subtarget.cpp
+@@ -290,7 +290,7 @@ void X86Subtarget::initSubtargetFeatures
+ if (StackAlignOverride)
+ stackAlignment = *StackAlignOverride;
+ else if (isTargetDarwin() || isTargetLinux() || isTargetSolaris() ||
+- isTargetKFreeBSD() || In64BitMode)
++ isTargetkFreeBSD() || In64BitMode)
+ stackAlignment = Align(16);
+
+ // Some CPUs have more overhead for gather. The specified overhead is relative
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/lib/Target/X86/X86Subtarget.h
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/lib/Target/X86/X86Subtarget.h
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/lib/Target/X86/X86Subtarget.h
+@@ -764,7 +764,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-snapshot_10~+20191020075550+5b8546023f3/lldb/source/Host/freebsd/Host.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/lldb/source/Host/freebsd/Host.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/lldb/source/Host/freebsd/Host.cpp
+@@ -10,6 +10,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-snapshot_10~+20191020075550+5b8546023f3/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/lldb/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp
+@@ -8,7 +8,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-snapshot_10~+20191020075550+5b8546023f3/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.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>
--- /dev/null
+Index: llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/tools/llvm-shlib/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3.orig/llvm/tools/llvm-shlib/CMakeLists.txt
++++ llvm-toolchain-snapshot_10~+20191020075550+5b8546023f3/llvm/tools/llvm-shlib/CMakeLists.txt
+@@ -49,6 +49,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
+set rpath for prepare_builtins build utility to find correct stage2
+libs at runtime when executed as part of a build
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libclc/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/libclc/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libclc/CMakeLists.txt
+@@ -151,6 +151,9 @@ target_compile_options( prepare_builtins
+ target_compile_definitions( prepare_builtins PRIVATE ${LLVM_VERSION_DEFINE} )
+ target_link_libraries( prepare_builtins PRIVATE ${LLVM_LIBS} )
+ target_link_libraries( prepare_builtins PRIVATE ${LLVM_SYSTEM_LIBS} )
++set_target_properties( prepare_builtins
++ PROPERTIES INSTALL_RPATH "${LLVM_LIBDIR}"
++ BUILD_WITH_INSTALL_RPATH "ON")
+
+ # Setup arch devices
+ set( r600--_devices cedar cypress barts cayman )
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libcxx/include/atomic
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/libcxx/include/atomic
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libcxx/include/atomic
+@@ -2687,9 +2687,13 @@ typedef conditional<_LIBCPP_CONTENTION_L
+ #endif
+
+ #if !defined(_LIBCPP_NO_LOCK_FREE_TYPES)
++#ifndef NO_LOCK_FREE
+ typedef atomic<__libcpp_signed_lock_free> atomic_signed_lock_free;
+ typedef atomic<__libcpp_unsigned_lock_free> atomic_unsigned_lock_free;
+ #endif
++#endif
++
++#undef NO_LOCK_FREE
+
+ #define ATOMIC_FLAG_INIT {false}
+ #define ATOMIC_VAR_INIT(__v) {__v}
--- /dev/null
+if libatomic is found only link it if libgcc is the rtlib
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libcxx/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/libcxx/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libcxx/CMakeLists.txt
+@@ -774,12 +774,14 @@ function(cxx_link_system_libraries targe
+ endif()
+ elseif (LIBCXX_HAS_GCC_LIB)
+ target_link_libraries(${target} PRIVATE gcc)
++ if (LIBCXX_HAS_ATOMIC_LIB)
++ target_link_libraries(${target} PRIVATE atomic)
++ endif()
+ elseif (LIBCXX_HAS_GCC_S_LIB)
+ target_link_libraries(${target} PRIVATE gcc_s)
+- endif()
+-
+- if (LIBCXX_HAS_ATOMIC_LIB)
+- target_link_libraries(${target} PRIVATE atomic)
++ if (LIBCXX_HAS_ATOMIC_LIB)
++ target_link_libraries(${target} PRIVATE atomic)
++ endif()
+ endif()
+
+ if (MINGW)
--- /dev/null
+commit 09e6304440c08fe72b6ac05f922ab9d8b7f1e387
+Author: Roger Ferrer Ibanez <rofirrim@gmail.com>
+Date: Wed Jul 24 05:33:46 2019 +0000
+
+ [RISCV] Implement benchmark::cycleclock::Now
+
+ This is a cherrypick of D64237 onto llvm/utils/benchmark and
+ libcxx/utils/google-benchmark.
+
+ Differential Revision: https://reviews.llvm.org/D65142
+
+ llvm-svn: 366868
+
+--- a/libcxx/utils/google-benchmark/README.LLVM
++++ b/libcxx/utils/google-benchmark/README.LLVM
+@@ -4,3 +4,9 @@ LLVM notes
+ This directory contains the Google Benchmark source code with some unnecessary
+ files removed. Note that this directory is under a different license than
+ libc++.
++
++Changes:
++* https://github.com/google/benchmark/commit/4abdfbb802d1b514703223f5f852ce4a507d32d2
++ is applied on top of
++ https://github.com/google/benchmark/commit/4528c76b718acc9b57956f63069c699ae21edcab
++ to add RISC-V timer support.
+--- a/libcxx/utils/google-benchmark/src/cycleclock.h
++++ b/libcxx/utils/google-benchmark/src/cycleclock.h
+@@ -164,6 +164,21 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
+ uint64_t tsc;
+ asm("stck %0" : "=Q"(tsc) : : "cc");
+ return tsc;
++#elif defined(__riscv) // RISC-V
++ // Use RDCYCLE (and RDCYCLEH on riscv32)
++#if __riscv_xlen == 32
++ uint64_t cycles_low, cycles_hi0, cycles_hi1;
++ asm("rdcycleh %0" : "=r"(cycles_hi0));
++ asm("rdcycle %0" : "=r"(cycles_lo));
++ asm("rdcycleh %0" : "=r"(cycles_hi1));
++ // This matches the PowerPC overflow detection, above
++ cycles_lo &= -static_cast<int64_t>(cycles_hi0 == cycles_hi1);
++ return (cycles_hi1 << 32) | cycles_lo;
++#else
++ uint64_t cycles;
++ asm("rdcycle %0" : "=r"(cycles));
++ return cycles;
++#endif
+ #else
+ // The soft failover to a generic implementation is automatic only for ARM.
+ // For other platforms the developer is expected to make an attempt to create
+--- a/utils/benchmark/README.LLVM
++++ b/utils/benchmark/README.LLVM
+@@ -23,3 +23,5 @@ Changes:
+ is applied to disable exceptions in Microsoft STL when exceptions are disabled
+ * Disabled CMake get_git_version as it is meaningless for this in-tree build,
+ and hardcoded a null version
++* https://github.com/google/benchmark/commit/4abdfbb802d1b514703223f5f852ce4a507d32d2
++ is applied on top of v1.4.1 to add RISC-V timer support.
+--- a/utils/benchmark/src/cycleclock.h
++++ b/utils/benchmark/src/cycleclock.h
+@@ -164,6 +164,21 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
+ uint64_t tsc;
+ asm("stck %0" : "=Q" (tsc) : : "cc");
+ return tsc;
++#elif defined(__riscv) // RISC-V
++ // Use RDCYCLE (and RDCYCLEH on riscv32)
++#if __riscv_xlen == 32
++ uint64_t cycles_low, cycles_hi0, cycles_hi1;
++ asm("rdcycleh %0" : "=r"(cycles_hi0));
++ asm("rdcycle %0" : "=r"(cycles_lo));
++ asm("rdcycleh %0" : "=r"(cycles_hi1));
++ // This matches the PowerPC overflow detection, above
++ cycles_lo &= -static_cast<int64_t>(cycles_hi0 == cycles_hi1);
++ return (cycles_hi1 << 32) | cycles_lo;
++#else
++ uint64_t cycles;
++ asm("rdcycle %0" : "=r"(cycles));
++ return cycles;
++#endif
+ #else
+ // The soft failover to a generic implementation is automatic only for ARM.
+ // For other platforms the developer is expected to make an attempt to create
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220530092849+bcf3d5248678/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220530092849+bcf3d5248678.orig/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
++++ llvm-toolchain-snapshot_15~++20220530092849+bcf3d5248678/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
+@@ -8,6 +8,7 @@
+ //
+ // UNSUPPORTED: no-threads
+ // ALLOW_RETRIES: 2
++// XFAIL: *
+
+ // <condition_variable>
+
+Index: llvm-toolchain-snapshot_15~++20220530092849+bcf3d5248678/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220530092849+bcf3d5248678.orig/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
++++ llvm-toolchain-snapshot_15~++20220530092849+bcf3d5248678/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
+@@ -11,7 +11,7 @@
+ // ALLOW_RETRIES: 2
+
+ // dylib support for shared_mutex was added in macosx10.12
+-// XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10|11}}
++// XFAIL: *
+
+ // <shared_mutex>
+
--- /dev/null
+Index: llvm-toolchain-snapshot_14~++20210826102344+84cbd71c9592/libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20210826102344+84cbd71c9592.orig/libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
++++ llvm-toolchain-snapshot_14~++20210826102344+84cbd71c9592/libcxx/test/libcxx/atomics/atomics.align/align.pass.cpp
+@@ -18,7 +18,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: *
+
+ // This fails on PowerPC, as the LLIArr2 and Padding structs do not have
+ // adequate alignment, despite these types returning true for the query of
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
+@@ -11,6 +11,8 @@
+ // template<class RealType, size_t bits, class URNG>
+ // RealType generate_canonical(URNG& g);
+
++// XFAIL: *
++
+ #include <random>
+ #include <cassert>
+
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxx/test/std/re/re.traits/isctype.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/libcxx/test/std/re/re.traits/isctype.pass.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxx/test/std/re/re.traits/isctype.pass.cpp
+@@ -14,6 +14,7 @@
+
+ // bool isctype(charT c, char_class_type f) const;
+
++// XFAIL: *
+
+ #include <regex>
+ #include <cassert>
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxxabi/test/catch_multi_level_pointer.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/libcxxabi/test/catch_multi_level_pointer.pass.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxxabi/test/catch_multi_level_pointer.pass.cpp
+@@ -11,6 +11,8 @@
+ // 1b00fc5d8133 made it in the dylib in macOS 10.11
+ // XFAIL: use_system_cxx_lib && target={{.+}}-apple-macosx10.{{9|10}}
+
++// XFAIL: *
++
+ #include <cassert>
+ #include <cstdio>
+ #include <cstdlib>
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
+@@ -15,6 +15,8 @@
+
+ // template <class T, class... Args> void construct(T* p, Args&&... args);
+
++// XFAIL: *
++
+ #include <scoped_allocator>
+ #include <cassert>
+ #include <string>
--- /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-15_15.0.1~++20220920090008+b73d2c8c720a/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
+===================================================================
+--- llvm-toolchain-15_15.0.1~++20220920090008+b73d2c8c720a.orig/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
++++ llvm-toolchain-15_15.0.1~++20220920090008+b73d2c8c720a/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
+@@ -17,6 +17,15 @@
+
+ #include "test_macros.h"
+
++#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) {
--- /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_14~++20211114120952+5b4bfd8c2415/libcxxabi/src/cxa_exception.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/libcxxabi/src/cxa_exception.cpp
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/libcxxabi/src/cxa_exception.cpp
+@@ -275,15 +275,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
+@@ -551,7 +552,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;
+ }
+ }
+@@ -608,8 +613,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.
+@@ -733,8 +740,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_14~++20211114120952+5b4bfd8c2415/libcxxabi/src/cxa_exception.h
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/libcxxabi/src/cxa_exception.h
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/libcxxabi/src/cxa_exception.h
+@@ -27,6 +27,45 @@ _LIBCXXABI_HIDDEN uint64_t __getExceptio
+ _LIBCXXABI_HIDDEN void __setExceptionClass ( _Unwind_Exception*, uint64_t);
+ _LIBCXXABI_HIDDEN 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(_WIN64) || defined(_LIBCXXABI_ARM_EHABI)
+ // Now _Unwind_Exception is marked with __attribute__((aligned)),
--- /dev/null
+if LIBCXXABI_USE_COMPILER_RT=ON, add builtins to libcxxabi library
+flags, otherwise add libgcc following how libunwind does the same
+Index: llvm-toolchain-snapshot_15~++20220517092516+a09af8669396/libcxxabi/src/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220517092516+a09af8669396.orig/libcxxabi/src/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220517092516+a09af8669396/libcxxabi/src/CMakeLists.txt
+@@ -77,7 +77,9 @@ else()
+ add_library_flags_if(LIBCXXABI_HAS_C_LIB c)
+ endif()
+
+-if (NOT LIBCXXABI_USE_COMPILER_RT)
++if (LIBCXXABI_USE_COMPILER_RT)
++ add_library_flags("${LIBCXXABI_BUILTINS_LIBRARY}")
++else()
+ add_library_flags_if(LIBCXXABI_HAS_GCC_LIB gcc)
+ endif()
+ if (NOT LIBCXXABI_USE_LLVM_UNWINDER)
--- /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_14~++20211114120952+5b4bfd8c2415/libcxxabi/test/test_demangle.pass.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/libcxxabi/test/test_demangle.pass.cpp
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/libcxxabi/test/test_demangle.pass.cpp
+@@ -29902,7 +29902,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
+Index: llvm-toolchain-15-15.0.6/llvm/cmake/modules/FindGRPC.cmake
+===================================================================
+--- llvm-toolchain-15-15.0.6.orig/llvm/cmake/modules/FindGRPC.cmake
++++ llvm-toolchain-15-15.0.6/llvm/cmake/modules/FindGRPC.cmake
+@@ -82,11 +82,28 @@ else()
+ endif()
+ endif()
+ if(NOT TARGET grpc++)
++ find_library(GPR_LIBRARY gpr $GRPC_OPTS REQUIRED)
++ add_library(gpr UNKNOWN IMPORTED GLOBAL)
++ message(STATUS "Using gpr: " ${GPR_LIBRARY})
++ set_target_properties(gpr PROPERTIES IMPORTED_LOCATION ${GPR_LIBRARY})
++
+ find_library(GRPC_LIBRARY grpc++ ${GRPC_OPTS} REQUIRED)
+ add_library(grpc++ UNKNOWN IMPORTED GLOBAL)
+ message(STATUS "Using grpc++: " ${GRPC_LIBRARY})
+ set_target_properties(grpc++ PROPERTIES IMPORTED_LOCATION ${GRPC_LIBRARY})
+ target_include_directories(grpc++ INTERFACE ${GRPC_INCLUDE_PATHS})
++ find_library(GRPC2_LIBRARY grpc $GRPC_OPTS REQUIRED)
++ add_library(grpc UNKNOWN IMPORTED GLOBAL)
++ message(STATUS "Using grpc: " ${GRPC2_LIBRARY})
++ set_target_properties(grpc PROPERTIES IMPORTED_LOCATION ${GRPC2_LIBRARY})
++
++ find_library(ABSL_SYNCHRONIZATION_LIBRARY absl_synchronization $GRPC_OPTS REQUIRED)
++ if (ABSL_SYNCHRONIZATION_LIBRARY)
++ add_library(absl_synchronization UNKNOWN IMPORTED GLOBAL)
++ message(STATUS "Using absl_synchronization: " ${ABSL_SYNCHRONIZATION_LIBRARY})
++ set_target_properties(absl_synchronization PROPERTIES IMPORTED_LOCATION ${ABSL_SYNCHRONIZATION_LIBRARY})
++ endif()
++
+ if (ENABLE_GRPC_REFLECTION)
+ find_library(GRPC_REFLECTION_LIBRARY grpc++_reflection ${GRPC_OPTS} REQUIRED)
+ add_library(grpc++_reflection UNKNOWN IMPORTED GLOBAL)
+@@ -132,9 +149,15 @@ function(generate_protos LibraryName Pro
+ ARGS ${Flags} "${ProtoSourceAbsolutePath}"
+ DEPENDS "${ProtoSourceAbsolutePath}")
+
++ set(LINKED_GRPC_LIBRARIES protobuf gpr grpc grpc++)
++
++ if (ABSL_SYNCHRONIZATION_LIBRARY)
++ list(APPEND LINKED_GRPC_LIBRARIES absl_synchronization)
++ endif()
++
+ add_clang_library(${LibraryName} ${GeneratedProtoSource}
+ PARTIAL_SOURCES_INTENDED
+- LINK_LIBS PUBLIC grpc++ protobuf)
++ LINK_LIBS PUBLIC ${LINKED_GRPC_LIBRARIES})
+
+ # Ensure dependency headers are generated before dependent protos are built.
+ # DEPENDS arg is a list of "Foo.proto". While they're logically relative to
--- /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_15~++20211115120952+5b4bfd8c2415/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415.orig/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
++++ llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
+@@ -34,6 +34,7 @@
+ #include "lldb/Utility/StreamString.h"
+ #include "llvm/ADT/SmallString.h"
+ #include "llvm/Support/ScopedPrinter.h"
++#include "llvm/Config/llvm-config.h"
+
+ #include "ProcessGDBRemoteLog.h"
+
+@@ -42,7 +43,7 @@
+ #elif defined(_WIN32)
+ #define DEBUGSERVER_BASENAME "lldb-server.exe"
+ #else
+-#define DEBUGSERVER_BASENAME "lldb-server"
++# define DEBUGSERVER_BASENAME "lldb-server-" LLVM_VERSION_STRING
+ #endif
+
+ #if defined(HAVE_LIBCOMPRESSION)
--- /dev/null
+Index: llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/lldb/bindings/python/python.swig
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415.orig/lldb/bindings/python/python.swig
++++ llvm-toolchain-snapshot_14~++20211114120952+5b4bfd8c2415/lldb/bindings/python/python.swig
+@@ -54,7 +54,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
+---
+ lldb/scripts/Python/finishSwigPythonLLDB.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_15~svn3315515/lldb/scripts/Python/finishSwigPythonLLDB.py
+===================================================================
+--- llvm-toolchain-snapshot_15~svn3315515.orig/lldb/scripts/Python/finishSwigPythonLLDB.py
++++ llvm-toolchain-snapshot_15~svn3315515/lldb/scripts/Python/finishSwigPythonLLDB.py
+@@ -443,7 +443,7 @@ def make_symlink_liblldb(
+ if eOSType == utilsOsType.EnumOsType.Darwin:
+ strLibFileExtn = ".dylib"
+ else:
+- strLibFileExtn = ".so"
++ strLibFileExtn = "-15.so"
+ strSrc = os.path.join(vstrLldbLibDir, "liblldb" + strLibFileExtn)
+
+ bOk, strErrMsg = make_symlink(
--- /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_15~++20220407011631+46f0e2ceb487/lldb/source/Utility/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/lldb/source/Utility/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/lldb/source/Utility/CMakeLists.txt
+@@ -15,6 +15,13 @@ endif()
+
+ list(APPEND LLDB_SYSTEM_LIBS ${CMAKE_DL_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 (CMAKE_SYSTEM_NAME MATCHES "Windows")
+ list(APPEND LLDB_SYSTEM_LIBS ws2_32 rpcrt4)
+ endif ()
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/lldb/tools/argdumper/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/lldb/tools/argdumper/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/lldb/tools/argdumper/CMakeLists.txt
+@@ -6,3 +6,6 @@ add_lldb_tool(lldb-argdumper ADD_TO_FRAM
+ )
+
+ add_dependencies(liblldb lldb-argdumper)
++
++install(TARGETS lldb-argdumper
++ RUNTIME DESTINATION bin)
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/lldb/tools/lldb-server/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/lldb/tools/lldb-server/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/lldb/tools/lldb-server/CMakeLists.txt
+@@ -66,3 +66,7 @@ add_dependencies(lldb-server
+ )
+ target_include_directories(lldb-server PRIVATE "${LLDB_SOURCE_DIR}/source")
+ target_link_libraries(lldb-server PRIVATE ${LLDB_SYSTEM_LIBS})
++
++install(TARGETS lldb-server
++ RUNTIME DESTINATION bin)
++
--- /dev/null
+---
+ lldb/source/API/CMakeLists.txt | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+Index: llvm-toolchain-snapshot_14~++20220119063448+5fa826f4e284/lldb/source/API/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220119063448+5fa826f4e284.orig/lldb/source/API/CMakeLists.txt
++++ llvm-toolchain-snapshot_14~++20220119063448+5fa826f4e284/lldb/source/API/CMakeLists.txt
+@@ -15,7 +15,12 @@ if(LLDB_ENABLE_LUA)
+ set(lldb_lua_wrapper ${lua_bindings_dir}/LLDBWrapLua.cpp)
+ endif()
+
+-add_lldb_library(liblldb SHARED ${option_framework}
++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
+@@ -158,7 +163,7 @@ endif()
+
+ set_target_properties(liblldb
+ PROPERTIES
+- VERSION ${LLDB_VERSION}
++ VERSION 1
+ )
+
+ target_compile_definitions(liblldb PRIVATE LLDB_IN_LIBLLDB)
+@@ -178,12 +183,12 @@ if (NOT CMAKE_SYSTEM_NAME MATCHES "Windo
+ set_target_properties(liblldb_exports PROPERTIES FOLDER "lldb misc")
+ endif()
+
+-if (NOT MSVC)
+- set_target_properties(liblldb
+- PROPERTIES
+- OUTPUT_NAME lldb
+- )
+-endif()
++#if (NOT MSVC)
++# set_target_properties(liblldb
++# PROPERTIES
++# OUTPUT_NAME lldb
++# )
++#endif()
+
+ # The Clang expression parser in LLDB requires the Clang resource directory to function.
+ if (TARGET clang-resource-headers)
--- /dev/null
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2020-01-21
+
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
+@@ -239,6 +239,8 @@ void ScriptInterpreterPython::ComputePyt
+ // x86_64, or bin on Windows).
+ llvm::sys::path::remove_filename(path);
+ llvm::sys::path::append(path, LLDB_PYTHON_RELATIVE_LIBDIR);
++ // remove double "lib/lib" statement
++ std::replace(path.begin(), path.end(), '/lib/lib/', '/lib/');
+
+ #if defined(_WIN32)
+ // This will be injected directly through FileSpec.GetDirectory().SetString(),
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220510103135+63865e1fce62/integration-test-suite/tests/basic_lldb.c
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220510103135+63865e1fce62.orig/integration-test-suite/tests/basic_lldb.c
++++ llvm-toolchain-snapshot_15~++20220510103135+63865e1fce62/integration-test-suite/tests/basic_lldb.c
+@@ -1,7 +1,7 @@
+ // RUN: %clang -g -o %t %s
+ // RUN: %lldb -s %S/basic_lldb.in %t | grep "main at basic_lldb.c:"
+ // REQUIRES: lldb, clang
+-// XFAIL: ppc64
++// XFAIL: ppc64, i686, i386
+
+ int main() {
+ int a=0;
+Index: llvm-toolchain-snapshot_15~++20220510103135+63865e1fce62/integration-test-suite/tests/basic_lldb2.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220510103135+63865e1fce62.orig/integration-test-suite/tests/basic_lldb2.cpp
++++ llvm-toolchain-snapshot_15~++20220510103135+63865e1fce62/integration-test-suite/tests/basic_lldb2.cpp
+@@ -1,7 +1,7 @@
+ // RUN: %clangxx -g -o %t %s
+ // RUN: %lldb -s %S/basic_lldb2.in %t | grep "stop reason = step over"
+ // REQUIRES: lldb, clangxx
+-// XFAIL: ppc64
++// XFAIL: ppc64, i686, i386
+
+ #include <vector>
+ int main (void)
--- /dev/null
+remove regex anchor in lld linker detection to account for vendor, if
+specified, being prepended to lld version string
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/cmake/modules/AddLLVM.cmake
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/llvm/cmake/modules/AddLLVM.cmake
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/cmake/modules/AddLLVM.cmake
+@@ -217,7 +217,7 @@ if (NOT DEFINED LLVM_LINKER_DETECTED AND
+ set(LLVM_LINKER_DETECTED YES CACHE INTERNAL "")
+ set(LLVM_LINKER_IS_GOLD YES CACHE INTERNAL "")
+ message(STATUS "Linker detection: GNU Gold")
+- elseif("${stdout}" MATCHES "^LLD")
++ elseif("${stdout}" MATCHES "LLD")
+ set(LLVM_LINKER_DETECTED YES CACHE INTERNAL "")
+ set(LLVM_LINKER_IS_LLD YES CACHE INTERNAL "")
+ message(STATUS "Linker detection: LLD")
--- /dev/null
+add a check and only set up and build compiler-rt builtins if they have
+not been disabled
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/runtimes/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/llvm/runtimes/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/runtimes/CMakeLists.txt
+@@ -134,7 +134,12 @@ endfunction()
+ # is required because the other runtimes need the builtin libraries present
+ # before the just-built compiler can pass the configuration tests.
+ get_compiler_rt_path(compiler_rt_path)
+-if(compiler_rt_path)
++# check if builtins have been disabled
++set(RUNTIMES_BUILD_BUILTINS ON)
++if(DEFINED COMPILER_RT_BUILD_BUILTINS)
++ set(RUNTIMES_BUILD_BUILTINS ${COMPILER_RT_BUILD_BUILTINS})
++endif()
++if(compiler_rt_path AND RUNTIMES_BUILD_BUILTINS)
+ if(NOT LLVM_BUILTIN_TARGETS)
+ builtin_default_target(${compiler_rt_path}
+ DEPENDS clang-resource-headers)
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/cmake/modules/HandleLLVMOptions.cmake
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/llvm/cmake/modules/HandleLLVMOptions.cmake
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/cmake/modules/HandleLLVMOptions.cmake
+@@ -1255,8 +1255,8 @@ if(LLVM_USE_RELATIVE_PATHS_IN_FILES)
+ endif()
+
+ if(LLVM_INCLUDE_TESTS)
+- # Lit test suite requires at least python 3.6
+- set(LLVM_MINIMUM_PYTHON_VERSION 3.6)
++ # Lit test suite requires at least python 3.5
++ set(LLVM_MINIMUM_PYTHON_VERSION 3.5)
+ else()
+ # FIXME: it is unknown if this is the actual minimum bound
+ set(LLVM_MINIMUM_PYTHON_VERSION 3.0)
--- /dev/null
+From ab40c027f0ce9492919a72ad339de40bdb84b354 Mon Sep 17 00:00:00 2001
+From: Dimitry Andric <dimitry@andric.com>
+Date: Mon, 3 May 2021 20:08:49 +0200
+Subject: [PATCH] [MC][ELF] Work around R_MIPS_LO16 relocation handling problem
+
+This fixes PR49821, and avoids "ld.lld: error: test.o:(.rodata.str1.1):
+offset is outside the section" errors when linking MIPS objects with
+negative R_MIPS_LO16 implicit addends.
+
+ld.lld handles R_MIPS_HI16/R_MIPS_LO16 separately, not as a whole, so it
+doesn't know that an R_MIPS_HI16 with implicit addend 1 and an
+R_MIPS_LO16 with implicit addend -32768 represents 32768, which is in
+range of a MergeInputSection. We could introduce a new RelExpr member
+(like R_RISCV_PC_INDIRECT for R_RISCV_PCREL_HI20 / R_RISCV_PCREL_LO12)
+but the complexity is unnecessary given that GNU as keeps the original
+symbol for this case as well.
+
+Reviewed By: atanasyan, MaskRay
+
+Differential Revision: https://reviews.llvm.org/D101773
+---
+ llvm/lib/MC/ELFObjectWriter.cpp | 11 +++++++++++
+ llvm/test/MC/Mips/mips_lo16.s | 22 ++++++++++++++++++++++
+ 2 files changed, 33 insertions(+)
+ create mode 100644 llvm/test/MC/Mips/mips_lo16.s
+
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/lib/MC/ELFObjectWriter.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/lib/MC/ELFObjectWriter.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/lib/MC/ELFObjectWriter.cpp
+@@ -1367,6 +1367,17 @@ bool ELFObjectWriter::shouldRelocateWith
+ if (TargetObjectWriter->getEMachine() == ELF::EM_MIPS &&
+ !hasRelocationAddend())
+ return true;
++
++ // ld.lld handles R_MIPS_HI16/R_MIPS_LO16 separately, not as a whole, so
++ // it doesn't know that an R_MIPS_HI16 with implicit addend 1 and an
++ // R_MIPS_LO16 with implicit addend -32768 represents 32768, which is in
++ // range of a MergeInputSection. We could introduce a new RelExpr member
++ // (like R_RISCV_PC_INDIRECT for R_RISCV_PCREL_HI20 / R_RISCV_PCREL_LO12)
++ // but the complexity is unnecessary given that GNU as keeps the original
++ // symbol for this case as well.
++ if (TargetObjectWriter->getEMachine() == ELF::EM_MIPS &&
++ !hasRelocationAddend())
++ return true;
+ }
+
+ // Most TLS relocations use a got, so they need the symbol. Even those that
--- /dev/null
+Index: llvm-toolchain-15_15.0.3~++20221019061539+4a2c05b05ed0/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
+===================================================================
+--- llvm-toolchain-15_15.0.3~++20221019061539+4a2c05b05ed0.orig/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
++++ llvm-toolchain-15_15.0.3~++20221019061539+4a2c05b05ed0/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_linux.cpp
+@@ -64,9 +64,12 @@ using namespace __sanitizer;
+ COMPILER_CHECK(struct___old_kernel_stat_sz == sizeof(struct __old_kernel_stat));
+ #endif
+
+-COMPILER_CHECK(struct_kernel_stat_sz == sizeof(struct stat));
++# if defined(__LP64__) || \
++ (!defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS != 64)
++ COMPILER_CHECK(struct_kernel_stat_sz == sizeof(struct stat));
++# endif
+
+-#if defined(__i386__)
++# if defined(__i386__)
+ COMPILER_CHECK(struct_kernel_stat64_sz == sizeof(struct stat64));
+ #endif
+
--- /dev/null
+The MIPS port aims to support the Loongson 3 family of CPUs in addition
+of the other MIPS CPUs. On the Loongson 3 family the MADD4 instructions
+are fused, while they are not fused on the other MIPS CPUs. In order to
+support both, we have to disabled those instructions.
+
+For that, the patch below basically corresponds to the --with-madd4=no
+used on the GCC side.
+
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Basic/Targets/Mips.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Basic/Targets/Mips.h
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Basic/Targets/Mips.h
+@@ -332,6 +332,8 @@ public:
+ HasMSA = true;
+ else if (Feature == "+nomadd4")
+ DisableMadd4 = true;
++ else if (Feature == "-nomadd4")
++ DisableMadd4 = false;
+ else if (Feature == "+fp64")
+ FPMode = FP64;
+ else if (Feature == "-fp64")
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Driver/ToolChains/Arch/Mips.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Driver/ToolChains/Arch/Mips.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Driver/ToolChains/Arch/Mips.cpp
+@@ -467,10 +467,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;
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/lib/Target/Mips/MipsSubtarget.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/lib/Target/Mips/MipsSubtarget.cpp
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/lib/Target/Mips/MipsSubtarget.cpp
+@@ -81,7 +81,7 @@ MipsSubtarget::MipsSubtarget(const Tripl
+ InMips16HardFloat(Mips16HardFloat), InMicroMipsMode(false), HasDSP(false),
+ HasDSPR2(false), HasDSPR3(false), AllowMixed16_32(Mixed16_32 || Mips_Os16),
+ Os16(Mips_Os16), HasMSA(false), UseTCCInDIV(false), HasSym32(false),
+- HasEVA(false), DisableMadd4(false), HasMT(false), HasCRC(false),
++ HasEVA(false), DisableMadd4(true), HasMT(false), HasCRC(false),
+ HasVirt(false), HasGINV(false), UseIndirectJumpsHazard(false),
+ StackAlignOverride(StackAlignOverride), TM(TM), TargetTriple(TT),
+ TSInfo(), InstrInfo(MipsInstrInfo::create(
+@@ -92,6 +92,9 @@ MipsSubtarget::MipsSubtarget(const Tripl
+ if (MipsArchVersion == MipsDefault)
+ MipsArchVersion = Mips32;
+
++ if (hasMips32r6() || hasMips64r6())
++ DisableMadd4 = false;
++
+ // MIPS-I has not been tested.
+ if (MipsArchVersion == Mips1 && !MIPS1WarningPrinted) {
+ errs() << "warning: MIPS-I support is experimental\n";
+@@ -243,6 +246,7 @@ MipsSubtarget &
+ MipsSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS,
+ const TargetMachine &TM) {
+ StringRef CPUName = MIPS_MC::selectMipsCPU(TM.getTargetTriple(), CPU);
++ SubtargetFeatures Features(FS);
+
+ // Parse features string.
+ ParseSubtargetFeatures(CPUName, /*TuneCPU*/ CPUName, FS);
+@@ -265,6 +269,13 @@ MipsSubtarget::initializeSubtargetDepend
+ report_fatal_error("64-bit code requested on a subtarget that doesn't "
+ "support it!");
+
++ for (const std::string &Feature : Features.getFeatures()) {
++ if (Feature == "+nomadd4")
++ DisableMadd4 = true;
++ else if (Feature == "-nomadd4")
++ DisableMadd4 = false;
++ }
++
+ return *this;
+ }
+
--- /dev/null
+Index: llvm-toolchain-15-15.0.0~+rc3/compiler-rt/lib/builtins/clear_cache.c
+===================================================================
+--- llvm-toolchain-15-15.0.0~+rc3.orig/compiler-rt/lib/builtins/clear_cache.c
++++ llvm-toolchain-15-15.0.0~+rc3/compiler-rt/lib/builtins/clear_cache.c
+@@ -6,6 +6,11 @@
+ //
+ //===----------------------------------------------------------------------===//
+
++#if defined(__linux__) && defined(__mips__)
++// Otherwise, the build fails as it cannot find syscall
++#define _GNU_SOURCE
++#endif
++
+ #include "int_lib.h"
+ #if defined(__linux__)
+ #include <assert.h>
--- /dev/null
+Description: Define the affinity for riscv64
+Last-Update: 2021-08-27
+
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/openmp/runtime/src/kmp_affinity.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/openmp/runtime/src/kmp_affinity.h
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/openmp/runtime/src/kmp_affinity.h
+@@ -210,6 +210,17 @@ public:
+ #elif __NR_sched_getaffinity != 123
+ #error Wrong code for getaffinity system call.
+ #endif /* __NR_sched_getaffinity */
++#elif KMP_ARCH_RISCV64
++#ifndef __NR_sched_setaffinity
++#define __NR_sched_setaffinity 122
++#elif __NR_sched_setaffinity != 122
++#error Wrong code for setaffinity system call.
++#endif /* __NR_sched_setaffinity */
++#ifndef __NR_sched_getaffinity
++#define __NR_sched_getaffinity 123
++#elif __NR_sched_getaffinity != 123
++#error Wrong code for getaffinity system call.
++#endif /* __NR_sched_getaffinity */
+ #elif KMP_ARCH_X86_64
+ #ifndef __NR_sched_setaffinity
+ #define __NR_sched_setaffinity 203
--- /dev/null
+Index: llvm-toolchain-snapshot_14~++20220105111900+cdbad62c526c/clang/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_14~++20220105111900+cdbad62c526c.orig/clang/CMakeLists.txt
++++ llvm-toolchain-snapshot_14~++20220105111900+cdbad62c526c/clang/CMakeLists.txt
+@@ -726,9 +726,9 @@ if (CLANG_ENABLE_BOOTSTRAP)
+ endif()
+
+ set(COMPILER_OPTIONS
+- -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/${CXX_COMPILER}
+- -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/${C_COMPILER}
+- -DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/${C_COMPILER}
++ -DCMAKE_CXX_COMPILER=/usr/share/clang/scan-build-${CLANG_VERSION_MAJOR}/libexec/c++-analyzer
++ -DCMAKE_C_COMPILER=/usr/share/clang/scan-build-${CLANG_VERSION_MAJOR}/libexec/ccc-analyzer
++ -DCMAKE_ASM_COMPILER=/usr/share/clang/scan-build-${CLANG_VERSION_MAJOR}/libexec/ccc-analyzer
+ -DCMAKE_ASM_COMPILER_ID=Clang)
+
+ # cmake requires CMAKE_LINKER to be specified if the compiler is MSVC-like,
--- /dev/null
+include required runtimes as dependencies to openmp targets to make sure
+they are built first when included as part of a runtimes build since openmp
+can depend on them
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/llvm/runtimes/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/llvm/runtimes/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/llvm/runtimes/CMakeLists.txt
+@@ -245,6 +245,7 @@ function(runtime_default_target)
+ -DLLVM_ENABLE_PROJECTS_USED=${LLVM_ENABLE_PROJECTS_USED}
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=${LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_default}
+ -DLLVM_BUILD_TOOLS=${LLVM_BUILD_TOOLS}
++ -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
+ -DCMAKE_C_COMPILER_WORKS=ON
+ -DCMAKE_CXX_COMPILER_WORKS=ON
+ -DCMAKE_ASM_COMPILER_WORKS=ON
+@@ -472,7 +473,7 @@ if(runtimes)
+ # build directory cannot find the C++ headers in certain configurations.
+ # I need to build a mechanism for runtime projects to provide CMake code
+ # that executes at LLVM configuration time to handle this case.
+- add_dependencies(clang-bootstrap-deps runtimes-configure)
++ #add_dependencies(clang-bootstrap-deps runtimes-configure)
+ # We need to add the runtimes as a dependency because compiler-rt can be
+ # built as part of runtimes and we need the profile runtime for PGO
+ add_dependencies(clang-bootstrap-deps runtimes)
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/openmp/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/CMakeLists.txt
+@@ -77,6 +77,28 @@ option(OPENMP_ENABLE_LIBOMPTARGET_PROFIL
+ ${ENABLE_LIBOMPTARGET_PROFILING})
+ option(OPENMP_ENABLE_LIBOMP_PROFILING "Enable time profiling for libomp." OFF)
+
++option(OPENMP_USE_LLVM_UNWINDER "Build and use the LLVM unwinder" OFF)
++
++option(LIBOMP_ENABLE_RTTI "Enabling RTTI forces libomp to be a c++ lib" ${LLVM_ENABLE_RTTI})
++
++macro(add_runtimes_build_depends_if_needed target)
++ if(RUNTIMES_BUILD)
++ # required for rtti and libomp/libomptarget profiling if enabled
++ add_dependencies(${target} cxx-headers cxxabi_static cxx_static cxxabi_shared cxx_shared)
++ if(OPENMP_USE_LLVM_UNWINDER AND (NOT target STREQUAL "omp" AND NOT LIBOMP_ENABLE_RTTI))
++ add_dependencies(${target} unwind_static unwind_shared)
++ get_target_property(target_link_flags ${target} LINK_FLAGS)
++ set(runtimes_link_flags "-lunwind")
++ if(target_link_flags)
++ set(runtimes_link_flags "${target_link_flags} -lunwind")
++ endif()
++ set_target_properties(${target}
++ PROPERTIES
++ LINK_FLAGS "${runtimes_link_flags}")
++ endif()
++ endif()
++endmacro()
++
+ # Build host runtime library, after LIBOMPTARGET variables are set since they are needed
+ # to enable time profiling support in the OpenMP runtime.
+ add_subdirectory(runtime)
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/libomptarget/plugins/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/openmp/libomptarget/plugins/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/libomptarget/plugins/CMakeLists.txt
+@@ -52,6 +52,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "${tma
+ NO_INSTALL_RPATH
+ )
+
++ add_runtimes_build_depends_if_needed("omptarget.rtl.${tmachine_libname}")
++
+ # Install plugin under the lib destination folder.
+ install(TARGETS "omptarget.rtl.${tmachine_libname}"
+ LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/libomptarget/plugins/cuda/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/openmp/libomptarget/plugins/cuda/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/libomptarget/plugins/cuda/CMakeLists.txt
+@@ -88,6 +88,8 @@ else()
+ endif()
+ add_dependencies(omptarget.rtl.cuda omptarget.devicertl.nvptx)
+
++add_runtimes_build_depends_if_needed(omptarget.rtl.cuda)
++
+ # Install plugin under the lib destination folder.
+ install(TARGETS omptarget.rtl.cuda LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}")
+ set_target_properties(omptarget.rtl.cuda PROPERTIES
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/libomptarget/src/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/openmp/libomptarget/src/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/libomptarget/src/CMakeLists.txt
+@@ -35,7 +35,9 @@ add_llvm_library(omptarget
+ ${CMAKE_DL_LIBS}
+ "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports"
+ NO_INSTALL_RPATH
+-)
++ )
++add_runtimes_build_depends_if_needed(omptarget)
++
+ target_include_directories(omptarget PRIVATE ${LIBOMPTARGET_INCLUDE_DIR})
+
+ # libomptarget.so needs to be aware of where the plugins live as they
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/runtime/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/openmp/runtime/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/runtime/CMakeLists.txt
+@@ -287,6 +287,10 @@ if(LIBOMP_STATS)
+ set(LIBOMP_USE_STDCPPLIB TRUE)
+ endif()
+
++if(LIBOMP_ENABLE_RTTI)
++ set(LIBOMP_USE_STDCPPLIB TRUE)
++endif()
++
+ # Shared library can be switched to a static library
+ set(LIBOMP_ENABLE_SHARED TRUE CACHE BOOL
+ "Shared library instead of static library?")
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/runtime/src/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/openmp/runtime/src/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/runtime/src/CMakeLists.txt
+@@ -133,6 +133,7 @@ endif()
+ if(NOT ${LIBOMP_USE_STDCPPLIB})
+ set(LIBOMP_LINKER_LANGUAGE C)
+ set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES)
++ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
+ else()
+ set(LIBOMP_LINKER_LANGUAGE CXX)
+ endif()
+@@ -190,6 +191,8 @@ else()
+ )
+ endif()
+
++add_runtimes_build_depends_if_needed(omp)
++
+ # Get the library's location within the build tree for the unit tester
+ if(NOT WIN32)
+ get_target_property(LIBOMP_LIBRARY_DIR omp LIBRARY_OUTPUT_DIRECTORY)
+Index: llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/tools/archer/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe.orig/openmp/tools/archer/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220723123759+d959324e1efe/openmp/tools/archer/CMakeLists.txt
+@@ -14,6 +14,9 @@ if(LIBOMP_OMPT_SUPPORT)
+ add_library(archer SHARED ompt-tsan.cpp)
+ add_library(archer_static STATIC ompt-tsan.cpp)
+
++ add_runtimes_build_depends_if_needed(archer)
++ add_runtimes_build_depends_if_needed(archer_static)
++
+ install(TARGETS archer archer_static
+ LIBRARY DESTINATION ${OPENMP_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${OPENMP_INSTALL_LIBDIR})
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/openmp/runtime/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/openmp/runtime/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/openmp/runtime/CMakeLists.txt
+@@ -371,7 +371,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-snapshot_11~++20200326111000+4673699a470/openmp/runtime/tools/check-execstack.pl
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/openmp/runtime/tools/check-execstack.pl
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/openmp/runtime/tools/check-execstack.pl
+@@ -45,7 +45,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_15~++20220407011631+46f0e2ceb487/openmp/runtime/src/kmp_affinity.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/openmp/runtime/src/kmp_affinity.h
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/openmp/runtime/src/kmp_affinity.h
+@@ -232,28 +232,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_* */
+ #elif KMP_OS_FREEBSD
--- /dev/null
+diff -Nur a/clang-tools-extra/clangd/index/remote/monitor/Monitor.cpp b/clang-tools-extra/clangd/index/remote/monitor/Monitor.cpp
+--- a/clang-tools-extra/clangd/index/remote/monitor/Monitor.cpp 2022-01-23 01:26:53.000000000 +0100
++++ b/clang-tools-extra/clangd/index/remote/monitor/Monitor.cpp 2022-09-08 19:17:39.103577486 +0200
+@@ -67,8 +67,8 @@
+ google::protobuf::util::MessageToJsonString(Response, &Output, Options);
+ if (!JsonStatus.ok()) {
+ clang::clangd::elog("Can not convert response ({0}) to JSON ({1}): {2}\n",
+- Response.DebugString(), JsonStatus.error_code(),
+- JsonStatus.error_message().as_string());
++ Response.DebugString(), (int)JsonStatus.code(),
++ JsonStatus.message().as_string());
+ return -1;
+ }
+ llvm::outs() << Output;
--- /dev/null
+---
+ clang/bindings/python/clang/cindex.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415/clang/bindings/python/clang/cindex.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415.orig/clang/bindings/python/clang/cindex.py
++++ llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415/clang/bindings/python/clang/cindex.py
+@@ -4162,7 +4162,7 @@ class Config(object):
+ elif name == 'Windows':
+ file = 'libclang.dll'
+ else:
+- file = 'libclang.so'
++ file = 'libclang-15.so'
+
+ if Config.library_path:
+ file = Config.library_path + '/' + file
--- /dev/null
+Description: change all shebangs to Python3
+ find . -name "*.py" -exec sed "s|\!/usr/bin/env python$|\!/usr/bin/env python3|g" -i {} \;
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/run-find-all-symbols.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang-tools-extra/clang-include-fixer/find-all-symbols/tool/run-find-all-symbols.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang-tools-extra/clang-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 -*-=#
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang-tools-extra/clang-tidy/add_new_check.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang-tools-extra/clang-tidy/add_new_check.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 -*--===#
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang-tools-extra/clang-tidy/rename_check.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang-tools-extra/clang-tidy/rename_check.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 -*--===#
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 -*--===#
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/bindings/python/examples/cindex/cindex-dump.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/bindings/python/examples/cindex/cindex-dump.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 -*--===#
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/bindings/python/examples/cindex/cindex-includes.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/bindings/python/examples/cindex/cindex-includes.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 -*--===#
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/docs/tools/dump_ast_matchers.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/docs/tools/dump_ast_matchers.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/tools/scan-view/bin/scan-view
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/tools/scan-view/bin/scan-view
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/tools/scan-view/bin/scan-view
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/tools/scan-view/share/startfile.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/tools/scan-view/share/startfile.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/ABITest/ABITestGen.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/ABITest/ABITestGen.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/CIndex/completion_logger_server.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/CIndex/completion_logger_server.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 *
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/CaptureCmd
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/CaptureCmd
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/CmpDriver
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/CmpDriver
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/FindSpecRefs
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/FindSpecRefs
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/FindSpecRefs
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import re
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/FuzzTest
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/FuzzTest
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/TestUtils/deep-stack.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/TestUtils/deep-stack.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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):
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/CmpRuns.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/analyzer/CmpRuns.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/SATestAdd.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/analyzer/SATestAdd.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/SATestBuild.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/analyzer/SATestBuild.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/SATestBuild.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Static Analyzer qualification infrastructure.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/SATestUpdateDiffs.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/analyzer/SATestUpdateDiffs.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/SATestUpdateDiffs.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """
+ Update reference results for static analyzer.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/SumTimerInfo.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/analyzer/SumTimerInfo.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/exploded-graph-rewriter.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/analyzer/exploded-graph-rewriter.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/analyzer/exploded-graph-rewriter.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ #===- exploded-graph-rewriter.py - ExplodedGraph dump tool -----*- python -*--#
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/check_cfc/check_cfc.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/check_cfc/check_cfc.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/check_cfc/obj_diff.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/check_cfc/obj_diff.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/check_cfc/test_check_cfc.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/check_cfc/test_check_cfc.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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."""
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/creduce-clang-crash.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/creduce-clang-crash.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/creduce-clang-crash.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """Calls C-Reduce to create a minimal reproducer for clang crashes.
+
+ Output files:
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/modfuzz.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/modfuzz.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/clang/utils/token-delta.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/clang/utils/token-delta.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/compiler-rt/lib/asan/scripts/asan_symbolize.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/compiler-rt/lib/asan/scripts/asan_symbolize.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 -----------------------------------===#
+ #
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/compiler-rt/lib/dfsan/scripts/build-libc-list.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/compiler-rt/lib/dfsan/scripts/build-libc-list.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 ---------------------------------===#
+ #
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/compiler-rt/lib/fuzzer/scripts/unbalanced_allocs.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/compiler-rt/lib/fuzzer/scripts/unbalanced_allocs.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 ------------------------------===#
+ #
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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 ---------------------===#
+ #
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/compiler-rt/lib/sanitizer_common/scripts/sancov.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/compiler-rt/lib/sanitizer_common/scripts/sancov.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/libcxx/utils/cat_files.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/libcxx/utils/cat_files.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/libcxx/utils/cat_files.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/libcxx/utils/generate_feature_test_macro_components.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/libcxx/utils/generate_feature_test_macro_components.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/libcxx/utils/generate_feature_test_macro_components.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ from builtins import range
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/libcxx/utils/sym_diff.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/libcxx/utils/sym_diff.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/libcxx/utils/sym_diff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #===----------------------------------------------------------------------===##
+ #
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lld/utils/benchmark.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lld/utils/benchmark.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lld/utils/benchmark.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+ # See https://llvm.org/LICENSE.txt for license information.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/examples/python/file_extract.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/examples/python/file_extract.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/examples/python/file_extract.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import string
+ import struct
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/packages/Python/lldbsuite/test/bench.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/packages/Python/lldbsuite/test/bench.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/vscode.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/scripts/analyze-project-deps.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/scripts/analyze-project-deps.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/scripts/analyze-project-deps.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import argparse
+ import itertools
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/scripts/verify_api.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/scripts/verify_api.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/scripts/verify_api.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import subprocess
+ import optparse
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/third_party/Python/module/pexpect-4.6/pexpect/FSM.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/third_party/Python/module/pexpect-4.6/pexpect/FSM.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/third_party/Python/module/pexpect-4.6/pexpect/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/utils/lui/lui.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/utils/lui/lui.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/utils/lui/lui.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ ##===-- lui.py -----------------------------------------------*- Python -*-===##
+ ##
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/utils/lui/sandbox.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/lldb/utils/lui/sandbox.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/lldb/utils/lui/sandbox.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ ##===-- sandbox.py -------------------------------------------*- Python -*-===##
+ ##
+ # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/cached/genk-timing.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/examples/Kaleidoscope/MCJIT/cached/genk-timing.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/cached/genk-timing.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/cached/split-lib.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/examples/Kaleidoscope/MCJIT/cached/split-lib.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/cached/split-lib.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/complete/genk-timing.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/examples/Kaleidoscope/MCJIT/complete/genk-timing.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/complete/genk-timing.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/complete/split-lib.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/examples/Kaleidoscope/MCJIT/complete/split-lib.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/complete/split-lib.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/test/BugPoint/compile-custom.ll.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/test/BugPoint/compile-custom.ll.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/test/BugPoint/compile-custom.ll.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/test/Other/opt-bisect-helper.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/test/Other/opt-bisect-helper.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/test/Other/opt-bisect-helper.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/test/TableGen/JSON-check.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/test/TableGen/JSON-check.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/test/TableGen/JSON-check.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+ import subprocess
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/opt-diff.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/tools/opt-viewer/opt-diff.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/opt-diff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/opt-stats.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/tools/opt-viewer/opt-stats.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/opt-stats.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/opt-viewer.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/tools/opt-viewer/opt-viewer.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/opt-viewer.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/optrecord.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/tools/opt-viewer/optrecord.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/tools/opt-viewer/optrecord.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/Misc/zkill
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/Misc/zkill
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/Misc/zkill
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import re
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/abtest.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/abtest.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/bisect
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/bisect
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/bisect
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # The way you use this is you create a script that takes in as its first
+ # argument a count. The script passes into LLVM the count via a command
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/bisect-skip-count
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/bisect-skip-count
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+ #
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/bugpoint_gisel_reducer.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/bugpoint_gisel_reducer.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/bugpoint_gisel_reducer.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """Reduces GlobalISel failures.
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/chunk-print-before-all.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/chunk-print-before-all.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/chunk-print-before-all.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # Given a -print-before-all -print-module-scope log from an opt invocation,
+ # chunk it into a series of individual IR files, one for each pass invocation.
+ # If the log ends with an obvious stack trace, try to split off a separate
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/clang-parse-diagnostics-file
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/clang-parse-diagnostics-file
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/clang-parse-diagnostics-file
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import plistlib
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/create_ladder_graph.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/create_ladder_graph.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/extract_symbols.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/extract_symbols.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/extract_vplan.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/extract_vplan.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/indirect_calls.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/indirect_calls.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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.
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/lit/ProgressBar.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/lit/ProgressBar.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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.
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/googletest-format/DummySubDir/OneTest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import sys
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/OneTest.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/OneTest.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/googletest-timeout/DummySubDir/OneTest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import os
+ import sys
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/shtest-env/print_environment.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/shtest-env/print_environment.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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_function
+ import os
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/shtest-shell/check_args.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/shtest-shell/check_args.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/shtest-shell/check_path.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/shtest-shell/check_path.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/shtest-shell/write-to-stderr.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/shtest-shell/write-to-stderr.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/shtest-shell/write-to-stderr.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ import sys
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/lit/tests/Inputs/shtest-shell/write-to-stdout-and-stderr.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/lit/tests/Inputs/shtest-shell/write-to-stdout-and-stderr.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/llvm-gisel-cov.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/llvm-gisel-cov.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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.
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/prepare-code-coverage-artifact.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/prepare-code-coverage-artifact.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/prepare-code-coverage-artifact.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ from __future__ import print_function
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/release/findRegressions-nightly.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/release/findRegressions-nightly.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/release/findRegressions-simple.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/release/findRegressions-simple.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/shuffle_fuzz.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/shuffle_fuzz.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/shuffle_fuzz.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A shuffle vector fuzz tester.
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/shuffle_select_fuzz_tester.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/shuffle_select_fuzz_tester.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/shuffle_select_fuzz_tester.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ """A shuffle-select vector fuzz tester.
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/sort_includes.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/sort_includes.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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.
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/unicode-case-fold.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/unicode-case-fold.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/unicode-case-fold.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ """
+ Unicode case folding database conversion utility
+
+Index: llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/utils/wciia.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f.orig/llvm/utils/wciia.py
++++ llvm-toolchain-snapshot_15~++20220604090138+03c066ab134f/llvm/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-snapshot_15~++20220407011631+46f0e2ceb487/clang/docs/CommandGuide/clang.rst
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/docs/CommandGuide/clang.rst
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/docs/CommandGuide/clang.rst
+@@ -321,24 +321,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>
+-
+- Specify the architecture to build for (Mac OS X specific).
+-
+ .. option:: -target <architecture>
+
+ Specify the architecture to build for (all platforms).
+
+-.. option:: -mmacosx-version-min=<version>
+-
+- When building for macOS, 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:: --print-supported-cpus
+
+ Print out a list of supported processors for the given target (specified
+@@ -657,11 +643,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_14~++20211115123243+1e77b09538c1/compiler-rt/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cpp
+===================================================================
+--- llvm-toolchain-snapshot_14~++20211115123243+1e77b09538c1.orig/compiler-rt/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cpp
++++ llvm-toolchain-snapshot_14~++20211115123243+1e77b09538c1/compiler-rt/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cpp
+@@ -1,4 +1,5 @@
+ // RUN: %clangxx -O2 %s -o %t && %run %t 2>&1 | FileCheck %s
++// XFAIL: *
+
+ #include <stdio.h>
+
--- /dev/null
+commit e80c52986e1bb3afa6a92c58b1cb897877923a66
+Author: Tom Stellard <tstellar@redhat.com>
+Date: Tue Feb 1 23:13:01 2022 -0800
+
+ [docs] Remove hard-coded version numbers from sphinx configs
+
+ This updates all the non-runtime project release notes to use the
+ version number from CMake instead of the hard-coded version numbers
+ in conf.py.
+
+ It also hides warnings about pre-releases when the git suffix
+ is dropped from the LLVM version in CMake.
+
+ Reviewed By: MaskRay
+
+ Differential Revision: https://reviews.llvm.org/D112181
+
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/clang-tools-extra/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/clang-tools-extra/docs/conf.py
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/clang-tools-extra/docs/conf.py
+@@ -44,6 +44,15 @@ master_doc = 'index'
+ project = u'Extra Clang Tools'
+ copyright = u'2007-%d, The Clang Team' % date.today().year
+
++# The version info for the project you're documenting, acts as replacement for
++# |version| and |release|, also used in various other places throughout the
++# built documents.
++#
++# The short version.
++version = '15'
++# The full version, including alpha/beta/rc tags.
++release = '15'
++
+ # The language for content autogenerated by Sphinx. Refer to documentation
+ # for a list of supported languages.
+ #language = None
+@@ -78,11 +87,6 @@ pygments_style = 'friendly'
+ # A list of ignored prefixes for module index sorting.
+ #modindex_common_prefix = []
+
+-in_progress_title = "(In-Progress) " if tags.has("PreRelease") else ""
+-
+-rst_epilog = f"""
+-.. |ReleaseNotesTitle| replace:: {in_progress_title} Release Notes
+-"""
+
+ # -- Options for HTML output ---------------------------------------------------
+
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/clang/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/clang/docs/conf.py
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/clang/docs/conf.py
+@@ -62,6 +62,15 @@ master_doc = 'index'
+ project = u'Clang'
+ copyright = u'2007-%d, The Clang Team' % date.today().year
+
++# The version info for the project you're documenting, acts as replacement for
++# |version| and |release|, also used in various other places throughout the
++# built documents.
++#
++# The short version.
++version = '15'
++# The full version, including alpha/beta/rc tags.
++release = '15'
++
+ # The language for content autogenerated by Sphinx. Refer to documentation
+ # for a list of supported languages.
+ #language = None
+@@ -96,11 +105,6 @@ pygments_style = 'friendly'
+ # A list of ignored prefixes for module index sorting.
+ #modindex_common_prefix = []
+
+-in_progress_title = "(In-Progress) " if tags.has("PreRelease") else ""
+-
+-rst_epilog = f"""
+-.. |ReleaseNotesTitle| replace:: {in_progress_title} Release Notes
+-"""
+
+ # -- Options for HTML output ---------------------------------------------------
+
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/lld/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/lld/docs/conf.py
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/lld/docs/conf.py
+@@ -43,6 +43,15 @@ master_doc = 'index'
+ project = u'lld'
+ copyright = u'2011-%d, LLVM Project' % date.today().year
+
++# The version info for the project you're documenting, acts as replacement for
++# |version| and |release|, also used in various other places throughout the
++# built documents.
++#
++# The short version.
++version = '15'
++# The full version, including alpha/beta/rc tags.
++release = '15'
++
+ # The language for content autogenerated by Sphinx. Refer to documentation
+ # for a list of supported languages.
+ #language = None
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/cmake/modules/AddSphinxTarget.cmake
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/llvm/cmake/modules/AddSphinxTarget.cmake
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/cmake/modules/AddSphinxTarget.cmake
+@@ -39,10 +39,6 @@ function (add_sphinx_target builder proj
+ set(ARG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+ endif()
+
+- if ("${LLVM_VERSION_SUFFIX}" STREQUAL "git")
+- set(PreReleaseTag "-tPreRelease")
+- endif()
+-
+ add_custom_target(${SPHINX_TARGET_NAME}
+ COMMAND ${CMAKE_COMMAND} -E env ${ARG_ENV_VARS}
+ ${SPHINX_EXECUTABLE}
+@@ -50,9 +46,6 @@ function (add_sphinx_target builder proj
+ -d "${SPHINX_DOC_TREE_DIR}"
+ -q # Quiet: no output other than errors and warnings.
+ -t builder-${builder} # tag for builder
+- -D version=${LLVM_VERSION_MAJOR}
+- -D release=${PACKAGE_VERSION}
+- ${PreReleaseTag}
+ ${SPHINX_WARNINGS_AS_ERRORS_FLAG} # Treat warnings as errors if requested
+ "${ARG_SOURCE_DIR}" # Source
+ "${SPHINX_BUILD_DIR}" # Output
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/llvm/docs/conf.py
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/llvm/docs/conf.py
+@@ -61,6 +61,15 @@ master_doc = 'index'
+ project = u'LLVM'
+ copyright = u'2003-%d, LLVM Project' % date.today().year
+
++# The version info for the project you're documenting, acts as replacement for
++# |version| and |release|, also used in various other places throughout the
++# built documents.
++#
++# The short version.
++version = '15'
++# The full version, including alpha/beta/rc tags.
++release = '15'
++
+ # The language for content autogenerated by Sphinx. Refer to documentation
+ # for a list of supported languages.
+ #language = None
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/polly/docs/conf.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/polly/docs/conf.py
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/polly/docs/conf.py
+@@ -44,6 +44,15 @@ master_doc = 'index'
+ project = u'Polly'
+ copyright = u'2010-%d, The Polly Team' % date.today().year
+
++# The version info for the project you're documenting, acts as replacement for
++# |version| and |release|, also used in various other places throughout the
++# built documents.
++#
++# The short X.Y version.
++version = '15.0'
++# The full version, including alpha/beta/rc tags.
++release = '15.0'
++
+ # The language for content autogenerated by Sphinx. Refer to documentation
+ # for a list of supported languages.
+ #language = None
+@@ -78,11 +87,6 @@ pygments_style = 'friendly'
+ # A list of ignored prefixes for module index sorting.
+ #modindex_common_prefix = []
+
+-in_progress_title = "(In-Progress) " if tags.has("PreRelease") else ""
+-
+-rst_epilog = f"""
+-.. |ReleaseNotesTitle| replace:: {in_progress_title} Release Notes
+-"""
+
+ # -- Options for HTML output ---------------------------------------------------
+
--- /dev/null
+---
+ clang/tools/scan-build/bin/scan-build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415/clang/tools/scan-build/bin/scan-build
+===================================================================
+--- llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415.orig/clang/tools/scan-build/bin/scan-build
++++ llvm-toolchain-snapshot_15~++20211115120952+5b4bfd8c2415/clang/tools/scan-build/bin/scan-build
+@@ -1586,7 +1586,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-15/bin/clang");
+ if (!defined $Clang || ! -x $Clang) {
+ # When an Xcode toolchain is present, look for a clang in the sibling bin
+ # of the parent of the bin directory. So if scan-build is at
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20210717105643+f95d26006e06/clang/tools/scan-build-py/lib/libscanbuild/arguments.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20210717105643+f95d26006e06.orig/clang/tools/scan-build-py/lib/libscanbuild/arguments.py
++++ llvm-toolchain-snapshot_15~++20210717105643+f95d26006e06/clang/tools/scan-build-py/lib/libscanbuild/arguments.py
+@@ -266,7 +266,7 @@ def create_analyze_parser(from_build_com
+ '--use-analyzer',
+ metavar='<path>',
+ dest='clang',
+- default='clang',
++ default='clang-15',
+ help="""'%(prog)s' uses the 'clang' executable relative to itself for
+ static analysis. One can override this behavior with this option by
+ using the 'clang' packaged with Xcode (on OS X) or from the PATH.""")
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/scan-view/bin/scan-view
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/tools/scan-view/bin/scan-view
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/tools/scan-view/bin/scan-view
+@@ -65,7 +65,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
+clang-format-version.diff
+clang-analyzer-force-version.diff
+
+# Disabling features
+23-strlcpy_strlcat_warning_removed.diff
+
+declare_clear_cache.diff
+unwind-chain-inclusion.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
+
+# Lib names
+0044-soname.diff
+lldb/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
+
+# Decrease the freq for the keep alive
+test-keep-alive.diff
+
+# scan-build
+scan-build-clang-path.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
+
+# 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-silent-test-libcxx.diff
+libcxx/libcxx-silent-failure-ppc64el.diff
+libcxx/libcxx-silent-failure-arm64.diff
+libcxx/libcxx-libatomic-only-with-gcc-rtlib.diff
+libcxx/libcxxabi-fix-link-builtins.diff
+libcxx/libcxx-armhf-ftbfs.diff
+
+# Change default optims
+mips/mips-fpxx-enable.diff
+mips/mips-force-nomadd4.patch
+mips/mips-D101773-reloc.patch
+mips/syscall-mips64el-def.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
+clangd-atomic-cmake.patch
+
+# Fix docs
+# https://reviews.llvm.org/D60380
+remove-apple-clang-manpage.diff
+0049-Use-Debian-provided-MathJax-everywhere.patch
+
+# Hurd port
+hurd/hurd-pathmax.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
+
+930008-arm.diff
+bootstrap-fix-include-next.diff
+
+# bug 939472
+#try-to-unbreak-thinlto.diff
+#D67877-cmake-clang-example.patch
+
+python3-shebang.patch
+lldb/print-lldb-path.patch
+lower-python-dep.diff
+scan-build-py-fix-default-bin.diff
+
+omp-riscv64.patch
+lldb/test-disable-lldb-i386.diff
+unbreak-atomic-mips.diff
+llvm-fix-lld-linker-check.diff
+openmp-fix-runtimes-build.diff
+libclc-fix-prepare_builtins-rpath.diff
+llvm-runtimes-builtins-build-check.diff
+issue-54242.diff
+
+# compiler-rt
+compiler-rt/compilerrt-fix-warn-xray-testing.diff
+compiler-rt/compilerrt-builtins-arch-fix-armhf.diff
+compiler-rt/compilerrt-build-scudo-standalone-option.diff
+
+
+# wasm patches
+wasm/wasm-ld-path.diff
+wasm/wasm-compiler-rt-default.diff
+wasm/wasm-sysroot-usr.diff
+
+revert-update-doc.diff
+unwind-force-pthread-dl.diff
+force-sse2-compiler-rt.diff
+fix-typo-1018770.diff
+bolt.patch
+bolt-disable-emit-relocs.patch
+D124841-fix-powerpc-miscompile.patch
+mips/mips-assert-size.diff
+protobuf_3.21.patch
+
+# upstream cherry-pick for mesa build
+add-arm-vcmpz-test.patch
+fix-mesa-build.patch
+link-grpc.diff
--- /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/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/remote/test-global-init-nonzero-sm-pic.ll | 2 +-
+ test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.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/Feature/load_module.ll | 1 -
+ 17 files changed, 14 insertions(+), 17 deletions(-)
+
+Index: llvm-toolchain-snapshot_13~++20210330092140+c2ebad8d55bd/llvm/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_13~++20210330092140+c2ebad8d55bd.orig/llvm/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll
++++ llvm-toolchain-snapshot_13~++20210330092140+c2ebad8d55bd/llvm/test/ExecutionEngine/MCJIT/remote/test-global-init-nonzero-sm-pic.ll
+@@ -1,6 +1,6 @@
+ ; RUN: %lli -jit-kind=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_13~++20210330092140+c2ebad8d55bd/llvm/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll
+===================================================================
+--- llvm-toolchain-snapshot_13~++20210330092140+c2ebad8d55bd.orig/llvm/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll
++++ llvm-toolchain-snapshot_13~++20210330092140+c2ebad8d55bd/llvm/test/ExecutionEngine/MCJIT/remote/test-ptr-reloc-sm-pic.ll
+@@ -1,6 +1,6 @@
+ ; RUN: %lli -jit-kind=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
+
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/test/MC/AMDGPU/hsa.s
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/test/MC/AMDGPU/hsa.s
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/test/MC/AMDGPU/hsa.s
+@@ -1,5 +1,6 @@
+ // RUN: llvm-mc -triple amdgcn--amdhsa -mcpu=kaveri --amdhsa-code-object-version=2 -show-encoding %s | FileCheck %s --check-prefix=ASM
+ // RUN: llvm-mc -filetype=obj -triple amdgcn--amdhsa -mcpu=kaveri --amdhsa-code-object-version=2 -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/llvm/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/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_11~++20200326111000+4673699a470/llvm/test/tools/gold/X86/start-lib-common.ll
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/llvm/test/tools/gold/X86/start-lib-common.ll
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/llvm/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_11~++20200326111000+4673699a470/llvm/test/tools/gold/X86/comdat.ll
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/llvm/test/tools/gold/X86/comdat.ll
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/llvm/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 --symbols %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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/common_thinlto.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/common_thinlto.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/emit-llvm.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/emit-llvm.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/parallel.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/parallel.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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.lto.o | FileCheck --check-prefix=CHECK0 %s
+ ; RUN: llvm-nm %t.lto.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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/pr19901_thinlto.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/pr19901_thinlto.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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 --symbols %t.so | FileCheck %s
++; XFAIL: i686, i386
+
+ ; CHECK: Symbol {
+ ; CHECK: Name: f
+Index: llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/slp-vectorize.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/slp-vectorize.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/slp-vectorize.ll
+@@ -6,6 +6,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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/strip_names.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/strip_names.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/strip_names.ll
+@@ -25,6 +25,7 @@
+ ; NONAME: %2 = load i32, ptr @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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/thinlto.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/thinlto.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/thinlto.ll
+@@ -148,6 +148,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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/thinlto_archive.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/thinlto_archive.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/thinlto_internalize.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/thinlto_internalize.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/thinlto_linkonceresolution.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/thinlto_linkonceresolution.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/thinlto_weak_resolution.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/thinlto_weak_resolution.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/type-merge2.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/type-merge2.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/vectorize.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/vectorize.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/vectorize.ll
+@@ -6,6 +6,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_15~++20220602015647+53efdf33f85a/llvm/test/tools/gold/X86/visibility.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a.orig/llvm/test/tools/gold/X86/visibility.ll
++++ llvm-toolchain-snapshot_15~++20220602015647+53efdf33f85a/llvm/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-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/basic_lldb.c
+===================================================================
+--- llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c.orig/integration-test-suite/tests/basic_lldb.c
++++ llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/basic_lldb.c
+@@ -1,6 +1,7 @@
+ // RUN: %clang -g -o %t %s
+ // RUN: %lldb -s %S/basic_lldb.in %t | grep "main at basic_lldb.c:"
+ // REQUIRES: lldb, clang
++// XFAIL: i686, i386
+
+ int main() {
+ int a=0;
+Index: llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/basic_lldb2.cpp
+===================================================================
+--- llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c.orig/integration-test-suite/tests/basic_lldb2.cpp
++++ llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/basic_lldb2.cpp
+@@ -1,6 +1,7 @@
+ // RUN: %clangxx -g -o %t %s
+ // RUN: %lldb -s %S/basic_lldb2.in %t | grep "stop reason = step over"
+ // REQUIRES: lldb, clangxx
++// XFAIL: i686, i386
+
+ #include <vector>
+ int main (void)
+Index: llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/test_asan_lc.c
+===================================================================
+--- llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c.orig/integration-test-suite/tests/test_asan_lc.c
++++ llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/test_asan_lc.c
+@@ -3,6 +3,7 @@
+ // REQUIRES: clang
+ // RUN: %clang -fsanitize=address %s -o %t -lc
+ // RUN: %t
++// XFAIL: i686, i386
+
+ #include <stdio.h>
+ int main(int argc, char **argv)
+Index: llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/test_tsan.c
+===================================================================
+--- llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c.orig/integration-test-suite/tests/test_tsan.c
++++ llvm-toolchain-11_11.0.1~++20201112101029+0874e7ef66c/integration-test-suite/tests/test_tsan.c
+@@ -5,7 +5,7 @@
+ // RUN: %llvm-nm %t | grep __tsan
+ // RUN: env TSAN_OPTIONS="log_path=stdout:exitcode=0" %t 2>&1 > %t.out
+ // RUN: grep -q "data race" %t.out
+-// XFAIL: arm
++// XFAIL: arm, i686, i386
+
+ #include <pthread.h>
+ #include <stdio.h>
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/test/tools/llvm-isel-fuzzer/aarch64-execname-options.ll
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/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: *
+
+ ; The above also applies if the binary is built with libc++.
+ ; UNSUPPORTED: libcxx-used
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/test/tools/llvm-isel-fuzzer/execname-options.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/test/tools/llvm-isel-fuzzer/execname-options.ll
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/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: *
+
+ ; The above also applies if the binary is built with libc++.
+ ; UNSUPPORTED: libcxx-used
--- /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_15~++20220407011631+46f0e2ceb487/llvm/test/BugPoint/metadata.ll
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/test/BugPoint/metadata.ll
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/test/BugPoint/metadata.ll
+@@ -18,6 +18,8 @@
+ ; NOTYPE: !DICompileUnit
+ ; NOTYPE-NOT: !DIBasicType
+
++; XFAIL: *
++
+ %rust_task = type {}
+ define void @test(i32* %a, i8* %b) !dbg !9 {
+ %s = mul i8 22, 9, !attach !0, !dbg !10
--- /dev/null
+Index: llvm-toolchain-snapshot_11~++20200326111000+4673699a470/llvm/test/ThinLTO/X86/autoupgrade.ll
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/llvm/test/ThinLTO/X86/autoupgrade.ll
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/llvm/test/ThinLTO/X86/autoupgrade.ll
+@@ -3,6 +3,8 @@
+ ; RUN: opt -module-summary %s -o %t.bc
+ ; RUN: llvm-lto -thinlto-action=thinlink -o %t3.bc %t.bc %p/Inputs/autoupgrade.bc
+
++; XFAIL: *
++
+ ; We can't use llvm-dis here, because it would do the autoupgrade itself.
+
+ ; RUN: llvm-link -summary-index=%t3.bc \
--- /dev/null
+Index: llvm-toolchain-snapshot_11~++20200326111000+4673699a470/llvm/test/Object/macho-invalid.test
+===================================================================
+--- llvm-toolchain-snapshot_11~++20200326111000+4673699a470.orig/llvm/test/Object/macho-invalid.test
++++ llvm-toolchain-snapshot_11~++20200326111000+4673699a470/llvm/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
+--- llvm-toolchain-12-12.0.1~+rc1.orig/clang/lib/Basic/Targets/Sparc.cpp
++++ llvm-toolchain-12-12.0.1~+rc1/clang/lib/Basic/Targets/Sparc.cpp
+@@ -156,8 +156,6 @@ void SparcV8TargetInfo::getTargetDefines
+ Builder.defineMacro("__sparcv8__");
+ break;
+ case CG_V9:
+- Builder.defineMacro("__sparcv9");
+- Builder.defineMacro("__sparcv9__");
+ Builder.defineMacro("__sparc_v9__");
+ break;
+ }
+@@ -239,13 +237,25 @@ void SparcV8TargetInfo::getTargetDefines
+ void SparcV9TargetInfo::getTargetDefines(const LangOptions &Opts,
+ MacroBuilder &Builder) const {
+ SparcTargetInfo::getTargetDefines(Opts, Builder);
+- Builder.defineMacro("__sparcv9");
+ Builder.defineMacro("__arch64__");
+- // Solaris doesn't need these variants, but the BSDs do.
+- if (getTriple().getOS() != llvm::Triple::Solaris) {
++ switch (getTriple().getOS()) {
++ case llvm::Triple::Linux:
++ Builder.defineMacro("__sparc_v9__");
++ break;
++ case llvm::Triple::FreeBSD:
++ case llvm::Triple::NetBSD:
+ Builder.defineMacro("__sparc64__");
+ Builder.defineMacro("__sparc_v9__");
++ Builder.defineMacro("__sparcv9");
++ break;
++ case llvm::Triple::OpenBSD:
++ Builder.defineMacro("__sparc64__");
+ Builder.defineMacro("__sparcv9__");
++ Builder.defineMacro("__sparc_v9__");
++ break;
++ case llvm::Triple::Solaris:
++ Builder.defineMacro("__sparcv9");
++ break;
+ }
+
+ Builder.defineMacro("__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1");
+--- llvm-toolchain-12-12.0.1~+rc1.orig/clang/test/Preprocessor/predefined-arch-macros.c
++++ llvm-toolchain-12-12.0.1~+rc1/clang/test/Preprocessor/predefined-arch-macros.c
+@@ -3418,11 +3418,8 @@
+ // CHECK_SPARC: #define __BIG_ENDIAN__ 1
+ // CHECK_SPARC: #define __sparc 1
+ // CHECK_SPARC: #define __sparc__ 1
+-// CHECK_SPARC-NOT: #define __sparcv9 1
+-// CHECK_SPARC-NOT: #define __sparcv9__ 1
+ // CHECK_SPARC: #define __sparcv8 1
+-// CHECK_SPARC-NOT: #define __sparcv9 1
+-// CHECK_SPARC-NOT: #define __sparcv9__ 1
++// CHECK_SPARC-NOT: #define __sparc_v9__ 1
+
+ // RUN: %clang -mcpu=v9 -E -dM %s -o - 2>&1 \
+ // RUN: -target sparc-unknown-linux \
+@@ -3430,8 +3427,6 @@
+ // CHECK_SPARC-V9-NOT: #define __sparcv8 1
+ // CHECK_SPARC-V9-NOT: #define __sparcv8__ 1
+ // CHECK_SPARC-V9: #define __sparc_v9__ 1
+-// CHECK_SPARC-V9: #define __sparcv9 1
+-// CHECK_SPARC-V9: #define __sparcv9__ 1
+
+ // RUN: %clang -E -dM %s -o - 2>&1 \
+ // RUN: -target sparc-sun-solaris \
+@@ -3518,12 +3513,10 @@
+ // RUN: -target sparcv9-unknown-linux \
+ // RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCV9
+ // CHECK_SPARCV9: #define __BIG_ENDIAN__ 1
++// CHECK_SPARCV9: #define __arch64__ 1
+ // CHECK_SPARCV9: #define __sparc 1
+-// CHECK_SPARCV9: #define __sparc64__ 1
+ // CHECK_SPARCV9: #define __sparc__ 1
+ // CHECK_SPARCV9: #define __sparc_v9__ 1
+-// CHECK_SPARCV9: #define __sparcv9 1
+-// CHECK_SPARCV9: #define __sparcv9__ 1
+
+ // RUN: %clang -E -dM %s -o - 2>&1 \
+ // RUN: -target sparcv9-unknown-linux \
+--- /dev/null
++++ llvm-toolchain-12-12.0.1~+rc1/clang/test/Preprocessor/predefined-arch-macros.c.orig
+@@ -0,0 +1,3681 @@
++// REQUIRES: amdgpu-registered-target
++// Begin X86/GCC/Linux tests ----------------
++
++// RUN: %clang -march=i386 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I386_M32
++// CHECK_I386_M32: #define __LAHF_SAHF__ 1
++// CHECK_I386_M32: #define __i386 1
++// CHECK_I386_M32: #define __i386__ 1
++// CHECK_I386_M32: #define __tune_i386__ 1
++// CHECK_I386_M32: #define i386 1
++// RUN: not %clang -march=i386 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I386_M64
++// CHECK_I386_M64: error: {{.*}}
++
++// RUN: %clang -march=i486 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I486_M32
++// CHECK_I486_M32: #define __i386 1
++// CHECK_I486_M32: #define __i386__ 1
++// CHECK_I486_M32: #define __i486 1
++// CHECK_I486_M32: #define __i486__ 1
++// CHECK_I486_M32: #define __tune_i486__ 1
++// CHECK_I486_M32: #define i386 1
++// RUN: not %clang -march=i486 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I486_M64
++// CHECK_I486_M64: error: {{.*}}
++
++// RUN: %clang -march=i586 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I586_M32
++// CHECK_I586_M32: #define __i386 1
++// CHECK_I586_M32: #define __i386__ 1
++// CHECK_I586_M32: #define __i586 1
++// CHECK_I586_M32: #define __i586__ 1
++// CHECK_I586_M32: #define __pentium 1
++// CHECK_I586_M32: #define __pentium__ 1
++// CHECK_I586_M32: #define __tune_i586__ 1
++// CHECK_I586_M32: #define __tune_pentium__ 1
++// CHECK_I586_M32: #define i386 1
++// RUN: not %clang -march=i586 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I586_M64
++// CHECK_I586_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M32
++// CHECK_PENTIUM_M32: #define __i386 1
++// CHECK_PENTIUM_M32: #define __i386__ 1
++// CHECK_PENTIUM_M32: #define __i586 1
++// CHECK_PENTIUM_M32: #define __i586__ 1
++// CHECK_PENTIUM_M32: #define __pentium 1
++// CHECK_PENTIUM_M32: #define __pentium__ 1
++// CHECK_PENTIUM_M32: #define __tune_i586__ 1
++// CHECK_PENTIUM_M32: #define __tune_pentium__ 1
++// CHECK_PENTIUM_M32: #define i386 1
++// RUN: not %clang -march=pentium -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M64
++// CHECK_PENTIUM_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium-mmx -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_MMX_M32
++// CHECK_PENTIUM_MMX_M32: #define __MMX__ 1
++// CHECK_PENTIUM_MMX_M32: #define __i386 1
++// CHECK_PENTIUM_MMX_M32: #define __i386__ 1
++// CHECK_PENTIUM_MMX_M32: #define __i586 1
++// CHECK_PENTIUM_MMX_M32: #define __i586__ 1
++// CHECK_PENTIUM_MMX_M32: #define __pentium 1
++// CHECK_PENTIUM_MMX_M32: #define __pentium__ 1
++// CHECK_PENTIUM_MMX_M32: #define __pentium_mmx__ 1
++// CHECK_PENTIUM_MMX_M32: #define __tune_i586__ 1
++// CHECK_PENTIUM_MMX_M32: #define __tune_pentium__ 1
++// CHECK_PENTIUM_MMX_M32: #define __tune_pentium_mmx__ 1
++// CHECK_PENTIUM_MMX_M32: #define i386 1
++// RUN: not %clang -march=pentium-mmx -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_MMX_M64
++// CHECK_PENTIUM_MMX_M64: error: {{.*}}
++
++// RUN: %clang -march=winchip-c6 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP_C6_M32
++// CHECK_WINCHIP_C6_M32: #define __MMX__ 1
++// CHECK_WINCHIP_C6_M32: #define __i386 1
++// CHECK_WINCHIP_C6_M32: #define __i386__ 1
++// CHECK_WINCHIP_C6_M32: #define __i486 1
++// CHECK_WINCHIP_C6_M32: #define __i486__ 1
++// CHECK_WINCHIP_C6_M32: #define __tune_i486__ 1
++// CHECK_WINCHIP_C6_M32: #define i386 1
++// RUN: not %clang -march=winchip-c6 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP_C6_M64
++// CHECK_WINCHIP_C6_M64: error: {{.*}}
++
++// RUN: %clang -march=winchip2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP2_M32
++// CHECK_WINCHIP2_M32: #define __3dNOW__ 1
++// CHECK_WINCHIP2_M32: #define __MMX__ 1
++// CHECK_WINCHIP2_M32: #define __i386 1
++// CHECK_WINCHIP2_M32: #define __i386__ 1
++// CHECK_WINCHIP2_M32: #define __i486 1
++// CHECK_WINCHIP2_M32: #define __i486__ 1
++// CHECK_WINCHIP2_M32: #define __tune_i486__ 1
++// CHECK_WINCHIP2_M32: #define i386 1
++// RUN: not %clang -march=winchip2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_WINCHIP2_M64
++// CHECK_WINCHIP2_M64: error: {{.*}}
++
++// RUN: %clang -march=c3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_M32
++// CHECK_C3_M32: #define __3dNOW__ 1
++// CHECK_C3_M32: #define __MMX__ 1
++// CHECK_C3_M32: #define __i386 1
++// CHECK_C3_M32: #define __i386__ 1
++// CHECK_C3_M32: #define __i486 1
++// CHECK_C3_M32: #define __i486__ 1
++// CHECK_C3_M32: #define __tune_i486__ 1
++// CHECK_C3_M32: #define i386 1
++// RUN: not %clang -march=c3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_M64
++// CHECK_C3_M64: error: {{.*}}
++
++// RUN: %clang -march=c3-2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_2_M32
++// CHECK_C3_2_M32: #define __MMX__ 1
++// CHECK_C3_2_M32: #define __SSE__ 1
++// CHECK_C3_2_M32: #define __i386 1
++// CHECK_C3_2_M32: #define __i386__ 1
++// CHECK_C3_2_M32: #define __i686 1
++// CHECK_C3_2_M32: #define __i686__ 1
++// CHECK_C3_2_M32: #define __pentiumpro 1
++// CHECK_C3_2_M32: #define __pentiumpro__ 1
++// CHECK_C3_2_M32: #define __tune_i686__ 1
++// CHECK_C3_2_M32: #define __tune_pentium2__ 1
++// CHECK_C3_2_M32: #define __tune_pentiumpro__ 1
++// CHECK_C3_2_M32: #define i386 1
++// RUN: not %clang -march=c3-2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_C3_2_M64
++// CHECK_C3_2_M64: error: {{.*}}
++
++// RUN: %clang -march=i686 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I686_M32
++// CHECK_I686_M32: #define __i386 1
++// CHECK_I686_M32: #define __i386__ 1
++// CHECK_I686_M32: #define __i686 1
++// CHECK_I686_M32: #define __i686__ 1
++// CHECK_I686_M32: #define __pentiumpro 1
++// CHECK_I686_M32: #define __pentiumpro__ 1
++// CHECK_I686_M32: #define __tune_i686__ 1
++// CHECK_I686_M32: #define __tune_pentiumpro__ 1
++// CHECK_I686_M32: #define i386 1
++// RUN: not %clang -march=i686 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_I686_M64
++// CHECK_I686_M64: error: {{.*}}
++
++// RUN: %clang -march=pentiumpro -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUMPRO_M32
++// CHECK_PENTIUMPRO_M32: #define __i386 1
++// CHECK_PENTIUMPRO_M32: #define __i386__ 1
++// CHECK_PENTIUMPRO_M32: #define __i686 1
++// CHECK_PENTIUMPRO_M32: #define __i686__ 1
++// CHECK_PENTIUMPRO_M32: #define __pentiumpro 1
++// CHECK_PENTIUMPRO_M32: #define __pentiumpro__ 1
++// CHECK_PENTIUMPRO_M32: #define __tune_i686__ 1
++// CHECK_PENTIUMPRO_M32: #define __tune_pentiumpro__ 1
++// CHECK_PENTIUMPRO_M32: #define i386 1
++// RUN: not %clang -march=pentiumpro -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUMPRO_M64
++// CHECK_PENTIUMPRO_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM2_M32
++// CHECK_PENTIUM2_M32: #define __FXSR__ 1
++// CHECK_PENTIUM2_M32: #define __MMX__ 1
++// CHECK_PENTIUM2_M32: #define __i386 1
++// CHECK_PENTIUM2_M32: #define __i386__ 1
++// CHECK_PENTIUM2_M32: #define __i686 1
++// CHECK_PENTIUM2_M32: #define __i686__ 1
++// CHECK_PENTIUM2_M32: #define __pentiumpro 1
++// CHECK_PENTIUM2_M32: #define __pentiumpro__ 1
++// CHECK_PENTIUM2_M32: #define __tune_i686__ 1
++// CHECK_PENTIUM2_M32: #define __tune_pentium2__ 1
++// CHECK_PENTIUM2_M32: #define __tune_pentiumpro__ 1
++// CHECK_PENTIUM2_M32: #define i386 1
++// RUN: not %clang -march=pentium2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM2_M64
++// CHECK_PENTIUM2_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3_M32
++// CHECK_PENTIUM3_M32: #define __MMX__ 1
++// CHECK_PENTIUM3_M32: #define __SSE__ 1
++// CHECK_PENTIUM3_M32: #define __i386 1
++// CHECK_PENTIUM3_M32: #define __i386__ 1
++// CHECK_PENTIUM3_M32: #define __i686 1
++// CHECK_PENTIUM3_M32: #define __i686__ 1
++// CHECK_PENTIUM3_M32: #define __pentiumpro 1
++// CHECK_PENTIUM3_M32: #define __pentiumpro__ 1
++// CHECK_PENTIUM3_M32: #define __tune_i686__ 1
++// CHECK_PENTIUM3_M32: #define __tune_pentium2__ 1
++// CHECK_PENTIUM3_M32: #define __tune_pentium3__ 1
++// CHECK_PENTIUM3_M32: #define __tune_pentiumpro__ 1
++// CHECK_PENTIUM3_M32: #define i386 1
++// RUN: not %clang -march=pentium3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3_M64
++// CHECK_PENTIUM3_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium3m -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3M_M32
++// CHECK_PENTIUM3M_M32: #define __MMX__ 1
++// CHECK_PENTIUM3M_M32: #define __SSE__ 1
++// CHECK_PENTIUM3M_M32: #define __i386 1
++// CHECK_PENTIUM3M_M32: #define __i386__ 1
++// CHECK_PENTIUM3M_M32: #define __i686 1
++// CHECK_PENTIUM3M_M32: #define __i686__ 1
++// CHECK_PENTIUM3M_M32: #define __pentiumpro 1
++// CHECK_PENTIUM3M_M32: #define __pentiumpro__ 1
++// CHECK_PENTIUM3M_M32: #define __tune_i686__ 1
++// CHECK_PENTIUM3M_M32: #define __tune_pentiumpro__ 1
++// CHECK_PENTIUM3M_M32: #define i386 1
++// RUN: not %clang -march=pentium3m -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM3M_M64
++// CHECK_PENTIUM3M_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium-m -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M_M32
++// CHECK_PENTIUM_M_M32: #define __MMX__ 1
++// CHECK_PENTIUM_M_M32: #define __SSE2__ 1
++// CHECK_PENTIUM_M_M32: #define __SSE__ 1
++// CHECK_PENTIUM_M_M32: #define __i386 1
++// CHECK_PENTIUM_M_M32: #define __i386__ 1
++// CHECK_PENTIUM_M_M32: #define __i686 1
++// CHECK_PENTIUM_M_M32: #define __i686__ 1
++// CHECK_PENTIUM_M_M32: #define __pentiumpro 1
++// CHECK_PENTIUM_M_M32: #define __pentiumpro__ 1
++// CHECK_PENTIUM_M_M32: #define __tune_i686__ 1
++// CHECK_PENTIUM_M_M32: #define __tune_pentiumpro__ 1
++// CHECK_PENTIUM_M_M32: #define i386 1
++// RUN: not %clang -march=pentium-m -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM_M_M64
++// CHECK_PENTIUM_M_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium4 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4_M32
++// CHECK_PENTIUM4_M32: #define __MMX__ 1
++// CHECK_PENTIUM4_M32: #define __SSE2__ 1
++// CHECK_PENTIUM4_M32: #define __SSE__ 1
++// CHECK_PENTIUM4_M32: #define __i386 1
++// CHECK_PENTIUM4_M32: #define __i386__ 1
++// CHECK_PENTIUM4_M32: #define __pentium4 1
++// CHECK_PENTIUM4_M32: #define __pentium4__ 1
++// CHECK_PENTIUM4_M32: #define __tune_pentium4__ 1
++// CHECK_PENTIUM4_M32: #define i386 1
++// RUN: not %clang -march=pentium4 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4_M64
++// CHECK_PENTIUM4_M64: error: {{.*}}
++
++// RUN: %clang -march=pentium4m -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4M_M32
++// CHECK_PENTIUM4M_M32: #define __MMX__ 1
++// CHECK_PENTIUM4M_M32: #define __SSE2__ 1
++// CHECK_PENTIUM4M_M32: #define __SSE__ 1
++// CHECK_PENTIUM4M_M32: #define __i386 1
++// CHECK_PENTIUM4M_M32: #define __i386__ 1
++// CHECK_PENTIUM4M_M32: #define __pentium4 1
++// CHECK_PENTIUM4M_M32: #define __pentium4__ 1
++// CHECK_PENTIUM4M_M32: #define __tune_pentium4__ 1
++// CHECK_PENTIUM4M_M32: #define i386 1
++// RUN: not %clang -march=pentium4m -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PENTIUM4M_M64
++// CHECK_PENTIUM4M_M64: error: {{.*}}
++
++// RUN: %clang -march=yonah -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_YONAH_M32
++// CHECK_YONAH_M32: #define __MMX__ 1
++// CHECK_YONAH_M32: #define __SSE2__ 1
++// CHECK_YONAH_M32: #define __SSE3__ 1
++// CHECK_YONAH_M32: #define __SSE__ 1
++// CHECK_YONAH_M32: #define __i386 1
++// CHECK_YONAH_M32: #define __i386__ 1
++// CHECK_YONAH_M32: #define __nocona 1
++// CHECK_YONAH_M32: #define __nocona__ 1
++// CHECK_YONAH_M32: #define __tune_nocona__ 1
++// CHECK_YONAH_M32: #define i386 1
++// RUN: not %clang -march=yonah -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_YONAH_M64
++// CHECK_YONAH_M64: error: {{.*}}
++
++// RUN: %clang -march=prescott -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PRESCOTT_M32
++// CHECK_PRESCOTT_M32: #define __MMX__ 1
++// CHECK_PRESCOTT_M32: #define __SSE2__ 1
++// CHECK_PRESCOTT_M32: #define __SSE3__ 1
++// CHECK_PRESCOTT_M32: #define __SSE__ 1
++// CHECK_PRESCOTT_M32: #define __i386 1
++// CHECK_PRESCOTT_M32: #define __i386__ 1
++// CHECK_PRESCOTT_M32: #define __nocona 1
++// CHECK_PRESCOTT_M32: #define __nocona__ 1
++// CHECK_PRESCOTT_M32: #define __tune_nocona__ 1
++// CHECK_PRESCOTT_M32: #define i386 1
++// RUN: not %clang -march=prescott -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PRESCOTT_M64
++// CHECK_PRESCOTT_M64: error: {{.*}}
++
++// RUN: %clang -march=nocona -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_NOCONA_M32
++// CHECK_NOCONA_M32: #define __MMX__ 1
++// CHECK_NOCONA_M32: #define __SSE2__ 1
++// CHECK_NOCONA_M32: #define __SSE3__ 1
++// CHECK_NOCONA_M32: #define __SSE__ 1
++// CHECK_NOCONA_M32: #define __i386 1
++// CHECK_NOCONA_M32: #define __i386__ 1
++// CHECK_NOCONA_M32: #define __nocona 1
++// CHECK_NOCONA_M32: #define __nocona__ 1
++// CHECK_NOCONA_M32: #define __tune_nocona__ 1
++// CHECK_NOCONA_M32: #define i386 1
++// RUN: %clang -march=nocona -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_NOCONA_M64
++// CHECK_NOCONA_M64: #define __MMX__ 1
++// CHECK_NOCONA_M64: #define __SSE2_MATH__ 1
++// CHECK_NOCONA_M64: #define __SSE2__ 1
++// CHECK_NOCONA_M64: #define __SSE3__ 1
++// CHECK_NOCONA_M64: #define __SSE_MATH__ 1
++// CHECK_NOCONA_M64: #define __SSE__ 1
++// CHECK_NOCONA_M64: #define __amd64 1
++// CHECK_NOCONA_M64: #define __amd64__ 1
++// CHECK_NOCONA_M64: #define __nocona 1
++// CHECK_NOCONA_M64: #define __nocona__ 1
++// CHECK_NOCONA_M64: #define __tune_nocona__ 1
++// CHECK_NOCONA_M64: #define __x86_64 1
++// CHECK_NOCONA_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=core2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE2_M32
++// CHECK_CORE2_M32: #define __MMX__ 1
++// CHECK_CORE2_M32: #define __SSE2__ 1
++// CHECK_CORE2_M32: #define __SSE3__ 1
++// CHECK_CORE2_M32: #define __SSE__ 1
++// CHECK_CORE2_M32: #define __SSSE3__ 1
++// CHECK_CORE2_M32: #define __core2 1
++// CHECK_CORE2_M32: #define __core2__ 1
++// CHECK_CORE2_M32: #define __i386 1
++// CHECK_CORE2_M32: #define __i386__ 1
++// CHECK_CORE2_M32: #define __tune_core2__ 1
++// CHECK_CORE2_M32: #define i386 1
++
++// RUN: %clang -march=core2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE2_M64
++// CHECK_CORE2_M64: #define __MMX__ 1
++// CHECK_CORE2_M64: #define __SSE2_MATH__ 1
++// CHECK_CORE2_M64: #define __SSE2__ 1
++// CHECK_CORE2_M64: #define __SSE3__ 1
++// CHECK_CORE2_M64: #define __SSE_MATH__ 1
++// CHECK_CORE2_M64: #define __SSE__ 1
++// CHECK_CORE2_M64: #define __SSSE3__ 1
++// CHECK_CORE2_M64: #define __amd64 1
++// CHECK_CORE2_M64: #define __amd64__ 1
++// CHECK_CORE2_M64: #define __core2 1
++// CHECK_CORE2_M64: #define __core2__ 1
++// CHECK_CORE2_M64: #define __tune_core2__ 1
++// CHECK_CORE2_M64: #define __x86_64 1
++// CHECK_CORE2_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=corei7 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M32
++// CHECK_COREI7_M32: #define __MMX__ 1
++// CHECK_COREI7_M32: #define __POPCNT__ 1
++// CHECK_COREI7_M32: #define __SSE2__ 1
++// CHECK_COREI7_M32: #define __SSE3__ 1
++// CHECK_COREI7_M32: #define __SSE4_1__ 1
++// CHECK_COREI7_M32: #define __SSE4_2__ 1
++// CHECK_COREI7_M32: #define __SSE__ 1
++// CHECK_COREI7_M32: #define __SSSE3__ 1
++// CHECK_COREI7_M32: #define __corei7 1
++// CHECK_COREI7_M32: #define __corei7__ 1
++// CHECK_COREI7_M32: #define __i386 1
++// CHECK_COREI7_M32: #define __i386__ 1
++// CHECK_COREI7_M32: #define __tune_corei7__ 1
++// CHECK_COREI7_M32: #define i386 1
++
++// RUN: %clang -march=corei7 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_M64
++// CHECK_COREI7_M64: #define __MMX__ 1
++// CHECK_COREI7_M64: #define __POPCNT__ 1
++// CHECK_COREI7_M64: #define __SSE2_MATH__ 1
++// CHECK_COREI7_M64: #define __SSE2__ 1
++// CHECK_COREI7_M64: #define __SSE3__ 1
++// CHECK_COREI7_M64: #define __SSE4_1__ 1
++// CHECK_COREI7_M64: #define __SSE4_2__ 1
++// CHECK_COREI7_M64: #define __SSE_MATH__ 1
++// CHECK_COREI7_M64: #define __SSE__ 1
++// CHECK_COREI7_M64: #define __SSSE3__ 1
++// CHECK_COREI7_M64: #define __amd64 1
++// CHECK_COREI7_M64: #define __amd64__ 1
++// CHECK_COREI7_M64: #define __corei7 1
++// CHECK_COREI7_M64: #define __corei7__ 1
++// CHECK_COREI7_M64: #define __tune_corei7__ 1
++// CHECK_COREI7_M64: #define __x86_64 1
++// CHECK_COREI7_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=corei7-avx -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M32
++// CHECK_COREI7_AVX_M32: #define __AVX__ 1
++// CHECK_COREI7_AVX_M32: #define __MMX__ 1
++// CHECK_COREI7_AVX_M32: #define __PCLMUL__ 1
++// CHECK_COREI7_AVX_M32-NOT: __RDRND__
++// CHECK_COREI7_AVX_M32: #define __POPCNT__ 1
++// CHECK_COREI7_AVX_M32: #define __SSE2__ 1
++// CHECK_COREI7_AVX_M32: #define __SSE3__ 1
++// CHECK_COREI7_AVX_M32: #define __SSE4_1__ 1
++// CHECK_COREI7_AVX_M32: #define __SSE4_2__ 1
++// CHECK_COREI7_AVX_M32: #define __SSE__ 1
++// CHECK_COREI7_AVX_M32: #define __SSSE3__ 1
++// CHECK_COREI7_AVX_M32: #define __XSAVEOPT__ 1
++// CHECK_COREI7_AVX_M32: #define __XSAVE__ 1
++// CHECK_COREI7_AVX_M32: #define __corei7 1
++// CHECK_COREI7_AVX_M32: #define __corei7__ 1
++// CHECK_COREI7_AVX_M32: #define __i386 1
++// CHECK_COREI7_AVX_M32: #define __i386__ 1
++// CHECK_COREI7_AVX_M32: #define __tune_corei7__ 1
++// CHECK_COREI7_AVX_M32: #define i386 1
++
++// RUN: %clang -march=corei7-avx -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_COREI7_AVX_M64
++// CHECK_COREI7_AVX_M64: #define __AVX__ 1
++// CHECK_COREI7_AVX_M64: #define __MMX__ 1
++// CHECK_COREI7_AVX_M64: #define __PCLMUL__ 1
++// CHECK_COREI7_AVX_M64-NOT: __RDRND__
++// CHECK_COREI7_AVX_M64: #define __POPCNT__ 1
++// CHECK_COREI7_AVX_M64: #define __SSE2_MATH__ 1
++// CHECK_COREI7_AVX_M64: #define __SSE2__ 1
++// CHECK_COREI7_AVX_M64: #define __SSE3__ 1
++// CHECK_COREI7_AVX_M64: #define __SSE4_1__ 1
++// CHECK_COREI7_AVX_M64: #define __SSE4_2__ 1
++// CHECK_COREI7_AVX_M64: #define __SSE_MATH__ 1
++// CHECK_COREI7_AVX_M64: #define __SSE__ 1
++// CHECK_COREI7_AVX_M64: #define __SSSE3__ 1
++// CHECK_COREI7_AVX_M64: #define __XSAVEOPT__ 1
++// CHECK_COREI7_AVX_M64: #define __XSAVE__ 1
++// CHECK_COREI7_AVX_M64: #define __amd64 1
++// CHECK_COREI7_AVX_M64: #define __amd64__ 1
++// CHECK_COREI7_AVX_M64: #define __corei7 1
++// CHECK_COREI7_AVX_M64: #define __corei7__ 1
++// CHECK_COREI7_AVX_M64: #define __tune_corei7__ 1
++// CHECK_COREI7_AVX_M64: #define __x86_64 1
++// CHECK_COREI7_AVX_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=core-avx-i -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M32
++// CHECK_CORE_AVX_I_M32: #define __AVX__ 1
++// CHECK_CORE_AVX_I_M32: #define __F16C__ 1
++// CHECK_CORE_AVX_I_M32: #define __MMX__ 1
++// CHECK_CORE_AVX_I_M32: #define __PCLMUL__ 1
++// CHECK_CORE_AVX_I_M32: #define __RDRND__ 1
++// CHECK_CORE_AVX_I_M32: #define __SSE2__ 1
++// CHECK_CORE_AVX_I_M32: #define __SSE3__ 1
++// CHECK_CORE_AVX_I_M32: #define __SSE4_1__ 1
++// CHECK_CORE_AVX_I_M32: #define __SSE4_2__ 1
++// CHECK_CORE_AVX_I_M32: #define __SSE__ 1
++// CHECK_CORE_AVX_I_M32: #define __SSSE3__ 1
++// CHECK_CORE_AVX_I_M32: #define __XSAVEOPT__ 1
++// CHECK_CORE_AVX_I_M32: #define __XSAVE__ 1
++// CHECK_CORE_AVX_I_M32: #define __corei7 1
++// CHECK_CORE_AVX_I_M32: #define __corei7__ 1
++// CHECK_CORE_AVX_I_M32: #define __i386 1
++// CHECK_CORE_AVX_I_M32: #define __i386__ 1
++// CHECK_CORE_AVX_I_M32: #define __tune_corei7__ 1
++// CHECK_CORE_AVX_I_M32: #define i386 1
++
++// RUN: %clang -march=core-avx-i -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX_I_M64
++// CHECK_CORE_AVX_I_M64: #define __AVX__ 1
++// CHECK_CORE_AVX_I_M64: #define __F16C__ 1
++// CHECK_CORE_AVX_I_M64: #define __MMX__ 1
++// CHECK_CORE_AVX_I_M64: #define __PCLMUL__ 1
++// CHECK_CORE_AVX_I_M64: #define __RDRND__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSE2_MATH__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSE2__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSE3__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSE4_1__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSE4_2__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSE_MATH__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSE__ 1
++// CHECK_CORE_AVX_I_M64: #define __SSSE3__ 1
++// CHECK_CORE_AVX_I_M64: #define __XSAVEOPT__ 1
++// CHECK_CORE_AVX_I_M64: #define __XSAVE__ 1
++// CHECK_CORE_AVX_I_M64: #define __amd64 1
++// CHECK_CORE_AVX_I_M64: #define __amd64__ 1
++// CHECK_CORE_AVX_I_M64: #define __corei7 1
++// CHECK_CORE_AVX_I_M64: #define __corei7__ 1
++// CHECK_CORE_AVX_I_M64: #define __tune_corei7__ 1
++// CHECK_CORE_AVX_I_M64: #define __x86_64 1
++// CHECK_CORE_AVX_I_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=core-avx2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M32
++// CHECK_CORE_AVX2_M32: #define __AVX2__ 1
++// CHECK_CORE_AVX2_M32: #define __AVX__ 1
++// CHECK_CORE_AVX2_M32: #define __BMI2__ 1
++// CHECK_CORE_AVX2_M32: #define __BMI__ 1
++// CHECK_CORE_AVX2_M32: #define __F16C__ 1
++// CHECK_CORE_AVX2_M32: #define __FMA__ 1
++// CHECK_CORE_AVX2_M32: #define __INVPCID__ 1
++// CHECK_CORE_AVX2_M32: #define __LAHF_SAHF__ 1
++// CHECK_CORE_AVX2_M32: #define __LZCNT__ 1
++// CHECK_CORE_AVX2_M32: #define __MMX__ 1
++// CHECK_CORE_AVX2_M32: #define __MOVBE__ 1
++// CHECK_CORE_AVX2_M32: #define __PCLMUL__ 1
++// CHECK_CORE_AVX2_M32: #define __POPCNT__ 1
++// CHECK_CORE_AVX2_M32: #define __RDRND__ 1
++// CHECK_CORE_AVX2_M32: #define __SSE2__ 1
++// CHECK_CORE_AVX2_M32: #define __SSE3__ 1
++// CHECK_CORE_AVX2_M32: #define __SSE4_1__ 1
++// CHECK_CORE_AVX2_M32: #define __SSE4_2__ 1
++// CHECK_CORE_AVX2_M32: #define __SSE__ 1
++// CHECK_CORE_AVX2_M32: #define __SSSE3__ 1
++// CHECK_CORE_AVX2_M32: #define __XSAVEOPT__ 1
++// CHECK_CORE_AVX2_M32: #define __XSAVE__ 1
++// CHECK_CORE_AVX2_M32: #define __corei7 1
++// CHECK_CORE_AVX2_M32: #define __corei7__ 1
++// CHECK_CORE_AVX2_M32: #define __i386 1
++// CHECK_CORE_AVX2_M32: #define __i386__ 1
++// CHECK_CORE_AVX2_M32: #define __tune_corei7__ 1
++// CHECK_CORE_AVX2_M32: #define i386 1
++
++// RUN: %clang -march=core-avx2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CORE_AVX2_M64
++// CHECK_CORE_AVX2_M64: #define __AVX2__ 1
++// CHECK_CORE_AVX2_M64: #define __AVX__ 1
++// CHECK_CORE_AVX2_M64: #define __BMI2__ 1
++// CHECK_CORE_AVX2_M64: #define __BMI__ 1
++// CHECK_CORE_AVX2_M64: #define __F16C__ 1
++// CHECK_CORE_AVX2_M64: #define __FMA__ 1
++// CHECK_CORE_AVX2_M64: #define __INVPCID__ 1
++// CHECK_CORE_AVX2_M64: #define __LAHF_SAHF__ 1
++// CHECK_CORE_AVX2_M64: #define __LZCNT__ 1
++// CHECK_CORE_AVX2_M64: #define __MMX__ 1
++// CHECK_CORE_AVX2_M64: #define __MOVBE__ 1
++// CHECK_CORE_AVX2_M64: #define __PCLMUL__ 1
++// CHECK_CORE_AVX2_M64: #define __POPCNT__ 1
++// CHECK_CORE_AVX2_M64: #define __RDRND__ 1
++// CHECK_CORE_AVX2_M64: #define __SSE2_MATH__ 1
++// CHECK_CORE_AVX2_M64: #define __SSE2__ 1
++// CHECK_CORE_AVX2_M64: #define __SSE3__ 1
++// CHECK_CORE_AVX2_M64: #define __SSE4_1__ 1
++// CHECK_CORE_AVX2_M64: #define __SSE4_2__ 1
++// CHECK_CORE_AVX2_M64: #define __SSE_MATH__ 1
++// CHECK_CORE_AVX2_M64: #define __SSE__ 1
++// CHECK_CORE_AVX2_M64: #define __SSSE3__ 1
++// CHECK_CORE_AVX2_M64: #define __XSAVEOPT__ 1
++// CHECK_CORE_AVX2_M64: #define __XSAVE__ 1
++// CHECK_CORE_AVX2_M64: #define __amd64 1
++// CHECK_CORE_AVX2_M64: #define __amd64__ 1
++// CHECK_CORE_AVX2_M64: #define __corei7 1
++// CHECK_CORE_AVX2_M64: #define __corei7__ 1
++// CHECK_CORE_AVX2_M64: #define __tune_corei7__ 1
++// CHECK_CORE_AVX2_M64: #define __x86_64 1
++// CHECK_CORE_AVX2_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=broadwell -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BROADWELL_M32
++// CHECK_BROADWELL_M32: #define __ADX__ 1
++// CHECK_BROADWELL_M32: #define __AVX2__ 1
++// CHECK_BROADWELL_M32: #define __AVX__ 1
++// CHECK_BROADWELL_M32: #define __BMI2__ 1
++// CHECK_BROADWELL_M32: #define __BMI__ 1
++// CHECK_BROADWELL_M32: #define __F16C__ 1
++// CHECK_BROADWELL_M32: #define __FMA__ 1
++// CHECK_BROADWELL_M32: #define __INVPCID__ 1
++// CHECK_BROADWELL_M32: #define __LAHF_SAHF__ 1
++// CHECK_BROADWELL_M32: #define __LZCNT__ 1
++// CHECK_BROADWELL_M32: #define __MMX__ 1
++// CHECK_BROADWELL_M32: #define __MOVBE__ 1
++// CHECK_BROADWELL_M32: #define __PCLMUL__ 1
++// CHECK_BROADWELL_M32: #define __POPCNT__ 1
++// CHECK_BROADWELL_M32: #define __PRFCHW__ 1
++// CHECK_BROADWELL_M32: #define __RDRND__ 1
++// CHECK_BROADWELL_M32: #define __RDSEED__ 1
++// CHECK_BROADWELL_M32: #define __SSE2__ 1
++// CHECK_BROADWELL_M32: #define __SSE3__ 1
++// CHECK_BROADWELL_M32: #define __SSE4_1__ 1
++// CHECK_BROADWELL_M32: #define __SSE4_2__ 1
++// CHECK_BROADWELL_M32: #define __SSE__ 1
++// CHECK_BROADWELL_M32: #define __SSSE3__ 1
++// CHECK_BROADWELL_M32: #define __XSAVEOPT__ 1
++// CHECK_BROADWELL_M32: #define __XSAVE__ 1
++// CHECK_BROADWELL_M32: #define __corei7 1
++// CHECK_BROADWELL_M32: #define __corei7__ 1
++// CHECK_BROADWELL_M32: #define __i386 1
++// CHECK_BROADWELL_M32: #define __i386__ 1
++// CHECK_BROADWELL_M32: #define __tune_corei7__ 1
++// CHECK_BROADWELL_M32: #define i386 1
++
++// RUN: %clang -march=broadwell -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BROADWELL_M64
++// CHECK_BROADWELL_M64: #define __ADX__ 1
++// CHECK_BROADWELL_M64: #define __AVX2__ 1
++// CHECK_BROADWELL_M64: #define __AVX__ 1
++// CHECK_BROADWELL_M64: #define __BMI2__ 1
++// CHECK_BROADWELL_M64: #define __BMI__ 1
++// CHECK_BROADWELL_M64: #define __F16C__ 1
++// CHECK_BROADWELL_M64: #define __FMA__ 1
++// CHECK_BROADWELL_M64: #define __INVPCID__ 1
++// CHECK_BROADWELL_M64: #define __LAHF_SAHF__ 1
++// CHECK_BROADWELL_M64: #define __LZCNT__ 1
++// CHECK_BROADWELL_M64: #define __MMX__ 1
++// CHECK_BROADWELL_M64: #define __MOVBE__ 1
++// CHECK_BROADWELL_M64: #define __PCLMUL__ 1
++// CHECK_BROADWELL_M64: #define __POPCNT__ 1
++// CHECK_BROADWELL_M64: #define __PRFCHW__ 1
++// CHECK_BROADWELL_M64: #define __RDRND__ 1
++// CHECK_BROADWELL_M64: #define __RDSEED__ 1
++// CHECK_BROADWELL_M64: #define __SSE2_MATH__ 1
++// CHECK_BROADWELL_M64: #define __SSE2__ 1
++// CHECK_BROADWELL_M64: #define __SSE3__ 1
++// CHECK_BROADWELL_M64: #define __SSE4_1__ 1
++// CHECK_BROADWELL_M64: #define __SSE4_2__ 1
++// CHECK_BROADWELL_M64: #define __SSE_MATH__ 1
++// CHECK_BROADWELL_M64: #define __SSE__ 1
++// CHECK_BROADWELL_M64: #define __SSSE3__ 1
++// CHECK_BROADWELL_M64: #define __XSAVEOPT__ 1
++// CHECK_BROADWELL_M64: #define __XSAVE__ 1
++// CHECK_BROADWELL_M64: #define __amd64 1
++// CHECK_BROADWELL_M64: #define __amd64__ 1
++// CHECK_BROADWELL_M64: #define __corei7 1
++// CHECK_BROADWELL_M64: #define __corei7__ 1
++// CHECK_BROADWELL_M64: #define __tune_corei7__ 1
++// CHECK_BROADWELL_M64: #define __x86_64 1
++// CHECK_BROADWELL_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=skylake -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKL_M32
++// CHECK_SKL_M32: #define __ADX__ 1
++// CHECK_SKL_M32: #define __AES__ 1
++// CHECK_SKL_M32: #define __AVX2__ 1
++// CHECK_SKL_M32: #define __AVX__ 1
++// CHECK_SKL_M32: #define __BMI2__ 1
++// CHECK_SKL_M32: #define __BMI__ 1
++// CHECK_SKL_M32: #define __CLFLUSHOPT__ 1
++// CHECK_SKL_M32: #define __F16C__ 1
++// CHECK_SKL_M32: #define __FMA__ 1
++// CHECK_SKL_M32: #define __INVPCID__ 1
++// CHECK_SKL_M32: #define __LZCNT__ 1
++// CHECK_SKL_M32: #define __MMX__ 1
++// CHECK_SKL_M32: #define __MOVBE__ 1
++// CHECK_SKL_M32: #define __PCLMUL__ 1
++// CHECK_SKL_M32: #define __POPCNT__ 1
++// CHECK_SKL_M32: #define __PRFCHW__ 1
++// CHECK_SKL_M32: #define __RDRND__ 1
++// CHECK_SKL_M32: #define __RDSEED__ 1
++// CHECK_SKL_M32: #define __SGX__ 1
++// CHECK_SKL_M32: #define __SSE2__ 1
++// CHECK_SKL_M32: #define __SSE3__ 1
++// CHECK_SKL_M32: #define __SSE4_1__ 1
++// CHECK_SKL_M32: #define __SSE4_2__ 1
++// CHECK_SKL_M32: #define __SSE__ 1
++// CHECK_SKL_M32: #define __SSSE3__ 1
++// CHECK_SKL_M32: #define __XSAVEC__ 1
++// CHECK_SKL_M32: #define __XSAVEOPT__ 1
++// CHECK_SKL_M32: #define __XSAVES__ 1
++// CHECK_SKL_M32: #define __XSAVE__ 1
++// CHECK_SKL_M32: #define i386 1
++
++// RUN: %clang -march=skylake -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKL_M64
++// CHECK_SKL_M64: #define __ADX__ 1
++// CHECK_SKL_M64: #define __AES__ 1
++// CHECK_SKL_M64: #define __AVX2__ 1
++// CHECK_SKL_M64: #define __AVX__ 1
++// CHECK_SKL_M64: #define __BMI2__ 1
++// CHECK_SKL_M64: #define __BMI__ 1
++// CHECK_SKL_M64: #define __CLFLUSHOPT__ 1
++// CHECK_SKL_M64: #define __F16C__ 1
++// CHECK_SKL_M64: #define __FMA__ 1
++// CHECK_SKL_M64: #define __INVPCID__ 1
++// CHECK_SKL_M64: #define __LZCNT__ 1
++// CHECK_SKL_M64: #define __MMX__ 1
++// CHECK_SKL_M64: #define __MOVBE__ 1
++// CHECK_SKL_M64: #define __PCLMUL__ 1
++// CHECK_SKL_M64: #define __POPCNT__ 1
++// CHECK_SKL_M64: #define __PRFCHW__ 1
++// CHECK_SKL_M64: #define __RDRND__ 1
++// CHECK_SKL_M64: #define __RDSEED__ 1
++// CHECK_SKL_M64: #define __SGX__ 1
++// CHECK_SKL_M64: #define __SSE2_MATH__ 1
++// CHECK_SKL_M64: #define __SSE2__ 1
++// CHECK_SKL_M64: #define __SSE3__ 1
++// CHECK_SKL_M64: #define __SSE4_1__ 1
++// CHECK_SKL_M64: #define __SSE4_2__ 1
++// CHECK_SKL_M64: #define __SSE_MATH__ 1
++// CHECK_SKL_M64: #define __SSE__ 1
++// CHECK_SKL_M64: #define __SSSE3__ 1
++// CHECK_SKL_M64: #define __XSAVEC__ 1
++// CHECK_SKL_M64: #define __XSAVEOPT__ 1
++// CHECK_SKL_M64: #define __XSAVES__ 1
++// CHECK_SKL_M64: #define __XSAVE__ 1
++// CHECK_SKL_M64: #define __amd64 1
++// CHECK_SKL_M64: #define __amd64__ 1
++// CHECK_SKL_M64: #define __x86_64 1
++// CHECK_SKL_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=knl -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNL_M32
++// CHECK_KNL_M32: #define __AES__ 1
++// CHECK_KNL_M32: #define __AVX2__ 1
++// CHECK_KNL_M32: #define __AVX512CD__ 1
++// CHECK_KNL_M32: #define __AVX512ER__ 1
++// CHECK_KNL_M32: #define __AVX512F__ 1
++// CHECK_KNL_M32: #define __AVX512PF__ 1
++// CHECK_KNL_M32: #define __AVX__ 1
++// CHECK_KNL_M32: #define __BMI2__ 1
++// CHECK_KNL_M32: #define __BMI__ 1
++// CHECK_KNL_M32: #define __F16C__ 1
++// CHECK_KNL_M32: #define __FMA__ 1
++// CHECK_KNL_M32: #define __LZCNT__ 1
++// CHECK_KNL_M32: #define __MMX__ 1
++// CHECK_KNL_M32: #define __MOVBE__ 1
++// CHECK_KNL_M32: #define __PCLMUL__ 1
++// CHECK_KNL_M32: #define __POPCNT__ 1
++// CHECK_KNL_M32: #define __PREFETCHWT1__ 1
++// CHECK_KNL_M32: #define __PRFCHW__ 1
++// CHECK_KNL_M32: #define __RDRND__ 1
++// CHECK_KNL_M32: #define __SSE2__ 1
++// CHECK_KNL_M32: #define __SSE3__ 1
++// CHECK_KNL_M32: #define __SSE4_1__ 1
++// CHECK_KNL_M32: #define __SSE4_2__ 1
++// CHECK_KNL_M32: #define __SSE__ 1
++// CHECK_KNL_M32: #define __SSSE3__ 1
++// CHECK_KNL_M32: #define __XSAVEOPT__ 1
++// CHECK_KNL_M32: #define __XSAVE__ 1
++// CHECK_KNL_M32: #define __i386 1
++// CHECK_KNL_M32: #define __i386__ 1
++// CHECK_KNL_M32: #define __knl 1
++// CHECK_KNL_M32: #define __knl__ 1
++// CHECK_KNL_M32: #define __tune_knl__ 1
++// CHECK_KNL_M32: #define i386 1
++
++// RUN: %clang -march=knl -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNL_M64
++// CHECK_KNL_M64: #define __AES__ 1
++// CHECK_KNL_M64: #define __AVX2__ 1
++// CHECK_KNL_M64: #define __AVX512CD__ 1
++// CHECK_KNL_M64: #define __AVX512ER__ 1
++// CHECK_KNL_M64: #define __AVX512F__ 1
++// CHECK_KNL_M64: #define __AVX512PF__ 1
++// CHECK_KNL_M64: #define __AVX__ 1
++// CHECK_KNL_M64: #define __BMI2__ 1
++// CHECK_KNL_M64: #define __BMI__ 1
++// CHECK_KNL_M64: #define __F16C__ 1
++// CHECK_KNL_M64: #define __FMA__ 1
++// CHECK_KNL_M64: #define __LZCNT__ 1
++// CHECK_KNL_M64: #define __MMX__ 1
++// CHECK_KNL_M64: #define __MOVBE__ 1
++// CHECK_KNL_M64: #define __PCLMUL__ 1
++// CHECK_KNL_M64: #define __POPCNT__ 1
++// CHECK_KNL_M64: #define __PREFETCHWT1__ 1
++// CHECK_KNL_M64: #define __PRFCHW__ 1
++// CHECK_KNL_M64: #define __RDRND__ 1
++// CHECK_KNL_M64: #define __SSE2_MATH__ 1
++// CHECK_KNL_M64: #define __SSE2__ 1
++// CHECK_KNL_M64: #define __SSE3__ 1
++// CHECK_KNL_M64: #define __SSE4_1__ 1
++// CHECK_KNL_M64: #define __SSE4_2__ 1
++// CHECK_KNL_M64: #define __SSE_MATH__ 1
++// CHECK_KNL_M64: #define __SSE__ 1
++// CHECK_KNL_M64: #define __SSSE3__ 1
++// CHECK_KNL_M64: #define __XSAVEOPT__ 1
++// CHECK_KNL_M64: #define __XSAVE__ 1
++// CHECK_KNL_M64: #define __amd64 1
++// CHECK_KNL_M64: #define __amd64__ 1
++// CHECK_KNL_M64: #define __knl 1
++// CHECK_KNL_M64: #define __knl__ 1
++// CHECK_KNL_M64: #define __tune_knl__ 1
++// CHECK_KNL_M64: #define __x86_64 1
++// CHECK_KNL_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=knm -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNM_M32
++// CHECK_KNM_M32: #define __AES__ 1
++// CHECK_KNM_M32: #define __AVX2__ 1
++// CHECK_KNM_M32: #define __AVX512CD__ 1
++// CHECK_KNM_M32: #define __AVX512ER__ 1
++// CHECK_KNM_M32: #define __AVX512F__ 1
++// CHECK_KNM_M32: #define __AVX512PF__ 1
++// CHECK_KNM_M32: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_KNM_M32: #define __AVX__ 1
++// CHECK_KNM_M32: #define __BMI2__ 1
++// CHECK_KNM_M32: #define __BMI__ 1
++// CHECK_KNM_M32: #define __F16C__ 1
++// CHECK_KNM_M32: #define __FMA__ 1
++// CHECK_KNM_M32: #define __LZCNT__ 1
++// CHECK_KNM_M32: #define __MMX__ 1
++// CHECK_KNM_M32: #define __MOVBE__ 1
++// CHECK_KNM_M32: #define __PCLMUL__ 1
++// CHECK_KNM_M32: #define __POPCNT__ 1
++// CHECK_KNM_M32: #define __PREFETCHWT1__ 1
++// CHECK_KNM_M32: #define __PRFCHW__ 1
++// CHECK_KNM_M32: #define __RDRND__ 1
++// CHECK_KNM_M32: #define __SSE2__ 1
++// CHECK_KNM_M32: #define __SSE3__ 1
++// CHECK_KNM_M32: #define __SSE4_1__ 1
++// CHECK_KNM_M32: #define __SSE4_2__ 1
++// CHECK_KNM_M32: #define __SSE__ 1
++// CHECK_KNM_M32: #define __SSSE3__ 1
++// CHECK_KNM_M32: #define __XSAVEOPT__ 1
++// CHECK_KNM_M32: #define __XSAVE__ 1
++// CHECK_KNM_M32: #define __i386 1
++// CHECK_KNM_M32: #define __i386__ 1
++// CHECK_KNM_M32: #define i386 1
++
++// RUN: %clang -march=knm -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_KNM_M64
++// CHECK_KNM_M64: #define __AES__ 1
++// CHECK_KNM_M64: #define __AVX2__ 1
++// CHECK_KNM_M64: #define __AVX512CD__ 1
++// CHECK_KNM_M64: #define __AVX512ER__ 1
++// CHECK_KNM_M64: #define __AVX512F__ 1
++// CHECK_KNM_M64: #define __AVX512PF__ 1
++// CHECK_KNM_M64: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_KNM_M64: #define __AVX__ 1
++// CHECK_KNM_M64: #define __BMI2__ 1
++// CHECK_KNM_M64: #define __BMI__ 1
++// CHECK_KNM_M64: #define __F16C__ 1
++// CHECK_KNM_M64: #define __FMA__ 1
++// CHECK_KNM_M64: #define __LZCNT__ 1
++// CHECK_KNM_M64: #define __MMX__ 1
++// CHECK_KNM_M64: #define __MOVBE__ 1
++// CHECK_KNM_M64: #define __PCLMUL__ 1
++// CHECK_KNM_M64: #define __POPCNT__ 1
++// CHECK_KNM_M64: #define __PREFETCHWT1__ 1
++// CHECK_KNM_M64: #define __PRFCHW__ 1
++// CHECK_KNM_M64: #define __RDRND__ 1
++// CHECK_KNM_M64: #define __SSE2_MATH__ 1
++// CHECK_KNM_M64: #define __SSE2__ 1
++// CHECK_KNM_M64: #define __SSE3__ 1
++// CHECK_KNM_M64: #define __SSE4_1__ 1
++// CHECK_KNM_M64: #define __SSE4_2__ 1
++// CHECK_KNM_M64: #define __SSE_MATH__ 1
++// CHECK_KNM_M64: #define __SSE__ 1
++// CHECK_KNM_M64: #define __SSSE3__ 1
++// CHECK_KNM_M64: #define __XSAVEOPT__ 1
++// CHECK_KNM_M64: #define __XSAVE__ 1
++// CHECK_KNM_M64: #define __amd64 1
++// CHECK_KNM_M64: #define __amd64__ 1
++// CHECK_KNM_M64: #define __x86_64 1
++// CHECK_KNM_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=skylake-avx512 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKX_M32
++// CHECK_SKX_M32: #define __AES__ 1
++// CHECK_SKX_M32: #define __AVX2__ 1
++// CHECK_SKX_M32: #define __AVX512BW__ 1
++// CHECK_SKX_M32: #define __AVX512CD__ 1
++// CHECK_SKX_M32: #define __AVX512DQ__ 1
++// CHECK_SKX_M32: #define __AVX512F__ 1
++// CHECK_SKX_M32: #define __AVX512VL__ 1
++// CHECK_SKX_M32: #define __AVX__ 1
++// CHECK_SKX_M32: #define __BMI2__ 1
++// CHECK_SKX_M32: #define __BMI__ 1
++// CHECK_SKX_M32: #define __CLFLUSHOPT__ 1
++// CHECK_SKX_M32: #define __CLWB__ 1
++// CHECK_SKX_M32: #define __F16C__ 1
++// CHECK_SKX_M32: #define __FMA__ 1
++// CHECK_SKX_M32: #define __INVPCID__ 1
++// CHECK_SKX_M32: #define __LZCNT__ 1
++// CHECK_SKX_M32: #define __MMX__ 1
++// CHECK_SKX_M32: #define __MOVBE__ 1
++// CHECK_SKX_M32: #define __PCLMUL__ 1
++// CHECK_SKX_M32: #define __PKU__ 1
++// CHECK_SKX_M32: #define __POPCNT__ 1
++// CHECK_SKX_M32: #define __PRFCHW__ 1
++// CHECK_SKX_M32: #define __RDRND__ 1
++// CHECK_SKX_M32: #define __RDSEED__ 1
++// CHECK_SKX_M32-NOT: #define __SGX__ 1
++// CHECK_SKX_M32: #define __SSE2__ 1
++// CHECK_SKX_M32: #define __SSE3__ 1
++// CHECK_SKX_M32: #define __SSE4_1__ 1
++// CHECK_SKX_M32: #define __SSE4_2__ 1
++// CHECK_SKX_M32: #define __SSE__ 1
++// CHECK_SKX_M32: #define __SSSE3__ 1
++// CHECK_SKX_M32: #define __XSAVEC__ 1
++// CHECK_SKX_M32: #define __XSAVEOPT__ 1
++// CHECK_SKX_M32: #define __XSAVES__ 1
++// CHECK_SKX_M32: #define __XSAVE__ 1
++// CHECK_SKX_M32: #define __corei7 1
++// CHECK_SKX_M32: #define __corei7__ 1
++// CHECK_SKX_M32: #define __i386 1
++// CHECK_SKX_M32: #define __i386__ 1
++// CHECK_SKX_M32: #define __tune_corei7__ 1
++// CHECK_SKX_M32: #define i386 1
++
++// RUN: %clang -march=skylake-avx512 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SKX_M64
++// CHECK_SKX_M64: #define __AES__ 1
++// CHECK_SKX_M64: #define __AVX2__ 1
++// CHECK_SKX_M64: #define __AVX512BW__ 1
++// CHECK_SKX_M64: #define __AVX512CD__ 1
++// CHECK_SKX_M64: #define __AVX512DQ__ 1
++// CHECK_SKX_M64: #define __AVX512F__ 1
++// CHECK_SKX_M64: #define __AVX512VL__ 1
++// CHECK_SKX_M64: #define __AVX__ 1
++// CHECK_SKX_M64: #define __BMI2__ 1
++// CHECK_SKX_M64: #define __BMI__ 1
++// CHECK_SKX_M64: #define __CLFLUSHOPT__ 1
++// CHECK_SKX_M64: #define __CLWB__ 1
++// CHECK_SKX_M64: #define __F16C__ 1
++// CHECK_SKX_M64: #define __FMA__ 1
++// CHECK_SKX_M64: #define __INVPCID__ 1
++// CHECK_SKX_M64: #define __LZCNT__ 1
++// CHECK_SKX_M64: #define __MMX__ 1
++// CHECK_SKX_M64: #define __MOVBE__ 1
++// CHECK_SKX_M64: #define __PCLMUL__ 1
++// CHECK_SKX_M64: #define __PKU__ 1
++// CHECK_SKX_M64: #define __POPCNT__ 1
++// CHECK_SKX_M64: #define __PRFCHW__ 1
++// CHECK_SKX_M64: #define __RDRND__ 1
++// CHECK_SKX_M64: #define __RDSEED__ 1
++// CHECK_SKX_M64-NOT: #define __SGX__ 1
++// CHECK_SKX_M64: #define __SSE2_MATH__ 1
++// CHECK_SKX_M64: #define __SSE2__ 1
++// CHECK_SKX_M64: #define __SSE3__ 1
++// CHECK_SKX_M64: #define __SSE4_1__ 1
++// CHECK_SKX_M64: #define __SSE4_2__ 1
++// CHECK_SKX_M64: #define __SSE_MATH__ 1
++// CHECK_SKX_M64: #define __SSE__ 1
++// CHECK_SKX_M64: #define __SSSE3__ 1
++// CHECK_SKX_M64: #define __XSAVEC__ 1
++// CHECK_SKX_M64: #define __XSAVEOPT__ 1
++// CHECK_SKX_M64: #define __XSAVES__ 1
++// CHECK_SKX_M64: #define __XSAVE__ 1
++// CHECK_SKX_M64: #define __amd64 1
++// CHECK_SKX_M64: #define __amd64__ 1
++// CHECK_SKX_M64: #define __corei7 1
++// CHECK_SKX_M64: #define __corei7__ 1
++// CHECK_SKX_M64: #define __tune_corei7__ 1
++// CHECK_SKX_M64: #define __x86_64 1
++// CHECK_SKX_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=cascadelake -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CLX_M32
++// CHECK_CLX_M32: #define __AES__ 1
++// CHECK_CLX_M32: #define __AVX2__ 1
++// CHECK_CLX_M32: #define __AVX512BW__ 1
++// CHECK_CLX_M32: #define __AVX512CD__ 1
++// CHECK_CLX_M32: #define __AVX512DQ__ 1
++// CHECK_CLX_M32: #define __AVX512F__ 1
++// CHECK_CLX_M32: #define __AVX512VL__ 1
++// CHECK_CLX_M32: #define __AVX512VNNI__ 1
++// CHECK_CLX_M32: #define __AVX__ 1
++// CHECK_CLX_M32: #define __BMI2__ 1
++// CHECK_CLX_M32: #define __BMI__ 1
++// CHECK_CLX_M32: #define __CLFLUSHOPT__ 1
++// CHECK_CLX_M32: #define __CLWB__ 1
++// CHECK_CLX_M32: #define __F16C__ 1
++// CHECK_CLX_M32: #define __FMA__ 1
++// CHECK_CLX_M32: #define __INVPCID__ 1
++// CHECK_CLX_M32: #define __LZCNT__ 1
++// CHECK_CLX_M32: #define __MMX__ 1
++// CHECK_CLX_M32: #define __MOVBE__ 1
++// CHECK_CLX_M32: #define __PCLMUL__ 1
++// CHECK_CLX_M32: #define __PKU__ 1
++// CHECK_CLX_M32: #define __POPCNT__ 1
++// CHECK_CLX_M32: #define __PRFCHW__ 1
++// CHECK_CLX_M32: #define __RDRND__ 1
++// CHECK_CLX_M32: #define __RDSEED__ 1
++// CHECK_CLX_M32-NOT: #define __SGX__ 1
++// CHECK_CLX_M32: #define __SSE2__ 1
++// CHECK_CLX_M32: #define __SSE3__ 1
++// CHECK_CLX_M32: #define __SSE4_1__ 1
++// CHECK_CLX_M32: #define __SSE4_2__ 1
++// CHECK_CLX_M32: #define __SSE__ 1
++// CHECK_CLX_M32: #define __SSSE3__ 1
++// CHECK_CLX_M32: #define __XSAVEC__ 1
++// CHECK_CLX_M32: #define __XSAVEOPT__ 1
++// CHECK_CLX_M32: #define __XSAVES__ 1
++// CHECK_CLX_M32: #define __XSAVE__ 1
++// CHECK_CLX_M32: #define __corei7 1
++// CHECK_CLX_M32: #define __corei7__ 1
++// CHECK_CLX_M32: #define __i386 1
++// CHECK_CLX_M32: #define __i386__ 1
++// CHECK_CLX_M32: #define __tune_corei7__ 1
++// CHECK_CLX_M32: #define i386 1
++
++// RUN: %clang -march=cascadelake -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CLX_M64
++// CHECK_CLX_M64: #define __AES__ 1
++// CHECK_CLX_M64: #define __AVX2__ 1
++// CHECK_CLX_M64: #define __AVX512BW__ 1
++// CHECK_CLX_M64: #define __AVX512CD__ 1
++// CHECK_CLX_M64: #define __AVX512DQ__ 1
++// CHECK_CLX_M64: #define __AVX512F__ 1
++// CHECK_CLX_M64: #define __AVX512VL__ 1
++// CHECK_CLX_M64: #define __AVX512VNNI__ 1
++// CHECK_CLX_M64: #define __AVX__ 1
++// CHECK_CLX_M64: #define __BMI2__ 1
++// CHECK_CLX_M64: #define __BMI__ 1
++// CHECK_CLX_M64: #define __CLFLUSHOPT__ 1
++// CHECK_CLX_M64: #define __CLWB__ 1
++// CHECK_CLX_M64: #define __F16C__ 1
++// CHECK_CLX_M64: #define __FMA__ 1
++// CHECK_CLX_M64: #define __INVPCID__ 1
++// CHECK_CLX_M64: #define __LZCNT__ 1
++// CHECK_CLX_M64: #define __MMX__ 1
++// CHECK_CLX_M64: #define __MOVBE__ 1
++// CHECK_CLX_M64: #define __PCLMUL__ 1
++// CHECK_CLX_M64: #define __PKU__ 1
++// CHECK_CLX_M64: #define __POPCNT__ 1
++// CHECK_CLX_M64: #define __PRFCHW__ 1
++// CHECK_CLX_M64: #define __RDRND__ 1
++// CHECK_CLX_M64: #define __RDSEED__ 1
++// CHECK_CLX_M64-NOT: #define __SGX__ 1
++// CHECK_CLX_M64: #define __SSE2_MATH__ 1
++// CHECK_CLX_M64: #define __SSE2__ 1
++// CHECK_CLX_M64: #define __SSE3__ 1
++// CHECK_CLX_M64: #define __SSE4_1__ 1
++// CHECK_CLX_M64: #define __SSE4_2__ 1
++// CHECK_CLX_M64: #define __SSE_MATH__ 1
++// CHECK_CLX_M64: #define __SSE__ 1
++// CHECK_CLX_M64: #define __SSSE3__ 1
++// CHECK_CLX_M64: #define __XSAVEC__ 1
++// CHECK_CLX_M64: #define __XSAVEOPT__ 1
++// CHECK_CLX_M64: #define __XSAVES__ 1
++// CHECK_CLX_M64: #define __XSAVE__ 1
++// CHECK_CLX_M64: #define __amd64 1
++// CHECK_CLX_M64: #define __amd64__ 1
++// CHECK_CLX_M64: #define __corei7 1
++// CHECK_CLX_M64: #define __corei7__ 1
++// CHECK_CLX_M64: #define __tune_corei7__ 1
++// CHECK_CLX_M64: #define __x86_64 1
++// CHECK_CLX_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=cooperlake -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CPX_M32
++// CHECK_CPX_M32: #define __AES__ 1
++// CHECK_CPX_M32: #define __AVX2__ 1
++// CHECK_CPX_M32: #define __AVX512BF16__ 1
++// CHECK_CPX_M32: #define __AVX512BW__ 1
++// CHECK_CPX_M32: #define __AVX512CD__ 1
++// CHECK_CPX_M32: #define __AVX512DQ__ 1
++// CHECK_CPX_M32: #define __AVX512F__ 1
++// CHECK_CPX_M32: #define __AVX512VL__ 1
++// CHECK_CPX_M32: #define __AVX512VNNI__ 1
++// CHECK_CPX_M32: #define __AVX__ 1
++// CHECK_CPX_M32: #define __BMI2__ 1
++// CHECK_CPX_M32: #define __BMI__ 1
++// CHECK_CPX_M32: #define __CLFLUSHOPT__ 1
++// CHECK_CPX_M32: #define __CLWB__ 1
++// CHECK_CPX_M32: #define __F16C__ 1
++// CHECK_CPX_M32: #define __FMA__ 1
++// CHECK_CPX_M32: #define __INVPCID__ 1
++// CHECK_CPX_M32: #define __LZCNT__ 1
++// CHECK_CPX_M32: #define __MMX__ 1
++// CHECK_CPX_M32: #define __MOVBE__ 1
++// CHECK_CPX_M32: #define __PCLMUL__ 1
++// CHECK_CPX_M32: #define __PKU__ 1
++// CHECK_CPX_M32: #define __POPCNT__ 1
++// CHECK_CPX_M32: #define __PRFCHW__ 1
++// CHECK_CPX_M32: #define __RDRND__ 1
++// CHECK_CPX_M32: #define __RDSEED__ 1
++// CHECK_CPX_M32-NOT: #define __SGX__ 1
++// CHECK_CPX_M32: #define __SSE2__ 1
++// CHECK_CPX_M32: #define __SSE3__ 1
++// CHECK_CPX_M32: #define __SSE4_1__ 1
++// CHECK_CPX_M32: #define __SSE4_2__ 1
++// CHECK_CPX_M32: #define __SSE__ 1
++// CHECK_CPX_M32: #define __SSSE3__ 1
++// CHECK_CPX_M32: #define __XSAVEC__ 1
++// CHECK_CPX_M32: #define __XSAVEOPT__ 1
++// CHECK_CPX_M32: #define __XSAVES__ 1
++// CHECK_CPX_M32: #define __XSAVE__ 1
++// CHECK_CPX_M32: #define __corei7 1
++// CHECK_CPX_M32: #define __corei7__ 1
++// CHECK_CPX_M32: #define __i386 1
++// CHECK_CPX_M32: #define __i386__ 1
++// CHECK_CPX_M32: #define __tune_corei7__ 1
++// CHECK_CPX_M32: #define i386 1
++
++// RUN: %clang -march=cooperlake -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CPX_M64
++// CHECK_CPX_M64: #define __AES__ 1
++// CHECK_CPX_M64: #define __AVX2__ 1
++// CHECK_CPX_M64: #define __AVX512BF16__ 1
++// CHECK_CPX_M64: #define __AVX512BW__ 1
++// CHECK_CPX_M64: #define __AVX512CD__ 1
++// CHECK_CPX_M64: #define __AVX512DQ__ 1
++// CHECK_CPX_M64: #define __AVX512F__ 1
++// CHECK_CPX_M64: #define __AVX512VL__ 1
++// CHECK_CPX_M64: #define __AVX512VNNI__ 1
++// CHECK_CPX_M64: #define __AVX__ 1
++// CHECK_CPX_M64: #define __BMI2__ 1
++// CHECK_CPX_M64: #define __BMI__ 1
++// CHECK_CPX_M64: #define __CLFLUSHOPT__ 1
++// CHECK_CPX_M64: #define __CLWB__ 1
++// CHECK_CPX_M64: #define __F16C__ 1
++// CHECK_CPX_M64: #define __FMA__ 1
++// CHECK_CPX_M64: #define __INVPCID__ 1
++// CHECK_CPX_M64: #define __LZCNT__ 1
++// CHECK_CPX_M64: #define __MMX__ 1
++// CHECK_CPX_M64: #define __MOVBE__ 1
++// CHECK_CPX_M64: #define __PCLMUL__ 1
++// CHECK_CPX_M64: #define __PKU__ 1
++// CHECK_CPX_M64: #define __POPCNT__ 1
++// CHECK_CPX_M64: #define __PRFCHW__ 1
++// CHECK_CPX_M64: #define __RDRND__ 1
++// CHECK_CPX_M64: #define __RDSEED__ 1
++// CHECK_CPX_M64-NOT: #define __SGX__ 1
++// CHECK_CPX_M64: #define __SSE2_MATH__ 1
++// CHECK_CPX_M64: #define __SSE2__ 1
++// CHECK_CPX_M64: #define __SSE3__ 1
++// CHECK_CPX_M64: #define __SSE4_1__ 1
++// CHECK_CPX_M64: #define __SSE4_2__ 1
++// CHECK_CPX_M64: #define __SSE_MATH__ 1
++// CHECK_CPX_M64: #define __SSE__ 1
++// CHECK_CPX_M64: #define __SSSE3__ 1
++// CHECK_CPX_M64: #define __XSAVEC__ 1
++// CHECK_CPX_M64: #define __XSAVEOPT__ 1
++// CHECK_CPX_M64: #define __XSAVES__ 1
++// CHECK_CPX_M64: #define __XSAVE__ 1
++// CHECK_CPX_M64: #define __amd64 1
++// CHECK_CPX_M64: #define __amd64__ 1
++// CHECK_CPX_M64: #define __corei7 1
++// CHECK_CPX_M64: #define __corei7__ 1
++// CHECK_CPX_M64: #define __tune_corei7__ 1
++// CHECK_CPX_M64: #define __x86_64 1
++// CHECK_CPX_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=cannonlake -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CNL_M32
++// CHECK_CNL_M32: #define __AES__ 1
++// CHECK_CNL_M32: #define __AVX2__ 1
++// CHECK_CNL_M32: #define __AVX512BW__ 1
++// CHECK_CNL_M32: #define __AVX512CD__ 1
++// CHECK_CNL_M32: #define __AVX512DQ__ 1
++// CHECK_CNL_M32: #define __AVX512F__ 1
++// CHECK_CNL_M32: #define __AVX512IFMA__ 1
++// CHECK_CNL_M32: #define __AVX512VBMI__ 1
++// CHECK_CNL_M32: #define __AVX512VL__ 1
++// CHECK_CNL_M32: #define __AVX__ 1
++// CHECK_CNL_M32: #define __BMI2__ 1
++// CHECK_CNL_M32: #define __BMI__ 1
++// CHECK_CNL_M32: #define __CLFLUSHOPT__ 1
++// CHECK_CNL_M32-NOT: #define __CLWB__ 1
++// CHECK_CNL_M32: #define __F16C__ 1
++// CHECK_CNL_M32: #define __FMA__ 1
++// CHECK_CNL_M32: #define __INVPCID__ 1
++// CHECK_CNL_M32: #define __LZCNT__ 1
++// CHECK_CNL_M32: #define __MMX__ 1
++// CHECK_CNL_M32: #define __MOVBE__ 1
++// CHECK_CNL_M32: #define __PCLMUL__ 1
++// CHECK_CNL_M32: #define __PKU__ 1
++// CHECK_CNL_M32: #define __POPCNT__ 1
++// CHECK_CNL_M32: #define __PRFCHW__ 1
++// CHECK_CNL_M32: #define __RDRND__ 1
++// CHECK_CNL_M32: #define __RDSEED__ 1
++// CHECK_CNL_M32: #define __SGX__ 1
++// CHECK_CNL_M32: #define __SHA__ 1
++// CHECK_CNL_M32: #define __SSE2__ 1
++// CHECK_CNL_M32: #define __SSE3__ 1
++// CHECK_CNL_M32: #define __SSE4_1__ 1
++// CHECK_CNL_M32: #define __SSE4_2__ 1
++// CHECK_CNL_M32: #define __SSE__ 1
++// CHECK_CNL_M32: #define __SSSE3__ 1
++// CHECK_CNL_M32: #define __XSAVEC__ 1
++// CHECK_CNL_M32: #define __XSAVEOPT__ 1
++// CHECK_CNL_M32: #define __XSAVES__ 1
++// CHECK_CNL_M32: #define __XSAVE__ 1
++// CHECK_CNL_M32: #define __corei7 1
++// CHECK_CNL_M32: #define __corei7__ 1
++// CHECK_CNL_M32: #define __i386 1
++// CHECK_CNL_M32: #define __i386__ 1
++// CHECK_CNL_M32: #define __tune_corei7__ 1
++// CHECK_CNL_M32: #define i386 1
++
++// RUN: %clang -march=cannonlake -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_CNL_M64
++// CHECK_CNL_M64: #define __AES__ 1
++// CHECK_CNL_M64: #define __AVX2__ 1
++// CHECK_CNL_M64: #define __AVX512BW__ 1
++// CHECK_CNL_M64: #define __AVX512CD__ 1
++// CHECK_CNL_M64: #define __AVX512DQ__ 1
++// CHECK_CNL_M64: #define __AVX512F__ 1
++// CHECK_CNL_M64: #define __AVX512IFMA__ 1
++// CHECK_CNL_M64: #define __AVX512VBMI__ 1
++// CHECK_CNL_M64: #define __AVX512VL__ 1
++// CHECK_CNL_M64: #define __AVX__ 1
++// CHECK_CNL_M64: #define __BMI2__ 1
++// CHECK_CNL_M64: #define __BMI__ 1
++// CHECK_CNL_M64: #define __CLFLUSHOPT__ 1
++// CHECK_CNL_M64-NOT: #define __CLWB__ 1
++// CHECK_CNL_M64: #define __F16C__ 1
++// CHECK_CNL_M64: #define __FMA__ 1
++// CHECK_CNL_M64: #define __INVPCID__ 1
++// CHECK_CNL_M64: #define __LZCNT__ 1
++// CHECK_CNL_M64: #define __MMX__ 1
++// CHECK_CNL_M64: #define __MOVBE__ 1
++// CHECK_CNL_M64: #define __PCLMUL__ 1
++// CHECK_CNL_M64: #define __PKU__ 1
++// CHECK_CNL_M64: #define __POPCNT__ 1
++// CHECK_CNL_M64: #define __PRFCHW__ 1
++// CHECK_CNL_M64: #define __RDRND__ 1
++// CHECK_CNL_M64: #define __RDSEED__ 1
++// CHECK_CNL_M64: #define __SGX__ 1
++// CHECK_CNL_M64: #define __SHA__ 1
++// CHECK_CNL_M64: #define __SSE2__ 1
++// CHECK_CNL_M64: #define __SSE3__ 1
++// CHECK_CNL_M64: #define __SSE4_1__ 1
++// CHECK_CNL_M64: #define __SSE4_2__ 1
++// CHECK_CNL_M64: #define __SSE__ 1
++// CHECK_CNL_M64: #define __SSSE3__ 1
++// CHECK_CNL_M64: #define __XSAVEC__ 1
++// CHECK_CNL_M64: #define __XSAVEOPT__ 1
++// CHECK_CNL_M64: #define __XSAVES__ 1
++// CHECK_CNL_M64: #define __XSAVE__ 1
++// CHECK_CNL_M64: #define __amd64 1
++// CHECK_CNL_M64: #define __amd64__ 1
++// CHECK_CNL_M64: #define __corei7 1
++// CHECK_CNL_M64: #define __corei7__ 1
++// CHECK_CNL_M64: #define __tune_corei7__ 1
++// CHECK_CNL_M64: #define __x86_64 1
++// CHECK_CNL_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=icelake-client -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ICL_M32
++// CHECK_ICL_M32: #define __AES__ 1
++// CHECK_ICL_M32: #define __AVX2__ 1
++// CHECK_ICL_M32: #define __AVX512BITALG__ 1
++// CHECK_ICL_M32: #define __AVX512BW__ 1
++// CHECK_ICL_M32: #define __AVX512CD__ 1
++// CHECK_ICL_M32: #define __AVX512DQ__ 1
++// CHECK_ICL_M32: #define __AVX512F__ 1
++// CHECK_ICL_M32: #define __AVX512IFMA__ 1
++// CHECK_ICL_M32: #define __AVX512VBMI2__ 1
++// CHECK_ICL_M32: #define __AVX512VBMI__ 1
++// CHECK_ICL_M32: #define __AVX512VL__ 1
++// CHECK_ICL_M32: #define __AVX512VNNI__ 1
++// CHECK_ICL_M32: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_ICL_M32: #define __AVX__ 1
++// CHECK_ICL_M32: #define __BMI2__ 1
++// CHECK_ICL_M32: #define __BMI__ 1
++// CHECK_ICL_M32: #define __CLFLUSHOPT__ 1
++// CHECK_ICL_M32: #define __CLWB__ 1
++// CHECK_ICL_M32: #define __F16C__ 1
++// CHECK_ICL_M32: #define __FMA__ 1
++// CHECK_ICL_M32: #define __GFNI__ 1
++// CHECK_ICL_M32: #define __INVPCID__ 1
++// CHECK_ICL_M32: #define __LZCNT__ 1
++// CHECK_ICL_M32: #define __MMX__ 1
++// CHECK_ICL_M32: #define __MOVBE__ 1
++// CHECK_ICL_M32: #define __PCLMUL__ 1
++// CHECK_ICL_M32: #define __PKU__ 1
++// CHECK_ICL_M32: #define __POPCNT__ 1
++// CHECK_ICL_M32: #define __PRFCHW__ 1
++// CHECK_ICL_M32: #define __RDPID__ 1
++// CHECK_ICL_M32: #define __RDRND__ 1
++// CHECK_ICL_M32: #define __RDSEED__ 1
++// CHECK_ICL_M32: #define __SGX__ 1
++// CHECK_ICL_M32: #define __SHA__ 1
++// CHECK_ICL_M32: #define __SSE2__ 1
++// CHECK_ICL_M32: #define __SSE3__ 1
++// CHECK_ICL_M32: #define __SSE4_1__ 1
++// CHECK_ICL_M32: #define __SSE4_2__ 1
++// CHECK_ICL_M32: #define __SSE__ 1
++// CHECK_ICL_M32: #define __SSSE3__ 1
++// CHECK_ICL_M32: #define __VAES__ 1
++// CHECK_ICL_M32: #define __VPCLMULQDQ__ 1
++// CHECK_ICL_M32-NOT: #define __WBNOINVD__ 1
++// CHECK_ICL_M32: #define __XSAVEC__ 1
++// CHECK_ICL_M32: #define __XSAVEOPT__ 1
++// CHECK_ICL_M32: #define __XSAVES__ 1
++// CHECK_ICL_M32: #define __XSAVE__ 1
++// CHECK_ICL_M32: #define __corei7 1
++// CHECK_ICL_M32: #define __corei7__ 1
++// CHECK_ICL_M32: #define __i386 1
++// CHECK_ICL_M32: #define __i386__ 1
++// CHECK_ICL_M32: #define __tune_corei7__ 1
++// CHECK_ICL_M32: #define i386 1
++
++// RUN: %clang -march=icelake-client -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ICL_M64
++// CHECK_ICL_M64: #define __AES__ 1
++// CHECK_ICL_M64: #define __AVX2__ 1
++// CHECK_ICL_M64: #define __AVX512BITALG__ 1
++// CHECK_ICL_M64: #define __AVX512BW__ 1
++// CHECK_ICL_M64: #define __AVX512CD__ 1
++// CHECK_ICL_M64: #define __AVX512DQ__ 1
++// CHECK_ICL_M64: #define __AVX512F__ 1
++// CHECK_ICL_M64: #define __AVX512IFMA__ 1
++// CHECK_ICL_M64: #define __AVX512VBMI2__ 1
++// CHECK_ICL_M64: #define __AVX512VBMI__ 1
++// CHECK_ICL_M64: #define __AVX512VL__ 1
++// CHECK_ICL_M64: #define __AVX512VNNI__ 1
++// CHECK_ICL_M64: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_ICL_M64: #define __AVX__ 1
++// CHECK_ICL_M64: #define __BMI2__ 1
++// CHECK_ICL_M64: #define __BMI__ 1
++// CHECK_ICL_M64: #define __CLFLUSHOPT__ 1
++// CHECK_ICL_M64: #define __CLWB__ 1
++// CHECK_ICL_M64: #define __F16C__ 1
++// CHECK_ICL_M64: #define __FMA__ 1
++// CHECK_ICL_M64: #define __GFNI__ 1
++// CHECK_ICL_M64: #define __INVPCID__ 1
++// CHECK_ICL_M64: #define __LZCNT__ 1
++// CHECK_ICL_M64: #define __MMX__ 1
++// CHECK_ICL_M64: #define __MOVBE__ 1
++// CHECK_ICL_M64: #define __PCLMUL__ 1
++// CHECK_ICL_M64: #define __PKU__ 1
++// CHECK_ICL_M64: #define __POPCNT__ 1
++// CHECK_ICL_M64: #define __PRFCHW__ 1
++// CHECK_ICL_M64: #define __RDPID__ 1
++// CHECK_ICL_M64: #define __RDRND__ 1
++// CHECK_ICL_M64: #define __RDSEED__ 1
++// CHECK_ICL_M64: #define __SGX__ 1
++// CHECK_ICL_M64: #define __SHA__ 1
++// CHECK_ICL_M64: #define __SSE2__ 1
++// CHECK_ICL_M64: #define __SSE3__ 1
++// CHECK_ICL_M64: #define __SSE4_1__ 1
++// CHECK_ICL_M64: #define __SSE4_2__ 1
++// CHECK_ICL_M64: #define __SSE__ 1
++// CHECK_ICL_M64: #define __SSSE3__ 1
++// CHECK_ICL_M64: #define __VAES__ 1
++// CHECK_ICL_M64: #define __VPCLMULQDQ__ 1
++// CHECK_ICL_M64-NOT: #define __WBNOINVD__ 1
++// CHECK_ICL_M64: #define __XSAVEC__ 1
++// CHECK_ICL_M64: #define __XSAVEOPT__ 1
++// CHECK_ICL_M64: #define __XSAVES__ 1
++// CHECK_ICL_M64: #define __XSAVE__ 1
++// CHECK_ICL_M64: #define __amd64 1
++// CHECK_ICL_M64: #define __amd64__ 1
++// CHECK_ICL_M64: #define __corei7 1
++// CHECK_ICL_M64: #define __corei7__ 1
++// CHECK_ICL_M64: #define __tune_corei7__ 1
++// CHECK_ICL_M64: #define __x86_64 1
++// CHECK_ICL_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=icelake-server -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ICX_M32
++// CHECK_ICX_M32: #define __AES__ 1
++// CHECK_ICX_M32: #define __AVX2__ 1
++// CHECK_ICX_M32: #define __AVX512BITALG__ 1
++// CHECK_ICX_M32: #define __AVX512BW__ 1
++// CHECK_ICX_M32: #define __AVX512CD__ 1
++// CHECK_ICX_M32: #define __AVX512DQ__ 1
++// CHECK_ICX_M32: #define __AVX512F__ 1
++// CHECK_ICX_M32: #define __AVX512IFMA__ 1
++// CHECK_ICX_M32: #define __AVX512VBMI2__ 1
++// CHECK_ICX_M32: #define __AVX512VBMI__ 1
++// CHECK_ICX_M32: #define __AVX512VL__ 1
++// CHECK_ICX_M32: #define __AVX512VNNI__ 1
++// CHECK_ICX_M32: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_ICX_M32: #define __AVX__ 1
++// CHECK_ICX_M32: #define __BMI2__ 1
++// CHECK_ICX_M32: #define __BMI__ 1
++// CHECK_ICX_M32: #define __CLFLUSHOPT__ 1
++// CHECK_ICX_M32: #define __CLWB__ 1
++// CHECK_ICX_M32: #define __F16C__ 1
++// CHECK_ICX_M32: #define __FMA__ 1
++// CHECK_ICX_M32: #define __GFNI__ 1
++// CHECK_ICX_M32: #define __INVPCID__ 1
++// CHECK_ICX_M32: #define __LZCNT__ 1
++// CHECK_ICX_M32: #define __MMX__ 1
++// CHECK_ICX_M32: #define __MOVBE__ 1
++// CHECK_ICX_M32: #define __PCLMUL__ 1
++// CHECK_ICX_M32: #define __PCONFIG__ 1
++// CHECK_ICX_M32: #define __PKU__ 1
++// CHECK_ICX_M32: #define __POPCNT__ 1
++// CHECK_ICX_M32: #define __PRFCHW__ 1
++// CHECK_ICX_M32: #define __RDPID__ 1
++// CHECK_ICX_M32: #define __RDRND__ 1
++// CHECK_ICX_M32: #define __RDSEED__ 1
++// CHECK_ICX_M32: #define __SGX__ 1
++// CHECK_ICX_M32: #define __SHA__ 1
++// CHECK_ICX_M32: #define __SSE2__ 1
++// CHECK_ICX_M32: #define __SSE3__ 1
++// CHECK_ICX_M32: #define __SSE4_1__ 1
++// CHECK_ICX_M32: #define __SSE4_2__ 1
++// CHECK_ICX_M32: #define __SSE__ 1
++// CHECK_ICX_M32: #define __SSSE3__ 1
++// CHECK_ICX_M32: #define __VAES__ 1
++// CHECK_ICX_M32: #define __VPCLMULQDQ__ 1
++// CHECK_ICX_M32: #define __WBNOINVD__ 1
++// CHECK_ICX_M32: #define __XSAVEC__ 1
++// CHECK_ICX_M32: #define __XSAVEOPT__ 1
++// CHECK_ICX_M32: #define __XSAVES__ 1
++// CHECK_ICX_M32: #define __XSAVE__ 1
++// CHECK_ICX_M32: #define __corei7 1
++// CHECK_ICX_M32: #define __corei7__ 1
++// CHECK_ICX_M32: #define __i386 1
++// CHECK_ICX_M32: #define __i386__ 1
++// CHECK_ICX_M32: #define __tune_corei7__ 1
++// CHECK_ICX_M32: #define i386 1
++
++// RUN: %clang -march=icelake-server -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ICX_M64
++// CHECK_ICX_M64: #define __AES__ 1
++// CHECK_ICX_M64: #define __AVX2__ 1
++// CHECK_ICX_M64: #define __AVX512BITALG__ 1
++// CHECK_ICX_M64: #define __AVX512BW__ 1
++// CHECK_ICX_M64: #define __AVX512CD__ 1
++// CHECK_ICX_M64: #define __AVX512DQ__ 1
++// CHECK_ICX_M64: #define __AVX512F__ 1
++// CHECK_ICX_M64: #define __AVX512IFMA__ 1
++// CHECK_ICX_M64: #define __AVX512VBMI2__ 1
++// CHECK_ICX_M64: #define __AVX512VBMI__ 1
++// CHECK_ICX_M64: #define __AVX512VL__ 1
++// CHECK_ICX_M64: #define __AVX512VNNI__ 1
++// CHECK_ICX_M64: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_ICX_M64: #define __AVX__ 1
++// CHECK_ICX_M64: #define __BMI2__ 1
++// CHECK_ICX_M64: #define __BMI__ 1
++// CHECK_ICX_M64: #define __CLFLUSHOPT__ 1
++// CHECK_ICX_M64: #define __CLWB__ 1
++// CHECK_ICX_M64: #define __F16C__ 1
++// CHECK_ICX_M64: #define __FMA__ 1
++// CHECK_ICX_M64: #define __GFNI__ 1
++// CHECK_ICX_M64: #define __INVPCID__ 1
++// CHECK_ICX_M64: #define __LZCNT__ 1
++// CHECK_ICX_M64: #define __MMX__ 1
++// CHECK_ICX_M64: #define __MOVBE__ 1
++// CHECK_ICX_M64: #define __PCLMUL__ 1
++// CHECK_ICX_M64: #define __PCONFIG__ 1
++// CHECK_ICX_M64: #define __PKU__ 1
++// CHECK_ICX_M64: #define __POPCNT__ 1
++// CHECK_ICX_M64: #define __PRFCHW__ 1
++// CHECK_ICX_M64: #define __RDPID__ 1
++// CHECK_ICX_M64: #define __RDRND__ 1
++// CHECK_ICX_M64: #define __RDSEED__ 1
++// CHECK_ICX_M64: #define __SGX__ 1
++// CHECK_ICX_M64: #define __SHA__ 1
++// CHECK_ICX_M64: #define __SSE2__ 1
++// CHECK_ICX_M64: #define __SSE3__ 1
++// CHECK_ICX_M64: #define __SSE4_1__ 1
++// CHECK_ICX_M64: #define __SSE4_2__ 1
++// CHECK_ICX_M64: #define __SSE__ 1
++// CHECK_ICX_M64: #define __SSSE3__ 1
++// CHECK_ICX_M64: #define __VAES__ 1
++// CHECK_ICX_M64: #define __VPCLMULQDQ__ 1
++// CHECK_ICX_M64: #define __WBNOINVD__ 1
++// CHECK_ICX_M64: #define __XSAVEC__ 1
++// CHECK_ICX_M64: #define __XSAVEOPT__ 1
++// CHECK_ICX_M64: #define __XSAVES__ 1
++// CHECK_ICX_M64: #define __XSAVE__ 1
++// CHECK_ICX_M64: #define __amd64 1
++// CHECK_ICX_M64: #define __amd64__ 1
++// CHECK_ICX_M64: #define __corei7 1
++// CHECK_ICX_M64: #define __corei7__ 1
++// CHECK_ICX_M64: #define __tune_corei7__ 1
++// CHECK_ICX_M64: #define __x86_64 1
++// CHECK_ICX_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=tigerlake -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_TGL_M32
++// CHECK_TGL_M32: #define __AES__ 1
++// CHECK_TGL_M32: #define __AVX2__ 1
++// CHECK_TGL_M32: #define __AVX512BITALG__ 1
++// CHECK_TGL_M32: #define __AVX512BW__ 1
++// CHECK_TGL_M32: #define __AVX512CD__ 1
++// CHECK_TGL_M32: #define __AVX512DQ__ 1
++// CHECK_TGL_M32: #define __AVX512F__ 1
++// CHECK_TGL_M32: #define __AVX512IFMA__ 1
++// CHECK_TGL_M32: #define __AVX512VBMI2__ 1
++// CHECK_TGL_M32: #define __AVX512VBMI__ 1
++// CHECK_TGL_M32: #define __AVX512VL__ 1
++// CHECK_TGL_M32: #define __AVX512VNNI__ 1
++// CHECK_TGL_M32: #define __AVX512VP2INTERSECT__ 1
++// CHECK_TGL_M32: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_TGL_M32: #define __AVX__ 1
++// CHECK_TGL_M32: #define __BMI2__ 1
++// CHECK_TGL_M32: #define __BMI__ 1
++// CHECK_TGL_M32: #define __CLFLUSHOPT__ 1
++// CHECK_TGL_M32: #define __CLWB__ 1
++// CHECK_TGL_M32: #define __F16C__ 1
++// CHECK_TGL_M32: #define __FMA__ 1
++// CHECK_TGL_M32: #define __GFNI__ 1
++// CHECK_TGL_M32: #define __INVPCID__ 1
++// CHECK_TGL_M32: #define __LZCNT__ 1
++// CHECK_TGL_M32: #define __MMX__ 1
++// CHECK_TGL_M32: #define __MOVBE__ 1
++// CHECK_TGL_M32: #define __MOVDIR64B__ 1
++// CHECK_TGL_M32: #define __MOVDIRI__ 1
++// CHECK_TGL_M32: #define __PCLMUL__ 1
++// CHECK_TGL_M32-NOT: #define __PCONFIG__ 1
++// CHECK_TGL_M32: #define __PKU__ 1
++// CHECK_TGL_M32: #define __POPCNT__ 1
++// CHECK_TGL_M32: #define __PRFCHW__ 1
++// CHECK_TGL_M32: #define __RDPID__ 1
++// CHECK_TGL_M32: #define __RDRND__ 1
++// CHECK_TGL_M32: #define __RDSEED__ 1
++// CHECK_TGL_M32: #define __SGX__ 1
++// CHECK_TGL_M32: #define __SHA__ 1
++// CHECK_TGL_M32: #define __SHSTK__ 1
++// CHECK_TGL_M32: #define __SSE2__ 1
++// CHECK_TGL_M32: #define __SSE3__ 1
++// CHECK_TGL_M32: #define __SSE4_1__ 1
++// CHECK_TGL_M32: #define __SSE4_2__ 1
++// CHECK_TGL_M32: #define __SSE__ 1
++// CHECK_TGL_M32: #define __SSSE3__ 1
++// CHECK_TGL_M32: #define __VAES__ 1
++// CHECK_TGL_M32: #define __VPCLMULQDQ__ 1
++// CHECK_TGL_M32-NOT: #define __WBNOINVD__ 1
++// CHECK_TGL_M32: #define __XSAVEC__ 1
++// CHECK_TGL_M32: #define __XSAVEOPT__ 1
++// CHECK_TGL_M32: #define __XSAVES__ 1
++// CHECK_TGL_M32: #define __XSAVE__ 1
++// CHECK_TGL_M32: #define __corei7 1
++// CHECK_TGL_M32: #define __corei7__ 1
++// CHECK_TGL_M32: #define __i386 1
++// CHECK_TGL_M32: #define __i386__ 1
++// CHECK_TGL_M32: #define __tune_corei7__ 1
++// CHECK_TGL_M32: #define i386 1
++
++// RUN: %clang -march=tigerlake -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_TGL_M64
++// CHECK_TGL_M64: #define __AES__ 1
++// CHECK_TGL_M64: #define __AVX2__ 1
++// CHECK_TGL_M64: #define __AVX512BITALG__ 1
++// CHECK_TGL_M64: #define __AVX512BW__ 1
++// CHECK_TGL_M64: #define __AVX512CD__ 1
++// CHECK_TGL_M64: #define __AVX512DQ__ 1
++// CHECK_TGL_M64: #define __AVX512F__ 1
++// CHECK_TGL_M64: #define __AVX512IFMA__ 1
++// CHECK_TGL_M64: #define __AVX512VBMI2__ 1
++// CHECK_TGL_M64: #define __AVX512VBMI__ 1
++// CHECK_TGL_M64: #define __AVX512VL__ 1
++// CHECK_TGL_M64: #define __AVX512VNNI__ 1
++// CHECK_TGL_M64: #define __AVX512VP2INTERSECT__ 1
++// CHECK_TGL_M64: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_TGL_M64: #define __AVX__ 1
++// CHECK_TGL_M64: #define __BMI2__ 1
++// CHECK_TGL_M64: #define __BMI__ 1
++// CHECK_TGL_M64: #define __CLFLUSHOPT__ 1
++// CHECK_TGL_M64: #define __CLWB__ 1
++// CHECK_TGL_M64: #define __F16C__ 1
++// CHECK_TGL_M64: #define __FMA__ 1
++// CHECK_TGL_M64: #define __GFNI__ 1
++// CHECK_TGL_M64: #define __INVPCID__ 1
++// CHECK_TGL_M64: #define __LZCNT__ 1
++// CHECK_TGL_M64: #define __MMX__ 1
++// CHECK_TGL_M64: #define __MOVBE__ 1
++// CHECK_TGL_M64: #define __MOVDIR64B__ 1
++// CHECK_TGL_M64: #define __MOVDIRI__ 1
++// CHECK_TGL_M64: #define __PCLMUL__ 1
++// CHECK_TGL_M64-NOT: #define __PCONFIG__ 1
++// CHECK_TGL_M64: #define __PKU__ 1
++// CHECK_TGL_M64: #define __POPCNT__ 1
++// CHECK_TGL_M64: #define __PRFCHW__ 1
++// CHECK_TGL_M64: #define __RDPID__ 1
++// CHECK_TGL_M64: #define __RDRND__ 1
++// CHECK_TGL_M64: #define __RDSEED__ 1
++// CHECK_TGL_M64: #define __SGX__ 1
++// CHECK_TGL_M64: #define __SHA__ 1
++// CHECK_TGL_M64: #define __SHSTK__ 1
++// CHECK_TGL_M64: #define __SSE2__ 1
++// CHECK_TGL_M64: #define __SSE3__ 1
++// CHECK_TGL_M64: #define __SSE4_1__ 1
++// CHECK_TGL_M64: #define __SSE4_2__ 1
++// CHECK_TGL_M64: #define __SSE__ 1
++// CHECK_TGL_M64: #define __SSSE3__ 1
++// CHECK_TGL_M64: #define __VAES__ 1
++// CHECK_TGL_M64: #define __VPCLMULQDQ__ 1
++// CHECK_TGL_M64-NOT: #define __WBNOINVD__ 1
++// CHECK_TGL_M64: #define __XSAVEC__ 1
++// CHECK_TGL_M64: #define __XSAVEOPT__ 1
++// CHECK_TGL_M64: #define __XSAVES__ 1
++// CHECK_TGL_M64: #define __XSAVE__ 1
++// CHECK_TGL_M64: #define __amd64 1
++// CHECK_TGL_M64: #define __amd64__ 1
++// CHECK_TGL_M64: #define __corei7 1
++// CHECK_TGL_M64: #define __corei7__ 1
++// CHECK_TGL_M64: #define __tune_corei7__ 1
++// CHECK_TGL_M64: #define __x86_64 1
++// CHECK_TGL_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=sapphirerapids -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M32
++// CHECK_SPR_M32: #define __AES__ 1
++// CHECK_SPR_M32: #define __AMXBF16__ 1
++// CHECK_SPR_M32: #define __AMXINT8__ 1
++// CHECK_SPR_M32: #define __AMXTILE__ 1
++// CHECK_SPR_M32: #define __AVX2__ 1
++// CHECK_SPR_M32: #define __AVX512BF16__ 1
++// CHECK_SPR_M32: #define __AVX512BITALG__ 1
++// CHECK_SPR_M32: #define __AVX512BW__ 1
++// CHECK_SPR_M32: #define __AVX512CD__ 1
++// CHECK_SPR_M32: #define __AVX512DQ__ 1
++// CHECK_SPR_M32: #define __AVX512F__ 1
++// CHECK_SPR_M32: #define __AVX512IFMA__ 1
++// CHECK_SPR_M32: #define __AVX512VBMI2__ 1
++// CHECK_SPR_M32: #define __AVX512VBMI__ 1
++// CHECK_SPR_M32: #define __AVX512VL__ 1
++// CHECK_SPR_M32: #define __AVX512VNNI__ 1
++// CHECK_SPR_M32: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_SPR_M32: #define __AVXVNNI__ 1
++// CHECK_SPR_M32: #define __AVX__ 1
++// CHECK_SPR_M32: #define __BMI2__ 1
++// CHECK_SPR_M32: #define __BMI__ 1
++// CHECK_SPR_M32: #define __CLDEMOTE__ 1
++// CHECK_SPR_M32: #define __CLFLUSHOPT__ 1
++// CHECK_SPR_M32: #define __CLWB__ 1
++// CHECK_SPR_M32: #define __ENQCMD__ 1
++// CHECK_SPR_M32: #define __F16C__ 1
++// CHECK_SPR_M32: #define __FMA__ 1
++// CHECK_SPR_M32: #define __GFNI__ 1
++// CHECK_SPR_M32: #define __INVPCID__ 1
++// CHECK_SPR_M32: #define __LZCNT__ 1
++// CHECK_SPR_M32: #define __MMX__ 1
++// CHECK_SPR_M32: #define __MOVBE__ 1
++// CHECK_SPR_M32: #define __PCLMUL__ 1
++// CHECK_SPR_M32: #define __PCONFIG__ 1
++// CHECK_SPR_M32: #define __PKU__ 1
++// CHECK_SPR_M32: #define __POPCNT__ 1
++// CHECK_SPR_M32: #define __PRFCHW__ 1
++// CHECK_SPR_M32: #define __PTWRITE__ 1
++// CHECK_SPR_M32: #define __RDPID__ 1
++// CHECK_SPR_M32: #define __RDRND__ 1
++// CHECK_SPR_M32: #define __RDSEED__ 1
++// CHECK_SPR_M32: #define __SERIALIZE__ 1
++// CHECK_SPR_M32: #define __SGX__ 1
++// CHECK_SPR_M32: #define __SHA__ 1
++// CHECK_SPR_M32: #define __SHSTK__ 1
++// CHECK_SPR_M32: #define __SSE2__ 1
++// CHECK_SPR_M32: #define __SSE3__ 1
++// CHECK_SPR_M32: #define __SSE4_1__ 1
++// CHECK_SPR_M32: #define __SSE4_2__ 1
++// CHECK_SPR_M32: #define __SSE__ 1
++// CHECK_SPR_M32: #define __SSSE3__ 1
++// CHECK_SPR_M32: #define __TSXLDTRK__ 1
++// CHECK_SPR_M32: #define __UINTR__ 1
++// CHECK_SPR_M32: #define __VAES__ 1
++// CHECK_SPR_M32: #define __VPCLMULQDQ__ 1
++// CHECK_SPR_M32: #define __WAITPKG__ 1
++// CHECK_SPR_M32: #define __WBNOINVD__ 1
++// CHECK_SPR_M32: #define __XSAVEC__ 1
++// CHECK_SPR_M32: #define __XSAVEOPT__ 1
++// CHECK_SPR_M32: #define __XSAVES__ 1
++// CHECK_SPR_M32: #define __XSAVE__ 1
++// CHECK_SPR_M32: #define __corei7 1
++// CHECK_SPR_M32: #define __corei7__ 1
++// CHECK_SPR_M32: #define __i386 1
++// CHECK_SPR_M32: #define __i386__ 1
++// CHECK_SPR_M32: #define __tune_corei7__ 1
++// CHECK_SPR_M32: #define i386 1
++
++// RUN: %clang -march=sapphirerapids -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPR_M64
++// CHECK_SPR_M64: #define __AES__ 1
++// CHECK_SPR_M64: #define __AMXBF16__ 1
++// CHECK_SPR_M64: #define __AMXINT8__ 1
++// CHECK_SPR_M64: #define __AMXTILE__ 1
++// CHECK_SPR_M64: #define __AVX2__ 1
++// CHECK_SPR_M64: #define __AVX512BF16__ 1
++// CHECK_SPR_M64: #define __AVX512BITALG__ 1
++// CHECK_SPR_M64: #define __AVX512BW__ 1
++// CHECK_SPR_M64: #define __AVX512CD__ 1
++// CHECK_SPR_M64: #define __AVX512DQ__ 1
++// CHECK_SPR_M64: #define __AVX512F__ 1
++// CHECK_SPR_M64: #define __AVX512IFMA__ 1
++// CHECK_SPR_M64: #define __AVX512VBMI2__ 1
++// CHECK_SPR_M64: #define __AVX512VBMI__ 1
++// CHECK_SPR_M64: #define __AVX512VL__ 1
++// CHECK_SPR_M64: #define __AVX512VNNI__ 1
++// CHECK_SPR_M64: #define __AVX512VPOPCNTDQ__ 1
++// CHECK_SPR_M64: #define __AVXVNNI__ 1
++// CHECK_SPR_M64: #define __AVX__ 1
++// CHECK_SPR_M64: #define __BMI2__ 1
++// CHECK_SPR_M64: #define __BMI__ 1
++// CHECK_SPR_M64: #define __CLDEMOTE__ 1
++// CHECK_SPR_M64: #define __CLFLUSHOPT__ 1
++// CHECK_SPR_M64: #define __CLWB__ 1
++// CHECK_SPR_M64: #define __ENQCMD__ 1
++// CHECK_SPR_M64: #define __F16C__ 1
++// CHECK_SPR_M64: #define __FMA__ 1
++// CHECK_SPR_M64: #define __GFNI__ 1
++// CHECK_SPR_M64: #define __INVPCID__ 1
++// CHECK_SPR_M64: #define __LZCNT__ 1
++// CHECK_SPR_M64: #define __MMX__ 1
++// CHECK_SPR_M64: #define __MOVBE__ 1
++// CHECK_SPR_M64: #define __PCLMUL__ 1
++// CHECK_SPR_M64: #define __PCONFIG__ 1
++// CHECK_SPR_M64: #define __PKU__ 1
++// CHECK_SPR_M64: #define __POPCNT__ 1
++// CHECK_SPR_M64: #define __PRFCHW__ 1
++// CHECK_SPR_M64: #define __PTWRITE__ 1
++// CHECK_SPR_M64: #define __RDPID__ 1
++// CHECK_SPR_M64: #define __RDRND__ 1
++// CHECK_SPR_M64: #define __RDSEED__ 1
++// CHECK_SPR_M64: #define __SERIALIZE__ 1
++// CHECK_SPR_M64: #define __SGX__ 1
++// CHECK_SPR_M64: #define __SHA__ 1
++// CHECK_SPR_M64: #define __SHSTK__ 1
++// CHECK_SPR_M64: #define __SSE2__ 1
++// CHECK_SPR_M64: #define __SSE3__ 1
++// CHECK_SPR_M64: #define __SSE4_1__ 1
++// CHECK_SPR_M64: #define __SSE4_2__ 1
++// CHECK_SPR_M64: #define __SSE__ 1
++// CHECK_SPR_M64: #define __SSSE3__ 1
++// CHECK_SPR_M64: #define __TSXLDTRK__ 1
++// CHECK_SPR_M64: #define __UINTR__ 1
++// CHECK_SPR_M64: #define __VAES__ 1
++// CHECK_SPR_M64: #define __VPCLMULQDQ__ 1
++// CHECK_SPR_M64: #define __WAITPKG__ 1
++// CHECK_SPR_M64: #define __WBNOINVD__ 1
++// CHECK_SPR_M64: #define __XSAVEC__ 1
++// CHECK_SPR_M64: #define __XSAVEOPT__ 1
++// CHECK_SPR_M64: #define __XSAVES__ 1
++// CHECK_SPR_M64: #define __XSAVE__ 1
++// CHECK_SPR_M64: #define __amd64 1
++// CHECK_SPR_M64: #define __amd64__ 1
++// CHECK_SPR_M64: #define __corei7 1
++// CHECK_SPR_M64: #define __corei7__ 1
++// CHECK_SPR_M64: #define __tune_corei7__ 1
++// CHECK_SPR_M64: #define __x86_64 1
++// CHECK_SPR_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=alderlake -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M32
++// CHECK_ADL_M32: #define __ADX__ 1
++// CHECK_ADL_M32: #define __AES__ 1
++// CHECK_ADL_M32: #define __AVX2__ 1
++// CHECK_ADL_M32-NOT: AVX512
++// CHECK_ADL_M32: #define __AVXVNNI__ 1
++// CHECK_ADL_M32: #define __AVX__ 1
++// CHECK_ADL_M32: #define __BMI2__ 1
++// CHECK_ADL_M32: #define __BMI__ 1
++// CHECK_ADL_M32: #define __CLDEMOTE__ 1
++// CHECK_ADL_M32: #define __CLFLUSHOPT__ 1
++// CHECK_ADL_M32: #define __F16C__ 1
++// CHECK_ADL_M32: #define __FMA__ 1
++// CHECK_ADL_M32: #define __HRESET__ 1
++// CHECK_ADL_M32: #define __INVPCID__ 1
++// CHECK_ADL_M32: #define __LZCNT__ 1
++// CHECK_ADL_M32: #define __MMX__ 1
++// CHECK_ADL_M32: #define __MOVBE__ 1
++// CHECK_ADL_M32: #define __PCLMUL__ 1
++// CHECK_ADL_M32: #define __POPCNT__ 1
++// CHECK_ADL_M32: #define __PRFCHW__ 1
++// CHECK_ADL_M32: #define __PTWRITE__ 1
++// CHECK_ADL_M32: #define __RDRND__ 1
++// CHECK_ADL_M32: #define __RDSEED__ 1
++// CHECK_ADL_M32: #define __SERIALIZE__ 1
++// CHECK_ADL_M32: #define __SGX__ 1
++// CHECK_ADL_M32: #define __SSE2__ 1
++// CHECK_ADL_M32: #define __SSE3__ 1
++// CHECK_ADL_M32: #define __SSE4_1__ 1
++// CHECK_ADL_M32: #define __SSE4_2__ 1
++// CHECK_ADL_M32: #define __SSE__ 1
++// CHECK_ADL_M32: #define __SSSE3__ 1
++// CHECK_ADL_M32: #define __WAITPKG__ 1
++// CHECK_ADL_M32: #define __XSAVEC__ 1
++// CHECK_ADL_M32: #define __XSAVEOPT__ 1
++// CHECK_ADL_M32: #define __XSAVES__ 1
++// CHECK_ADL_M32: #define __XSAVE__ 1
++// CHECK_ADL_M32: #define i386 1
++
++// RUN: %clang -march=alderlake -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ADL_M64
++// CHECK_ADL_M64: #define __ADX__ 1
++// CHECK_ADL_M64: #define __AES__ 1
++// CHECK_ADL_M64: #define __AVX2__ 1
++// CHECK_ADL_M64-NOT: AVX512
++// CHECK_ADL_M64: #define __AVXVNNI__ 1
++// CHECK_ADL_M64: #define __AVX__ 1
++// CHECK_ADL_M64: #define __BMI2__ 1
++// CHECK_ADL_M64: #define __BMI__ 1
++// CHECK_ADL_M64: #define __CLDEMOTE__ 1
++// CHECK_ADL_M64: #define __CLFLUSHOPT__ 1
++// CHECK_ADL_M64: #define __F16C__ 1
++// CHECK_ADL_M64: #define __FMA__ 1
++// CHECK_ADL_M64: #define __HRESET__ 1
++// CHECK_ADL_M64: #define __INVPCID__ 1
++// CHECK_ADL_M64: #define __LZCNT__ 1
++// CHECK_ADL_M64: #define __MMX__ 1
++// CHECK_ADL_M64: #define __MOVBE__ 1
++// CHECK_ADL_M64: #define __PCLMUL__ 1
++// CHECK_ADL_M64: #define __POPCNT__ 1
++// CHECK_ADL_M64: #define __PRFCHW__ 1
++// CHECK_ADL_M64: #define __PTWRITE__ 1
++// CHECK_ADL_M64: #define __RDRND__ 1
++// CHECK_ADL_M64: #define __RDSEED__ 1
++// CHECK_ADL_M64: #define __SERIALIZE__ 1
++// CHECK_ADL_M64: #define __SGX__ 1
++// CHECK_ADL_M64: #define __SSE2_MATH__ 1
++// CHECK_ADL_M64: #define __SSE2__ 1
++// CHECK_ADL_M64: #define __SSE3__ 1
++// CHECK_ADL_M64: #define __SSE4_1__ 1
++// CHECK_ADL_M64: #define __SSE4_2__ 1
++// CHECK_ADL_M64: #define __SSE_MATH__ 1
++// CHECK_ADL_M64: #define __SSE__ 1
++// CHECK_ADL_M64: #define __SSSE3__ 1
++// CHECK_ADL_M64: #define __WAITPKG__ 1
++// CHECK_ADL_M64: #define __XSAVEC__ 1
++// CHECK_ADL_M64: #define __XSAVEOPT__ 1
++// CHECK_ADL_M64: #define __XSAVES__ 1
++// CHECK_ADL_M64: #define __XSAVE__ 1
++// CHECK_ADL_M64: #define __amd64 1
++// CHECK_ADL_M64: #define __amd64__ 1
++// CHECK_ADL_M64: #define __x86_64 1
++// CHECK_ADL_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=atom -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M32
++// CHECK_ATOM_M32: #define __MMX__ 1
++// CHECK_ATOM_M32: #define __MOVBE__ 1
++// CHECK_ATOM_M32: #define __SSE2__ 1
++// CHECK_ATOM_M32: #define __SSE3__ 1
++// CHECK_ATOM_M32: #define __SSE__ 1
++// CHECK_ATOM_M32: #define __SSSE3__ 1
++// CHECK_ATOM_M32: #define __atom 1
++// CHECK_ATOM_M32: #define __atom__ 1
++// CHECK_ATOM_M32: #define __i386 1
++// CHECK_ATOM_M32: #define __i386__ 1
++// CHECK_ATOM_M32: #define __tune_atom__ 1
++// CHECK_ATOM_M32: #define i386 1
++
++// RUN: %clang -march=atom -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATOM_M64
++// CHECK_ATOM_M64: #define __MMX__ 1
++// CHECK_ATOM_M64: #define __MOVBE__ 1
++// CHECK_ATOM_M64: #define __SSE2_MATH__ 1
++// CHECK_ATOM_M64: #define __SSE2__ 1
++// CHECK_ATOM_M64: #define __SSE3__ 1
++// CHECK_ATOM_M64: #define __SSE_MATH__ 1
++// CHECK_ATOM_M64: #define __SSE__ 1
++// CHECK_ATOM_M64: #define __SSSE3__ 1
++// CHECK_ATOM_M64: #define __amd64 1
++// CHECK_ATOM_M64: #define __amd64__ 1
++// CHECK_ATOM_M64: #define __atom 1
++// CHECK_ATOM_M64: #define __atom__ 1
++// CHECK_ATOM_M64: #define __tune_atom__ 1
++// CHECK_ATOM_M64: #define __x86_64 1
++// CHECK_ATOM_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=goldmont -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_GLM_M32
++// CHECK_GLM_M32: #define __AES__ 1
++// CHECK_GLM_M32: #define __CLFLUSHOPT__ 1
++// CHECK_GLM_M32: #define __FSGSBASE__ 1
++// CHECK_GLM_M32: #define __FXSR__ 1
++// CHECK_GLM_M32: #define __MMX__ 1
++// CHECK_GLM_M32: #define __MOVBE__ 1
++// CHECK_GLM_M32: #define __PCLMUL__ 1
++// CHECK_GLM_M32: #define __POPCNT__ 1
++// CHECK_GLM_M32: #define __PRFCHW__ 1
++// CHECK_GLM_M32: #define __RDRND__ 1
++// CHECK_GLM_M32: #define __RDSEED__ 1
++// CHECK_GLM_M32: #define __SHA__ 1
++// CHECK_GLM_M32: #define __SSE2__ 1
++// CHECK_GLM_M32: #define __SSE3__ 1
++// CHECK_GLM_M32: #define __SSE4_1__ 1
++// CHECK_GLM_M32: #define __SSE4_2__ 1
++// CHECK_GLM_M32: #define __SSE_MATH__ 1
++// CHECK_GLM_M32: #define __SSE__ 1
++// CHECK_GLM_M32: #define __SSSE3__ 1
++// CHECK_GLM_M32: #define __XSAVEC__ 1
++// CHECK_GLM_M32: #define __XSAVEOPT__ 1
++// CHECK_GLM_M32: #define __XSAVES__ 1
++// CHECK_GLM_M32: #define __XSAVE__ 1
++// CHECK_GLM_M32: #define __goldmont 1
++// CHECK_GLM_M32: #define __goldmont__ 1
++// CHECK_GLM_M32: #define __i386 1
++// CHECK_GLM_M32: #define __i386__ 1
++// CHECK_GLM_M32: #define __tune_goldmont__ 1
++// CHECK_GLM_M32: #define i386 1
++
++// RUN: %clang -march=goldmont -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_GLM_M64
++// CHECK_GLM_M64: #define __AES__ 1
++// CHECK_GLM_M64: #define __CLFLUSHOPT__ 1
++// CHECK_GLM_M64: #define __FSGSBASE__ 1
++// CHECK_GLM_M64: #define __FXSR__ 1
++// CHECK_GLM_M64: #define __MMX__ 1
++// CHECK_GLM_M64: #define __MOVBE__ 1
++// CHECK_GLM_M64: #define __PCLMUL__ 1
++// CHECK_GLM_M64: #define __POPCNT__ 1
++// CHECK_GLM_M64: #define __PRFCHW__ 1
++// CHECK_GLM_M64: #define __RDRND__ 1
++// CHECK_GLM_M64: #define __RDSEED__ 1
++// CHECK_GLM_M64: #define __SHA__ 1
++// CHECK_GLM_M64: #define __SSE2__ 1
++// CHECK_GLM_M64: #define __SSE3__ 1
++// CHECK_GLM_M64: #define __SSE4_1__ 1
++// CHECK_GLM_M64: #define __SSE4_2__ 1
++// CHECK_GLM_M64: #define __SSE__ 1
++// CHECK_GLM_M64: #define __SSSE3__ 1
++// CHECK_GLM_M64: #define __XSAVEC__ 1
++// CHECK_GLM_M64: #define __XSAVEOPT__ 1
++// CHECK_GLM_M64: #define __XSAVES__ 1
++// CHECK_GLM_M64: #define __XSAVE__ 1
++// CHECK_GLM_M64: #define __goldmont 1
++// CHECK_GLM_M64: #define __goldmont__ 1
++// CHECK_GLM_M64: #define __tune_goldmont__ 1
++// CHECK_GLM_M64: #define __x86_64 1
++// CHECK_GLM_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=goldmont-plus -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_GLMP_M32
++// CHECK_GLMP_M32: #define __AES__ 1
++// CHECK_GLMP_M32: #define __CLFLUSHOPT__ 1
++// CHECK_GLMP_M32: #define __FSGSBASE__ 1
++// CHECK_GLMP_M32: #define __FXSR__ 1
++// CHECK_GLMP_M32: #define __MMX__ 1
++// CHECK_GLMP_M32: #define __MOVBE__ 1
++// CHECK_GLMP_M32: #define __PCLMUL__ 1
++// CHECK_GLMP_M32: #define __POPCNT__ 1
++// CHECK_GLMP_M32: #define __PRFCHW__ 1
++// CHECK_GLMP_M32: #define __PTWRITE__ 1
++// CHECK_GLMP_M32: #define __RDPID__ 1
++// CHECK_GLMP_M32: #define __RDRND__ 1
++// CHECK_GLMP_M32: #define __RDSEED__ 1
++// CHECK_GLMP_M32: #define __SGX__ 1
++// CHECK_GLMP_M32: #define __SHA__ 1
++// CHECK_GLMP_M32: #define __SSE2__ 1
++// CHECK_GLMP_M32: #define __SSE3__ 1
++// CHECK_GLMP_M32: #define __SSE4_1__ 1
++// CHECK_GLMP_M32: #define __SSE4_2__ 1
++// CHECK_GLMP_M32: #define __SSE_MATH__ 1
++// CHECK_GLMP_M32: #define __SSE__ 1
++// CHECK_GLMP_M32: #define __SSSE3__ 1
++// CHECK_GLMP_M32: #define __XSAVEC__ 1
++// CHECK_GLMP_M32: #define __XSAVEOPT__ 1
++// CHECK_GLMP_M32: #define __XSAVES__ 1
++// CHECK_GLMP_M32: #define __XSAVE__ 1
++// CHECK_GLMP_M32: #define __goldmont_plus 1
++// CHECK_GLMP_M32: #define __goldmont_plus__ 1
++// CHECK_GLMP_M32: #define __i386 1
++// CHECK_GLMP_M32: #define __i386__ 1
++// CHECK_GLMP_M32: #define __tune_goldmont_plus__ 1
++// CHECK_GLMP_M32: #define i386 1
++
++// RUN: %clang -march=goldmont-plus -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_GLMP_M64
++// CHECK_GLMP_M64: #define __AES__ 1
++// CHECK_GLMP_M64: #define __CLFLUSHOPT__ 1
++// CHECK_GLMP_M64: #define __FSGSBASE__ 1
++// CHECK_GLMP_M64: #define __FXSR__ 1
++// CHECK_GLMP_M64: #define __MMX__ 1
++// CHECK_GLMP_M64: #define __MOVBE__ 1
++// CHECK_GLMP_M64: #define __PCLMUL__ 1
++// CHECK_GLMP_M64: #define __POPCNT__ 1
++// CHECK_GLMP_M64: #define __PRFCHW__ 1
++// CHECK_GLMP_M64: #define __PTWRITE__ 1
++// CHECK_GLMP_M64: #define __RDPID__ 1
++// CHECK_GLMP_M64: #define __RDRND__ 1
++// CHECK_GLMP_M64: #define __RDSEED__ 1
++// CHECK_GLMP_M64: #define __SGX__ 1
++// CHECK_GLMP_M64: #define __SHA__ 1
++// CHECK_GLMP_M64: #define __SSE2__ 1
++// CHECK_GLMP_M64: #define __SSE3__ 1
++// CHECK_GLMP_M64: #define __SSE4_1__ 1
++// CHECK_GLMP_M64: #define __SSE4_2__ 1
++// CHECK_GLMP_M64: #define __SSE__ 1
++// CHECK_GLMP_M64: #define __SSSE3__ 1
++// CHECK_GLMP_M64: #define __XSAVEC__ 1
++// CHECK_GLMP_M64: #define __XSAVEOPT__ 1
++// CHECK_GLMP_M64: #define __XSAVES__ 1
++// CHECK_GLMP_M64: #define __XSAVE__ 1
++// CHECK_GLMP_M64: #define __goldmont_plus 1
++// CHECK_GLMP_M64: #define __goldmont_plus__ 1
++// CHECK_GLMP_M64: #define __tune_goldmont_plus__ 1
++// CHECK_GLMP_M64: #define __x86_64 1
++// CHECK_GLMP_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=tremont -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_TRM_M32
++// CHECK_TRM_M32: #define __AES__ 1
++// CHECK_TRM_M32-NOT: #define __CLDEMOTE__ 1
++// CHECK_TRM_M32: #define __CLFLUSHOPT__ 1
++// CHECK_TRM_M32: #define __CLWB__ 1
++// CHECK_TRM_M32: #define __FSGSBASE__ 1
++// CHECK_TRM_M32: #define __FXSR__ 1
++// CHECK_TRM_M32: #define __GFNI__ 1
++// CHECK_TRM_M32: #define __MMX__ 1
++// CHECK_TRM_M32: #define __MOVBE__ 1
++// CHECK_TRM_M32-NOT: #define __MOVDIR64B__ 1
++// CHECK_TRM_M32-NOT: #define __MOVDIRI__ 1
++// CHECK_TRM_M32: #define __PCLMUL__ 1
++// CHECK_TRM_M32: #define __POPCNT__ 1
++// CHECK_TRM_M32: #define __PRFCHW__ 1
++// CHECK_TRM_M32: #define __PTWRITE__ 1
++// CHECK_TRM_M32: #define __RDPID__ 1
++// CHECK_TRM_M32: #define __RDRND__ 1
++// CHECK_TRM_M32: #define __RDSEED__ 1
++// CHECK_TRM_M32: #define __SGX__ 1
++// CHECK_TRM_M32: #define __SHA__ 1
++// CHECK_TRM_M32: #define __SSE2__ 1
++// CHECK_TRM_M32: #define __SSE3__ 1
++// CHECK_TRM_M32: #define __SSE4_1__ 1
++// CHECK_TRM_M32: #define __SSE4_2__ 1
++// CHECK_TRM_M32: #define __SSE_MATH__ 1
++// CHECK_TRM_M32: #define __SSE__ 1
++// CHECK_TRM_M32: #define __SSSE3__ 1
++// CHECK_TRM_M32-NOT: #define __WAITPKG__ 1
++// CHECK_TRM_M32: #define __XSAVEC__ 1
++// CHECK_TRM_M32: #define __XSAVEOPT__ 1
++// CHECK_TRM_M32: #define __XSAVES__ 1
++// CHECK_TRM_M32: #define __XSAVE__ 1
++// CHECK_TRM_M32: #define __i386 1
++// CHECK_TRM_M32: #define __i386__ 1
++// CHECK_TRM_M32: #define __tremont 1
++// CHECK_TRM_M32: #define __tremont__ 1
++// CHECK_TRM_M32: #define __tune_tremont__ 1
++// CHECK_TRM_M32: #define i386 1
++
++// RUN: %clang -march=tremont -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_TRM_M64
++// CHECK_TRM_M64: #define __AES__ 1
++// CHECK_TRM_M64-NOT: #define __CLDEMOTE__ 1
++// CHECK_TRM_M64: #define __CLFLUSHOPT__ 1
++// CHECK_TRM_M64: #define __CLWB__ 1
++// CHECK_TRM_M64: #define __FSGSBASE__ 1
++// CHECK_TRM_M64: #define __FXSR__ 1
++// CHECK_TRM_M64: #define __GFNI__ 1
++// CHECK_TRM_M64: #define __MMX__ 1
++// CHECK_TRM_M64: #define __MOVBE__ 1
++// CHECK_TRM_M64-NOT: #define __MOVDIR64B__ 1
++// CHECK_TRM_M64-NOT: #define __MOVDIRI__ 1
++// CHECK_TRM_M64: #define __PCLMUL__ 1
++// CHECK_TRM_M64: #define __POPCNT__ 1
++// CHECK_TRM_M64: #define __PRFCHW__ 1
++// CHECK_TRM_M64: #define __PTWRITE__ 1
++// CHECK_TRM_M64: #define __RDPID__ 1
++// CHECK_TRM_M64: #define __RDRND__ 1
++// CHECK_TRM_M64: #define __RDSEED__ 1
++// CHECK_TRM_M64: #define __SGX__ 1
++// CHECK_TRM_M64: #define __SHA__ 1
++// CHECK_TRM_M64: #define __SSE2__ 1
++// CHECK_TRM_M64: #define __SSE3__ 1
++// CHECK_TRM_M64: #define __SSE4_1__ 1
++// CHECK_TRM_M64: #define __SSE4_2__ 1
++// CHECK_TRM_M64: #define __SSE__ 1
++// CHECK_TRM_M64: #define __SSSE3__ 1
++// CHECK_TRM_M64-NOT: #define __WAITPKG__ 1
++// CHECK_TRM_M64: #define __XSAVEC__ 1
++// CHECK_TRM_M64: #define __XSAVEOPT__ 1
++// CHECK_TRM_M64: #define __XSAVES__ 1
++// CHECK_TRM_M64: #define __XSAVE__ 1
++// CHECK_TRM_M64: #define __tremont 1
++// CHECK_TRM_M64: #define __tremont__ 1
++// CHECK_TRM_M64: #define __tune_tremont__ 1
++// CHECK_TRM_M64: #define __x86_64 1
++// CHECK_TRM_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=slm -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M32
++// CHECK_SLM_M32: #define __FXSR__ 1
++// CHECK_SLM_M32: #define __MMX__ 1
++// CHECK_SLM_M32: #define __MOVBE__ 1
++// CHECK_SLM_M32: #define __PCLMUL__ 1
++// CHECK_SLM_M32: #define __POPCNT__ 1
++// CHECK_SLM_M32: #define __PRFCHW__ 1
++// CHECK_SLM_M32: #define __RDRND__ 1
++// CHECK_SLM_M32: #define __SSE2__ 1
++// CHECK_SLM_M32: #define __SSE3__ 1
++// CHECK_SLM_M32: #define __SSE4_1__ 1
++// CHECK_SLM_M32: #define __SSE4_2__ 1
++// CHECK_SLM_M32: #define __SSE__ 1
++// CHECK_SLM_M32: #define __SSSE3__ 1
++// CHECK_SLM_M32: #define __i386 1
++// CHECK_SLM_M32: #define __i386__ 1
++// CHECK_SLM_M32: #define __slm 1
++// CHECK_SLM_M32: #define __slm__ 1
++// CHECK_SLM_M32: #define __tune_slm__ 1
++// CHECK_SLM_M32: #define i386 1
++
++// RUN: %clang -march=slm -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SLM_M64
++// CHECK_SLM_M64: #define __FXSR__ 1
++// CHECK_SLM_M64: #define __MMX__ 1
++// CHECK_SLM_M64: #define __MOVBE__ 1
++// CHECK_SLM_M64: #define __PCLMUL__ 1
++// CHECK_SLM_M64: #define __POPCNT__ 1
++// CHECK_SLM_M64: #define __PRFCHW__ 1
++// CHECK_SLM_M64: #define __RDRND__ 1
++// CHECK_SLM_M64: #define __SSE2_MATH__ 1
++// CHECK_SLM_M64: #define __SSE2__ 1
++// CHECK_SLM_M64: #define __SSE3__ 1
++// CHECK_SLM_M64: #define __SSE4_1__ 1
++// CHECK_SLM_M64: #define __SSE4_2__ 1
++// CHECK_SLM_M64: #define __SSE_MATH__ 1
++// CHECK_SLM_M64: #define __SSE__ 1
++// CHECK_SLM_M64: #define __SSSE3__ 1
++// CHECK_SLM_M64: #define __amd64 1
++// CHECK_SLM_M64: #define __amd64__ 1
++// CHECK_SLM_M64: #define __slm 1
++// CHECK_SLM_M64: #define __slm__ 1
++// CHECK_SLM_M64: #define __tune_slm__ 1
++// CHECK_SLM_M64: #define __x86_64 1
++// CHECK_SLM_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=lakemont -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_LAKEMONT_M32
++// CHECK_LAKEMONT_M32: #define __i386 1
++// CHECK_LAKEMONT_M32: #define __i386__ 1
++// CHECK_LAKEMONT_M32: #define __i586 1
++// CHECK_LAKEMONT_M32: #define __i586__ 1
++// CHECK_LAKEMONT_M32: #define __pentium 1
++// CHECK_LAKEMONT_M32: #define __pentium__ 1
++// CHECK_LAKEMONT_M32: #define __tune_lakemont__ 1
++// CHECK_LAKEMONT_M32: #define i386 1
++// RUN: not %clang -march=lakemont -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck %s -check-prefix=CHECK_LAKEMONT_M64
++// CHECK_LAKEMONT_M64: error:
++
++// RUN: %clang -march=geode -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GEODE_M32
++// CHECK_GEODE_M32: #define __3dNOW_A__ 1
++// CHECK_GEODE_M32: #define __3dNOW__ 1
++// CHECK_GEODE_M32: #define __MMX__ 1
++// CHECK_GEODE_M32: #define __geode 1
++// CHECK_GEODE_M32: #define __geode__ 1
++// CHECK_GEODE_M32: #define __i386 1
++// CHECK_GEODE_M32: #define __i386__ 1
++// CHECK_GEODE_M32: #define __tune_geode__ 1
++// CHECK_GEODE_M32: #define i386 1
++// RUN: not %clang -march=geode -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_GEODE_M64
++// CHECK_GEODE_M64: error: {{.*}}
++
++// RUN: %clang -march=k6 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_M32
++// CHECK_K6_M32: #define __MMX__ 1
++// CHECK_K6_M32: #define __i386 1
++// CHECK_K6_M32: #define __i386__ 1
++// CHECK_K6_M32: #define __k6 1
++// CHECK_K6_M32: #define __k6__ 1
++// CHECK_K6_M32: #define __tune_k6__ 1
++// CHECK_K6_M32: #define i386 1
++// RUN: not %clang -march=k6 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_M64
++// CHECK_K6_M64: error: {{.*}}
++
++// RUN: %clang -march=k6-2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_2_M32
++// CHECK_K6_2_M32: #define __3dNOW__ 1
++// CHECK_K6_2_M32: #define __MMX__ 1
++// CHECK_K6_2_M32: #define __i386 1
++// CHECK_K6_2_M32: #define __i386__ 1
++// CHECK_K6_2_M32: #define __k6 1
++// CHECK_K6_2_M32: #define __k6_2__ 1
++// CHECK_K6_2_M32: #define __k6__ 1
++// CHECK_K6_2_M32: #define __tune_k6_2__ 1
++// CHECK_K6_2_M32: #define __tune_k6__ 1
++// CHECK_K6_2_M32: #define i386 1
++// RUN: not %clang -march=k6-2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_2_M64
++// CHECK_K6_2_M64: error: {{.*}}
++
++// RUN: %clang -march=k6-3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_3_M32
++// CHECK_K6_3_M32: #define __3dNOW__ 1
++// CHECK_K6_3_M32: #define __MMX__ 1
++// CHECK_K6_3_M32: #define __i386 1
++// CHECK_K6_3_M32: #define __i386__ 1
++// CHECK_K6_3_M32: #define __k6 1
++// CHECK_K6_3_M32: #define __k6_3__ 1
++// CHECK_K6_3_M32: #define __k6__ 1
++// CHECK_K6_3_M32: #define __tune_k6_3__ 1
++// CHECK_K6_3_M32: #define __tune_k6__ 1
++// CHECK_K6_3_M32: #define i386 1
++// RUN: not %clang -march=k6-3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K6_3_M64
++// CHECK_K6_3_M64: error: {{.*}}
++
++// RUN: %clang -march=athlon -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_M32
++// CHECK_ATHLON_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON_M32: #define __3dNOW__ 1
++// CHECK_ATHLON_M32: #define __MMX__ 1
++// CHECK_ATHLON_M32: #define __athlon 1
++// CHECK_ATHLON_M32: #define __athlon__ 1
++// CHECK_ATHLON_M32: #define __i386 1
++// CHECK_ATHLON_M32: #define __i386__ 1
++// CHECK_ATHLON_M32: #define __tune_athlon__ 1
++// CHECK_ATHLON_M32: #define i386 1
++// RUN: not %clang -march=athlon -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_M64
++// CHECK_ATHLON_M64: error: {{.*}}
++
++// RUN: %clang -march=athlon-tbird -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_TBIRD_M32
++// CHECK_ATHLON_TBIRD_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON_TBIRD_M32: #define __3dNOW__ 1
++// CHECK_ATHLON_TBIRD_M32: #define __MMX__ 1
++// CHECK_ATHLON_TBIRD_M32: #define __athlon 1
++// CHECK_ATHLON_TBIRD_M32: #define __athlon__ 1
++// CHECK_ATHLON_TBIRD_M32: #define __i386 1
++// CHECK_ATHLON_TBIRD_M32: #define __i386__ 1
++// CHECK_ATHLON_TBIRD_M32: #define __tune_athlon__ 1
++// CHECK_ATHLON_TBIRD_M32: #define i386 1
++// RUN: not %clang -march=athlon-tbird -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_TBIRD_M64
++// CHECK_ATHLON_TBIRD_M64: error: {{.*}}
++
++// RUN: %clang -march=athlon-4 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_4_M32
++// CHECK_ATHLON_4_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON_4_M32: #define __3dNOW__ 1
++// CHECK_ATHLON_4_M32: #define __MMX__ 1
++// CHECK_ATHLON_4_M32: #define __SSE__ 1
++// CHECK_ATHLON_4_M32: #define __athlon 1
++// CHECK_ATHLON_4_M32: #define __athlon__ 1
++// CHECK_ATHLON_4_M32: #define __athlon_sse__ 1
++// CHECK_ATHLON_4_M32: #define __i386 1
++// CHECK_ATHLON_4_M32: #define __i386__ 1
++// CHECK_ATHLON_4_M32: #define __tune_athlon__ 1
++// CHECK_ATHLON_4_M32: #define __tune_athlon_sse__ 1
++// CHECK_ATHLON_4_M32: #define i386 1
++// RUN: not %clang -march=athlon-4 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_4_M64
++// CHECK_ATHLON_4_M64: error: {{.*}}
++
++// RUN: %clang -march=athlon-xp -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_XP_M32
++// CHECK_ATHLON_XP_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON_XP_M32: #define __3dNOW__ 1
++// CHECK_ATHLON_XP_M32: #define __MMX__ 1
++// CHECK_ATHLON_XP_M32: #define __SSE__ 1
++// CHECK_ATHLON_XP_M32: #define __athlon 1
++// CHECK_ATHLON_XP_M32: #define __athlon__ 1
++// CHECK_ATHLON_XP_M32: #define __athlon_sse__ 1
++// CHECK_ATHLON_XP_M32: #define __i386 1
++// CHECK_ATHLON_XP_M32: #define __i386__ 1
++// CHECK_ATHLON_XP_M32: #define __tune_athlon__ 1
++// CHECK_ATHLON_XP_M32: #define __tune_athlon_sse__ 1
++// CHECK_ATHLON_XP_M32: #define i386 1
++// RUN: not %clang -march=athlon-xp -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_XP_M64
++// CHECK_ATHLON_XP_M64: error: {{.*}}
++
++// RUN: %clang -march=athlon-mp -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_MP_M32
++// CHECK_ATHLON_MP_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON_MP_M32: #define __3dNOW__ 1
++// CHECK_ATHLON_MP_M32: #define __MMX__ 1
++// CHECK_ATHLON_MP_M32: #define __SSE__ 1
++// CHECK_ATHLON_MP_M32: #define __athlon 1
++// CHECK_ATHLON_MP_M32: #define __athlon__ 1
++// CHECK_ATHLON_MP_M32: #define __athlon_sse__ 1
++// CHECK_ATHLON_MP_M32: #define __i386 1
++// CHECK_ATHLON_MP_M32: #define __i386__ 1
++// CHECK_ATHLON_MP_M32: #define __tune_athlon__ 1
++// CHECK_ATHLON_MP_M32: #define __tune_athlon_sse__ 1
++// CHECK_ATHLON_MP_M32: #define i386 1
++// RUN: not %clang -march=athlon-mp -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_MP_M64
++// CHECK_ATHLON_MP_M64: error: {{.*}}
++
++// RUN: %clang -march=x86-64 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_X86_64_M32
++// CHECK_X86_64_M32: #define __MMX__ 1
++// CHECK_X86_64_M32: #define __SSE2__ 1
++// CHECK_X86_64_M32: #define __SSE__ 1
++// CHECK_X86_64_M32: #define __i386 1
++// CHECK_X86_64_M32: #define __i386__ 1
++// CHECK_X86_64_M32: #define __k8 1
++// CHECK_X86_64_M32: #define __k8__ 1
++// CHECK_X86_64_M32: #define i386 1
++
++// RUN: %clang -march=k8 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_M32
++// CHECK_K8_M32: #define __3dNOW_A__ 1
++// CHECK_K8_M32: #define __3dNOW__ 1
++// CHECK_K8_M32: #define __MMX__ 1
++// CHECK_K8_M32: #define __SSE2__ 1
++// CHECK_K8_M32: #define __SSE__ 1
++// CHECK_K8_M32: #define __i386 1
++// CHECK_K8_M32: #define __i386__ 1
++// CHECK_K8_M32: #define __k8 1
++// CHECK_K8_M32: #define __k8__ 1
++// CHECK_K8_M32: #define __tune_k8__ 1
++// CHECK_K8_M32: #define i386 1
++
++// RUN: %clang -march=k8 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_M64
++// CHECK_K8_M64: #define __3dNOW_A__ 1
++// CHECK_K8_M64: #define __3dNOW__ 1
++// CHECK_K8_M64: #define __MMX__ 1
++// CHECK_K8_M64: #define __SSE2_MATH__ 1
++// CHECK_K8_M64: #define __SSE2__ 1
++// CHECK_K8_M64: #define __SSE_MATH__ 1
++// CHECK_K8_M64: #define __SSE__ 1
++// CHECK_K8_M64: #define __amd64 1
++// CHECK_K8_M64: #define __amd64__ 1
++// CHECK_K8_M64: #define __k8 1
++// CHECK_K8_M64: #define __k8__ 1
++// CHECK_K8_M64: #define __tune_k8__ 1
++// CHECK_K8_M64: #define __x86_64 1
++// CHECK_K8_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=k8-sse3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_SSE3_M32
++// CHECK_K8_SSE3_M32: #define __3dNOW_A__ 1
++// CHECK_K8_SSE3_M32: #define __3dNOW__ 1
++// CHECK_K8_SSE3_M32: #define __MMX__ 1
++// CHECK_K8_SSE3_M32: #define __SSE2__ 1
++// CHECK_K8_SSE3_M32: #define __SSE3__ 1
++// CHECK_K8_SSE3_M32: #define __SSE__ 1
++// CHECK_K8_SSE3_M32: #define __i386 1
++// CHECK_K8_SSE3_M32: #define __i386__ 1
++// CHECK_K8_SSE3_M32: #define __k8 1
++// CHECK_K8_SSE3_M32: #define __k8__ 1
++// CHECK_K8_SSE3_M32: #define __tune_k8__ 1
++// CHECK_K8_SSE3_M32: #define i386 1
++
++// RUN: %clang -march=k8-sse3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_K8_SSE3_M64
++// CHECK_K8_SSE3_M64: #define __3dNOW_A__ 1
++// CHECK_K8_SSE3_M64: #define __3dNOW__ 1
++// CHECK_K8_SSE3_M64: #define __MMX__ 1
++// CHECK_K8_SSE3_M64: #define __SSE2_MATH__ 1
++// CHECK_K8_SSE3_M64: #define __SSE2__ 1
++// CHECK_K8_SSE3_M64: #define __SSE3__ 1
++// CHECK_K8_SSE3_M64: #define __SSE_MATH__ 1
++// CHECK_K8_SSE3_M64: #define __SSE__ 1
++// CHECK_K8_SSE3_M64: #define __amd64 1
++// CHECK_K8_SSE3_M64: #define __amd64__ 1
++// CHECK_K8_SSE3_M64: #define __k8 1
++// CHECK_K8_SSE3_M64: #define __k8__ 1
++// CHECK_K8_SSE3_M64: #define __tune_k8__ 1
++// CHECK_K8_SSE3_M64: #define __x86_64 1
++// CHECK_K8_SSE3_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=opteron -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_M32
++// CHECK_OPTERON_M32: #define __3dNOW_A__ 1
++// CHECK_OPTERON_M32: #define __3dNOW__ 1
++// CHECK_OPTERON_M32: #define __MMX__ 1
++// CHECK_OPTERON_M32: #define __SSE2__ 1
++// CHECK_OPTERON_M32: #define __SSE__ 1
++// CHECK_OPTERON_M32: #define __i386 1
++// CHECK_OPTERON_M32: #define __i386__ 1
++// CHECK_OPTERON_M32: #define __k8 1
++// CHECK_OPTERON_M32: #define __k8__ 1
++// CHECK_OPTERON_M32: #define __tune_k8__ 1
++// CHECK_OPTERON_M32: #define i386 1
++
++// RUN: %clang -march=opteron -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_M64
++// CHECK_OPTERON_M64: #define __3dNOW_A__ 1
++// CHECK_OPTERON_M64: #define __3dNOW__ 1
++// CHECK_OPTERON_M64: #define __MMX__ 1
++// CHECK_OPTERON_M64: #define __SSE2_MATH__ 1
++// CHECK_OPTERON_M64: #define __SSE2__ 1
++// CHECK_OPTERON_M64: #define __SSE_MATH__ 1
++// CHECK_OPTERON_M64: #define __SSE__ 1
++// CHECK_OPTERON_M64: #define __amd64 1
++// CHECK_OPTERON_M64: #define __amd64__ 1
++// CHECK_OPTERON_M64: #define __k8 1
++// CHECK_OPTERON_M64: #define __k8__ 1
++// CHECK_OPTERON_M64: #define __tune_k8__ 1
++// CHECK_OPTERON_M64: #define __x86_64 1
++// CHECK_OPTERON_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=opteron-sse3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_SSE3_M32
++// CHECK_OPTERON_SSE3_M32: #define __3dNOW_A__ 1
++// CHECK_OPTERON_SSE3_M32: #define __3dNOW__ 1
++// CHECK_OPTERON_SSE3_M32: #define __MMX__ 1
++// CHECK_OPTERON_SSE3_M32: #define __SSE2__ 1
++// CHECK_OPTERON_SSE3_M32: #define __SSE3__ 1
++// CHECK_OPTERON_SSE3_M32: #define __SSE__ 1
++// CHECK_OPTERON_SSE3_M32: #define __i386 1
++// CHECK_OPTERON_SSE3_M32: #define __i386__ 1
++// CHECK_OPTERON_SSE3_M32: #define __k8 1
++// CHECK_OPTERON_SSE3_M32: #define __k8__ 1
++// CHECK_OPTERON_SSE3_M32: #define __tune_k8__ 1
++// CHECK_OPTERON_SSE3_M32: #define i386 1
++
++// RUN: %clang -march=opteron-sse3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_OPTERON_SSE3_M64
++// CHECK_OPTERON_SSE3_M64: #define __3dNOW_A__ 1
++// CHECK_OPTERON_SSE3_M64: #define __3dNOW__ 1
++// CHECK_OPTERON_SSE3_M64: #define __MMX__ 1
++// CHECK_OPTERON_SSE3_M64: #define __SSE2_MATH__ 1
++// CHECK_OPTERON_SSE3_M64: #define __SSE2__ 1
++// CHECK_OPTERON_SSE3_M64: #define __SSE3__ 1
++// CHECK_OPTERON_SSE3_M64: #define __SSE_MATH__ 1
++// CHECK_OPTERON_SSE3_M64: #define __SSE__ 1
++// CHECK_OPTERON_SSE3_M64: #define __amd64 1
++// CHECK_OPTERON_SSE3_M64: #define __amd64__ 1
++// CHECK_OPTERON_SSE3_M64: #define __k8 1
++// CHECK_OPTERON_SSE3_M64: #define __k8__ 1
++// CHECK_OPTERON_SSE3_M64: #define __tune_k8__ 1
++// CHECK_OPTERON_SSE3_M64: #define __x86_64 1
++// CHECK_OPTERON_SSE3_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=athlon64 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_M32
++// CHECK_ATHLON64_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON64_M32: #define __3dNOW__ 1
++// CHECK_ATHLON64_M32: #define __MMX__ 1
++// CHECK_ATHLON64_M32: #define __SSE2__ 1
++// CHECK_ATHLON64_M32: #define __SSE__ 1
++// CHECK_ATHLON64_M32: #define __i386 1
++// CHECK_ATHLON64_M32: #define __i386__ 1
++// CHECK_ATHLON64_M32: #define __k8 1
++// CHECK_ATHLON64_M32: #define __k8__ 1
++// CHECK_ATHLON64_M32: #define __tune_k8__ 1
++// CHECK_ATHLON64_M32: #define i386 1
++
++// RUN: %clang -march=athlon64 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_M64
++// CHECK_ATHLON64_M64: #define __3dNOW_A__ 1
++// CHECK_ATHLON64_M64: #define __3dNOW__ 1
++// CHECK_ATHLON64_M64: #define __MMX__ 1
++// CHECK_ATHLON64_M64: #define __SSE2_MATH__ 1
++// CHECK_ATHLON64_M64: #define __SSE2__ 1
++// CHECK_ATHLON64_M64: #define __SSE_MATH__ 1
++// CHECK_ATHLON64_M64: #define __SSE__ 1
++// CHECK_ATHLON64_M64: #define __amd64 1
++// CHECK_ATHLON64_M64: #define __amd64__ 1
++// CHECK_ATHLON64_M64: #define __k8 1
++// CHECK_ATHLON64_M64: #define __k8__ 1
++// CHECK_ATHLON64_M64: #define __tune_k8__ 1
++// CHECK_ATHLON64_M64: #define __x86_64 1
++// CHECK_ATHLON64_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=athlon64-sse3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_SSE3_M32
++// CHECK_ATHLON64_SSE3_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __3dNOW__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __MMX__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __SSE2__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __SSE3__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __SSE__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __i386 1
++// CHECK_ATHLON64_SSE3_M32: #define __i386__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __k8 1
++// CHECK_ATHLON64_SSE3_M32: #define __k8__ 1
++// CHECK_ATHLON64_SSE3_M32: #define __tune_k8__ 1
++// CHECK_ATHLON64_SSE3_M32: #define i386 1
++
++// RUN: %clang -march=athlon64-sse3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON64_SSE3_M64
++// CHECK_ATHLON64_SSE3_M64: #define __3dNOW_A__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __3dNOW__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __MMX__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __SSE2_MATH__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __SSE2__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __SSE3__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __SSE_MATH__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __SSE__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __amd64 1
++// CHECK_ATHLON64_SSE3_M64: #define __amd64__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __k8 1
++// CHECK_ATHLON64_SSE3_M64: #define __k8__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __tune_k8__ 1
++// CHECK_ATHLON64_SSE3_M64: #define __x86_64 1
++// CHECK_ATHLON64_SSE3_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=athlon-fx -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_FX_M32
++// CHECK_ATHLON_FX_M32: #define __3dNOW_A__ 1
++// CHECK_ATHLON_FX_M32: #define __3dNOW__ 1
++// CHECK_ATHLON_FX_M32: #define __MMX__ 1
++// CHECK_ATHLON_FX_M32: #define __SSE2__ 1
++// CHECK_ATHLON_FX_M32: #define __SSE__ 1
++// CHECK_ATHLON_FX_M32: #define __i386 1
++// CHECK_ATHLON_FX_M32: #define __i386__ 1
++// CHECK_ATHLON_FX_M32: #define __k8 1
++// CHECK_ATHLON_FX_M32: #define __k8__ 1
++// CHECK_ATHLON_FX_M32: #define __tune_k8__ 1
++// CHECK_ATHLON_FX_M32: #define i386 1
++
++// RUN: %clang -march=athlon-fx -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ATHLON_FX_M64
++// CHECK_ATHLON_FX_M64: #define __3dNOW_A__ 1
++// CHECK_ATHLON_FX_M64: #define __3dNOW__ 1
++// CHECK_ATHLON_FX_M64: #define __MMX__ 1
++// CHECK_ATHLON_FX_M64: #define __SSE2_MATH__ 1
++// CHECK_ATHLON_FX_M64: #define __SSE2__ 1
++// CHECK_ATHLON_FX_M64: #define __SSE_MATH__ 1
++// CHECK_ATHLON_FX_M64: #define __SSE__ 1
++// CHECK_ATHLON_FX_M64: #define __amd64 1
++// CHECK_ATHLON_FX_M64: #define __amd64__ 1
++// CHECK_ATHLON_FX_M64: #define __k8 1
++// CHECK_ATHLON_FX_M64: #define __k8__ 1
++// CHECK_ATHLON_FX_M64: #define __tune_k8__ 1
++// CHECK_ATHLON_FX_M64: #define __x86_64 1
++// CHECK_ATHLON_FX_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=amdfam10 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDFAM10_M32
++// CHECK_AMDFAM10_M32: #define __3dNOW_A__ 1
++// CHECK_AMDFAM10_M32: #define __3dNOW__ 1
++// CHECK_AMDFAM10_M32: #define __LAHF_SAHF__ 1
++// CHECK_AMDFAM10_M32: #define __LZCNT__ 1
++// CHECK_AMDFAM10_M32: #define __MMX__ 1
++// CHECK_AMDFAM10_M32: #define __POPCNT__ 1
++// CHECK_AMDFAM10_M32: #define __PRFCHW__ 1
++// CHECK_AMDFAM10_M32: #define __SSE2_MATH__ 1
++// CHECK_AMDFAM10_M32: #define __SSE2__ 1
++// CHECK_AMDFAM10_M32: #define __SSE3__ 1
++// CHECK_AMDFAM10_M32: #define __SSE4A__ 1
++// CHECK_AMDFAM10_M32: #define __SSE_MATH__ 1
++// CHECK_AMDFAM10_M32: #define __SSE__ 1
++// CHECK_AMDFAM10_M32-NOT: #define __SSSE3__ 1
++// CHECK_AMDFAM10_M32: #define __amdfam10 1
++// CHECK_AMDFAM10_M32: #define __amdfam10__ 1
++// CHECK_AMDFAM10_M32: #define __i386 1
++// CHECK_AMDFAM10_M32: #define __i386__ 1
++// CHECK_AMDFAM10_M32: #define __tune_amdfam10__ 1
++
++// RUN: %clang -march=amdfam10 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDFAM10_M64
++// CHECK_AMDFAM10_M64: #define __3dNOW_A__ 1
++// CHECK_AMDFAM10_M64: #define __3dNOW__ 1
++// CHECK_AMDFAM10_M64: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1
++// CHECK_AMDFAM10_M64: #define __LAHF_SAHF__ 1
++// CHECK_AMDFAM10_M64: #define __LZCNT__ 1
++// CHECK_AMDFAM10_M64: #define __MMX__ 1
++// CHECK_AMDFAM10_M64: #define __POPCNT__ 1
++// CHECK_AMDFAM10_M64: #define __PRFCHW__ 1
++// CHECK_AMDFAM10_M64: #define __SSE2_MATH__ 1
++// CHECK_AMDFAM10_M64: #define __SSE2__ 1
++// CHECK_AMDFAM10_M64: #define __SSE3__ 1
++// CHECK_AMDFAM10_M64: #define __SSE4A__ 1
++// CHECK_AMDFAM10_M64: #define __SSE_MATH__ 1
++// CHECK_AMDFAM10_M64: #define __SSE__ 1
++// CHECK_AMDFAM10_M64-NOT: #define __SSSE3__ 1
++// CHECK_AMDFAM10_M64: #define __amd64 1
++// CHECK_AMDFAM10_M64: #define __amd64__ 1
++// CHECK_AMDFAM10_M64: #define __amdfam10 1
++// CHECK_AMDFAM10_M64: #define __amdfam10__ 1
++// CHECK_AMDFAM10_M64: #define __tune_amdfam10__ 1
++// CHECK_AMDFAM10_M64: #define __x86_64 1
++// CHECK_AMDFAM10_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=btver1 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER1_M32
++// CHECK_BTVER1_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_BTVER1_M32-NOT: #define __3dNOW__ 1
++// CHECK_BTVER1_M32: #define __LAHF_SAHF__ 1
++// CHECK_BTVER1_M32: #define __LZCNT__ 1
++// CHECK_BTVER1_M32: #define __MMX__ 1
++// CHECK_BTVER1_M32: #define __POPCNT__ 1
++// CHECK_BTVER1_M32: #define __PRFCHW__ 1
++// CHECK_BTVER1_M32: #define __SSE2_MATH__ 1
++// CHECK_BTVER1_M32: #define __SSE2__ 1
++// CHECK_BTVER1_M32: #define __SSE3__ 1
++// CHECK_BTVER1_M32: #define __SSE4A__ 1
++// CHECK_BTVER1_M32: #define __SSE_MATH__ 1
++// CHECK_BTVER1_M32: #define __SSE__ 1
++// CHECK_BTVER1_M32: #define __SSSE3__ 1
++// CHECK_BTVER1_M32: #define __btver1 1
++// CHECK_BTVER1_M32: #define __btver1__ 1
++// CHECK_BTVER1_M32: #define __i386 1
++// CHECK_BTVER1_M32: #define __i386__ 1
++// CHECK_BTVER1_M32: #define __tune_btver1__ 1
++
++// RUN: %clang -march=btver1 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER1_M64
++// CHECK_BTVER1_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_BTVER1_M64-NOT: #define __3dNOW__ 1
++// CHECK_BTVER1_M64: #define __LAHF_SAHF__ 1
++// CHECK_BTVER1_M64: #define __LZCNT__ 1
++// CHECK_BTVER1_M64: #define __MMX__ 1
++// CHECK_BTVER1_M64: #define __POPCNT__ 1
++// CHECK_BTVER1_M64: #define __PRFCHW__ 1
++// CHECK_BTVER1_M64: #define __SSE2_MATH__ 1
++// CHECK_BTVER1_M64: #define __SSE2__ 1
++// CHECK_BTVER1_M64: #define __SSE3__ 1
++// CHECK_BTVER1_M64: #define __SSE4A__ 1
++// CHECK_BTVER1_M64: #define __SSE_MATH__ 1
++// CHECK_BTVER1_M64: #define __SSE__ 1
++// CHECK_BTVER1_M64: #define __SSSE3__ 1
++// CHECK_BTVER1_M64: #define __amd64 1
++// CHECK_BTVER1_M64: #define __amd64__ 1
++// CHECK_BTVER1_M64: #define __btver1 1
++// CHECK_BTVER1_M64: #define __btver1__ 1
++// CHECK_BTVER1_M64: #define __tune_btver1__ 1
++// CHECK_BTVER1_M64: #define __x86_64 1
++// CHECK_BTVER1_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=btver2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER2_M32
++// CHECK_BTVER2_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_BTVER2_M32-NOT: #define __3dNOW__ 1
++// CHECK_BTVER2_M32: #define __AES__ 1
++// CHECK_BTVER2_M32: #define __AVX__ 1
++// CHECK_BTVER2_M32: #define __BMI__ 1
++// CHECK_BTVER2_M32: #define __F16C__ 1
++// CHECK_BTVER2_M32: #define __LZCNT__ 1
++// CHECK_BTVER2_M32: #define __MMX__ 1
++// CHECK_BTVER2_M32: #define __MOVBE__ 1
++// CHECK_BTVER2_M32: #define __PCLMUL__ 1
++// CHECK_BTVER2_M32: #define __POPCNT__ 1
++// CHECK_BTVER2_M32: #define __PRFCHW__ 1
++// CHECK_BTVER2_M32: #define __SSE2_MATH__ 1
++// CHECK_BTVER2_M32: #define __SSE2__ 1
++// CHECK_BTVER2_M32: #define __SSE3__ 1
++// CHECK_BTVER2_M32: #define __SSE4A__ 1
++// CHECK_BTVER2_M32: #define __SSE_MATH__ 1
++// CHECK_BTVER2_M32: #define __SSE__ 1
++// CHECK_BTVER2_M32: #define __SSSE3__ 1
++// CHECK_BTVER2_M32: #define __XSAVEOPT__ 1
++// CHECK_BTVER2_M32: #define __XSAVE__ 1
++// CHECK_BTVER2_M32: #define __btver2 1
++// CHECK_BTVER2_M32: #define __btver2__ 1
++// CHECK_BTVER2_M32: #define __i386 1
++// CHECK_BTVER2_M32: #define __i386__ 1
++// CHECK_BTVER2_M32: #define __tune_btver2__ 1
++
++// RUN: %clang -march=btver2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BTVER2_M64
++// CHECK_BTVER2_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_BTVER2_M64-NOT: #define __3dNOW__ 1
++// CHECK_BTVER2_M64: #define __AES__ 1
++// CHECK_BTVER2_M64: #define __AVX__ 1
++// CHECK_BTVER2_M64: #define __BMI__ 1
++// CHECK_BTVER2_M64: #define __F16C__ 1
++// CHECK_BTVER2_M64: #define __LZCNT__ 1
++// CHECK_BTVER2_M64: #define __MMX__ 1
++// CHECK_BTVER2_M64: #define __MOVBE__ 1
++// CHECK_BTVER2_M64: #define __PCLMUL__ 1
++// CHECK_BTVER2_M64: #define __POPCNT__ 1
++// CHECK_BTVER2_M64: #define __PRFCHW__ 1
++// CHECK_BTVER2_M64: #define __SSE2_MATH__ 1
++// CHECK_BTVER2_M64: #define __SSE2__ 1
++// CHECK_BTVER2_M64: #define __SSE3__ 1
++// CHECK_BTVER2_M64: #define __SSE4A__ 1
++// CHECK_BTVER2_M64: #define __SSE_MATH__ 1
++// CHECK_BTVER2_M64: #define __SSE__ 1
++// CHECK_BTVER2_M64: #define __SSSE3__ 1
++// CHECK_BTVER2_M64: #define __XSAVEOPT__ 1
++// CHECK_BTVER2_M64: #define __XSAVE__ 1
++// CHECK_BTVER2_M64: #define __amd64 1
++// CHECK_BTVER2_M64: #define __amd64__ 1
++// CHECK_BTVER2_M64: #define __btver2 1
++// CHECK_BTVER2_M64: #define __btver2__ 1
++// CHECK_BTVER2_M64: #define __tune_btver2__ 1
++// CHECK_BTVER2_M64: #define __x86_64 1
++// CHECK_BTVER2_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=bdver1 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M32
++// CHECK_BDVER1_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER1_M32-NOT: #define __3dNOW__ 1
++// CHECK_BDVER1_M32: #define __AES__ 1
++// CHECK_BDVER1_M32: #define __AVX__ 1
++// CHECK_BDVER1_M32: #define __FMA4__ 1
++// CHECK_BDVER1_M32: #define __LWP__ 1
++// CHECK_BDVER1_M32: #define __LZCNT__ 1
++// CHECK_BDVER1_M32: #define __MMX__ 1
++// CHECK_BDVER1_M32: #define __PCLMUL__ 1
++// CHECK_BDVER1_M32: #define __POPCNT__ 1
++// CHECK_BDVER1_M32: #define __PRFCHW__ 1
++// CHECK_BDVER1_M32: #define __SSE2_MATH__ 1
++// CHECK_BDVER1_M32: #define __SSE2__ 1
++// CHECK_BDVER1_M32: #define __SSE3__ 1
++// CHECK_BDVER1_M32: #define __SSE4A__ 1
++// CHECK_BDVER1_M32: #define __SSE4_1__ 1
++// CHECK_BDVER1_M32: #define __SSE4_2__ 1
++// CHECK_BDVER1_M32: #define __SSE_MATH__ 1
++// CHECK_BDVER1_M32: #define __SSE__ 1
++// CHECK_BDVER1_M32: #define __SSSE3__ 1
++// CHECK_BDVER1_M32: #define __XOP__ 1
++// CHECK_BDVER1_M32: #define __XSAVE__ 1
++// CHECK_BDVER1_M32: #define __bdver1 1
++// CHECK_BDVER1_M32: #define __bdver1__ 1
++// CHECK_BDVER1_M32: #define __i386 1
++// CHECK_BDVER1_M32: #define __i386__ 1
++// CHECK_BDVER1_M32: #define __tune_bdver1__ 1
++
++// RUN: %clang -march=bdver1 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER1_M64
++// CHECK_BDVER1_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER1_M64-NOT: #define __3dNOW__ 1
++// CHECK_BDVER1_M64: #define __AES__ 1
++// CHECK_BDVER1_M64: #define __AVX__ 1
++// CHECK_BDVER1_M64: #define __FMA4__ 1
++// CHECK_BDVER1_M64: #define __LWP__ 1
++// CHECK_BDVER1_M64: #define __LZCNT__ 1
++// CHECK_BDVER1_M64: #define __MMX__ 1
++// CHECK_BDVER1_M64: #define __PCLMUL__ 1
++// CHECK_BDVER1_M64: #define __POPCNT__ 1
++// CHECK_BDVER1_M64: #define __PRFCHW__ 1
++// CHECK_BDVER1_M64: #define __SSE2_MATH__ 1
++// CHECK_BDVER1_M64: #define __SSE2__ 1
++// CHECK_BDVER1_M64: #define __SSE3__ 1
++// CHECK_BDVER1_M64: #define __SSE4A__ 1
++// CHECK_BDVER1_M64: #define __SSE4_1__ 1
++// CHECK_BDVER1_M64: #define __SSE4_2__ 1
++// CHECK_BDVER1_M64: #define __SSE_MATH__ 1
++// CHECK_BDVER1_M64: #define __SSE__ 1
++// CHECK_BDVER1_M64: #define __SSSE3__ 1
++// CHECK_BDVER1_M64: #define __XOP__ 1
++// CHECK_BDVER1_M64: #define __XSAVE__ 1
++// CHECK_BDVER1_M64: #define __amd64 1
++// CHECK_BDVER1_M64: #define __amd64__ 1
++// CHECK_BDVER1_M64: #define __bdver1 1
++// CHECK_BDVER1_M64: #define __bdver1__ 1
++// CHECK_BDVER1_M64: #define __tune_bdver1__ 1
++// CHECK_BDVER1_M64: #define __x86_64 1
++// CHECK_BDVER1_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=bdver2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER2_M32
++// CHECK_BDVER2_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER2_M32-NOT: #define __3dNOW__ 1
++// CHECK_BDVER2_M32: #define __AES__ 1
++// CHECK_BDVER2_M32: #define __AVX__ 1
++// CHECK_BDVER2_M32: #define __BMI__ 1
++// CHECK_BDVER2_M32: #define __F16C__ 1
++// CHECK_BDVER2_M32: #define __FMA4__ 1
++// CHECK_BDVER2_M32: #define __FMA__ 1
++// CHECK_BDVER2_M32: #define __LWP__ 1
++// CHECK_BDVER2_M32: #define __LZCNT__ 1
++// CHECK_BDVER2_M32: #define __MMX__ 1
++// CHECK_BDVER2_M32: #define __PCLMUL__ 1
++// CHECK_BDVER2_M32: #define __POPCNT__ 1
++// CHECK_BDVER2_M32: #define __PRFCHW__ 1
++// CHECK_BDVER2_M32: #define __SSE2_MATH__ 1
++// CHECK_BDVER2_M32: #define __SSE2__ 1
++// CHECK_BDVER2_M32: #define __SSE3__ 1
++// CHECK_BDVER2_M32: #define __SSE4A__ 1
++// CHECK_BDVER2_M32: #define __SSE4_1__ 1
++// CHECK_BDVER2_M32: #define __SSE4_2__ 1
++// CHECK_BDVER2_M32: #define __SSE_MATH__ 1
++// CHECK_BDVER2_M32: #define __SSE__ 1
++// CHECK_BDVER2_M32: #define __SSSE3__ 1
++// CHECK_BDVER2_M32: #define __TBM__ 1
++// CHECK_BDVER2_M32: #define __XOP__ 1
++// CHECK_BDVER2_M32: #define __XSAVE__ 1
++// CHECK_BDVER2_M32: #define __bdver2 1
++// CHECK_BDVER2_M32: #define __bdver2__ 1
++// CHECK_BDVER2_M32: #define __i386 1
++// CHECK_BDVER2_M32: #define __i386__ 1
++// CHECK_BDVER2_M32: #define __tune_bdver2__ 1
++
++// RUN: %clang -march=bdver2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER2_M64
++// CHECK_BDVER2_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER2_M64-NOT: #define __3dNOW__ 1
++// CHECK_BDVER2_M64: #define __AES__ 1
++// CHECK_BDVER2_M64: #define __AVX__ 1
++// CHECK_BDVER2_M64: #define __BMI__ 1
++// CHECK_BDVER2_M64: #define __F16C__ 1
++// CHECK_BDVER2_M64: #define __FMA4__ 1
++// CHECK_BDVER2_M64: #define __FMA__ 1
++// CHECK_BDVER2_M64: #define __LWP__ 1
++// CHECK_BDVER2_M64: #define __LZCNT__ 1
++// CHECK_BDVER2_M64: #define __MMX__ 1
++// CHECK_BDVER2_M64: #define __PCLMUL__ 1
++// CHECK_BDVER2_M64: #define __POPCNT__ 1
++// CHECK_BDVER2_M64: #define __PRFCHW__ 1
++// CHECK_BDVER2_M64: #define __SSE2_MATH__ 1
++// CHECK_BDVER2_M64: #define __SSE2__ 1
++// CHECK_BDVER2_M64: #define __SSE3__ 1
++// CHECK_BDVER2_M64: #define __SSE4A__ 1
++// CHECK_BDVER2_M64: #define __SSE4_1__ 1
++// CHECK_BDVER2_M64: #define __SSE4_2__ 1
++// CHECK_BDVER2_M64: #define __SSE_MATH__ 1
++// CHECK_BDVER2_M64: #define __SSE__ 1
++// CHECK_BDVER2_M64: #define __SSSE3__ 1
++// CHECK_BDVER2_M64: #define __TBM__ 1
++// CHECK_BDVER2_M64: #define __XOP__ 1
++// CHECK_BDVER2_M64: #define __XSAVE__ 1
++// CHECK_BDVER2_M64: #define __amd64 1
++// CHECK_BDVER2_M64: #define __amd64__ 1
++// CHECK_BDVER2_M64: #define __bdver2 1
++// CHECK_BDVER2_M64: #define __bdver2__ 1
++// CHECK_BDVER2_M64: #define __tune_bdver2__ 1
++// CHECK_BDVER2_M64: #define __x86_64 1
++// CHECK_BDVER2_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=bdver3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER3_M32
++// CHECK_BDVER3_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER3_M32-NOT: #define __3dNOW__ 1
++// CHECK_BDVER3_M32: #define __AES__ 1
++// CHECK_BDVER3_M32: #define __AVX__ 1
++// CHECK_BDVER3_M32: #define __BMI__ 1
++// CHECK_BDVER3_M32: #define __F16C__ 1
++// CHECK_BDVER3_M32: #define __FMA4__ 1
++// CHECK_BDVER3_M32: #define __FMA__ 1
++// CHECK_BDVER3_M32: #define __FSGSBASE__ 1
++// CHECK_BDVER3_M32: #define __LWP__ 1
++// CHECK_BDVER3_M32: #define __LZCNT__ 1
++// CHECK_BDVER3_M32: #define __MMX__ 1
++// CHECK_BDVER3_M32: #define __PCLMUL__ 1
++// CHECK_BDVER3_M32: #define __POPCNT__ 1
++// CHECK_BDVER3_M32: #define __PRFCHW__ 1
++// CHECK_BDVER3_M32: #define __SSE2_MATH__ 1
++// CHECK_BDVER3_M32: #define __SSE2__ 1
++// CHECK_BDVER3_M32: #define __SSE3__ 1
++// CHECK_BDVER3_M32: #define __SSE4A__ 1
++// CHECK_BDVER3_M32: #define __SSE4_1__ 1
++// CHECK_BDVER3_M32: #define __SSE4_2__ 1
++// CHECK_BDVER3_M32: #define __SSE_MATH__ 1
++// CHECK_BDVER3_M32: #define __SSE__ 1
++// CHECK_BDVER3_M32: #define __SSSE3__ 1
++// CHECK_BDVER3_M32: #define __TBM__ 1
++// CHECK_BDVER3_M32: #define __XOP__ 1
++// CHECK_BDVER3_M32: #define __XSAVEOPT__ 1
++// CHECK_BDVER3_M32: #define __XSAVE__ 1
++// CHECK_BDVER3_M32: #define __bdver3 1
++// CHECK_BDVER3_M32: #define __bdver3__ 1
++// CHECK_BDVER3_M32: #define __i386 1
++// CHECK_BDVER3_M32: #define __i386__ 1
++// CHECK_BDVER3_M32: #define __tune_bdver3__ 1
++
++// RUN: %clang -march=bdver3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER3_M64
++// CHECK_BDVER3_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER3_M64-NOT: #define __3dNOW__ 1
++// CHECK_BDVER3_M64: #define __AES__ 1
++// CHECK_BDVER3_M64: #define __AVX__ 1
++// CHECK_BDVER3_M64: #define __BMI__ 1
++// CHECK_BDVER3_M64: #define __F16C__ 1
++// CHECK_BDVER3_M64: #define __FMA4__ 1
++// CHECK_BDVER3_M64: #define __FMA__ 1
++// CHECK_BDVER3_M64: #define __FSGSBASE__ 1
++// CHECK_BDVER3_M64: #define __LWP__ 1
++// CHECK_BDVER3_M64: #define __LZCNT__ 1
++// CHECK_BDVER3_M64: #define __MMX__ 1
++// CHECK_BDVER3_M64: #define __PCLMUL__ 1
++// CHECK_BDVER3_M64: #define __POPCNT__ 1
++// CHECK_BDVER3_M64: #define __PRFCHW__ 1
++// CHECK_BDVER3_M64: #define __SSE2_MATH__ 1
++// CHECK_BDVER3_M64: #define __SSE2__ 1
++// CHECK_BDVER3_M64: #define __SSE3__ 1
++// CHECK_BDVER3_M64: #define __SSE4A__ 1
++// CHECK_BDVER3_M64: #define __SSE4_1__ 1
++// CHECK_BDVER3_M64: #define __SSE4_2__ 1
++// CHECK_BDVER3_M64: #define __SSE_MATH__ 1
++// CHECK_BDVER3_M64: #define __SSE__ 1
++// CHECK_BDVER3_M64: #define __SSSE3__ 1
++// CHECK_BDVER3_M64: #define __TBM__ 1
++// CHECK_BDVER3_M64: #define __XOP__ 1
++// CHECK_BDVER3_M64: #define __XSAVEOPT__ 1
++// CHECK_BDVER3_M64: #define __XSAVE__ 1
++// CHECK_BDVER3_M64: #define __amd64 1
++// CHECK_BDVER3_M64: #define __amd64__ 1
++// CHECK_BDVER3_M64: #define __bdver3 1
++// CHECK_BDVER3_M64: #define __bdver3__ 1
++// CHECK_BDVER3_M64: #define __tune_bdver3__ 1
++// CHECK_BDVER3_M64: #define __x86_64 1
++// CHECK_BDVER3_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=bdver4 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER4_M32
++// CHECK_BDVER4_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER4_M32-NOT: #define __3dNOW__ 1
++// CHECK_BDVER4_M32: #define __AES__ 1
++// CHECK_BDVER4_M32: #define __AVX2__ 1
++// CHECK_BDVER4_M32: #define __AVX__ 1
++// CHECK_BDVER4_M32: #define __BMI2__ 1
++// CHECK_BDVER4_M32: #define __BMI__ 1
++// CHECK_BDVER4_M32: #define __F16C__ 1
++// CHECK_BDVER4_M32: #define __FMA4__ 1
++// CHECK_BDVER4_M32: #define __FMA__ 1
++// CHECK_BDVER4_M32: #define __FSGSBASE__ 1
++// CHECK_BDVER4_M32: #define __LWP__ 1
++// CHECK_BDVER4_M32: #define __LZCNT__ 1
++// CHECK_BDVER4_M32: #define __MMX__ 1
++// CHECK_BDVER4_M32: #define __MOVBE__ 1
++// CHECK_BDVER4_M32: #define __PCLMUL__ 1
++// CHECK_BDVER4_M32: #define __POPCNT__ 1
++// CHECK_BDVER4_M32: #define __PRFCHW__ 1
++// CHECK_BDVER4_M32: #define __RDRND__ 1
++// CHECK_BDVER4_M32: #define __SSE2_MATH__ 1
++// CHECK_BDVER4_M32: #define __SSE2__ 1
++// CHECK_BDVER4_M32: #define __SSE3__ 1
++// CHECK_BDVER4_M32: #define __SSE4A__ 1
++// CHECK_BDVER4_M32: #define __SSE4_1__ 1
++// CHECK_BDVER4_M32: #define __SSE4_2__ 1
++// CHECK_BDVER4_M32: #define __SSE_MATH__ 1
++// CHECK_BDVER4_M32: #define __SSE__ 1
++// CHECK_BDVER4_M32: #define __SSSE3__ 1
++// CHECK_BDVER4_M32: #define __TBM__ 1
++// CHECK_BDVER4_M32: #define __XOP__ 1
++// CHECK_BDVER4_M32: #define __XSAVE__ 1
++// CHECK_BDVER4_M32: #define __bdver4 1
++// CHECK_BDVER4_M32: #define __bdver4__ 1
++// CHECK_BDVER4_M32: #define __i386 1
++// CHECK_BDVER4_M32: #define __i386__ 1
++// CHECK_BDVER4_M32: #define __tune_bdver4__ 1
++
++// RUN: %clang -march=bdver4 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_BDVER4_M64
++// CHECK_BDVER4_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_BDVER4_M64-NOT: #define __3dNOW__ 1
++// CHECK_BDVER4_M64: #define __AES__ 1
++// CHECK_BDVER4_M64: #define __AVX2__ 1
++// CHECK_BDVER4_M64: #define __AVX__ 1
++// CHECK_BDVER4_M64: #define __BMI2__ 1
++// CHECK_BDVER4_M64: #define __BMI__ 1
++// CHECK_BDVER4_M64: #define __F16C__ 1
++// CHECK_BDVER4_M64: #define __FMA4__ 1
++// CHECK_BDVER4_M64: #define __FMA__ 1
++// CHECK_BDVER4_M64: #define __FSGSBASE__ 1
++// CHECK_BDVER4_M64: #define __LWP__ 1
++// CHECK_BDVER4_M64: #define __LZCNT__ 1
++// CHECK_BDVER4_M64: #define __MMX__ 1
++// CHECK_BDVER4_M64: #define __MOVBE__ 1
++// CHECK_BDVER4_M64: #define __PCLMUL__ 1
++// CHECK_BDVER4_M64: #define __POPCNT__ 1
++// CHECK_BDVER4_M64: #define __PRFCHW__ 1
++// CHECK_BDVER4_M64: #define __RDRND__ 1
++// CHECK_BDVER4_M64: #define __SSE2_MATH__ 1
++// CHECK_BDVER4_M64: #define __SSE2__ 1
++// CHECK_BDVER4_M64: #define __SSE3__ 1
++// CHECK_BDVER4_M64: #define __SSE4A__ 1
++// CHECK_BDVER4_M64: #define __SSE4_1__ 1
++// CHECK_BDVER4_M64: #define __SSE4_2__ 1
++// CHECK_BDVER4_M64: #define __SSE_MATH__ 1
++// CHECK_BDVER4_M64: #define __SSE__ 1
++// CHECK_BDVER4_M64: #define __SSSE3__ 1
++// CHECK_BDVER4_M64: #define __TBM__ 1
++// CHECK_BDVER4_M64: #define __XOP__ 1
++// CHECK_BDVER4_M64: #define __XSAVE__ 1
++// CHECK_BDVER4_M64: #define __amd64 1
++// CHECK_BDVER4_M64: #define __amd64__ 1
++// CHECK_BDVER4_M64: #define __bdver4 1
++// CHECK_BDVER4_M64: #define __bdver4__ 1
++// CHECK_BDVER4_M64: #define __tune_bdver4__ 1
++// CHECK_BDVER4_M64: #define __x86_64 1
++// CHECK_BDVER4_M64: #define __x86_64__ 1
++
++// RUN: %clang -march=znver1 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER1_M32
++// CHECK_ZNVER1_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_ZNVER1_M32-NOT: #define __3dNOW__ 1
++// CHECK_ZNVER1_M32: #define __ADX__ 1
++// CHECK_ZNVER1_M32: #define __AES__ 1
++// CHECK_ZNVER1_M32: #define __AVX2__ 1
++// CHECK_ZNVER1_M32: #define __AVX__ 1
++// CHECK_ZNVER1_M32: #define __BMI2__ 1
++// CHECK_ZNVER1_M32: #define __BMI__ 1
++// CHECK_ZNVER1_M32: #define __CLFLUSHOPT__ 1
++// CHECK_ZNVER1_M32: #define __CLZERO__ 1
++// CHECK_ZNVER1_M32: #define __F16C__ 1
++// CHECK_ZNVER1_M32-NOT: #define __FMA4__ 1
++// CHECK_ZNVER1_M32: #define __FMA__ 1
++// CHECK_ZNVER1_M32: #define __FSGSBASE__ 1
++// CHECK_ZNVER1_M32: #define __LZCNT__ 1
++// CHECK_ZNVER1_M32: #define __MMX__ 1
++// CHECK_ZNVER1_M32: #define __MOVBE__ 1
++// CHECK_ZNVER1_M32: #define __PCLMUL__ 1
++// CHECK_ZNVER1_M32: #define __POPCNT__ 1
++// CHECK_ZNVER1_M32: #define __PRFCHW__ 1
++// CHECK_ZNVER1_M32: #define __RDRND__ 1
++// CHECK_ZNVER1_M32: #define __RDSEED__ 1
++// CHECK_ZNVER1_M32: #define __SHA__ 1
++// CHECK_ZNVER1_M32: #define __SSE2_MATH__ 1
++// CHECK_ZNVER1_M32: #define __SSE2__ 1
++// CHECK_ZNVER1_M32: #define __SSE3__ 1
++// CHECK_ZNVER1_M32: #define __SSE4A__ 1
++// CHECK_ZNVER1_M32: #define __SSE4_1__ 1
++// CHECK_ZNVER1_M32: #define __SSE4_2__ 1
++// CHECK_ZNVER1_M32: #define __SSE_MATH__ 1
++// CHECK_ZNVER1_M32: #define __SSE__ 1
++// CHECK_ZNVER1_M32: #define __SSSE3__ 1
++// CHECK_ZNVER1_M32-NOT: #define __TBM__ 1
++// CHECK_ZNVER1_M32-NOT: #define __XOP__ 1
++// CHECK_ZNVER1_M32: #define __XSAVEC__ 1
++// CHECK_ZNVER1_M32: #define __XSAVEOPT__ 1
++// CHECK_ZNVER1_M32: #define __XSAVES__ 1
++// CHECK_ZNVER1_M32: #define __XSAVE__ 1
++// CHECK_ZNVER1_M32: #define __i386 1
++// CHECK_ZNVER1_M32: #define __i386__ 1
++// CHECK_ZNVER1_M32: #define __tune_znver1__ 1
++// CHECK_ZNVER1_M32: #define __znver1 1
++// CHECK_ZNVER1_M32: #define __znver1__ 1
++
++// RUN: %clang -march=znver1 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER1_M64
++// CHECK_ZNVER1_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_ZNVER1_M64-NOT: #define __3dNOW__ 1
++// CHECK_ZNVER1_M64: #define __ADX__ 1
++// CHECK_ZNVER1_M64: #define __AES__ 1
++// CHECK_ZNVER1_M64: #define __AVX2__ 1
++// CHECK_ZNVER1_M64: #define __AVX__ 1
++// CHECK_ZNVER1_M64: #define __BMI2__ 1
++// CHECK_ZNVER1_M64: #define __BMI__ 1
++// CHECK_ZNVER1_M64: #define __CLFLUSHOPT__ 1
++// CHECK_ZNVER1_M64: #define __CLZERO__ 1
++// CHECK_ZNVER1_M64: #define __F16C__ 1
++// CHECK_ZNVER1_M64-NOT: #define __FMA4__ 1
++// CHECK_ZNVER1_M64: #define __FMA__ 1
++// CHECK_ZNVER1_M64: #define __FSGSBASE__ 1
++// CHECK_ZNVER1_M64: #define __LAHF_SAHF__ 1
++// CHECK_ZNVER1_M64: #define __LZCNT__ 1
++// CHECK_ZNVER1_M64: #define __MMX__ 1
++// CHECK_ZNVER1_M64: #define __MOVBE__ 1
++// CHECK_ZNVER1_M64: #define __PCLMUL__ 1
++// CHECK_ZNVER1_M64: #define __POPCNT__ 1
++// CHECK_ZNVER1_M64: #define __PRFCHW__ 1
++// CHECK_ZNVER1_M64: #define __RDRND__ 1
++// CHECK_ZNVER1_M64: #define __RDSEED__ 1
++// CHECK_ZNVER1_M64: #define __SHA__ 1
++// CHECK_ZNVER1_M64: #define __SSE2_MATH__ 1
++// CHECK_ZNVER1_M64: #define __SSE2__ 1
++// CHECK_ZNVER1_M64: #define __SSE3__ 1
++// CHECK_ZNVER1_M64: #define __SSE4A__ 1
++// CHECK_ZNVER1_M64: #define __SSE4_1__ 1
++// CHECK_ZNVER1_M64: #define __SSE4_2__ 1
++// CHECK_ZNVER1_M64: #define __SSE_MATH__ 1
++// CHECK_ZNVER1_M64: #define __SSE__ 1
++// CHECK_ZNVER1_M64: #define __SSSE3__ 1
++// CHECK_ZNVER1_M64-NOT: #define __TBM__ 1
++// CHECK_ZNVER1_M64-NOT: #define __XOP__ 1
++// CHECK_ZNVER1_M64: #define __XSAVEC__ 1
++// CHECK_ZNVER1_M64: #define __XSAVEOPT__ 1
++// CHECK_ZNVER1_M64: #define __XSAVES__ 1
++// CHECK_ZNVER1_M64: #define __XSAVE__ 1
++// CHECK_ZNVER1_M64: #define __amd64 1
++// CHECK_ZNVER1_M64: #define __amd64__ 1
++// CHECK_ZNVER1_M64: #define __tune_znver1__ 1
++// CHECK_ZNVER1_M64: #define __x86_64 1
++// CHECK_ZNVER1_M64: #define __x86_64__ 1
++// CHECK_ZNVER1_M64: #define __znver1 1
++// CHECK_ZNVER1_M64: #define __znver1__ 1
++
++// RUN: %clang -march=znver2 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER2_M32
++// CHECK_ZNVER2_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_ZNVER2_M32-NOT: #define __3dNOW__ 1
++// CHECK_ZNVER2_M32: #define __ADX__ 1
++// CHECK_ZNVER2_M32: #define __AES__ 1
++// CHECK_ZNVER2_M32: #define __AVX2__ 1
++// CHECK_ZNVER2_M32: #define __AVX__ 1
++// CHECK_ZNVER2_M32: #define __BMI2__ 1
++// CHECK_ZNVER2_M32: #define __BMI__ 1
++// CHECK_ZNVER2_M32: #define __CLFLUSHOPT__ 1
++// CHECK_ZNVER2_M32: #define __CLWB__ 1
++// CHECK_ZNVER2_M32: #define __CLZERO__ 1
++// CHECK_ZNVER2_M32: #define __F16C__ 1
++// CHECK_ZNVER2_M32-NOT: #define __FMA4__ 1
++// CHECK_ZNVER2_M32: #define __FMA__ 1
++// CHECK_ZNVER2_M32: #define __FSGSBASE__ 1
++// CHECK_ZNVER2_M32: #define __LAHF_SAHF__ 1
++// CHECK_ZNVER2_M32: #define __LZCNT__ 1
++// CHECK_ZNVER2_M32: #define __MMX__ 1
++// CHECK_ZNVER2_M32: #define __PCLMUL__ 1
++// CHECK_ZNVER2_M32: #define __POPCNT__ 1
++// CHECK_ZNVER2_M32: #define __PRFCHW__ 1
++// CHECK_ZNVER2_M32: #define __RDPID__ 1
++// CHECK_ZNVER2_M32: #define __RDRND__ 1
++// CHECK_ZNVER2_M32: #define __RDSEED__ 1
++// CHECK_ZNVER2_M32: #define __SHA__ 1
++// CHECK_ZNVER2_M32: #define __SSE2_MATH__ 1
++// CHECK_ZNVER2_M32: #define __SSE2__ 1
++// CHECK_ZNVER2_M32: #define __SSE3__ 1
++// CHECK_ZNVER2_M32: #define __SSE4A__ 1
++// CHECK_ZNVER2_M32: #define __SSE4_1__ 1
++// CHECK_ZNVER2_M32: #define __SSE4_2__ 1
++// CHECK_ZNVER2_M32: #define __SSE_MATH__ 1
++// CHECK_ZNVER2_M32: #define __SSE__ 1
++// CHECK_ZNVER2_M32: #define __SSSE3__ 1
++// CHECK_ZNVER2_M32-NOT: #define __TBM__ 1
++// CHECK_ZNVER2_M32: #define __WBNOINVD__ 1
++// CHECK_ZNVER2_M32-NOT: #define __XOP__ 1
++// CHECK_ZNVER2_M32: #define __XSAVEC__ 1
++// CHECK_ZNVER2_M32: #define __XSAVEOPT__ 1
++// CHECK_ZNVER2_M32: #define __XSAVES__ 1
++// CHECK_ZNVER2_M32: #define __XSAVE__ 1
++// CHECK_ZNVER2_M32: #define __i386 1
++// CHECK_ZNVER2_M32: #define __i386__ 1
++// CHECK_ZNVER2_M32: #define __tune_znver2__ 1
++// CHECK_ZNVER2_M32: #define __znver2 1
++// CHECK_ZNVER2_M32: #define __znver2__ 1
++
++// RUN: %clang -march=znver2 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER2_M64
++// CHECK_ZNVER2_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_ZNVER2_M64-NOT: #define __3dNOW__ 1
++// CHECK_ZNVER2_M64: #define __ADX__ 1
++// CHECK_ZNVER2_M64: #define __AES__ 1
++// CHECK_ZNVER2_M64: #define __AVX2__ 1
++// CHECK_ZNVER2_M64: #define __AVX__ 1
++// CHECK_ZNVER2_M64: #define __BMI2__ 1
++// CHECK_ZNVER2_M64: #define __BMI__ 1
++// CHECK_ZNVER2_M64: #define __CLFLUSHOPT__ 1
++// CHECK_ZNVER2_M64: #define __CLWB__ 1
++// CHECK_ZNVER2_M64: #define __CLZERO__ 1
++// CHECK_ZNVER2_M64: #define __F16C__ 1
++// CHECK_ZNVER2_M64-NOT: #define __FMA4__ 1
++// CHECK_ZNVER2_M64: #define __FMA__ 1
++// CHECK_ZNVER2_M64: #define __FSGSBASE__ 1
++// CHECK_ZNVER2_M64: #define __LAHF_SAHF__ 1
++// CHECK_ZNVER2_M64: #define __LZCNT__ 1
++// CHECK_ZNVER2_M64: #define __MMX__ 1
++// CHECK_ZNVER2_M64: #define __PCLMUL__ 1
++// CHECK_ZNVER2_M64: #define __POPCNT__ 1
++// CHECK_ZNVER2_M64: #define __PRFCHW__ 1
++// CHECK_ZNVER2_M64: #define __RDPID__ 1
++// CHECK_ZNVER2_M64: #define __RDRND__ 1
++// CHECK_ZNVER2_M64: #define __RDSEED__ 1
++// CHECK_ZNVER2_M64: #define __SHA__ 1
++// CHECK_ZNVER2_M64: #define __SSE2_MATH__ 1
++// CHECK_ZNVER2_M64: #define __SSE2__ 1
++// CHECK_ZNVER2_M64: #define __SSE3__ 1
++// CHECK_ZNVER2_M64: #define __SSE4A__ 1
++// CHECK_ZNVER2_M64: #define __SSE4_1__ 1
++// CHECK_ZNVER2_M64: #define __SSE4_2__ 1
++// CHECK_ZNVER2_M64: #define __SSE_MATH__ 1
++// CHECK_ZNVER2_M64: #define __SSE__ 1
++// CHECK_ZNVER2_M64: #define __SSSE3__ 1
++// CHECK_ZNVER2_M64-NOT: #define __TBM__ 1
++// CHECK_ZNVER2_M64: #define __WBNOINVD__ 1
++// CHECK_ZNVER2_M64-NOT: #define __XOP__ 1
++// CHECK_ZNVER2_M64: #define __XSAVEC__ 1
++// CHECK_ZNVER2_M64: #define __XSAVEOPT__ 1
++// CHECK_ZNVER2_M64: #define __XSAVES__ 1
++// CHECK_ZNVER2_M64: #define __XSAVE__ 1
++// CHECK_ZNVER2_M64: #define __amd64 1
++// CHECK_ZNVER2_M64: #define __amd64__ 1
++// CHECK_ZNVER2_M64: #define __tune_znver2__ 1
++// CHECK_ZNVER2_M64: #define __x86_64 1
++// CHECK_ZNVER2_M64: #define __x86_64__ 1
++// CHECK_ZNVER2_M64: #define __znver2 1
++// CHECK_ZNVER2_M64: #define __znver2__ 1
++
++// RUN: %clang -march=znver3 -m32 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER3_M32
++// CHECK_ZNVER3_M32-NOT: #define __3dNOW_A__ 1
++// CHECK_ZNVER3_M32-NOT: #define __3dNOW__ 1
++// CHECK_ZNVER3_M32: #define __ADX__ 1
++// CHECK_ZNVER3_M32: #define __AES__ 1
++// CHECK_ZNVER3_M32: #define __AVX2__ 1
++// CHECK_ZNVER3_M32: #define __AVX__ 1
++// CHECK_ZNVER3_M32: #define __BMI2__ 1
++// CHECK_ZNVER3_M32: #define __BMI__ 1
++// CHECK_ZNVER3_M32: #define __CLFLUSHOPT__ 1
++// CHECK_ZNVER3_M32: #define __CLWB__ 1
++// CHECK_ZNVER3_M32: #define __CLZERO__ 1
++// CHECK_ZNVER3_M32: #define __F16C__ 1
++// CHECK_ZNVER3_M32-NOT: #define __FMA4__ 1
++// CHECK_ZNVER3_M32: #define __FMA__ 1
++// CHECK_ZNVER3_M32: #define __FSGSBASE__ 1
++// CHECK_ZNVER3_M32: #define __LZCNT__ 1
++// CHECK_ZNVER3_M32: #define __MMX__ 1
++// CHECK_ZNVER3_M32: #define __PCLMUL__ 1
++// CHECK_ZNVER3_M32: #define __PKU__ 1
++// CHECK_ZNVER3_M32: #define __POPCNT__ 1
++// CHECK_ZNVER3_M32: #define __PRFCHW__ 1
++// CHECK_ZNVER3_M32: #define __RDPID__ 1
++// CHECK_ZNVER3_M32: #define __RDRND__ 1
++// CHECK_ZNVER3_M32: #define __RDSEED__ 1
++// CHECK_ZNVER3_M32: #define __SHA__ 1
++// CHECK_ZNVER3_M32: #define __SSE2_MATH__ 1
++// CHECK_ZNVER3_M32: #define __SSE2__ 1
++// CHECK_ZNVER3_M32: #define __SSE3__ 1
++// CHECK_ZNVER3_M32: #define __SSE4A__ 1
++// CHECK_ZNVER3_M32: #define __SSE4_1__ 1
++// CHECK_ZNVER3_M32: #define __SSE4_2__ 1
++// CHECK_ZNVER3_M32: #define __SSE_MATH__ 1
++// CHECK_ZNVER3_M32: #define __SSE__ 1
++// CHECK_ZNVER3_M32: #define __SSSE3__ 1
++// CHECK_ZNVER3_M32-NOT: #define __TBM__ 1
++// CHECK_ZNVER3_M32: #define __WBNOINVD__ 1
++// CHECK_ZNVER3_M32-NOT: #define __XOP__ 1
++// CHECK_ZNVER3_M32: #define __XSAVEC__ 1
++// CHECK_ZNVER3_M32: #define __XSAVEOPT__ 1
++// CHECK_ZNVER3_M32: #define __XSAVES__ 1
++// CHECK_ZNVER3_M32: #define __XSAVE__ 1
++// CHECK_ZNVER3_M32: #define __i386 1
++// CHECK_ZNVER3_M32: #define __i386__ 1
++// CHECK_ZNVER3_M32: #define __tune_znver3__ 1
++// CHECK_ZNVER3_M32: #define __znver3 1
++// CHECK_ZNVER3_M32: #define __znver3__ 1
++
++// RUN: %clang -march=znver3 -m64 -E -dM %s -o - 2>&1 \
++// RUN: -target i386-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_ZNVER3_M64
++// CHECK_ZNVER3_M64-NOT: #define __3dNOW_A__ 1
++// CHECK_ZNVER3_M64-NOT: #define __3dNOW__ 1
++// CHECK_ZNVER3_M64: #define __ADX__ 1
++// CHECK_ZNVER3_M64: #define __AES__ 1
++// CHECK_ZNVER3_M64: #define __AVX2__ 1
++// CHECK_ZNVER3_M64: #define __AVX__ 1
++// CHECK_ZNVER3_M64: #define __BMI2__ 1
++// CHECK_ZNVER3_M64: #define __BMI__ 1
++// CHECK_ZNVER3_M64: #define __CLFLUSHOPT__ 1
++// CHECK_ZNVER3_M64: #define __CLWB__ 1
++// CHECK_ZNVER3_M64: #define __CLZERO__ 1
++// CHECK_ZNVER3_M64: #define __F16C__ 1
++// CHECK_ZNVER3_M64-NOT: #define __FMA4__ 1
++// CHECK_ZNVER3_M64: #define __FMA__ 1
++// CHECK_ZNVER3_M64: #define __FSGSBASE__ 1
++// CHECK_ZNVER3_M64: #define __LZCNT__ 1
++// CHECK_ZNVER3_M64: #define __MMX__ 1
++// CHECK_ZNVER3_M64: #define __PCLMUL__ 1
++// CHECK_ZNVER3_M64: #define __PKU__ 1
++// CHECK_ZNVER3_M64: #define __POPCNT__ 1
++// CHECK_ZNVER3_M64: #define __PRFCHW__ 1
++// CHECK_ZNVER3_M64: #define __RDPID__ 1
++// CHECK_ZNVER3_M64: #define __RDRND__ 1
++// CHECK_ZNVER3_M64: #define __RDSEED__ 1
++// CHECK_ZNVER3_M64: #define __SHA__ 1
++// CHECK_ZNVER3_M64: #define __SSE2_MATH__ 1
++// CHECK_ZNVER3_M64: #define __SSE2__ 1
++// CHECK_ZNVER3_M64: #define __SSE3__ 1
++// CHECK_ZNVER3_M64: #define __SSE4A__ 1
++// CHECK_ZNVER3_M64: #define __SSE4_1__ 1
++// CHECK_ZNVER3_M64: #define __SSE4_2__ 1
++// CHECK_ZNVER3_M64: #define __SSE_MATH__ 1
++// CHECK_ZNVER3_M64: #define __SSE__ 1
++// CHECK_ZNVER3_M64: #define __SSSE3__ 1
++// CHECK_ZNVER3_M64-NOT: #define __TBM__ 1
++// CHECK_ZNVER3_M64: #define __VAES__ 1
++// CHECK_ZNVER3_M64: #define __VPCLMULQDQ__ 1
++// CHECK_ZNVER3_M64: #define __WBNOINVD__ 1
++// CHECK_ZNVER3_M64-NOT: #define __XOP__ 1
++// CHECK_ZNVER3_M64: #define __XSAVEC__ 1
++// CHECK_ZNVER3_M64: #define __XSAVEOPT__ 1
++// CHECK_ZNVER3_M64: #define __XSAVES__ 1
++// CHECK_ZNVER3_M64: #define __XSAVE__ 1
++// CHECK_ZNVER3_M64: #define __amd64 1
++// CHECK_ZNVER3_M64: #define __amd64__ 1
++// CHECK_ZNVER3_M64: #define __tune_znver3__ 1
++// CHECK_ZNVER3_M64: #define __x86_64 1
++// CHECK_ZNVER3_M64: #define __x86_64__ 1
++// CHECK_ZNVER3_M64: #define __znver3 1
++// CHECK_ZNVER3_M64: #define __znver3__ 1
++
++// End X86/GCC/Linux tests ------------------
++
++// Begin PPC/GCC/Linux tests ----------------
++// Check that VSX also turns on altivec.
++// RUN: %clang -mvsx -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_VSX_M32
++// CHECK_PPC_VSX_M32: #define __ALTIVEC__ 1
++// CHECK_PPC_VSX_M32: #define __VSX__ 1
++
++// RUN: %clang -mvsx -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_VSX_M64
++// CHECK_PPC_VSX_M64: #define __VSX__ 1
++
++// RUN: %clang -mpower8-vector -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_POWER8_VECTOR_M64
++// CHECK_PPC_POWER8_VECTOR_M64: #define __POWER8_VECTOR__ 1
++
++// RUN: %clang -mpower9-vector -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_POWER9_VECTOR_M64
++// CHECK_PPC_POWER9_VECTOR_M64: #define __POWER9_VECTOR__ 1
++
++// RUN: %clang -mcrypto -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_CRYPTO_M64
++// CHECK_PPC_CRYPTO_M64: #define __CRYPTO__ 1
++
++// HTM is available on power8 or later which includes all of powerpc64le as an
++// ABI choice. Test that, the cpus, and the option.
++// RUN: %clang -mhtm -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM
++// RUN: %clang -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64le-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM
++// RUN: %clang -mcpu=pwr8 -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM
++// RUN: %clang -mcpu=pwr9 -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_HTM
++// CHECK_PPC_HTM: #define __HTM__ 1
++
++// RUN: %clang -mcpu=ppc64 -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-unknown \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS
++// RUN: %clang -mcpu=pwr8 -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64-unknown-unknown \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS
++// RUN: %clang -E -dM %s -o - 2>&1 \
++// RUN: -target powerpc64le-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_PPC_GCC_ATOMICS
++// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_PPC_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++
++// End PPC/GCC/Linux tests ------------------
++
++// Begin Sparc/GCC/Linux tests ----------------
++
++// RUN: %clang -E -dM %s -o - 2>&1 \
++// RUN: -target sparc-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC
++// CHECK_SPARC: #define __BIG_ENDIAN__ 1
++// CHECK_SPARC: #define __sparc 1
++// CHECK_SPARC: #define __sparc__ 1
++// CHECK_SPARC-NOT: #define __sparcv9 1
++// CHECK_SPARC-NOT: #define __sparcv9__ 1
++// CHECK_SPARC: #define __sparcv8 1
++// CHECK_SPARC-NOT: #define __sparcv9 1
++// CHECK_SPARC-NOT: #define __sparcv9__ 1
++
++// RUN: %clang -mcpu=v9 -E -dM %s -o - 2>&1 \
++// RUN: -target sparc-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC-V9
++// CHECK_SPARC-V9-NOT: #define __sparcv8 1
++// CHECK_SPARC-V9-NOT: #define __sparcv8__ 1
++// CHECK_SPARC-V9: #define __sparc_v9__ 1
++// CHECK_SPARC-V9: #define __sparcv9 1
++// CHECK_SPARC-V9: #define __sparcv9__ 1
++
++// RUN: %clang -E -dM %s -o - 2>&1 \
++// RUN: -target sparc-sun-solaris \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC_SOLARIS_GCC_ATOMICS
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++
++// RUN: %clang -mcpu=v8 -E -dM %s -o - 2>&1 \
++// RUN: -target sparc-sun-solaris \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SPARC_SOLARIS_GCC_ATOMICS-V8-NOT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++
++// RUN: %clang -E -dM %s -o - 2>&1 \
++// RUN: -target sparcel-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCEL
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=myriad2 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=myriad2.1 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-1 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=myriad2.2 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=myriad2.3 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-3 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2100 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-1 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2150 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2155 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2450 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2455 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2x5x 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-2 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2080 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-3 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2085 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-3 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2480 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-3 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2485 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-3 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// RUN: %clang -E -dM %s -o - -target sparcel-myriad -mcpu=ma2x8x 2>&1 \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_MYRIAD2-3 \
++// RUN: -check-prefix=CHECK_SPARCEL -check-prefix=CHECK_MYRIAD2
++// CHECK_SPARCEL: #define __LITTLE_ENDIAN__ 1
++// CHECK_MYRIAD2: #define __leon__ 1
++// CHECK_MYRIAD2-1: #define __myriad2 1
++// CHECK_MYRIAD2-1: #define __myriad2__ 1
++// CHECK_MYRIAD2-2: #define __ma2x5x 1
++// CHECK_MYRIAD2-2: #define __ma2x5x__ 1
++// CHECK_MYRIAD2-2: #define __myriad2 2
++// CHECK_MYRIAD2-2: #define __myriad2__ 2
++// CHECK_MYRIAD2-3: #define __ma2x8x 1
++// CHECK_MYRIAD2-3: #define __ma2x8x__ 1
++// CHECK_MYRIAD2-3: #define __myriad2 3
++// CHECK_MYRIAD2-3: #define __myriad2__ 3
++// CHECK_SPARCEL: #define __sparc 1
++// CHECK_SPARCEL: #define __sparc__ 1
++// CHECK_MYRIAD2: #define __sparc_v8__ 1
++// CHECK_SPARCEL: #define __sparcv8 1
++
++// RUN: %clang -E -dM %s -o - 2>&1 \
++// RUN: -target sparcv9-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCV9
++// CHECK_SPARCV9: #define __BIG_ENDIAN__ 1
++// CHECK_SPARCV9: #define __sparc 1
++// CHECK_SPARCV9: #define __sparc64__ 1
++// CHECK_SPARCV9: #define __sparc__ 1
++// CHECK_SPARCV9: #define __sparc_v9__ 1
++// CHECK_SPARCV9: #define __sparcv9 1
++// CHECK_SPARCV9: #define __sparcv9__ 1
++
++// RUN: %clang -E -dM %s -o - 2>&1 \
++// RUN: -target sparcv9-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SPARCV9_GCC_ATOMICS
++// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SPARCV9_GCC_ATOMICS: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++
++// Begin SystemZ/GCC/Linux tests ----------------
++
++// RUN: %clang -march=arch8 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH8
++// RUN: %clang -march=z10 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH8
++// CHECK_SYSTEMZ_ARCH8: #define __ARCH__ 8
++// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SYSTEMZ_ARCH8: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++// CHECK_SYSTEMZ_ARCH8: #define __LONG_DOUBLE_128__ 1
++// CHECK_SYSTEMZ_ARCH8: #define __s390__ 1
++// CHECK_SYSTEMZ_ARCH8: #define __s390x__ 1
++// CHECK_SYSTEMZ_ARCH8: #define __zarch__ 1
++
++// RUN: %clang -march=arch9 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH9
++// RUN: %clang -march=z196 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH9
++// CHECK_SYSTEMZ_ARCH9: #define __ARCH__ 9
++// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SYSTEMZ_ARCH9: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++// CHECK_SYSTEMZ_ARCH9: #define __LONG_DOUBLE_128__ 1
++// CHECK_SYSTEMZ_ARCH9: #define __s390__ 1
++// CHECK_SYSTEMZ_ARCH9: #define __s390x__ 1
++// CHECK_SYSTEMZ_ARCH9: #define __zarch__ 1
++
++// RUN: %clang -march=arch10 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH10
++// RUN: %clang -march=zEC12 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH10
++// CHECK_SYSTEMZ_ARCH10: #define __ARCH__ 10
++// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SYSTEMZ_ARCH10: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++// CHECK_SYSTEMZ_ARCH10: #define __HTM__ 1
++// CHECK_SYSTEMZ_ARCH10: #define __LONG_DOUBLE_128__ 1
++// CHECK_SYSTEMZ_ARCH10: #define __s390__ 1
++// CHECK_SYSTEMZ_ARCH10: #define __s390x__ 1
++// CHECK_SYSTEMZ_ARCH10: #define __zarch__ 1
++
++// RUN: %clang -march=arch11 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH11
++// RUN: %clang -march=z13 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH11
++// CHECK_SYSTEMZ_ARCH11: #define __ARCH__ 11
++// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SYSTEMZ_ARCH11: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++// CHECK_SYSTEMZ_ARCH11: #define __HTM__ 1
++// CHECK_SYSTEMZ_ARCH11: #define __LONG_DOUBLE_128__ 1
++// CHECK_SYSTEMZ_ARCH11: #define __VX__ 1
++// CHECK_SYSTEMZ_ARCH11: #define __s390__ 1
++// CHECK_SYSTEMZ_ARCH11: #define __s390x__ 1
++// CHECK_SYSTEMZ_ARCH11: #define __zarch__ 1
++
++// RUN: %clang -march=arch12 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH12
++// RUN: %clang -march=z14 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH12
++// CHECK_SYSTEMZ_ARCH12: #define __ARCH__ 12
++// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SYSTEMZ_ARCH12: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++// CHECK_SYSTEMZ_ARCH12: #define __HTM__ 1
++// CHECK_SYSTEMZ_ARCH12: #define __LONG_DOUBLE_128__ 1
++// CHECK_SYSTEMZ_ARCH12: #define __VX__ 1
++// CHECK_SYSTEMZ_ARCH12: #define __s390__ 1
++// CHECK_SYSTEMZ_ARCH12: #define __s390x__ 1
++// CHECK_SYSTEMZ_ARCH12: #define __zarch__ 1
++
++// RUN: %clang -march=arch13 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH13
++// RUN: %clang -march=z15 -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ARCH13
++// CHECK_SYSTEMZ_ARCH13: #define __ARCH__ 13
++// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
++// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
++// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
++// CHECK_SYSTEMZ_ARCH13: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
++// CHECK_SYSTEMZ_ARCH13: #define __HTM__ 1
++// CHECK_SYSTEMZ_ARCH13: #define __LONG_DOUBLE_128__ 1
++// CHECK_SYSTEMZ_ARCH13: #define __VX__ 1
++// CHECK_SYSTEMZ_ARCH13: #define __s390__ 1
++// CHECK_SYSTEMZ_ARCH13: #define __s390x__ 1
++// CHECK_SYSTEMZ_ARCH13: #define __zarch__ 1
++
++// RUN: %clang -mhtm -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_HTM
++// CHECK_SYSTEMZ_HTM: #define __HTM__ 1
++
++// RUN: %clang -mvx -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_VX
++// CHECK_SYSTEMZ_VX: #define __VX__ 1
++
++// RUN: %clang -fzvector -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZVECTOR
++// RUN: %clang -mzvector -E -dM %s -o - 2>&1 \
++// RUN: -target s390x-unknown-linux \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_SYSTEMZ_ZVECTOR
++// CHECK_SYSTEMZ_ZVECTOR: #define __VEC__ 10303
++
++// Begin amdgcn tests ----------------
++
++// RUN: %clang -march=amdgcn -E -dM %s -o - 2>&1 \
++// RUN: -target amdgcn-unknown-unknown \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_AMDGCN
++// CHECK_AMDGCN: #define __AMDGCN__ 1
++// CHECK_AMDGCN: #define __HAS_FMAF__ 1
++// CHECK_AMDGCN: #define __HAS_FP64__ 1
++// CHECK_AMDGCN: #define __HAS_LDEXPF__ 1
++
++// Begin r600 tests ----------------
++
++// RUN: %clang -march=amdgcn -E -dM %s -o - 2>&1 \
++// RUN: -target r600-unknown-unknown \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600
++// CHECK_R600: #define __R600__ 1
++// CHECK_R600-NOT: #define __HAS_FMAF__ 1
++
++// RUN: %clang -march=amdgcn -mcpu=cypress -E -dM %s -o - 2>&1 \
++// RUN: -target r600-unknown-unknown \
++// RUN: | FileCheck -match-full-lines %s -check-prefix=CHECK_R600_FP64
++// CHECK_R600_FP64-DAG: #define __R600__ 1
++// CHECK_R600_FP64-DAG: #define __HAS_FMAF__ 1
--- /dev/null
+--- llvm-toolchain-12-12.0.1~+rc1.orig/compiler-rt/cmake/base-config-ix.cmake
++++ llvm-toolchain-12-12.0.1~+rc1/compiler-rt/cmake/base-config-ix.cmake
+@@ -189,8 +189,12 @@ macro(test_targets)
+ elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "s390x")
+ test_target_arch(s390x "" "")
+ elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "sparc")
+- test_target_arch(sparc "" "-m32")
+- test_target_arch(sparcv9 "" "-m64")
++ if (CMAKE_SIZEOF_VOID_P EQUAL 4)
++ test_target_arch(sparc "" "-mcpu=v9" "-m32")
++ append("-latomic" CMAKE_LD_FLAGS)
++ else()
++ test_target_arch(sparcv9 "" "-m64")
++ endif()
+ elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "mipsel|mips64el")
+ # Gcc doesn't accept -m32/-m64 so we do the next best thing and use
+ # -mips32r2/-mips64r2. We don't use -mips1/-mips3 because we want to match
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab.orig/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
++++ llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp
+@@ -25,6 +25,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>
+@@ -452,7 +456,7 @@ static SymbolizerTool *ChooseExternalSym
+ return new(*allocator) AtosSymbolizer(found_path, allocator);
+ }
+ #endif // SANITIZER_APPLE
+- 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);
+ }
+Index: llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab/compiler-rt/lib/sanitizer_common/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab.orig/compiler-rt/lib/sanitizer_common/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220525112612+8919447c71ab/compiler-rt/lib/sanitizer_common/CMakeLists.txt
+@@ -202,6 +202,7 @@ set(SANITIZER_IMPL_HEADERS
+ )
+
+ include_directories(..)
++include_directories(${LLVM_INCLUDE_DIR})
+
+ set(SANITIZER_COMMON_DEFINITIONS
+ HAVE_RPC_XDR_H=${HAVE_RPC_XDR_H})
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/utils/lit/lit/ProgressBar.py
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/llvm/utils/lit/lit/ProgressBar.py
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/llvm/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
+--- a/clang/include/clang/Driver/Distro.h
++++ b/clang/include/clang/Driver/Distro.h
+@@ -67,6 +67,7 @@ public:
+ UbuntuDisco,
+ UbuntuEoan,
+ UbuntuFocal,
++ UbuntuGroovy,
+ UnknownDistro
+ };
+
+@@ -120,7 +121,7 @@ public:
+ }
+
+ bool IsUbuntu() const {
+- return DistroVal >= UbuntuHardy && DistroVal <= UbuntuFocal;
++ return DistroVal >= UbuntuHardy && DistroVal <= UbuntuGroovy;
+ }
+
+ bool IsAlpineLinux() const {
+--- a/clang/lib/Driver/Distro.cpp
++++ b/clang/lib/Driver/Distro.cpp
+@@ -70,6 +70,7 @@ static Distro::DistroType DetectDistro(l
+ .Case("disco", Distro::UbuntuDisco)
+ .Case("eoan", Distro::UbuntuEoan)
+ .Case("focal", Distro::UbuntuFocal)
++ .Case("groovy", Distro::UbuntuGroovy)
+ .Default(Distro::UnknownDistro);
+ if (Version != Distro::UnknownDistro)
+ return Version;
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/lib/scudo/standalone/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/compiler-rt/lib/scudo/standalone/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/compiler-rt/lib/scudo/standalone/CMakeLists.txt
+@@ -145,6 +145,13 @@ if(COMPILER_RT_DEFAULT_TARGET_ARCH MATCH
+ list(APPEND SCUDO_LINK_LIBS atomic)
+ endif()
+
++if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips" OR
++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64" OR
++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mipsel" OR
++ CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "mips64el")
++ list(APPEND SCUDO_LINK_LIBS atomic)
++endif()
++
+ if(COMPILER_RT_HAS_SCUDO_STANDALONE)
+ add_compiler_rt_object_libraries(RTScudoStandalone
+ ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
--- /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_15~++20220407011631+46f0e2ceb487/clang/lib/Headers/unwind.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487.orig/clang/lib/Headers/unwind.h
++++ llvm-toolchain-snapshot_15~++20220407011631+46f0e2ceb487/clang/lib/Headers/unwind.h
+@@ -9,9 +9,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,
+@@ -39,6 +36,9 @@
+ # endif
+ #else
+
++#ifndef __CLANG_UNWIND_H
++#define __CLANG_UNWIND_H
++
+ #include <stdint.h>
+
+ #ifdef __cplusplus
+@@ -323,6 +323,7 @@ _Unwind_Ptr _Unwind_GetTextRelBase(struc
+ }
+ #endif
+
++#endif /* __CLANG_UNWIND_H */
++
+ #endif
+
+-#endif /* __CLANG_UNWIND_H */
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libunwind/CMakeLists.txt
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/libunwind/CMakeLists.txt
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/libunwind/CMakeLists.txt
+@@ -309,14 +309,17 @@ if (MSVC)
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+ endif()
+
+-if (C_SUPPORTS_COMMENT_LIB_PRAGMA)
+- if (LIBUNWIND_HAS_DL_LIB)
++list(APPEND LIBUNWIND_LINK_FLAGS "-ldl")
++list(APPEND LIBUNWIND_LINK_FLAGS "-lpthread")
++
++#if (C_SUPPORTS_COMMENT_LIB_PRAGMA)
++# if (LIBUNWIND_HAS_DL_LIB)
+ add_definitions(-D_LIBUNWIND_LINK_DL_LIB)
+- endif()
+- if (LIBUNWIND_HAS_PTHREAD_LIB)
++# endif()
++# if (LIBUNWIND_HAS_PTHREAD_LIB)
+ add_definitions(-D_LIBUNWIND_LINK_PTHREAD_LIB)
+- endif()
+-endif()
++# endif()
++#endif()
+
+ #===============================================================================
+ # Setup Source Code
--- /dev/null
+--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
++++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
+@@ -369,6 +369,18 @@ ToolChain::RuntimeLibType WebAssembly::G
+ return ToolChain::RLT_CompilerRT;
+ }
+
++ToolChain::RuntimeLibType WebAssembly::GetRuntimeLibType(
++ const ArgList &Args) const {
++ if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) {
++ StringRef Value = A->getValue();
++ if (Value != "compiler-rt")
++ getDriver().Diag(clang::diag::err_drv_unsupported_rtlib_for_platform)
++ << Value << "WebAssembly";
++ }
++
++ return ToolChain::RLT_CompilerRT;
++}
++
+ ToolChain::CXXStdlibType
+ WebAssembly::GetCXXStdlibType(const ArgList &Args) const {
+ if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) {
+--- a/clang/lib/Driver/ToolChains/WebAssembly.h
++++ b/clang/lib/Driver/ToolChains/WebAssembly.h
+@@ -61,6 +61,7 @@ private:
+ llvm::opt::ArgStringList &CC1Args,
+ Action::OffloadKind DeviceOffloadKind) const override;
+ RuntimeLibType GetDefaultRuntimeLibType() const override;
++ RuntimeLibType GetRuntimeLibType(const llvm::opt::ArgList &Args) const override;
+ CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
+ void
+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
--- /dev/null
+--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
++++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
+@@ -174,7 +174,7 @@ WebAssembly::WebAssembly(const Driver &D
+
+ getProgramPaths().push_back(getDriver().getInstalledDir());
+
+- auto SysRoot = getDriver().SysRoot;
++ std::string SysRoot = computeSysRoot();
+ if (getTriple().getOS() == llvm::Triple::UnknownOS) {
+ // Theoretically an "unknown" OS should mean no standard libraries, however
+ // it could also mean that a custom set of libraries is in use, so just add
+@@ -402,6 +402,7 @@ void WebAssembly::AddClangSystemIncludeA
+ return;
+
+ const Driver &D = getDriver();
++ std::string SysRoot = computeSysRoot();
+
+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
+ SmallString<128> P(D.ResourceDir);
+@@ -427,10 +428,10 @@ void WebAssembly::AddClangSystemIncludeA
+
+ if (getTriple().getOS() != llvm::Triple::UnknownOS) {
+ const std::string MultiarchTriple =
+- getMultiarchTriple(D, getTriple(), D.SysRoot);
+- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include/" + MultiarchTriple);
++ getMultiarchTriple(D, getTriple(), SysRoot);
++ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/include/" + MultiarchTriple);
+ }
+- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include");
++ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/include");
+ }
+
+ void WebAssembly::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
+@@ -478,6 +479,17 @@ Tool *WebAssembly::buildLinker() const {
+ return new tools::wasm::Linker(*this);
+ }
+
++std::string WebAssembly::computeSysRoot() const {
++ if (!getDriver().SysRoot.empty())
++ return getDriver().SysRoot;
++
++ std::string Path = "/usr";
++ if (getVFS().exists(Path))
++ return Path;
++
++ return std::string();
++}
++
+ void WebAssembly::addLibCxxIncludePaths(
+ const llvm::opt::ArgList &DriverArgs,
+ llvm::opt::ArgStringList &CC1Args) const {
+--- a/clang/lib/Driver/ToolChains/WebAssembly.h
++++ b/clang/lib/Driver/ToolChains/WebAssembly.h
+@@ -89,6 +89,8 @@ private:
+ llvm::opt::ArgStringList &CC1Args) const;
+ void addLibStdCXXIncludePaths(const llvm::opt::ArgList &DriverArgs,
+ llvm::opt::ArgStringList &CC1Args) const;
++
++ std::string computeSysRoot() const override;
+ };
+
+ } // end namespace toolchains
--- /dev/null
+--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
++++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
+@@ -369,6 +369,18 @@ ToolChain::RuntimeLibType WebAssembly::G
+ return ToolChain::RLT_CompilerRT;
+ }
+
++ToolChain::RuntimeLibType WebAssembly::GetRuntimeLibType(
++ const ArgList &Args) const {
++ if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) {
++ StringRef Value = A->getValue();
++ if (Value != "compiler-rt")
++ getDriver().Diag(clang::diag::err_drv_unsupported_rtlib_for_platform)
++ << Value << "WebAssembly";
++ }
++
++ return ToolChain::RLT_CompilerRT;
++}
++
+ ToolChain::CXXStdlibType
+ WebAssembly::GetCXXStdlibType(const ArgList &Args) const {
+ if (Arg *A = Args.getLastArg(options::OPT_stdlib_EQ)) {
+--- a/clang/lib/Driver/ToolChains/WebAssembly.h
++++ b/clang/lib/Driver/ToolChains/WebAssembly.h
+@@ -61,6 +61,7 @@ private:
+ llvm::opt::ArgStringList &CC1Args,
+ Action::OffloadKind DeviceOffloadKind) const override;
+ RuntimeLibType GetDefaultRuntimeLibType() const override;
++ RuntimeLibType GetRuntimeLibType(const llvm::opt::ArgList &Args) const override;
+ CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
+ void
+ AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
--- /dev/null
+Index: llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/clang/lib/Driver/ToolChains/WebAssembly.h
+===================================================================
+--- llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8.orig/clang/lib/Driver/ToolChains/WebAssembly.h
++++ llvm-toolchain-snapshot_15~++20220724113059+7feab85df8e8/clang/lib/Driver/ToolChains/WebAssembly.h
+@@ -10,9 +10,13 @@
+ #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_WEBASSEMBLY_H
+
+ #include "Gnu.h"
++#include "llvm/Config/llvm-config.h" // for LLVM_VERSION_MAJOR
+ #include "clang/Driver/Tool.h"
+ #include "clang/Driver/ToolChain.h"
+
++#define TOSTR2(X) #X
++#define TOSTR(X) TOSTR2(X)
++
+ namespace clang {
+ namespace driver {
+ namespace tools {
+@@ -68,7 +72,7 @@ private:
+ llvm::opt::ArgStringList &CmdArgs) const override;
+ SanitizerMask getSupportedSanitizers() const override;
+
+- const char *getDefaultLinker() const override { return "wasm-ld"; }
++ const char *getDefaultLinker() const override { return "wasm-ld-" TOSTR(LLVM_VERSION_MAJOR); }
+
+ CXXStdlibType GetDefaultCXXStdlibType() const override {
+ return ToolChain::CST_Libcxx;
--- /dev/null
+--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
++++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
+@@ -174,7 +174,7 @@ WebAssembly::WebAssembly(const Driver &D
+
+ getProgramPaths().push_back(getDriver().getInstalledDir());
+
+- auto SysRoot = getDriver().SysRoot;
++ std::string SysRoot = computeSysRoot();
+ if (getTriple().getOS() == llvm::Triple::UnknownOS) {
+ // Theoretically an "unknown" OS should mean no standard libraries, however
+ // it could also mean that a custom set of libraries is in use, so just add
+@@ -402,6 +402,7 @@ void WebAssembly::AddClangSystemIncludeA
+ return;
+
+ const Driver &D = getDriver();
++ std::string SysRoot = computeSysRoot();
+
+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
+ SmallString<128> P(D.ResourceDir);
+@@ -427,10 +428,10 @@ void WebAssembly::AddClangSystemIncludeA
+
+ if (getTriple().getOS() != llvm::Triple::UnknownOS) {
+ const std::string MultiarchTriple =
+- getMultiarchTriple(D, getTriple(), D.SysRoot);
+- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include/" + MultiarchTriple);
++ getMultiarchTriple(D, getTriple(), SysRoot);
++ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/include/" + MultiarchTriple);
+ }
+- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include");
++ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/include");
+ }
+
+ void WebAssembly::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
+@@ -478,6 +479,17 @@ Tool *WebAssembly::buildLinker() const {
+ return new tools::wasm::Linker(*this);
+ }
+
++std::string WebAssembly::computeSysRoot() const {
++ if (!getDriver().SysRoot.empty())
++ return getDriver().SysRoot;
++
++ std::string Path = "/usr";
++ if (getVFS().exists(Path))
++ return Path;
++
++ return std::string();
++}
++
+ void WebAssembly::addLibCxxIncludePaths(
+ const llvm::opt::ArgList &DriverArgs,
+ llvm::opt::ArgStringList &CC1Args) const {
+--- a/clang/lib/Driver/ToolChains/WebAssembly.h
++++ b/clang/lib/Driver/ToolChains/WebAssembly.h
+@@ -89,6 +89,8 @@ private:
+ llvm::opt::ArgStringList &CC1Args) const;
+ void addLibStdCXXIncludePaths(const llvm::opt::ArgList &DriverArgs,
+ llvm::opt::ArgStringList &CC1Args) const;
++
++ std::string computeSysRoot() const override;
+ };
+
+ } // end namespace toolchains
--- /dev/null
+Index: llvm-toolchain-snapshot_12~++20201124100523+245052ac3080/llvm/include/llvm/Support/Recycler.h
+===================================================================
+--- llvm-toolchain-snapshot_12~++20201124100523+245052ac3080.orig/llvm/include/llvm/Support/Recycler.h
++++ llvm-toolchain-snapshot_12~++20201124100523+245052ac3080/llvm/include/llvm/Support/Recycler.h
+@@ -83,8 +83,8 @@ public:
+ SubClass *Allocate(AllocatorType &Allocator) {
+ static_assert(alignof(SubClass) <= Align,
+ "Recycler allocation alignment is less than object align!");
+- static_assert(sizeof(SubClass) <= Size,
+- "Recycler allocation size is less than object size!");
++// static_assert(sizeof(SubClass) <= Size,
++// "Recycler allocation size is less than object size!");
+ return FreeList ? reinterpret_cast<SubClass *>(pop_val())
+ : static_cast<SubClass *>(Allocator.Allocate(Size, Align));
+ }
--- /dev/null
+#!/bin/sh
+
+clang -Xclang -load -Xclang /usr/lib/llvm-@LLVM_VERSION@/lib/LLVMPolly.so $@
--- /dev/null
+#!/bin/sh
+ORIG_VERSION=14
+TARGET_VERSION=15
+ORIG_VERSION_2=14_0
+TARGET_VERSION_2=15_0
+ORIG_VERSION_3=140
+TARGET_VERSION_3=150
+
+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/lldb-addversion-suffix-to-llvm-server-exec.patch debian/patches/clang-tidy-run-bin.diff debian/patches/fix-scan-view-path.diff debian/README debian/patches/clang-analyzer-force-version.diff debian/patches/clang-tidy-run-bin.diff debian/tests/control debian/tests/integration-test-suite-test debian/unpack.sh debian/tests/cmake-test debian/patches/scan-build-py-fix-analyze-path.diff debian/patches/scan-build-py-fix-default-bin.diff debian/revert-update-doc.diff`
+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/rules"
+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"
+echo "edit debian/unpack.sh, replace snapshot by the version"
+echo "NOTE: the first version of the $ORIG_VERSION should be $ORIG_VERSION, not $ORIG_VERSION.0.0"
+echo "edit https://github.com/opencollab/llvm-jenkins.debian.net/blob/master/pbuilder-hookdir/B22scan-build"
--- /dev/null
+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 python3-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 libclang-cpp${VERSION}_${DETAILED_VERSION}_amd64.deb clang-tidy-${VERSION}_${DETAILED_VERSION}_amd64.deb libclang-cpp${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libclc-${VERSION}_${DETAILED_VERSION}_all.deb libclc-${VERSION}-dev_${DETAILED_VERSION}_all.deb llvm-${VERSION}-linker-tools_${DETAILED_VERSION}_amd64.deb libunwind-${VERSION}_${DETAILED_VERSION}_amd64.deb libunwind-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb libmlir-${VERSION}_${DETAILED_VERSION}_amd64.deb libmlir-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb bolt-${VERSION}_${DETAILED_VERSION}_amd64.deb libbolt-${VERSION}-dev_${DETAILED_VERSION}_amd64.deb"
+echo "To install everything:"
+echo "sudo apt --purge remove 'libomp5-*' 'libc++*dev' 'libc++*' 'python3-lldb-*' 'libunwind-*' 'libclc-*' 'libclc-*dev' 'libmlir-*'"
+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
+
+# Test #995684
+if test ! -f /usr/share/man/man1/llc-$VERSION.1.gz; then
+ echo "llvm manpage are missing (using llc as an example)"
+ 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 $(realpath $(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
+
+if test ! -f /usr/bin/clang-tidy-$VERSION; then
+ echo "Install clang-tidy-$VERSION"
+ exit 1
+fi
+
+echo 'namespace mozilla {
+namespace dom {
+void foo();
+}
+}
+' > foo.cpp
+clang-tidy-$VERSION -checks='modernize-concat-nested-namespaces' foo.cpp -extra-arg=-std=c++17 &> foo.log
+if ! grep -q "nested namespaces can " foo.log; then
+ echo "Clang-tidy didn't detect the issue"
+ cat foo.log
+ exit 1
+fi
+
+
+rm -rf cmaketest && mkdir cmaketest
+cat > cmaketest/CMakeLists.txt <<EOF
+cmake_minimum_required(VERSION 3.7)
+project(SanityCheck)
+add_library(MyLibrary foo.cpp)
+EOF
+mkdir cmaketest/standard
+cp foo.cpp cmaketest/
+cd cmaketest/standard
+# run with cmake
+CXX=clang-$VERSION cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. > /dev/null
+
+clang-tidy-$VERSION -checks='modernize-concat-nested-namespaces' ../foo.cpp -extra-arg=-std=c++17 -fix &> foo.log
+if ! grep -q "namespace mozilla::dom" ../foo.cpp; then
+ echo "clang-tidy autofix didn't work"
+ cat foo.log
+ exit 1
+fi
+cd - &> /dev/null
+rm -rf cmaketest
+
+echo "Testing clangd-$VERSION ..."
+
+echo '{
+ "jsonrpc": "2.0",
+ "id": 0,
+ "method": "initialize",
+ "params": {
+ "capabilities": {
+ "textDocument": {
+ "completion": {
+ "completionItem": {
+ "snippetSupport": true
+ }
+ }
+ }
+ },
+ "trace": "off"
+ }
+}
+---
+{
+ "jsonrpc": "2.0",
+ "method": "textDocument/didOpen",
+ "params": {
+ "textDocument": {
+ "uri": "test:///main.cpp",
+ "languageId": "cpp",
+ "version": 1,
+ "text": "int func_with_args(int a, int b);\nint main() {\nfunc_with\n}"
+ }
+ }
+}
+---
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "textDocument/completion",
+ "params": {
+ "textDocument": {
+ "uri": "test:///main.cpp"
+ },
+ "position": {
+ "line": 2,
+ "character": 7
+ }
+ }
+}
+---
+{
+ "jsonrpc": "2.0",
+ "id": 4,
+ "method": "shutdown"
+}
+---
+{
+ "jsonrpc": "2.0",
+ "method": "exit"
+}
+' > a.json
+
+clangd-$VERSION -lit-test -pch-storage=memory < a.json &> foo.log
+if ! grep -q '"insertText": "func_with_args(${1:int a}, ${2:int b})",' foo.log; then
+ echo "clangd didn't export what we were expecting"
+ cat foo.log
+ exit 1
+fi
+
+echo 'namespace mozilla {
+namespace dom {
+void foo();
+
+int fonction_avec_args(int a, float b);
+int main() {
+fonction_avec_args
+}
+
+}
+}
+' > foo.cpp
+content=$(sed ':a;N;$!ba;s/\n/\\n/g' foo.cpp)
+echo '{
+ "jsonrpc": "2.0",
+ "id": 0,
+ "method": "initialize",
+ "params": {
+ "capabilities": {
+ "textDocument": {
+ "completion": {
+ "completionItem": {
+ "snippetSupport": true
+ }
+ }
+ }
+ },
+ "trace": "off"
+ }
+}
+---
+{
+ "jsonrpc": "2.0",
+ "method": "textDocument/didOpen",
+ "params": {
+ "textDocument": {
+ "uri": "file:///'$(pwd)'/cmaketest/foo.cpp",
+ "languageId": "cpp",
+ "version": 1,
+ "text": "'$content'"
+ }
+ }
+}
+---
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "textDocument/completion",
+ "params": {
+ "textDocument": {
+ "uri": "file:///'$(pwd)'/cmaketest/foo.cpp"
+ },
+ "position": {
+ "line": 6,
+ "character": 18
+ }
+ }
+}
+---
+{
+ "jsonrpc": "2.0",
+ "id": 4,
+ "method": "shutdown"
+}
+---
+{
+ "jsonrpc": "2.0",
+ "method": "exit"
+}
+' > a.json
+
+rm -rf cmaketest && mkdir cmaketest
+cat > cmaketest/CMakeLists.txt <<EOF
+cmake_minimum_required(VERSION 3.7)
+project(SanityCheck)
+add_library(MyLibrary foo.cpp)
+EOF
+mkdir cmaketest/standard
+cp foo.cpp cmaketest/
+cp a.json cmaketest/standard
+cd cmaketest/standard
+
+# run with cmake
+
+CXX=clang-$VERSION cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .. > /dev/null
+# TODO this test is useless as it doesn't leverage foo.cpp or the compiledb
+clangd-$VERSION -lit-test -pch-storage=memory < a.json &> foo.log
+if ! grep -q '"insertText": "fonction_avec_args(${1:int a}, ${2:float b})",' foo.log; then
+ echo "clangd didn't export what we were expecting"
+ cat foo.log
+ exit 1
+fi
+cd - &> /dev/null
+rm -rf cmaketest
+
+
+echo "Testing clang-$VERSION ..."
+
+rm -f foo.log
+echo 'int main() {return 0;}' > foo.c
+clang-$VERSION foo.c
+
+echo '#include <stdio.h>
+int main() {
+printf("lli foo");
+return 0;
+}' > foo.c
+clang-$VERSION -S -emit-llvm foo.c
+llc-$VERSION foo.ll
+if ! lli-$VERSION foo.ll|grep -q "lli foo"; then
+ echo "Not lli correct output"
+ lli-$VERSION foo.ll
+ exit 1
+fi
+opt-$VERSION -S -O3 foo.ll -o opt.ll
+if ! lli-$VERSION opt.ll|grep -q "lli foo"; then
+ echo "Not lli correct output after opt"
+ lli-$VERSION opt.ll
+ exit 1
+fi
+
+clang-$VERSION -O3 -emit-llvm foo.c -c -o foo.bc
+chmod +x foo.bc
+# only run if the binfmt is installed correctly
+if grep -q "enabled" /proc/sys/fs/binfmt_misc/llvm-${VERSION}-runtime.binfmt; then
+ if ! ./foo.bc|grep -q "lli foo"; then
+ echo "executing ./foo.bc failed"
+ ./foo.bc || true
+ #exit 1
+ fi
+
+ clang-$VERSION -O3 -emit-llvm foo.c -c -o foo.bc
+ chmod +x foo.bc
+ if ! ./foo.bc|grep -q "lli foo"; then
+ echo "executing ./foo.bc failed"
+ ./foo.bc || true
+ #exit 1
+ fi
+fi # binfmt test
+
+if ! llvm-dis-$VERSION < foo.bc|grep -q "lli foo"; then
+ echo "llvm assembly code failed"
+ llvm-dis-$VERSION < foo.bc
+ exit 1
+fi
+
+# test if this is built with CURL
+llvm-debuginfod-find-$VERSION --executable=1 5d016364c1cb69dd &> foo.log || true
+if grep -q "No working HTTP" foo.log; then
+ echo "llvm-debuginfod-find isn't built with curl support"
+ exit 1
+fi
+
+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 "it should return the clang version"
+ cat foo.log
+ 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|grep .|wc -l)
+if test $NBLINES -lt 60; then
+ echo "Error: more than 60 non-empty lines should be returned"
+ echo "output:"
+ clang++-$VERSION -P -E foo.cc
+ exit 42
+fi
+
+if [ $DEB_HOST_ARCH == "amd64" -o $DEB_HOST_ARCH == "i386" ]; then
+ # Fails on arm64 with
+ # /usr/lib/llvm-10/lib/clang/10.0.0/include/mmintrin.h:33:5: error: use of undeclared identifier '__builtin_ia32_emms'; did you mean '__builtin_isless'?
+ echo '#include <emmintrin.h>' > foo.cc
+ clang++-$VERSION -c foo.cc
+fi
+
+# 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
+
+## test z3
+echo '
+void clang_analyzer_eval(int);
+void testBitwiseRules(unsigned int a, int b) {
+ clang_analyzer_eval((1 & a) <= 1); // expected-warning{{TRUE}}
+ // with -analyzer-constraints=z3, it can tell that it is FALSE
+ // without the option, it is unknown
+ clang_analyzer_eval((b | -2) >= 0); // expected-warning{{FALSE}}
+}
+' > foo.c
+
+clang-$VERSION -cc1 -analyze -analyzer-constraints=range -analyzer-checker=core,debug.ExprInspection -analyzer-constraints=z3 foo.c &> foo.log || true
+if ! grep -q "LLVM was not compiled with Z3 support" foo.log; then
+ # Should work
+ clang-$VERSION -cc1 -analyze -analyzer-constraints=range -analyzer-checker=core,debug.ExprInspection -verify -analyzer-config eagerly-assume=false -analyzer-constraints=z3 foo.c
+ clang-$VERSION -cc1 -analyze -analyzer-constraints=range -analyzer-checker=core,debug.ExprInspection -analyzer-constraints=z3 foo.c &> foo.log
+ if ! grep -q "2 warnings generated." foo.log; then
+ echo "Should find 2 warnings"
+ exit 1
+ fi
+else
+ echo "z3 support not available"
+fi
+
+# Should fail
+clang-$VERSION -cc1 -analyze -analyzer-constraints=range -analyzer-checker=core,debug.ExprInspection -verify -analyzer-config eagerly-assume=false foo.c &> foo.log || true
+if grep -q "File a.c Line 7: UNKNOWN" foo.log; then
+ echo "Should fail without -analyzer-constraints=z3"
+ exit 1
+fi
+
+clang-$VERSION -cc1 -analyze -analyzer-constraints=range -analyzer-checker=core,debug.ExprInspection foo.c &> foo.log
+if ! grep -q "warnings generated." foo.log; then
+ echo "Should find at least 2 warnings"
+ exit 1
+fi
+
+# 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 linking clang-cpp ..."
+
+clang-$VERSION -lclang-cpp$VERSION -v foo.cpp -o o &> /dev/null || true
+if ! ldd o 2>&1|grep -q libclang-cpp; then
+ echo "Didn't link against libclang-cpp$VERSION"
+ exit 42
+fi
+./o > /dev/null
+
+# Check that the symlink is correct
+ls -al /usr/lib/llvm-$VERSION/lib/libclang-cpp.so.$VERSION > /dev/null
+
+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 -opaque-pointers -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
+
+# understand LTO files
+# see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=919020
+clang-$VERSION foo.c -flto -c
+file foo.o|grep -q "LLVM IR bitcode"
+if ! llvm-nm-$VERSION foo.o|grep -q "T foo"; then
+ echo "gold linker isn't understood"
+ exit 1
+fi
+
+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 -q 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 failed"
+ exit 42
+fi
+
+clang++-$VERSION -fsanitize=address,fuzzer test_fuzzer.cc
+if ! ./a.out 2>&1 | grep -q "libFuzzer: deadly signal"; then
+ echo "fuzzer failed"
+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
+
+# Example from https://github.com/google/fuzzing/blob/master/tutorial/libFuzzerTutorial.md
+# coverage fuzzing
+cat << EOF > StandaloneFuzzTargetMain.c
+#include <assert.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+extern int LLVMFuzzerTestOneInput(const unsigned char *data, size_t size);
+__attribute__((weak)) extern int LLVMFuzzerInitialize(int *argc, char ***argv);
+int main(int argc, char **argv) {
+ fprintf(stderr, "StandaloneFuzzTargetMain: running %d inputs\n", argc - 1);
+ if (LLVMFuzzerInitialize)
+ LLVMFuzzerInitialize(&argc, &argv);
+ for (int i = 1; i < argc; i++) {
+ fprintf(stderr, "Running: %s\n", argv[i]);
+ FILE *f = fopen(argv[i], "r");
+ assert(f);
+ fseek(f, 0, SEEK_END);
+ size_t len = ftell(f);
+ fseek(f, 0, SEEK_SET);
+ unsigned char *buf = (unsigned char*)malloc(len);
+ size_t n_read = fread(buf, 1, len, f);
+ fclose(f);
+ assert(n_read == len);
+ LLVMFuzzerTestOneInput(buf, len);
+ free(buf);
+ fprintf(stderr, "Done: %s: (%zd bytes)\n", argv[i], n_read);
+ }
+}
+EOF
+
+cat << EOF > fuzz_me.cc
+#include <stdint.h>
+#include <stddef.h>
+
+bool FuzzMe(const uint8_t *Data, size_t DataSize) {
+ return DataSize >= 3 &&
+ Data[0] == 'F' &&
+ Data[1] == 'U' &&
+ Data[2] == 'Z' &&
+ Data[3] == 'Z';
+}
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+ FuzzMe(Data, Size);
+ return 0;
+}
+EOF
+clang-$VERSION -fprofile-instr-generate -fcoverage-mapping fuzz_me.cc StandaloneFuzzTargetMain.c
+
+rm -rf CORPUS
+mkdir -p CORPUS
+echo -n A > CORPUS/A
+./a.out CORPUS/* &> /dev/null
+if ! ./a.out CORPUS/* 2>&1 | grep -q "running 1 inputs"; then
+ echo "Coverage fuzzing failed"
+ exit 1
+fi
+llvm-profdata-$VERSION merge -sparse *.profraw -o default.profdata
+llvm-cov-$VERSION show a.out -instr-profile=default.profdata -name=FuzzMe &> foo.log
+if ! grep -q "return DataSize >= 3" foo.log; then
+ echo "llvm-cov didn't show the expected output in fuzzing"
+ exit 1
+fi
+echo -n FUZA > CORPUS/FUZA && ./a.out CORPUS/* &> /dev/null
+llvm-profdata-$VERSION merge -sparse *.profraw -o default.profdata
+llvm-cov-$VERSION show a.out -instr-profile=default.profdata -name=FuzzMe &> foo.log
+if ! grep -q "Data\[3\] == 'Z';" foo.log; then
+ echo "llvm-cov didn't show the expected output in fuzzing"
+ exit 1
+fi
+rm -rf CORPUS fuzz_me.cc StandaloneFuzzTargetMain.c
+
+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 '
+#include <pthread.h>
+#include <stdio.h>
+
+int Global;
+
+void *Thread1(void *x) {
+ Global++;
+ return NULL;
+}
+
+void *Thread2(void *x) {
+ Global--;
+ return NULL;
+}
+
+int main() {
+ pthread_t t[2];
+ pthread_create(&t[0], NULL, Thread1, NULL);
+ pthread_create(&t[1], NULL, Thread2, NULL);
+ pthread_join(t[0], NULL);
+ pthread_join(t[1], NULL);
+} ' > foo.c
+
+# fails on i386 with: clang: error: unsupported option '-fsanitize=thread' for target 'i686-pc-linux-gnu'
+if [ $DEB_HOST_ARCH != "i386" ]; then
+ clang-$VERSION -o foo -fsanitize=thread -g -O1 foo.c
+ if ! strings ./foo 2>&1 | grep -q "tsan"; then
+ echo "binary doesn't contain tsan code"
+ strings foo
+ exit 42
+ fi
+ if ! ./foo 2>&1 | grep -q "data race"; then
+ echo "sanitize=address is failing"
+ exit 42
+ fi
+fi
+
+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 { int i; };
+};
+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. Output:"
+ ./a.out || true
+ if [ $DEB_HOST_ARCH == "amd64" -o $DEB_HOST_ARCH == "i386" ]; then
+ # Don't fail on arm64 and ppc64el
+ exit 42
+ fi
+ 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 46321
+cat > test.cpp << EOF
+#include <iostream>
+int main() {
+ std::cout << "Hello World!" << std::endl;
+}
+EOF
+clang++-$VERSION -stdlib=libc++ -unwindlib=libunwind -rtlib=compiler-rt -static-libstdc++ -static-libgcc test.cpp -lpthread -ldl -o test
+./test > /dev/null
+
+clang++-$VERSION -stdlib=libc++ -static-libstdc++ -fuse-ld=lld -l:libc++abi.a test.cpp -o test
+./test > /dev/null
+
+clang++-$VERSION -stdlib=libc++ -nostdlib++ test.cpp -l:libc++.a -l:libc++abi.a -pthread -o test
+./test > /dev/null
+
+# bug https://bugs.llvm.org/show_bug.cgi?id=43604
+
+cat > test.cpp << EOF
+#include <iostream>
+__attribute__((visibility("default")))
+extern "C" void plugin() {
+ std::cout << "Hello World from a plugin!" << std::endl;
+}
+EOF
+clang++-$VERSION -shared -o plugin.so -fvisibility=hidden foo.cpp -static-libstdc++ || true
+clang++-$VERSION -shared -o plugin.so -fvisibility=hidden foo.cpp -stdlib=libc++ -static-libstdc++ ||true
+rm -f plugin.so
+
+# 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 -o o
+./o > /dev/null
+clang++-$VERSION -std=c++17 -stdlib=libc++ foo.cpp -lc++experimental -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
+
+# libclc
+echo "Testing libclc-$VERSION-dev ..."
+
+if test ! -f /usr/lib/clc/amdgcn--amdhsa.bc; then
+ echo "Install libclc-$VERSION";
+ exit -1;
+fi
+
+if test ! -f /usr/lib/clc/polaris10-amdgcn-mesa-mesa3d.bc; then
+ # Make sure that #993904 and #995069 don't come back
+ echo "/usr/lib/clc/polaris10-amdgcn-mesa-mesa3d.bc doesn't exist"
+ exit 1
+fi
+
+LLVM_CONFIG=llvm-config-$VERSION /usr/lib/llvm-$VERSION/share/libclc/check_external_calls.sh /usr/lib/clc/amdgcn--amdhsa.bc > /dev/null
+
+# libunwind
+echo "Testing libunwind-$VERSION-dev ..."
+
+if test ! -f /usr/include/libunwind/unwind.h; then
+ echo "Install libunwind-$VERSION-dev";
+ exit -1;
+fi
+echo '
+#include <libunwind.h>
+#include <stdlib.h>
+
+void backtrace(int lower_bound) {
+ unw_context_t context;
+ unw_getcontext(&context);
+
+ unw_cursor_t cursor;
+ unw_init_local(&cursor, &context);
+
+ int n = 0;
+ do {
+ ++n;
+ if (n > 100) {
+ abort();
+ }
+ } while (unw_step(&cursor) > 0);
+
+ if (n < lower_bound) {
+ abort();
+ }
+}
+
+void test1(int i) {
+ backtrace(i);
+}
+
+void test2(int i, int j) {
+ backtrace(i);
+ test1(j);
+}
+
+void test3(int i, int j, int k) {
+ backtrace(i);
+ test2(j, k);
+}
+
+void test_no_info() {
+ unw_context_t context;
+ unw_getcontext(&context);
+
+ unw_cursor_t cursor;
+ unw_init_local(&cursor, &context);
+
+ unw_proc_info_t info;
+ int ret = unw_get_proc_info(&cursor, &info);
+ if (ret != UNW_ESUCCESS)
+ abort();
+
+ // Set the IP to an address clearly outside any function.
+ unw_set_reg(&cursor, UNW_REG_IP, (unw_word_t)0);
+
+ ret = unw_get_proc_info(&cursor, &info);
+ if (ret != UNW_ENOINFO)
+ abort();
+}
+
+int main(int, char**) {
+ test1(1);
+ test2(1, 2);
+ test3(1, 2, 3);
+ test_no_info();
+ return 0;
+}'> foo.cpp
+clang++-$VERSION foo.cpp -lunwind -ldl -I /usr/include/libunwind
+./a.out
+clang++-$VERSION foo.cpp -unwindlib=libunwind -rtlib=compiler-rt -I/usr/include/libunwind
+./a.out
+
+echo '
+#include <assert.h>
+#include <dlfcn.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <unwind.h>
+
+_Unwind_Reason_Code frame_handler(struct _Unwind_Context* ctx, void* arg) {
+ (void)arg;
+ Dl_info info = { 0, 0, 0, 0 };
+
+ // Unwind util the main is reached, above frames depend on the platform and
+ // architecture.
+ if (dladdr(reinterpret_cast<void *>(_Unwind_GetIP(ctx)), &info) &&
+ info.dli_sname && !strcmp("main", info.dli_sname)) {
+ _Exit(0);
+ }
+ return _URC_NO_REASON;
+}
+
+void signal_handler(int signum) {
+ (void)signum;
+ _Unwind_Backtrace(frame_handler, NULL);
+ _Exit(-1);
+}
+
+int main(int, char**) {
+ signal(SIGUSR1, signal_handler);
+ kill(getpid(), SIGUSR1);
+ return -2;
+}
+'> foo.cpp
+clang++-$VERSION foo.cpp /usr/lib/llvm-$VERSION/lib/libunwind.a -I/usr/include/libunwind/ -lpthread -ldl
+./a.out||true
+clang++-$VERSION foo.cpp -unwindlib=libunwind -rtlib=compiler-rt -I/usr/include/libunwind -ldl
+./a.out||true
+
+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 -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
+# broken https://bugs.llvm.org/show_bug.cgi?id=51642
+test -s matmul.opt.yaml||true
+
+clang-$VERSION -S -O2 -fsave-optimization-record -emit-llvm foo.c -o matmul.s
+if ! test -s matmul.opt.yaml; then
+ echo "-fsave-optimization-record generated an empty file"
+ exit 1
+fi
+
+
+opt-$VERSION -S -polly-canonicalize matmul.s > matmul.preopt.ll > /dev/null
+opt-$VERSION -basic-aa -polly-ast 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 "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); }
+int sum = 0;
+
+int main(int argc, const char *argv[]) {
+ for (int i = 0; i < 30; i++)
+ bar(argc);
+ return sum;
+}
+
+" > foo.cc
+clang-$VERSION -O2 -Rpass=inline foo.cc -c &> foo.log
+if ! grep -q -E "(inlined into|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
+
+# https://bugs.llvm.org/show_bug.cgi?id=44870
+cat <<EOF > foo.cpp
+#include <clang/CodeGen/BackendUtil.h>
+
+using namespace clang;
+
+int main() {
+ DiagnosticsEngine* diags;
+ HeaderSearchOptions* hsOpts;
+ CodeGenOptions* cgOpts;
+ TargetOptions* tOpts;
+ LangOptions* lOpts;
+ llvm::StringRef* tDesc;
+ llvm::Module* m;
+ BackendAction* action;
+ std::unique_ptr<raw_pwrite_stream> AsmOutStream;
+
+ EmitBackendOutput(*diags, *hsOpts, *cgOpts, *tOpts, *lOpts, *tDesc, m, *action, std::move(AsmOutStream));
+}
+EOF
+clang++-$VERSION foo.cpp -o test -lclangBasic -lclangCodeGen -lclangDriver -lclangFrontend -lclangFrontendTool -lclangCodeGen -lclangRewriteFrontend -lclangARCMigrate -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangCrossTU -lclangIndex -lclangFrontend -lclangDriver -lclangParse -lclangSerialization -lclangSema -lclangAnalysis -lclangEdit -lclangFormat -lclangToolingInclusions -lclangToolingCore -lclangRewrite -lclangASTMatchers -lclangAST -lclangLex -lclangBasic -ldl /usr/lib/llvm-$VERSION/lib/libLLVM-$VERSION.so -lclangCodeGen -lclangDriver -lclangFrontend -lclangFrontendTool -lclangRewriteFrontend -lclangARCMigrate -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangCrossTU -lclangIndex -lclangParse -lclangSerialization -lclangSema -lclangAnalysis -lclangEdit -lclangFormat -lclangToolingInclusions -lclangToolingCore -lclangRewrite -lclangASTMatchers -lclangAST -lclangLex -ldl -I /usr/lib/llvm-$VERSION/include/ -L/usr/lib/llvm-$VERSION/lib/ -lPolly -lPollyISL
+
+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"
+ cat foo.log
+ exit -1
+ fi
+else
+ echo "clang-$VERSION-dbgsym isn't installed"
+fi
+
+if dpkg -l|grep -q wasi-libc; then
+ cat <<EOF > printf.c
+ #include <stdio.h>
+ int main(int argc, char *argv[])
+ {
+ printf("%s\n", "Hello world!");
+ }
+EOF
+ clang-$VERSION -target wasm32-unknown-wasi -o printf printf.c
+ file printf &> foo.log
+ if ! grep -q "WebAssembly" foo.log; then
+ echo "the generated file isn't a WebAssembly file?"
+ exit 1
+ fi
+ rm -f printf.c printf
+fi
+echo '#include <algorithm>' > foo.cpp
+# Fails for now
+clang++-$VERSION --target=wasm32-wasi -o foo.o -c foo.cpp||true
+
+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
+
+# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943623
+rm *.o
+/usr/bin/ar x /usr/lib/llvm-$VERSION/lib/libclangIndex.a &> /dev/null
+file *.o a> foo.log
+rm *.o
+if grep "LLVM IR bitcode" foo.log; then
+ echo "found LLVM IR bitcode in the libclangIndex.a file"
+ echo "Should be elf"
+ exit -2
+fi
+echo "
+from ctypes import *
+libclang='/usr/lib/llvm-$VERSION/lib/libclang-$VERSION.so.1'
+lib = CDLL(libclang)
+fun = lib.clang_getAddressSpace
+print(fun)
+" > foo.py
+python3 foo.py|grep _FuncPtr
+rm foo.py
+
+echo "Testing cmake build ..."
+
+if grep -q lit-cpuid /usr/lib/llvm-$VERSION/lib/cmake/llvm/LLVMExports*.cmake; then
+ echo "LLVMExports*.cmake should not have lit-cpuid"
+ echo "it introduces a dependency between llvm-9 => lldb"
+ exit -1
+fi
+
+rm -rf cmaketest && mkdir cmaketest
+cat > cmaketest/CMakeLists.txt <<EOF
+cmake_minimum_required(VERSION 3.7)
+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 3.7)
+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
+
+# Make sure the triple change doesn't break the world
+# https://reviews.llvm.org/D107799#3027607
+if dpkg -l|grep -q zlib1g-dev; then
+ rm -rf cmaketest && mkdir cmaketest
+ cat > cmaketest/CMakeLists.txt <<EOF
+cmake_minimum_required(VERSION 3.0)
+project(test)
+find_package(ZLIB)
+EOF
+ mkdir cmaketest/foo/
+ cd cmaketest/foo && CC=clang-$VERSION CXX=clang++-$VERSION cmake .. &> foo.log
+ if grep "Could NOT find ZLIB" foo.log; then
+ echo "clang hasn't been able to find zlib dev even if it is on the system"
+ echo "https://reviews.llvm.org/D107799#3027607"
+ cat foo.log
+ exit 1
+ fi
+ cd -
+ rm -rf cmaketest
+fi
+
+# Test case for bug #994827
+rm -rf cmaketest && mkdir cmaketest
+cat > cmaketest/CMakeLists.txt <<EOF
+cmake_minimum_required(VERSION 3.18)
+project(testllvm)
+
+find_package(Clang REQUIRED CONFIG HINTS "/usr/lib/llvm-$LLVM_VERSION/lib/cmake/clang/")
+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'
+# seems like esan was removed from clang: https://github.com/llvm/llvm-project/commit/885b790f89b6068ec4caad8eaa51aa8098327059
+#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-9-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-9-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 opt.ll a.json default.profdata test test.cpp
+
+echo "Completed"
--- /dev/null
+#!/usr/bin/make -f
+
+# polly & lldb aren't enabled for every platform
+PROJECTS = clang;clang-tools-extra;lld;cross-project-tests;mlir
+# openmp & libunwind aren't enabled for every platform
+RUNTIMES = compiler-rt;libcxx;libcxxabi
+
+TARGET_BUILD := build-llvm
+TARGET_BUILD_STAGE2 := $(TARGET_BUILD)/tools/clang/stage2-bins
+DEB_INST := $(CURDIR)/debian/tmp/
+
+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")
+LLVM_VERSION_SNAPSHOT := $(shell dpkg-parsechangelog | sed -rne "s,^Version: 1:(.*),\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 := $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+else
+ NJOBS := $(shell nproc)
+endif
+
+VENDOR=$(shell lsb_release -is)
+DISTRO=$(shell lsb_release -sc)
+
+DH_VERSION := $(shell dpkg -s debhelper | grep '^Version' | awk '{print $$2}')
+
+include /usr/share/dpkg/architecture.mk
+
+CONFIGURE_EXTRA =
+
+# dpkg-buildflags support
+# disable fixfilepath in favor of the llvm-project supplied flavor, disable lto
+export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto
+# these are handled on a per stage / build basis
+export DEB_CFLAGS_MAINT_STRIP = -g -O2
+export DEB_CXXFLAGS_MAINT_STRIP = -g -O2
+
+include /usr/share/dpkg/buildflags.mk
+
+# We use a stage2 build. It means that a first clang is built using gcc,
+# a second clang is built with the first
+# And the various components are built using the second clang.
+# See https://llvm.org/docs/AdvancedBuilds.html
+
+# collect additional flags for all stages all builds
+CFLAGS_EXTRA = -Wno-unused-command-line-argument
+CXXFLAGS_EXTRA = -Wno-unused-command-line-argument
+LDFLAGS_EXTRA = -Wl,--build-id
+
+# collect all flags for stage 1 toolchain build only
+STAGE_1_CFLAGS = $(CFLAGS) $(CFLAGS_EXTRA) $(CPPFLAGS)
+STAGE_1_CXXFLAGS = $(CXXFLAGS) $(CXXFLAGS_EXTRA) $(CPPFLAGS)
+STAGE_1_LDFLAGS = $(LDFLAGS) $(LDFLAGS_EXTRA)
+
+# collect all flags for stage 2 toolchain and stand-alone builds
+STAGE_2_CFLAGS = $(CFLAGS) $(CFLAGS_EXTRA) $(CPPFLAGS)
+STAGE_2_CXXFLAGS = $(CXXFLAGS) $(CXXFLAGS_EXTRA) $(CPPFLAGS)
+STAGE_2_LDFLAGS = $(LDFLAGS) $(LDFLAGS_EXTRA)
+
+# collect additional cmake options for toolchain build configuration
+STAGE_1_CMAKE_EXTRA =
+STAGE_2_CMAKE_EXTRA =
+STAGE_ALL_CMAKE_EXTRA =
+# toolchain config-only var combining all stage 1 cmake options
+CMAKE_EXTRA = $(STAGE_1_CMAKE_EXTRA) $(STAGE_ALL_CMAKE_EXTRA)
+# toolchain config-only var prepending BOOTSTRAP_ to all stage 2 cmake options
+BOOTSTRAP_CMAKE_EXTRA = $(foreach extra,$(STAGE_2_CMAKE_EXTRA) $(STAGE_ALL_CMAKE_EXTRA), $(subst -D,-DBOOTSTRAP_,$(extra)))
+
+BASE_PATH := $(CURDIR)
+STAGE_1_BIN_DIR := $(BASE_PATH)/$(TARGET_BUILD)/bin
+STAGE_1_LIB_DIR := $(BASE_PATH)/$(TARGET_BUILD)/lib
+STAGE_2_BIN_DIR := $(BASE_PATH)/$(TARGET_BUILD_STAGE2)/bin
+STAGE_2_LIB_DIR := $(BASE_PATH)/$(TARGET_BUILD_STAGE2)/lib
+
+# toggleable defaults
+COMPILER_RT_USE_BUILTINS_LIBRARY := ON
+LIBCXX_EXCEPTIONS := ON
+LIBCXX_USE_COMPILER_RT := ON
+
+# We want to set the clang extra version ONLY in stage 2
+# because we want the clang stage 1 to be as reproducible as possible
+# when building with sccache (because this tool do a hash using the
+# compiler binary and other things)
+STAGE_2_CMAKE_EXTRA += -DCLANG_REPOSITORY_STRING=$(DEBIAN_REVISION)
+
+ifneq (,$(filter $(DEB_HOST_ARCH),sparc sparc64))
+STAGE_1_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),i386 hurd-i386 kfreebsd-i386 armel mipsel powerpc powerpcspe riscv64))
+# For some reason, in the stage2 build, when clang is used to compile
+# itself. The atomic detection is failing on armel and riscv64. Forcing the inclusion
+# everywhere and in all stages
+LDFLAGS_EXTRA += -latomic
+endif
+
+Z3_FLAG = -DLLVM_ENABLE_Z3_SOLVER=OFF
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' libz3-dev) gt 4.7.0; echo $$?),0)
+# no ocaml support in main for Ubuntu
+ifneq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
+ Z3_FLAG = -DLLVM_ENABLE_Z3_SOLVER=ON
+endif
+endif
+STAGE_2_CMAKE_EXTRA += $(Z3_FLAG)
+
+# Change the default CPU for s390x
+ZARCH=z196
+ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
+ZARCH=z13
+endif
+STAGE_2_CMAKE_EXTRA += -DCLANG_SYSTEMZ_DEFAULT_ARCH=$(ZARCH)
+
+# clangd remote index support requires GRPC & protobuf.
+# Enable if minimum tested versions are available.
+CLANGD_GRPC_INSTALLED=no
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' libgrpc++-dev) gt 1.30.0; echo $$?),0)
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' protobuf-compiler-grpc) gt 1.30.0; echo $$?),0)
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' libprotobuf-dev) gt 3.12.0; echo $$?),0)
+ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' protobuf-compiler) gt 3.12.0; echo $$?),0)
+CLANGD_GRPC_INSTALLED=yes
+STAGE_2_CMAKE_EXTRA += -DCLANGD_ENABLE_REMOTE=ON
+endif
+endif
+endif
+endif
+
+ifeq ($(USE_CLANG_PACKAGE_TO_BUILD_ITSELF),yes)
+# For Debian stretch, gcc isn't available, let's use clang
+# itself to build itself.
+export CC=clang-14
+export CXX=clang++-14
+else
+export CC=gcc-$(GCC_VERSION)
+export CXX=g++-$(GCC_VERSION)
+endif
+
+opt_flags = -O2 -DNDEBUG -g1
+
+ifneq (,$(findstring $(DEB_HOST_ARCH),armel))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabi
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+# align arch profile with debian baseline
+# https://wiki.debian.org/ArmEabiPort
+ CFLAGS_EXTRA += -march=armv5t
+ CXXFLAGS_EXTRA += -march=armv5t
+# disable compiler-rt builtins (not supported for baseline armel arch: armv5t)
+# See http://lists.llvm.org/pipermail/llvm-dev/2016-May/099761.html
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ COMPILER_RT_USE_BUILTINS_LIBRARY := OFF
+ LIBCXX_USE_COMPILER_RT := OFF
+# disable scudo standalone (not supported for baseline armel arch: armv5t)
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_SCUDO_STANDALONE=OFF
+endif
+
+ifneq (,$(findstring $(DEB_HOST_ARCH),armhf))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabihf
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+# align arch profile with debian baseline
+# https://wiki.debian.org/ArmHardFloatPort#Minimum_CPU_.26_FPU
+ CFLAGS_EXTRA += -march=armv7-a -mfpu=vfpv3-d16
+ CXXFLAGS_EXTRA += -march=armv7-a -mfpu=vfpv3-d16
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),i386))
+# Sometimes, i386 needs help with the triple
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=i386-linux-gnu
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),i386))
+# Sometimes, i386 needs help with the triple
+ CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=i386-linux-gnu
+endif
+
+
+
+ifneq (,$(filter $(DEB_HOST_ARCH),mips64el))
+# avoid an issue with search path on mips64el
+# https://bugs.llvm.org/show_bug.cgi?id=41204
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=mips64el-linux-gnuabi64
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),powerpc))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=powerpc-linux-gnu
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),sparc))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=sparc-linux-gnu
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),sparc64))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=sparc64-linux-gnu
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),s390x))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=s390x-linux-gnu
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+ LIBCXX_EXCEPTIONS := OFF
+# disable compiler-rt builtins (not supported for s390x)
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ COMPILER_RT_USE_BUILTINS_LIBRARY := OFF
+ LIBCXX_USE_COMPILER_RT := OFF
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),x32))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=x86_64-linux-gnux32
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_DEFAULT_TARGET_TRIPLE=x86_64-linux-gnux32
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
+ COMPILER_RT_USE_BUILTINS_LIBRARY := OFF
+ LIBCXX_USE_COMPILER_RT := OFF
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),hurd-i386))
+ STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
+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
+
+LLVM_SPIRV_VERSION := $(LLVM_VERSION)
+LLVM_SPIRV := $(shell bash -c "command -v llvm-spirv-$(LLVM_SPIRV_VERSION)" 2>/dev/null)
+ifndef LLVM_SPIRV
+ LLVM_SPIRV_VERSION := $(shell expr $(LLVM_VERSION) - 1)
+ LLVM_SPIRV := $(shell bash -c "command -v llvm-spirv-$(LLVM_SPIRV_VERSION)" 2>/dev/null)
+endif
+
+ifndef LLVM_SPIRV
+ LLVM_SPIRV_INSTALLED = no
+else
+ ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' llvm-spirv-$(LLVM_SPIRV_VERSION)) gt 14.0.0 ; echo $$?),0)
+# Too old llvm-spirv version are failing. See #52200
+ LLVM_SPIRV_INSTALLED = yes
+ else
+ LLVM_SPIRV_INSTALLED = no
+ endif
+endif
+
+LIBCLC_TARGETS_TO_BUILD="amdgcn--;amdgcn--amdhsa;amdgcn-mesa-mesa3d;r600--;nvptx--;nvptx64--;nvptx--nvidiacl;nvptx64--nvidiacl"
+LIBCLC_LLVM_SPIRV =
+ifeq ($(LLVM_SPIRV_INSTALLED),yes)
+ LIBCLC_TARGETS_TO_BUILD := $(LIBCLC_TARGETS_TO_BUILD)";spirv-mesa3d-;spirv64-mesa3d-"
+ LIBCLC_LLVM_SPIRV = "-DLLVM_SPIRV=$(LLVM_SPIRV)"
+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)))
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_USE_LINKER=gold
+ STAGE_ALL_CMAKE_EXTRA += -DLLVM_BINUTILS_INCDIR=/usr/include/
+endif
+endif
+
+BOLT_ARCHS := amd64
+# arm64
+ifneq (,$(filter $(DEB_HOST_ARCH),$(BOLT_ARCHS)))
+ PROJECTS += ;bolt
+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
+ STAGE_2_CMAKE_EXTRA+= -DLIBOMP_LDFLAGS="-coverage -lgcov" # don't pass LDFLAGS_EXTRA because it expects gcc arg
+endif
+
+# Enable polly (or not)
+POLLY_ENABLE=yes
+ifneq (,$(filter $(DEB_HOST_ARCH), powerpc powerpcspe))
+ POLLY_ENABLE=no
+else
+ PROJECTS+=;polly
+endif
+
+# Enable libunwind (or not)
+LIBUNWIND_ENABLE=yes
+ifneq (,$(filter $(DEB_HOST_ARCH), s390x armel m68k mipsel hurd-i386 powerpc sparc sparc64 x32))
+ LIBUNWIND_ENABLE=no
+# do not use compiler-rt builtins for libcxx (libcxxabi) when libunwind is
+# disabled since the gnu implementation in libgcc_s will then be required
+ LIBCXX_USE_COMPILER_RT := OFF
+else
+ RUNTIMES += ;libunwind
+ STAGE_ALL_CMAKE_EXTRA += -DLIBCXXABI_USE_LLVM_UNWINDER=ON
+endif
+
+# Enable openmp (or not)
+OPENMP_ENABLE=yes
+ifneq (,$(filter $(DEB_HOST_ARCH), m68k mipsel powerpc powerpcspe sparc64 s390x x32))
+ OPENMP_ENABLE=no
+else
+ RUNTIMES+=;openmp
+ STAGE_ALL_CMAKE_EXTRA += -DLIBOMP_LIBFLAGS="-lm"
+ifeq ($(LIBUNWIND_ENABLE),yes)
+ STAGE_ALL_CMAKE_EXTRA += -DOPENMP_USE_LLVM_UNWINDER=ON
+endif
+endif
+
+COMPILER_RT_WASM_ENABLE=yes
+
+ifneq (,$(filter $(DEB_HOST_ARCH), arm64 armel mips64el mipsel ppc64el armhf riscv64))
+ COMPILER_RT_WASM_ENABLE=no
+endif
+
+# Do not install objects
+STAGE_ALL_CMAKE_EXTRA += -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF
+
+
+RUN_TEST=yes
+ifeq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+ RUN_TEST=no
+endif
+ifeq ($(shell dpkg-vendor --derives-from Ubuntu && echo yes),yes)
+ifeq (riscv64,$(DEB_HOST_ARCH))
+ RUN_TEST=no
+endif
+endif
+
+# llvm tests timeout, disable it on mipsel
+ifeq (mipsel,$(DEB_HOST_ARCH))
+ RUN_TEST=no
+endif
+
+SCAN_BUILD=no
+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"
+ SCAN_BUILD=yes
+
+ PRE_PROCESS=scan-build-$(LLVM_VERSION) --show-description -analyzer-config stable-report-filename=true
+ PRE_PROCESS_CONF=scan-build-$(LLVM_VERSION)
+# no need to run tests in this case
+ RUN_TEST=no
+ CONFIGURE_EXTRA += --enable-assertions
+ STAGE_ALL_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
+ STAGE_ALL_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 sparc64 mips64el mipsel
+# hurd has threading issues
+ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH)))
+# Disable LLDB for this arch.
+ LLDB_ENABLE=no
+else
+ STAGE_ALL_CMAKE_EXTRA += -DLLDB_ENABLE_LUA=OFF
+ PROJECTS+=;lldb
+endif
+
+
+LLD_ENABLE=yes
+
+ifneq (,$(filter $(DEB_HOST_ARCH_OS),linux))
+# only for linux
+ STAGE_2_CMAKE_EXTRA += -DLLVM_USE_PERF=ON -DLLVM_ENABLE_LIBPFM=ON
+endif
+
+LTO_ENABLE=no
+# Only enable it for archs supporting gold
+ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
+# LTO requires a bunch of memory. Don't do it everywhere
+LTO_DISABLE_ARCHS := i386 armhf s390x ppc64 x32
+ifeq (,$(filter-out $(LTO_DISABLE_ARCHS), $(DEB_HOST_ARCH)))
+ LTO_ENABLE=no
+else
+# Disable for now because of
+# https://github.com/llvm/llvm-project/issues/58317#issuecomment-1276190743
+# LTO_ENABLE=yes
+# STAGE_2_CMAKE_EXTRA += -DLLVM_ENABLE_LTO="On"
+endif
+endif
+
+DH_OPTIONS=
+OCAML_ENABLE= no
+OCAML_ARCHS := amd64 arm64 armhf ppc64el riscv64 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), mipsel))
+ LIBOMP_ARCH = mips
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), mips64 mips64el))
+ LIBOMP_ARCH = mips64
+endif
+
+# 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
+ifeq ($(shell test -e /tmp/cmake/bin/cmake && echo -n yes),yes)
+ CMAKE_BIN=/tmp/cmake/bin/cmake
+ export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/tmp/cmake/bin/
+endif
+
+SCCACHE_ENABLE=no
+SCCACHE_CMAKE =
+# if sccache is installed in the chroot, use it
+ifeq ($(shell test -e /opt/sccache/sccache && echo -n yes),yes)
+ SCCACHE_CMAKE = -DCMAKE_C_COMPILER_LAUNCHER=/opt/sccache/sccache -DCMAKE_CXX_COMPILER_LAUNCHER=/opt/sccache/sccache
+ STAGE_1_CMAKE_EXTRA += $(SCCACHE_CMAKE)
+ SCCACHE_ENABLE=yes
+ export LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/opt/sccache
+endif
+
+# enables cmake build targets like stage2-[target_name]
+ENABLED_STAGE2_CMAKE_BUILD_TARGETS = check-all;check-llvm;check-clang;check-clang-tools;check-lld;check-libcxx;check-libcxxabi;check-mlir;check-sanitizer;llvm-config;test-suite
+
+%:
+ dh $@ $(DH_OPTIONS)
+
+# For some reasons, some spaces are added, removing them
+PROJECTS_LIST := $(shell echo "$(PROJECTS)"|sed -e "s| ||g")
+RUNTIMES_LIST := $(shell echo "$(RUNTIMES)"|sed -e "s| ||g")
+
+preconfigure:
+
+ if ! grep -qs '/proc ' /proc/mounts; then \
+ echo "/proc needs to be mounted"; \
+ exit 1; \
+ fi
+
+ if test "$(DISTRO)" = "bookworm" -a "$(LLVM_SPIRV_INSTALLED)" = "no"; then \
+ echo "llvm spriv isn't detected while it should probably for this distro"; \
+ fi
+
+ @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)"
+ @echo "GCC_VERSION=$(GCC_VERSION)"
+ @echo "PROJECTS=$(PROJECTS_LIST)"
+ @echo "RUNTIMES=$(RUNTIMES_LIST)"
+ @echo "LLVM_VERSION=$(LLVM_VERSION)"
+ @echo "LLVM_VERSION_FULL=$(LLVM_VERSION_FULL)"
+ @echo "LLVM_VERSION_SNAPSHOT=$(LLVM_VERSION_SNAPSHOT)"
+ @echo "PATH=$(PATH)"
+ @echo "LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)"
+ @echo "LIBFUZZER_ENABLE=$(LIBFUZZER_ENABLE)"
+ @echo "LTO_ENABLE=$(LTO_ENABLE)"
+ @echo "COMPILER_RT_WASM_ENABLE=$(COMPILER_RT_WASM_ENABLE)"
+
+ 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/clang-tools-$(LLVM_VERSION).install \
+ debian/libclang-$(LLVM_VERSION)-dev.install \
+ debian/libclang-common-$(LLVM_VERSION)-dev.install \
+ debian/libomp-$(LLVM_VERSION)-dev.install \
+ debian/llvm-$(LLVM_VERSION)-dev.install \
+ debian/llvm-$(LLVM_VERSION)-linker-tools.install \
+ debian/llvm-$(LLVM_VERSION)-linker-tools.links \
+ debian/libbolt-$(LLVM_VERSION)-dev.install
+
+ # workaround the breaks/replaces/conflicts introduced with the omp-device-info move
+ # we update the version to make it work with apt.llvm.org
+ # Yeah, this is ugly but I don't know how to do better
+ if test "$(LLVM_VERSION)" = "13"; then \
+ if echo "$(LLVM_VERSION_SNAPSHOT)"|grep -q "++"; then \
+ sed -i -e "s|(<< 1:13.0.0-4)|(<< 1:13.0.0~++20211013044936)|g" debian/control; \
+ fi; \
+ fi
+
+ifdef LLVM_SPIRV
+ # llvm-spirv was found, so we can enable *.spv files. Debian
+ # buster and Ubuntu 18.04 don't have llvm-spirv to create the
+ # *.spv files.
+ sed -i -e "s|#spv\ ||g" debian/libclc-$(LLVM_VERSION).install
+endif
+ if test "$(DISTRO)" = "stretch"; then \
+ echo "" > debian/python3-lldb-$(LLVM_VERSION).install; \
+ fi
+
+ # Conditionally enable install clangd grpc files
+ if test "$(CLANGD_GRPC_INSTALLED)" = "yes"; then \
+ sed -i -e "s|#grpc\ ||g" debian/libclang-$(LLVM_VERSION)-dev.install; \
+ fi
+
+# Override this two targets. They are trying to manage the .in conversion for me
+override_dh_ocamlinit:
+override_dh_ocamlclean:
+override_dh_ocaml:
+
+override_dh_auto_configure: preconfigure
+ if test -f /opt/sccache/sccache; then \
+ ls -al /opt/sccache/*; \
+ fi
+ echo "Using gcc: "
+ $(CC) -v
+ $(CXX) -v
+ mkdir -p $(TARGET_BUILD)
+ if test "$(SCAN_BUILD)" = "yes"; then \
+ patch -f -p1 < debian/patches/on-the-fly/use-scan-build-runtimes.diff||true; \
+ 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)
+
+# Fails with No target "unwind_static"
+# -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \
+# -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_SHARED_LIBRARY=OFF \
+# -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_STATIC_LIBRARY=ON \
+#- to libc++ when libunwind is built
+#- Matches what is done on brew:
+#- https://bit.ly/3kDNpC9
+ifeq (${SCCACHE_ENABLE},yes)
+# Just in case...
+ /opt/sccache/sccache --stop-server||true
+# Start the sccache server with the right set of options to use GCP
+ SCCACHE_LOG=sccache=debug SCCACHE_ERROR_LOG=/opt/sccache/sccache.log SCCACHE_GCS_KEY_PATH=/opt/sccache/secret-gcp-storage.json SCCACHE_GCS_BUCKET=apt-llvm-org-sccache SCCACHE_GCS_RW_MODE=READ_WRITE /opt/sccache/sccache --start-server
+endif
+ echo "Running tests: $(RUN_TEST)"
+ echo "Using cmake: $(CMAKE_BIN)"; \
+ LD_LIBRARY_PATH=$$LD_LIBRARY_PATH \
+ $(PRE_PROCESS_CONF) $(CMAKE_BIN) -S llvm/ -B $(TARGET_BUILD) \
+ -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
+ -DLLVM_VERSION_SUFFIX= \
+ -DCMAKE_SUPPRESS_REGENERATION=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_FLAGS="$(STAGE_1_CFLAGS)" \
+ -DCMAKE_CXX_FLAGS="$(STAGE_1_CXXFLAGS)" \
+ -DCMAKE_SHARED_LINKER_FLAGS="$(STAGE_1_LDFLAGS)" \
+ -DCMAKE_MODULE_LINKER_FLAGS="$(STAGE_1_LDFLAGS)" \
+ -DCMAKE_EXE_LINKER_FLAGS="$(STAGE_1_LDFLAGS)" \
+ -DPACKAGE_VENDOR=$(VENDOR) \
+ -DENABLE_LINKER_BUILD_ID=ON \
+ -DLLVM_TARGETS_TO_BUILD=Native \
+ -DLLVM_ENABLE_PROJECTS="$(PROJECTS_LIST)" \
+ -DLLVM_ENABLE_RUNTIMES="$(RUNTIMES_LIST)" \
+ -DLLVM_ENABLE_PIC=ON \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_BUILD_DOCS=OFF \
+ -DLLVM_INCLUDE_GO_TESTS=OFF \
+ -DLLVM_USE_RELATIVE_PATHS_IN_FILES=ON \
+ -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \
+ -DLLVM_ENABLE_CURL=ON \
+ -DLLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO=ON \
+ -DCLANG_PLUGIN_SUPPORT=OFF \
+ -DCLANG_BUILD_EXAMPLES=OFF \
+ -DCLANG_DEFAULT_LINKER=ld \
+ -DCLANG_DEFAULT_CXX_STDLIB=libstdc++ \
+ -DCLANG_DEFAULT_RTLIB=libgcc \
+ -DCOMPILER_RT_BUILD_XRAY=OFF \
+ -DCOMPILER_RT_INCLUDE_TESTS=OFF \
+ -DCOMPILER_RT_USE_LIBCXX=OFF \
+ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=$(COMPILER_RT_USE_BUILTINS_LIBRARY) \
+ -DLIBUNWIND_USE_COMPILER_RT=ON \
+ -DLIBUNWIND_INSTALL_LIBRARY=OFF \
+ -DLIBCXXABI_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
+ -DLIBCXXABI_USE_COMPILER_RT=$(LIBCXX_USE_COMPILER_RT) \
+ -DLIBCXXABI_INSTALL_LIBRARY=OFF \
+ -DLIBCXX_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
+ -DLIBCXX_USE_COMPILER_RT=$(LIBCXX_USE_COMPILER_RT) \
+ -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON \
+ -DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \
+ -DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF \
+ -DLIBCXX_INSTALL_LIBRARY=OFF \
+ -DOPENMP_ENABLE_LIBOMP_PROFILING=OFF \
+ -DOPENMP_ENABLE_LIBOMPTARGET_PROFILING=OFF \
+ -DLIBOMP_ENABLE_RTTI=OFF \
+ -DLIBOMP_OMPT_SUPPORT=OFF \
+ $(CMAKE_EXTRA) \
+ -DBUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_1_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_1_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
+ -DRUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_1_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_1_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
+ -DCLANG_ENABLE_BOOTSTRAP=ON \
+ -DCLANG_BOOTSTRAP_TARGETS="$(ENABLED_STAGE2_CMAKE_BUILD_TARGETS)" \
+ -DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_SUPPRESS_REGENERATION;ENABLE_LINKER_BUILD_ID;LLVM_ENABLE_PIC;LLVM_ENABLE_RTTI;LLVM_INCLUDE_GO_TESTS;LLVM_USE_RELATIVE_PATHS_IN_FILES;CLANG_DEFAULT_LINKER;CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;COMPILER_RT_USE_LIBCXX;COMPILER_RT_USE_BUILTINS_LIBRARY;COMPILER_RT_INCLUDE_TESTS;LIBUNWIND_USE_COMPILER_RT;LIBCXXABI_ENABLE_EXCEPTIONS;LIBCXXABI_USE_COMPILER_RT;LIBCXX_USE_COMPILER_RT;LIBCXX_ENABLE_EXCEPTIONS;LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY;LIBOMP_ENABLE_RTTI;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN" \
+ -DBOOTSTRAP_CMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DBOOTSTRAP_CMAKE_C_FLAGS_RELWITHDEBINFO="$(opt_flags)" \
+ -DBOOTSTRAP_CMAKE_CXX_FLAGS_RELWITHDEBINFO="$(opt_flags)" \
+ -DBOOTSTRAP_CMAKE_C_FLAGS="$(STAGE_2_CFLAGS)" \
+ -DBOOTSTRAP_CMAKE_CXX_FLAGS="$(STAGE_2_CXXFLAGS)" \
+ -DBOOTSTRAP_CMAKE_SHARED_LINKER_FLAGS="$(STAGE_2_LDFLAGS)" \
+ -DBOOTSTRAP_CMAKE_MODULE_LINKER_FLAGS="$(STAGE_2_LDFLAGS)" \
+ -DBOOTSTRAP_CMAKE_EXE_LINKER_FLAGS="$(STAGE_2_LDFLAGS)" \
+ -DBOOTSTRAP_LLVM_ENABLE_FFI=ON \
+ -DBOOTSTRAP_LLVM_ENABLE_DUMP=ON \
+ -DBOOTSTRAP_LLVM_ENABLE_LIBPFM=ON \
+ -DBOOTSTRAP_LLVM_ENABLE_SPHINX=ON \
+ -DBOOTSTRAP_CLANG_DEFAULT_PIE_ON_LINUX=ON \
+ -DBOOTSTRAP_SPHINX_WARNINGS_AS_ERRORS=OFF \
+ -DBOOTSTRAP_LLVM_USE_RELATIVE_PATHS_IN_FILES=ON \
+ -DBOOTSTRAP_LLVM_INSTALL_UTILS=ON \
+ -DBOOTSTRAP_LLVM_VERSION_SUFFIX= \
+ -DBOOTSTRAP_LLVM_POLLY_LINK_INTO_TOOLS=ON \
+ -DBOOTSTRAP_LLVM_EXPERIMENTAL_TARGETS_TO_BUILD="M68k" \
+ -DBOOTSTRAP_LLVM_LINK_LLVM_DYLIB=ON \
+ -DBOOTSTRAP_LLVM_ENABLE_CURL=ON \
+ -DBOOTSTRAP_CLANG_LINK_CLANG_DYLIB=ON \
+ -DBOOTSTRAP_LIBCLANG_LIBRARY_VERSION=$(SONAME_EXT) \
+ -DBOOTSTRAP_LIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON \
+ -DBOOTSTRAP_PYTHON_EXECUTABLE=/usr/bin/python3 \
+ $(BOOTSTRAP_CMAKE_EXTRA) \
+ -DBOOTSTRAP_BUILTINS_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_2_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_2_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_2_LDFLAGS);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_2_LDFLAGS);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_2_LDFLAGS);-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=$(opt_flags);-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$(opt_flags);-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
+ -DBOOTSTRAP_RUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_2_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_2_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_2_LDFLAGS) -L$(STAGE_1_LIB_DIR);-DCMAKE_BUILD_TYPE=RelWithDebInfo;-DCMAKE_C_FLAGS_RELWITHDEBINFO=$(opt_flags);-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=$(opt_flags);-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF"
+
+ FOUND_VERSION=`grep LLVM_VERSION_STRING build-llvm/include/llvm/Config/llvm-config.h|cut -d\" -f2`; \
+ if ! echo "$(LLVM_VERSION_FULL)"|grep "$$FOUND_VERSION"; then \
+ echo "mismatch of version. Found: $$FOUND_VERSION / Expected: $(LLVM_VERSION_FULL)"; \
+ exit 1; \
+ fi
+
+VERBOSE=-v
+
+debian-full-build:
+ echo "Using cmake: $(CMAKE_BIN)"
+# linker hack so stage2 can link against stage1 libs at runtime
+ LD_LIBRARY_PATH=$(STAGE_1_LIB_DIR):$$LD_LIBRARY_PATH \
+ VERBOSE=1 $(PRE_PROCESS) $(CMAKE_BIN) --build $(TARGET_BUILD) -j $(NJOBS) --target stage2
+
+# Check the stage 2 build worked
+ 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."; \
+ if test "$(SCAN_BUILD)" = "no"; then \
+ exit 2; \
+ fi; \
+ fi
+ if ldd $(TARGET_BUILD_STAGE2)/lib/libclang-$(LLVM_VERSION).so.1|grep -q libclang-cpp-$(LLVM_VERSION); then \
+ echo "libclang-$(LLVM_VERSION).so.1 depends on libclang-cpp. Should not be the case"; \
+ exit 2; \
+ fi
+ if test -e $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libclang-$(LLVM_VERSION).so.1; then \
+ echo "libclang-$(LLVM_VERSION).so.1 link is broken"; \
+ exit 2; \
+ fi
+ touch $@
+
+debian-libfuzzer-build:
+ifeq (${LIBFUZZER_ENABLE},yes)
+ cd $(TARGET_BUILD); \
+ CFLAGS="$(opt_flags) $(STAGE_2_CFLAGS)"; \
+ echo $$CFLAGS; \
+ $(STAGE_2_BIN_DIR)/clang++ -c $$CFLAGS -std=c++17 $(BASE_PATH)/compiler-rt/lib/fuzzer/*.cpp -IFuzzer || exit 1; \
+ ar ruv libFuzzer.a Fuzzer*.o
+endif
+ touch $@
+
+debian-libclc-build:
+# Builds libclc
+ mkdir -p libclc/build
+ echo "Using cmake: $(CMAKE_BIN)"
+ cd libclc/build && \
+ $(CMAKE_BIN) ../ \
+ -G Ninja \
+ $(SCCACHE_CMAKE) \
+ -DCMAKE_C_COMPILER=$(STAGE_2_BIN_DIR)/clang \
+ -DCMAKE_CXX_COMPILER=$(STAGE_2_BIN_DIR)/clang++ \
+ -DCMAKE_C_FLAGS="$(opt_flags) $(STAGE_2_CFLAGS)" \
+ -DCMAKE_CXX_FLAGS="$(opt_flags) $(STAGE_2_CXXFLAGS)" \
+ -DCMAKE_SHARED_LINKER_FLAGS="$(STAGE_2_LDFLAGS) -L$(STAGE_2_LIB_DIR)" \
+ -DCMAKE_MODULE_LINKER_FLAGS="$(STAGE_2_LDFLAGS) -L$(STAGE_2_LIB_DIR)" \
+ -DCMAKE_EXE_LINKER_FLAGS="$(STAGE_2_LDFLAGS) -L$(STAGE_2_LIB_DIR)" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_DATADIR=lib \
+ -DCMAKE_INSTALL_INCLUDEDIR=include \
+ -DLLVM_CONFIG=$(STAGE_2_BIN_DIR)/llvm-config \
+ $(LIBCLC_LLVM_SPIRV) \
+ -DLIBCLC_TARGETS_TO_BUILD=$(LIBCLC_TARGETS_TO_BUILD); \
+ ninja -j $(NJOBS) $(VERBOSE)
+ifndef LLVM_SPIRV
+ echo "libclc built without SPIRV (.spv) outputs because llvm-spirv wasn't found"
+endif
+ touch $@
+
+debian-rtlib-wasm-build:
+ifeq (${COMPILER_RT_WASM_ENABLE},yes)
+ echo "Using cmake: $(CMAKE_BIN)"
+ for build in wasm32 wasm64; do \
+ mkdir -p build-compiler-rt-$$build; \
+ $(CMAKE_BIN) -B build-compiler-rt-$$build -S compiler-rt/lib/builtins/ \
+ -G Ninja \
+ $(SCCACHE_CMAKE) \
+ -DCMAKE_C_COMPILER_TARGET=$$build-unknown-unknown \
+ -DCMAKE_CXX_COMPILER_TARGET=$$build-unknown-unknown \
+ -DCMAKE_ASM_COMPILER_TARGET=$$build-unknown-unknown \
+ -DCMAKE_C_COMPILER=$(STAGE_2_BIN_DIR)/clang \
+ -DCMAKE_CXX_COMPILER=$(STAGE_2_BIN_DIR)/clang++ \
+ -DCMAKE_C_FLAGS="$(opt_flags) $(STAGE_2_CFLAGS)" \
+ -DCMAKE_CXX_FLAGS="$(opt_flags) $(STAGE_2_CXXFLAGS)" \
+ -DCMAKE_SHARED_LINKER_FLAGS="$(STAGE_2_LDFLAGS) -L$(STAGE_2_LIB_DIR)" \
+ -DCMAKE_MODULE_LINKER_FLAGS="$(STAGE_2_LDFLAGS) -L$(STAGE_2_LIB_DIR)" \
+ -DCMAKE_EXE_LINKER_FLAGS="$(STAGE_2_LDFLAGS) -L$(STAGE_2_LIB_DIR)" \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL) \
+ -DCMAKE_INSTALL_DATADIR=lib \
+ -DCMAKE_INSTALL_INCLUDEDIR=include \
+ -DLLVM_CONFIG_PATH=$(STAGE_2_BIN_DIR)/llvm-config \
+ -DCOMPILER_RT_STANDALONE_BUILD=ON \
+ -DCOMPILER_RT_BAREMETAL_BUILD=ON \
+ -DCOMPILER_RT_INCLUDE_TESTS=OFF \
+ -DCOMPILER_RT_USE_LIBCXX=OFF \
+ -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \
+ -DCOMPILER_RT_DEFAULT_TARGET_TRIPLE=$$build-unknown-unknown \
+ -DCOMPILER_RT_OS_DIR=wasi || exit 1; \
+ ninja -C build-compiler-rt-$$build -j $(NJOBS) $(VERBOSE) || exit 1; \
+ done
+else
+ echo "Skip on this arch"
+endif
+ touch $@
+
+
+sccache-stats:
+# If we used sccache, shows stats
+ if test -f /opt/sccache/sccache; then \
+ ls -al /opt/sccache/; \
+ mkdir -p /tmp/buildd/source/; \
+ /opt/sccache/sccache --stats-format json --show-stats > /tmp/buildd/source/sccache-stats.json; \
+ cat /tmp/buildd/source/sccache-stats.json; \
+ fi
+ touch $@
+
+override_dh_auto_build: debian-full-build debian-libfuzzer-build debian-libclc-build debian-rtlib-wasm-build sccache-stats
+
+override_dh_prep: build_doc
+ dh_prep
+
+build_doc:
+ BUILDDIR="_build"; \
+ ALLSPHINXOPTS="-d $$BUILDDIR/doctrees ."; \
+ cd $(CURDIR)/llvm/docs && \
+ sphinx-build -b html $$ALLSPHINXOPTS $$BUILDDIR/html && \
+ sphinx-build -b man $$ALLSPHINXOPTS $$BUILDDIR/man && \
+ cd -; \
+ cd $(CURDIR)/clang/docs && \
+ sphinx-build -b html $$ALLSPHINXOPTS $$BUILDDIR/html && \
+ sphinx-build -b man $$ALLSPHINXOPTS $$BUILDDIR/man
+
+ -(if test "$(OCAML_ENABLE)" = yes; then \
+ ninja -C "$(TARGET_BUILD_STAGE2)" $(VERBOSE) ocaml_doc; \
+ fi)
+
+ ninja -C $(TARGET_BUILD_STAGE2) $(VERBOSE) docs-llvm-html docs-clang-html docs-clang-tools-html docs-clang-tools-man docs-clang-man docs-llvm-man
+
+ifeq (${POLLY_ENABLE},yes)
+ ninja -C $(TARGET_BUILD_STAGE2) $(VERBOSE) docs-polly-html docs-polly-man
+endif
+
+# Rename manpages
+ d=$(CURDIR)/llvm/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_STAGE2)/docs/html/_static/ $(TARGET_BUILD_STAGE2)/tools/clang/docs/html/_static/ $(TARGET_BUILD_STAGE2)/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-objdump llvm-rtdyld llvm-size llvm-ranlib lldb clang-format clang clang++ clang-tblgen clang-check clang-cpp 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 clang-repl clang-nvlink-wrapper git-clang-format run-clang-tidy"; \
+ 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 || true; \
+ 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
+ LD_LIBRARY_PATH=$(STAGE_2_LIB_DIR):$$LD_LIBRARY_PATH DESTDIR=$(DEB_INST)/ ninja -C $(TARGET_BUILD) $(VERBOSE) stage2-install
+
+ # 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
+
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libExampleIRTransforms.a
+ # Remove an example - introduced in https://reviews.llvm.org/D61446
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libBye.a
+
+ 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`
+
+ : # libclang
+ cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && \
+ ln -s libclang-$(LLVM_VERSION).so.$(LLVM_VERSION) libclang.so.$(SONAME_EXT) && \
+ ln -s libclang-$(LLVM_VERSION).so.$(LLVM_VERSION) libclang-$(LLVM_VERSION).so.$(SONAME_EXT)
+
+ if test "$(LIBUNWIND_ENABLE)" = yes; then \
+ mkdir -p debian/tmp/usr/include/libunwind; \
+ cp -R libunwind/include/* debian/tmp/usr/include/libunwind/; \
+ fi
+
+ : # libomp
+ if test "$(OPENMP_ENABLE)" = yes; then \
+ cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib; \
+ ln -s libomp.so.$(SONAME_OPENMP) libomp.so; \
+ 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 sanitizers 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
+
+# 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
+
+# Probably useless
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/*-packages/six.py
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/local/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__/
+
+ # workaround issue https://github.com/llvm/llvm-project/issues/57101
+ find debian/tmp -iname 'libbolt_rt*.a' -path '*/build-llvm/*' -delete
+ # Remove an osx file
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libbolt_rt_instr_osx.a
+
+ DESTDIR=$(DEB_INST) ninja $(VERBOSE) -C libclc/build install
+
+ifeq (${COMPILER_RT_WASM_ENABLE},yes)
+ DESTDIR=$(DEB_INST) ninja $(VERBOSE) -C build-compiler-rt-wasm32 install
+ DESTDIR=$(DEB_INST) ninja $(VERBOSE) -C build-compiler-rt-wasm64 install
+endif
+
+# 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)/llvm/utils/vim/$$dir/llvm.vim $(CURDIR)/llvm/utils/vim/$$dir/llvm-$(LLVM_VERSION).vim; \
+ if test -f $(CURDIR)/llvm/utils/vim/$$dir/tablegen.vim; then \
+ cp -f $(CURDIR)/llvm/utils/vim/$$dir/tablegen.vim $(CURDIR)/llvm/utils/vim/$$dir/tablegen-$(LLVM_VERSION).vim; \
+ fi; \
+ done
+ cp -f $(CURDIR)/llvm/utils/vim/vimrc $(CURDIR)/llvm/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\|llvm-omp-device-info\|omptarget\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
+
+# Also disable mlir-* checks in the cmake
+ sed -i '/_IMPORT_CHECK_TARGETS \(mlir-\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake
+
+ sed -i '/_cmake_import_check_files_for_.*\/bin\/.*/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
+ sed -i '/_IMPORT_CHECK_FILES_FOR_.*\/bin\/.*/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
+ sed -i '/_IMPORT_CHECK_FILES_FOR_\(mlir-\|Polly\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.cmake
+ sed -i '/_cmake_import_check_files_for_\(mlir\|Polly\|MLIR\)/ {s|^|#|}' $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/llvm/LLVMExports-*.cmake $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/cmake/clang/ClangTargets-*.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
+
+# Adjust to the existing symlink. See #994827
+ sed -i "s|libclang-$(LLVM_VERSION).so.$(LLVM_VERSION).*\"|libclang-$(LLVM_VERSION).so.1\"|" $(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-common-$(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_STAGE2)/docs/html $(CURDIR)/debian/usr/share/doc/llvm-$(LLVM_VERSION)-doc/
+ cp -R $(TARGET_BUILD_STAGE2)/tools/clang/docs/html $(CURDIR)/debian/usr/share/doc/clang-$(LLVM_VERSION)-doc/
+ cp -R $(TARGET_BUILD_STAGE2)/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
+
+# For some reasons, from Ubuntu jammy, python stuff are installed in /local/lib, move it back
+ if test -d $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/local/lib/; then \
+ mv $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/local/lib/* $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/; \
+ rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python*/*-packages/six.py; \
+ ls $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/local/; \
+ rmdir $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/local/lib; \
+ rmdir $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/local; \
+ 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)
+ dh_makeshlibs -pliblldb-$(LLVM_VERSION)
+ dh_makeshlibs -plibllvm$(LLVM_VERSION)
+ dh_makeshlibs -plibomp$(SONAME_OPENMP)-$(LLVM_VERSION)
+ dh_makeshlibs --remaining-packages -V
+
+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'
+ dh_strip -p libllvm$(LLVM_VERSION) --dbgsym-migration='libllvm$(LLVM_VERSION)-dbg'
+ dh_strip -p liblldb-$(LLVM_VERSION) --dbgsym-migration='liblldb-$(LLVM_VERSION)-dbg'
+ dh_strip -p libomp$(SONAME_OPENMP)-$(LLVM_VERSION) --dbgsym-migration='libomp$(SONAME_OPENMP)-$(LLVM_VERSION)-dbg'
+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
+ : # Therefore, 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
+ # GNU strip doesn't recognize WebAssembly binaries, and actually corrupts them.
+ # llvm-strip (as of 15.0.2) fails with --strip-debug (but works with --strip-all)
+ dh_strip -a -v -Xlibclang_rt.builtins-wasm32.a -Xlibclang_rt.builtins-wasm64.a
+endif
+
+override_dh_install:
+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
+
+
+repack_a_llvm_ir:
+ifeq (${LTO_ENABLE},yes)
+# with LTO, .a contains llvm ir instead of native code. So, recompile them
+ NJOBS="$(NJOBS)" P_TO_LLVM="$(CURDIR)" VERSION=$(LLVM_VERSION) bash -v debian/llvm-compile-lto-elf.sh $(CXXFLAGS_EXTRA)
+endif
+ touch $@
+
+
+override_dh_installdeb: repack_a_llvm_ir
+# 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*
+
+# the openmp header files moved to the same path as lib clang headers.
+# To make sure they aren't conflicting ( https://bugs.llvm.org/show_bug.cgi?id=46977 )
+# Remove them from the libclang-common package
+ rm -f $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION_FULL)/include/omp*.h
+
+# Remove some libc++ abi files in the libc++ file. See bug #969274
+ rm -f $(CURDIR)/debian/libc++-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/c++/__cxxabi_config.h $(CURDIR)/debian/libc++-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/c++/cxxabi.h
+# 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:
+ echo "Running tests: $(RUN_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
+ ninja $(VERBOSE) -C $(TARGET_BUILD) stage2-check-llvm | tee check-llvm_build_log.txt
+else
+ ninja $(VERBOSE) -C $(TARGET_BUILD) stage2-check-llvm || true
+endif
+
+# Clang tests
+ ninja $(VERBOSE) -C $(TARGET_BUILD) stage2-check-clang || true
+
+# Clang extra tests (ex: clang-tidy)
+ ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-clang-tools || true
+
+# LLD tests
+ifeq (${LLD_ENABLE},yes)
+ ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-lld || true
+endif
+
+# Sanitizer
+ ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-sanitizer || true
+
+# Libcxx
+ ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-libcxx || true
+
+# Libcxxabi
+ ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-libcxxabi || true
+
+# MLIR
+ifeq (,$(filter $(DEB_HOST_ARCH), i386 x32))
+# Do not run MLIR test on i386 because of
+# https://github.com/llvm/llvm-project/issues/58357
+ ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-mlir || true
+endif
+
+# Libclc
+ ninja $(VERBOSE) -C libclc/build test || 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/ ninja $(VERBOSE) -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)
+# ninja -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
+else
+override_dh_auto_test:
+ @echo "Skipping tests"
+endif
+
+
+override_dh_gencontrol: sccache-stats
+ dh_gencontrol -- $(control_vars)
+
+
+override_dh_auto_clean:
+ rm -rf $(TARGET_BUILD) llvm/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 libclc/build
+ rm -rf build-compiler-rt-wasm32 build-compiler-rt-wasm64
+ 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
+ for f in debian/*.in; do \
+ f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \
+ rm -f $$f2; \
+ done
+ if test "$(SCAN_BUILD)" = "yes"; then \
+ patch -f -R -p1 < debian/patches/on-the-fly/use-scan-build-runtimes.diff||true; \
+ fi
+ : # for some reason, the docs are written to debian/usr and debian/man ...
+ rm -rf debian/usr debian/man
+ : # remove extra stamps
+ rm -f debian-*-build
+
+.PHONY: override_dh_strip preconfigure debian-full-build debian-libfuzzer-build debian-libclc-build debian-rtlib-wasm-build
--- /dev/null
+3.0 (quilt)
--- /dev/null
+# Removed by patch remove-dbtree.diff
+source: source-is-missing clang/www/analyzer/scripts/dbtree.js
+
+# 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 llvm/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
+source: source-is-missing lldb/lit/Modules/ELF/Inputs/netbsd-amd64.core
+source: source-is-missing llgo/third_party/gofrontend/libgo/go/debug/dwarf/testdata/*.elf*
+source: source-is-missing llgo/third_party/gofrontend/libgo/go/debug/elf/testdata/gcc-*-exec
+source: source-is-missing llgo/third_party/gofrontend/libgo/go/debug/elf/testdata/*.obj
+source: source-is-missing llvm/test/*
+source: source-is-missing lldb/test/*
+source: source-is-missing lld/test/*
+source: source-is-missing clang/test/Driver/Inputs/dummy-elf.o
+
+# By design
+source: invalid-arch-string-in-source-relation riscv64*
--- /dev/null
+extend-diff-ignore = "(^|/)(clang|clang-tools-extra|compiler-rt|CONTRIBUTING.md|debuginfo-tests|flang|integration-test-suite|libc|libclc|libcxx|libcxxabi|libunwind|lld|lldb|llvm|mlir|openmp|parallel-libs|polly|pstl|README.md|runtimes|utils|)"
--- /dev/null
+#!/bin/sh
+
+set -e
+
+LLVM_VERSION=15
+
+# this is taken from libjsoncpp package
+# Presence of $AUTOPKGTEST_TMP implies that someone will handle cleanup for us, so we
+# can avoid duplicating the effort (signal handling, etc.) here.
+if [ -z "$AUTOPKGTEST_TMP" ]
+then
+ echo "Required envvar AUTOPKGTEST_TMP \"$AUTOPKGTEST_TMP\" is not set" >&2
+ exit 1
+fi
+
+
+# the idea was taken from spirv-llvm-translator package
+
+cd "$AUTOPKGTEST_TMP"
+cat <<EOF > CMakeLists.txt
+cmake_minimum_required(VERSION 3.7)
+project(cmake-test)
+find_package(LLVM $LLVM_VERSION REQUIRED
+ COMPONENTS
+ Analysis
+ BitReader
+ BitWriter
+ Core
+ Support
+ TransformUtils
+ llvm-as
+ llvm-dis
+)
+
+EOF
+
+
+mkdir build && cd build
+cmake ..
--- /dev/null
+Test-Command: bash -v ./debian/qualify-clang.sh
+Depends: @, cmake, make, g++, file, dpkg-dev
+# Comment the dbgsym package because of bug #917528
+# dbgsym packages not being available in testing
+# clang-15-dbgsym, libclang1-15-dbgsym
+Restrictions: allow-stderr
+Architecture: amd64 arm64 i386
+
+Tests: integration-test-suite-test
+Depends: @, cmake, make, g++, libstdc++-10-dev
+Restrictions: allow-stderr
+Architecture: amd64 arm64
+
+Tests: cmake-test
+Depends: gcc, build-essential, cmake, llvm-15-dev
+
+Test-Command: python3 -c "import lldb; print(lldb.__file__); print(lldb)"
+Depends: python3-lldb-15
+
+Test-Command: python3 -c "import clang; print(clang.__file__); print(clang)"
+Depends: python3-clang-15
--- /dev/null
+#!/bin/sh
+
+set -e
+
+LLVM_VERSION=15
+
+# this is taken from libjsoncpp package
+# Presence of $AUTOPKGTEST_TMP implies that someone will handle cleanup for us, so we
+# can avoid duplicating the effort (signal handling, etc.) here.
+if [ -z "$AUTOPKGTEST_TMP" ]
+then
+ echo "Required envvar AUTOPKGTEST_TMP \"$AUTOPKGTEST_TMP\" is not set" >&2
+ exit 1
+fi
+
+# Copy the integration repo to the temp dir
+cp -Rv integration-test-suite/* "$AUTOPKGTEST_TMP"/
+cd "$AUTOPKGTEST_TMP"
+
+mkdir build
+cd build
+cmake -DLIT=/usr/lib/llvm-$LLVM_VERSION/build/utils/lit/lit.py \
+ -DCLANG_BINARY=/usr/bin/clang-$LLVM_VERSION \
+ -DCLANGXX_BINARY=/usr/bin/clang++-$LLVM_VERSION \
+ -DCLANG_TIDY_BINARY=/usr/bin/clang-tidy-$LLVM_VERSION \
+ -DCLANG_FORMAT_BINARY=/usr/bin/clang-format-$LLVM_VERSION \
+ -DLLD_BINARY=/usr/bin/lld-$LLVM_VERSION \
+ -DLLDB_BINARY=/usr/bin/lldb-$LLVM_VERSION \
+ -DLLVMCONFIG_BINARY=/usr/bin/llvm-config-$LLVM_VERSION \
+ -DOPT_BINARY=/usr/bin/opt-$LLVM_VERSION \
+ -DSCANBUILD=/usr/bin/scan-build-$LLVM_VERSION \
+ -DCLANG_TIDY_BINARY=/usr/bin/clang-tidy-$LLVM_VERSION \
+ -DSCANVIEW=/usr/bin/scan-view-$LLVM_VERSION \
+ -DLLVMNM=/usr/bin/llvm-nm-$LLVM_VERSION \
+ -DLLVMPROFDATA=/usr/bin/llvm-profdata-$LLVM_VERSION \
+ -DENABLE_COMPILER_RT=OFF \
+ -DENABLE_LIBCXX=ON \
+ -DLLVM_CMAKE_PREFIX_PATH=/usr/lib/llvm-$LLVM_VERSION/lib/cmake/ ../
+make check
--- /dev/null
+set -e
+ORIG_VERSION=15
+MAJOR_VERSION=15 #.0.4 # 8.0.1
+REV=`ls -1 *${ORIG_VERSION}_${MAJOR_VERSION}*~+*xz | tail -1|perl -ne 'print "$1\n" if /~\+(.*)\.orig/;' | sort -ru`
+
+VERSION=$REV
+
+if test -z "$VERSION"; then
+ echo "Could not find the version"
+ exit 0
+fi
+LLVM_ARCHIVE=llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~+$VERSION.orig.tar.xz
+echo "unpack of $LLVM_ARCHIVE"
+tar Jxf $LLVM_ARCHIVE
+cd llvm-toolchain-${ORIG_VERSION}_$MAJOR_VERSION~+$VERSION/
+
+VER_FOUND=$(grep "LLVM_VERSION_MAJOR " llvm/CMakeLists.txt|awk '{print $2}'|cut -d\) -f1)
+if test "${MAJOR_VERSION}" != "$VER_FOUND" -a "${MAJOR_VERSION}.0.0" != "$VER_FOUND" -a "${MAJOR_VERSION}.0.0git" != "$VER_FOUND" -a "${MAJOR_VERSION}git" != "$VER_FOUND"; then
+ echo "Mismatch of version"
+ echo "Expected $MAJOR_VERSION / Found $VER_FOUND"
+ echo "Update unpack.sh"
+ exit 1
+fi
+
+cp -R ../$ORIG_VERSION/debian .
+QUILT_PATCHES=debian/patches/ quilt push -a --fuzz=0
--- /dev/null
+version=4
+https://llvm.org/releases/download.html .*/llvm-([\d\.\-]+).src.tar.xz