mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-06-12 12:48:45 +00:00
Integration of libcxx and libcxxabi
This commit is contained in:
parent
94ffbdbb75
commit
6ac04400ae
4
debian/changelog
vendored
4
debian/changelog
vendored
@ -3,6 +3,10 @@ llvm-toolchain-snapshot (1:7~svn336894-1~exp2) UNRELEASED; urgency=medium
|
||||
[ Dimitri John Ledkov ]
|
||||
* Enable lldb on ppc64el LP: #1777136
|
||||
|
||||
[ Reshabh Sharma ]
|
||||
* Integrate libcxx and libcxxabi as part of the llvm-toolchain packages
|
||||
(Closes: 813673)
|
||||
|
||||
-- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 20 Jul 2018 09:59:40 +0200
|
||||
|
||||
llvm-toolchain-snapshot (1:7~svn336894-1~exp1) experimental; urgency=medium
|
||||
|
2
debian/clang++-libc++-X.Y.in
vendored
Normal file
2
debian/clang++-libc++-X.Y.in
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
clang++ -stdlib=libc++ "$@"
|
139
debian/control
vendored
139
debian/control
vendored
@ -516,3 +516,142 @@ Description: LLVM OpenMP runtime - Documentation
|
||||
while it is executing.
|
||||
.
|
||||
This package contains the documentation of this package.
|
||||
|
||||
# ------------- libcxx -------------
|
||||
|
||||
Package: libc++1-7
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: clang
|
||||
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++-7-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: libc++1-7 (= ${binary:Version}), ${misc:Depends}, libc++-helpers
|
||||
Provides: libstdc++-dev, libc++-7-dev
|
||||
Breaks: libc++-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.
|
||||
|
||||
Package: libc++-7-test
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Depends: libc++1-7 (= ${binary:Version}), ${misc:Depends}
|
||||
Description: LLVM C++ Standard library (test cases)
|
||||
Breaks: libc++-test
|
||||
Provides: libc++-test
|
||||
libc++ is another implementation of the C++ standard library.
|
||||
.
|
||||
Features and Goals
|
||||
.
|
||||
* Correctness as defined by the 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.
|
||||
.
|
||||
This package contains the test cases of libc++ library.
|
||||
|
||||
# ------------- libcxxabi -------------
|
||||
|
||||
Package: libc++abi1-7
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Pre-Depends: ${misc:Pre-Depends}
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Breaks: libc++abi1
|
||||
Provides: libc++abi1
|
||||
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-7-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: libc++abi1-7 (= ${binary:Version}), ${misc:Depends}
|
||||
Replaces: libc++-7-dev (<< 3.9.0-3)
|
||||
Breaks: libc++-dev (<< 3.9.0-3), libc++-7-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++
|
||||
.
|
||||
|
||||
Package: libc++abi-7-test
|
||||
Section: libs
|
||||
Architecture: any
|
||||
Depends: libc++abi1-7 (= ${binary:Version}), ${misc:Depends}
|
||||
Breaks: libc++abi-test
|
||||
Provides: libc++abi-test
|
||||
Description: libc++abi test cases
|
||||
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++
|
||||
.
|
||||
Test cases of libc++abi library.
|
||||
|
||||
|
||||
Package: libc++-7-helpers
|
||||
Architecture: all
|
||||
Multi-Arch: foreign
|
||||
Depends: ${misc:Depends}
|
||||
Breaks: libc++-7-helpers
|
||||
Provides: libc++-helpers
|
||||
Description: LLVM C++ Standard library - build helpers
|
||||
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.
|
||||
.
|
||||
This package contains the build helpers (clang++-libc++, etc)
|
||||
|
16
debian/g++-libc++-X.Y.in
vendored
Normal file
16
debian/g++-libc++-X.Y.in
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
cxx_libs="-lc++"
|
||||
c_libs="-lc -lgcc_s"
|
||||
pthread_libs="-lpthread $c_libs"
|
||||
|
||||
libs="$cxx_libs $c_libs"
|
||||
|
||||
for i; do
|
||||
if test x"$i" = x"-pthread"; then
|
||||
libs="$libs $pthread_libs"
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
gcc -std=c++0x -nodefaultlibs $libs -isystem/usr/include/c++/v1 "$@"
|
3
debian/libc++-X.Y-dev.install.in
vendored
Normal file
3
debian/libc++-X.Y-dev.install.in
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
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++
|
3
debian/libc++-X.Y-dev.links.in
vendored
Normal file
3
debian/libc++-X.Y-dev.links.in
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so /usr/lib/x86_64-linux-gnu/libc++.so
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a /usr/lib/x86_64-linux-gnu/libc++.a
|
||||
usr/lib/llvm-@LLVM_VERSION@/include/c++ /usr/include/c++
|
2
debian/libc++-X.Y-helpers.install.in
vendored
Normal file
2
debian/libc++-X.Y-helpers.install.in
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
debian/clang++-libc++-@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/bin/
|
||||
debian/g++-libc++-@LLVM_VERSION@ usr/lib/llvm-@LLVM_VERSION@/bin/
|
2
debian/libc++-X.Y-helpers.links.in
vendored
Normal file
2
debian/libc++-X.Y-helpers.links.in
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/bin/clang++-libc++-@LLVM_VERSION@ usr/bin/clang++-libc++-@LLVM_VERSION@
|
||||
usr/lib/llvm-@LLVM_VERSION@/bin/g++-libc++-@LLVM_VERSION@ usr/bin/g++-libc++-@LLVM_VERSION@
|
42
debian/libc++-X.Y-helpers.postinst.in
vendored
Normal file
42
debian/libc++-X.Y-helpers.postinst.in
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
# postinst script for libc++
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <postinst> `configure' <most-recently-configured-version>
|
||||
# * <old-postinst> `abort-upgrade' <new version>
|
||||
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
||||
# <new-version>
|
||||
# * <postinst> `abort-remove'
|
||||
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
||||
# <failed-install-package> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
PRIORITY=5
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-libc++ $PRIORITY
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "postinst called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
||||
|
39
debian/libc++-X.Y-helpers.prerm.in
vendored
Normal file
39
debian/libc++-X.Y-helpers.prerm.in
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
# prerm script for libc++
|
||||
#
|
||||
# see: dh_installdeb(1)
|
||||
|
||||
set -e
|
||||
|
||||
# summary of how this script can be called:
|
||||
# * <prerm> `remove'
|
||||
# * <old-prerm> `upgrade' <new-version>
|
||||
# * <new-prerm> `failed-upgrade' <old-version>
|
||||
# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
|
||||
# * <deconfigured's-prerm> `deconfigure' `in-favour'
|
||||
# <package-being-installed> <version> `removing'
|
||||
# <conflicting-package> <version>
|
||||
# for details, see http://www.debian.org/doc/debian-policy/ or
|
||||
# the debian-policy package
|
||||
|
||||
|
||||
case "$1" in
|
||||
remove|upgrade|deconfigure)
|
||||
update-alternatives --remove c++ /usr/bin/clang++-libc++
|
||||
;;
|
||||
|
||||
failed-upgrade)
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "prerm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# dh_installdeb will replace this with shell code automatically
|
||||
# generated by other debhelper scripts.
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
1
debian/libc++1-X.Y.install.in
vendored
Normal file
1
debian/libc++1-X.Y.install.in
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.*
|
1
debian/libc++1-X.Y.links.in
vendored
Normal file
1
debian/libc++1-X.Y.links.in
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libc++.so.1
|
3
debian/libc++abi-X.Y-dev.install.in
vendored
Normal file
3
debian/libc++abi-X.Y-dev.install.in
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.a
|
||||
usr/lib/llvm-@LLVM_VERSION@/include/c++/v1/*cxxabi*
|
4
debian/libc++abi-X.Y-dev.links.in
vendored
Normal file
4
debian/libc++abi-X.Y-dev.links.in
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.a /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.a
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so
|
||||
usr/lib/llvm-@LLVM_VERSION@/include/c++/v1/cxxabi.h /usr/include/c++/v1/cxxabi.h
|
||||
usr/lib/llvm-@LLVM_VERSION@/include/c++/v1/__cxxabi_config.h /usr/include/c++/v1/__cxxabi_config.h
|
1
debian/libc++abi1-X.Y.install.in
vendored
Normal file
1
debian/libc++abi1-X.Y.install.in
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi*
|
1
debian/libc++abi1-X.Y.links.in
vendored
Normal file
1
debian/libc++abi1-X.Y.links.in
vendored
Normal file
@ -0,0 +1 @@
|
||||
usr/lib/llvm-@LLVM_VERSION@/lib/libc++abi.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libc++abi.so.1
|
16
debian/orig-tar.sh
vendored
16
debian/orig-tar.sh
vendored
@ -7,6 +7,8 @@
|
||||
# llvm-toolchain-snapshot-3.2_3.2repack.orig-lldb.tar.bz2
|
||||
# llvm-toolchain-snapshot-3.2_3.2repack.orig-polly.tar.bz2
|
||||
# llvm-toolchain-snapshot-3.2_3.2repack.orig-openmp.tar.bz2
|
||||
# llvm-toolchain-snapshot-3.2_3.2repack.orig-libcxx.tar.bz2
|
||||
# llvm-toolchain-snapshot-3.2_3.2repack.orig-libcxxabi.tar.bz2
|
||||
# llvm-toolchain-snapshot-3.2_3.2repack.orig.tar.bz2
|
||||
|
||||
set -e
|
||||
@ -191,6 +193,20 @@ rm -rf $OPENMP_TARGET/www/
|
||||
tar jcf $FULL_VERSION.orig-openmp.tar.bz2 $OPENMP_TARGET
|
||||
rm -rf $OPENMP_TARGET
|
||||
|
||||
# LIBCXX
|
||||
LIBCXX_TARGET=libcxx_$VERSION
|
||||
checkout_sources libcxx $(get_svn_url libcxx $BRANCH $TAG) $LIBCXX_TARGET "$BRANCH" $REVISION
|
||||
rm -rf $LIBCXX_TARGET/www/
|
||||
tar jcf $FULL_VERSION.orig-libcxx.tar.bz2 $LIBCXX_TARGET
|
||||
rm -rf $LIBCXX_TARGET
|
||||
|
||||
# LIBCXXABI
|
||||
LIBCXXABI_TARGET=libcxxabi_$VERSION
|
||||
checkout_sources libcxxabi $(get_svn_url libcxxabi $BRANCH $TAG) $LIBCXXABI_TARGET "$BRANCH" $REVISION
|
||||
rm -rf $LIBCXXABI_TARGET/www/
|
||||
tar jcf $FULL_VERSION.orig-libcxxabi.tar.bz2 $LIBCXXABI_TARGET
|
||||
rm -rf $LIBCXXABI_TARGET
|
||||
|
||||
|
||||
PATH_DEBIAN="$(pwd)/$(dirname $0)/../"
|
||||
echo "going into $PATH_DEBIAN"
|
||||
|
24
debian/patches/libcxx-silent-failure-arm64.diff
vendored
Normal file
24
debian/patches/libcxx-silent-failure-arm64.diff
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
|
||||
@@ -8,6 +8,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
+// XFAIL: *
|
||||
|
||||
// <condition_variable>
|
||||
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/thread/thread.mutex/thread.lock/thread.lock.shared/thread.lock.shared.locking/lock.pass.cpp
|
||||
@@ -9,6 +9,7 @@
|
||||
//
|
||||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
// UNSUPPORTED: c++98, c++03, c++11
|
||||
+// XFAIL: *
|
||||
|
||||
// <shared_mutex>
|
||||
|
13
debian/patches/libcxx-silent-failure-ppc64el.diff
vendored
Normal file
13
debian/patches/libcxx-silent-failure-ppc64el.diff
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/libcxx/atomics/atomics.align/align.pass.sh.cpp
|
||||
@@ -14,7 +14,7 @@
|
||||
//
|
||||
// GCC currently fails because it needs -fabi-version=6 to fix mangling of
|
||||
// std::atomic when used with __attribute__((vector(X))).
|
||||
-// XFAIL: gcc
|
||||
+// XFAIL: *
|
||||
|
||||
// <atomic>
|
||||
|
51
debian/patches/libcxx-silent-test-libcxx.diff
vendored
Normal file
51
debian/patches/libcxx-silent-test-libcxx.diff
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/numerics/rand/rand.util/rand.util.canonical/generate_canonical.pass.cpp
|
||||
@@ -12,6 +12,8 @@
|
||||
// template<class RealType, size_t bits, class URNG>
|
||||
// RealType generate_canonical(URNG& g);
|
||||
|
||||
+// XFAIL: *
|
||||
+
|
||||
#include <random>
|
||||
#include <cassert>
|
||||
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/re/re.traits/isctype.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/re/re.traits/isctype.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/re/re.traits/isctype.pass.cpp
|
||||
@@ -16,6 +16,7 @@
|
||||
// TODO(EricWF): This test takes 40+ minutes to build with Clang 3.8 under ASAN or MSAN.
|
||||
// UNSUPPORTED: asan, msan
|
||||
|
||||
+// XFAIL: *
|
||||
|
||||
#include <regex>
|
||||
#include <cassert>
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxxabi/test/catch_multi_level_pointer.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxxabi/test/catch_multi_level_pointer.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxxabi/test/catch_multi_level_pointer.pass.cpp
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
// UNSUPPORTED: libcxxabi-no-exceptions
|
||||
|
||||
+// XFAIL: *
|
||||
+
|
||||
#include <cassert>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/utilities/allocator.adaptor/allocator.adaptor.members/construct.pass.cpp
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
// template <class T, class... Args> void construct(T* p, Args&&... args);
|
||||
|
||||
+// XFAIL: *
|
||||
+
|
||||
#include <scoped_allocator>
|
||||
#include <cassert>
|
||||
#include <string>
|
58
debian/patches/libcxx-test-atomics-set-compare-exchange-to-be-expected-fails-on-arm.patch
vendored
Normal file
58
debian/patches/libcxx-test-atomics-set-compare-exchange-to-be-expected-fails-on-arm.patch
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
Clang 3.9 regression causes a bug when generating code for
|
||||
std::atomic_compare_and_exchange*(std::atomic<long long>,...) without
|
||||
optimizations. If same code is compiled with -O2 tests pass without problems.
|
||||
Atomics are implement in headers with builtin functions which makes this
|
||||
affect application code instead of libc++ library code.
|
||||
|
||||
libcxx tests default to -O0 compilation so these test need to be marked failing
|
||||
on arm to allow installing packages. Use cases is so borderline failure that it
|
||||
shouldn't prevent building the package. (64bit atomics in 32bit mode)
|
||||
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong.pass.cpp
|
||||
@@ -8,6 +8,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
+// XFAIL: arm
|
||||
// ... assertion fails line 34
|
||||
|
||||
// <atomic>
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_strong_explicit.pass.cpp
|
||||
@@ -8,6 +8,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
+// XFAIL: arm
|
||||
// ... assertion fails line 38
|
||||
|
||||
// <atomic>
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak.pass.cpp
|
||||
@@ -8,6 +8,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
+// XFAIL: arm
|
||||
// ... assertion fails line 34
|
||||
|
||||
// <atomic>
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.types.operations/atomics.types.operations.req/atomic_compare_exchange_weak_explicit.pass.cpp
|
||||
@@ -8,6 +8,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// UNSUPPORTED: libcpp-has-no-threads
|
||||
+// XFAIL: arm
|
||||
// ... assertion fails line 38
|
||||
|
||||
// <atomic>
|
31
debian/patches/libcxx-test-fix-lockfree-test-for-i386.patch
vendored
Normal file
31
debian/patches/libcxx-test-fix-lockfree-test-for-i386.patch
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
Lock is_always_lock free test fails on i386 because std::atomic is aligned
|
||||
to 8 bytes while long long is aligned to 4 bytes. clang can't generate inline
|
||||
code for unaligned 8 byte atomics even tough instruction set and gcc support
|
||||
it.
|
||||
|
||||
That makes it expected thaqt ATOMIC_LLONG_LOCK_FREE and
|
||||
std::atomic<long long>::is_always_lock_free don't match on i386. Correct test
|
||||
for std::atomic<long long> is to check if target cpu support cmpxchg8 instruction.
|
||||
To set instruction support one can check __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 define.
|
||||
|
||||
Bug: https://llvm.org/bugs/show_bug.cgi?id=19355
|
||||
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372/libcxx/test/std/atomics/atomics.lockfree/isalwayslockfree.pass.cpp
|
||||
@@ -20,6 +20,14 @@
|
||||
# error Feature test macro missing.
|
||||
#endif
|
||||
|
||||
+#if defined(__i386__) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8)
|
||||
+/* Fix for clang setting __GCC_ATOMIC_LLONG_LOCK_FREE incorecctly for x86
|
||||
+ * https://llvm.org/bugs/show_bug.cgi?id=19355
|
||||
+ */
|
||||
+#undef ATOMIC_LLONG_LOCK_FREE
|
||||
+#define ATOMIC_LLONG_LOCK_FREE 2
|
||||
+#endif
|
||||
+
|
||||
template <typename T> void checkAlwaysLockFree() {
|
||||
if (std::atomic<T>::is_always_lock_free)
|
||||
assert(std::atomic<T>().is_lock_free());
|
118
debian/patches/libcxxabi-arm-ehabi-fix.patch
vendored
Normal file
118
debian/patches/libcxxabi-arm-ehabi-fix.patch
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
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_7svn337372/libcxxabi/src/cxa_exception.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7svn337372.orig/libcxxabi/src/cxa_exception.cpp
|
||||
+++ llvm-toolchain-snapshot_7svn337372/libcxxabi/src/cxa_exception.cpp
|
||||
@@ -261,15 +261,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
|
||||
@@ -532,7 +533,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;
|
||||
}
|
||||
}
|
||||
@@ -589,8 +594,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.
|
||||
@@ -714,8 +721,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_7svn337372/libcxxabi/src/cxa_exception.hpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7svn337372.orig/libcxxabi/src/cxa_exception.hpp
|
||||
+++ llvm-toolchain-snapshot_7svn337372/libcxxabi/src/cxa_exception.hpp
|
||||
@@ -24,6 +24,45 @@ static const uint64_t kOurExceptionClass
|
||||
static const uint64_t kOurDependentExceptionClass = 0x434C4E47432B2B01; // CLNGC++\1
|
||||
static const uint64_t get_vendor_and_language = 0xFFFFFFFFFFFFFF00; // mask for CLNGC++
|
||||
|
||||
+#if LIBCXXABI_ARM_EHABI
|
||||
+// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h)
|
||||
+#if defined(__clang__)
|
||||
+struct _Unwind_Control_Block
|
||||
+{
|
||||
+ uint64_t exception_class;
|
||||
+ void (*exception_cleanup)(_Unwind_Reason_Code, _Unwind_Control_Block *);
|
||||
+ struct {
|
||||
+ _Unwind_Word reserved1;
|
||||
+ _Unwind_Word reserved2;
|
||||
+ _Unwind_Word reserved3;
|
||||
+ _Unwind_Word reserved4;
|
||||
+ _Unwind_Word reserved5;
|
||||
+ } unwinder_cache;
|
||||
+ struct {
|
||||
+ _Unwind_Word sp;
|
||||
+ _Unwind_Word bitpattern[5];
|
||||
+ } barrier_cache;
|
||||
+ struct {
|
||||
+ _Unwind_Word bitpattern[4];
|
||||
+ } cleanup_cache;
|
||||
+ struct {
|
||||
+ _Unwind_Word fnstart;
|
||||
+ _Unwind_Word *ehtp;
|
||||
+ _Unwind_Word additional;
|
||||
+ _Unwind_Word reserved1;
|
||||
+ } pr_cache;
|
||||
+ long long int :0;
|
||||
+ operator _Unwind_Exception*() noexcept
|
||||
+ {
|
||||
+ return reinterpret_cast<_Unwind_Exception*>(this);
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#define _Unwind_Exception _Unwind_Control_Block
|
||||
+#endif
|
||||
+
|
||||
struct _LIBCXXABI_HIDDEN __cxa_exception {
|
||||
#if defined(__LP64__) || defined(_LIBCXXABI_ARM_EHABI)
|
||||
// This is a new field to support C++ 0x exception_ptr.
|
17
debian/patches/libcxxabi-test-don-t-fail-extended-long-double.patch
vendored
Normal file
17
debian/patches/libcxxabi-test-don-t-fail-extended-long-double.patch
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
Powerpc has extended double that doesn't match x86 coding. Power format would
|
||||
need special tests to verify correctness but for now it is enough to prevent
|
||||
incorrect test from running.
|
||||
|
||||
Index: llvm-toolchain-snapshot_7~svn337372/libcxxabi/test/test_demangle.pass.cpp
|
||||
===================================================================
|
||||
--- llvm-toolchain-snapshot_7~svn337372.orig/libcxxabi/test/test_demangle.pass.cpp
|
||||
+++ llvm-toolchain-snapshot_7~svn337372svn337372/libcxxabi/test/test_demangle.pass.cpp
|
||||
@@ -29648,7 +29648,7 @@ const char* invalid_cases[] =
|
||||
"NSoERj5E=Y1[uM:ga",
|
||||
"Aon_PmKVPDk7?fg4XP5smMUL6;<WsI_mgbf23cCgsHbT<l8EE\0uVRkNOoXDrgdA4[8IU>Vl<>IL8ayHpiVDDDXTY;^o9;i",
|
||||
"_ZNSt16allocator_traitsISaIN4llvm3sys2fs18directory_iteratorEEE9constructIS3_IS3_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS4_PT_DpOS7_",
|
||||
-#if !LDBL_FP80
|
||||
+#if !LDBL_FP80 && __LDBL_MANT_DIG__ < 64
|
||||
"_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c",
|
||||
#endif
|
||||
// The following test cases were found by libFuzzer+ASAN
|
13
debian/patches/series
vendored
13
debian/patches/series
vendored
@ -51,6 +51,19 @@ remove-test-freezing.diff
|
||||
0048-Set-html_static_path-_static-everywhere.patch
|
||||
0049-Use-Debian-provided-MathJax-everywhere.patch
|
||||
impl-path-hurd.diff
|
||||
|
||||
# OpenMP
|
||||
|
||||
openmp-check-execstack.diff
|
||||
openmp-soname.diff
|
||||
openmp-mips-affinity.patch
|
||||
|
||||
# libcxx
|
||||
|
||||
libcxxabi-test-don-t-fail-extended-long-double.patch
|
||||
libcxx-test-fix-lockfree-test-for-i386.patch
|
||||
libcxxabi-arm-ehabi-fix.patch
|
||||
libcxx-test-atomics-set-compare-exchange-to-be-expected-fails-on-arm.patch
|
||||
libcxx-silent-test-libcxx.diff
|
||||
libcxx-silent-failure-ppc64el.diff
|
||||
libcxx-silent-failure-arm64.diff
|
||||
|
58
debian/rules
vendored
58
debian/rules
vendored
@ -35,10 +35,20 @@ CXXFLAGS_EXTRA = -std=c++0x
|
||||
CONFIGURE_EXTRA =
|
||||
CMAKE_EXTRA =
|
||||
|
||||
BASE_PATH := $(CURDIR)
|
||||
LIBCXX_EXCEPTIONS :=ON
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),s390x))
|
||||
LIBCXX_EXCEPTIONS :=OFF
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),powerpc powerpcspe))
|
||||
LDFLAGS_EXTRA += -latomic
|
||||
endif
|
||||
|
||||
# Cxx flags for building libcxx and libcxxabi
|
||||
LIBCXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS)
|
||||
|
||||
# Only enable gsplit dwarf on archs which needs it (32 bits)
|
||||
ifeq ($(DEB_HOST_ARCH_BITS),32)
|
||||
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) ge 2.22.52.0.4 ; echo $$?),0)
|
||||
@ -313,6 +323,21 @@ override_dh_auto_configure: preconfigure
|
||||
-DPOLLY_BUNDLED_JSONCPP=OFF \
|
||||
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="WebAssembly;AVR"
|
||||
|
||||
LIBCXX_CMAKE_OPTIONS := \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/lib/llvm-$(LLVM_VERSION) \
|
||||
-DLLVM_CONFIG_PATH=$(CURDIR)/$(TARGET_BUILD)/bin/llvm-config \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_CXX_COMPILER=$(CURDIR)/$(TARGET_BUILD)/bin/clang++ \
|
||||
-DCMAKE_C_COMPILER=$(CURDIR)/$(TARGET_BUILD)/bin/clang \
|
||||
-DCMAKE_CXX_FLAGS="$(LIBCXXFLAGS)" \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="" \
|
||||
-DCMAKE_SHARED_LINKER_FLAGS="" \
|
||||
-DCMAKE_MODULE_LINKER_FLAGS="" \
|
||||
-DCMAKE_AR=$(CURDIR)/$(TARGET_BUILD)/bin/llvm-ar \
|
||||
-DCMAKE_RANLIB=$(CURDIR)/$(TARGET_BUILD)/bin/llvm-ranlib \
|
||||
-DCMAKE_C_COMPILER=$(CURDIR)/$(TARGET_BUILD)/bin/clang \
|
||||
-DLLVM_EXTERNAL_LIT=$(BASE_PATH)/utils/lit/lit.py
|
||||
|
||||
|
||||
override_dh_auto_build:
|
||||
$(PRE_PROCESS) $(MAKE) $(NJOBS) -C $(TARGET_BUILD) VERBOSE=1 CLANG_VENDOR=$(VENDOR) CXXFLAGS="$(CXXFLAGS_EXTRA)" LDFLAGS="$(LDFLAGS_EXTRA)" REQUIRES_RTTI=1 DEBUGMAKE=1
|
||||
@ -325,6 +350,28 @@ ifeq (${LIBFUZZER_ENABLE},yes)
|
||||
ar ruv libFuzzer.a Fuzzer*.o
|
||||
endif
|
||||
|
||||
# Builds libcxx and libcxxabi
|
||||
|
||||
mkdir -p libcxxabi/build
|
||||
mkdir -p libcxx/build
|
||||
|
||||
cd libcxxabi/build && \
|
||||
cmake ../ \
|
||||
$(LIBCXX_CMAKE_OPTIONS) \
|
||||
-DLIBCXXABI_LIBCXX_PATH=$(BASE_PATH)/libcxx \
|
||||
-DLIBCXXABI_LIBCXX_LIBRARY_PATH=$(BASE_PATH)/libcxx/build/lib \
|
||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
-DLLVM_ENABLE_RTTI=ON
|
||||
|
||||
cd libcxx/build && \
|
||||
cmake ../ \
|
||||
$(LIBCXX_CMAKE_OPTIONS) \
|
||||
-DLIBCXX_CXX_ABI=libcxxabi \
|
||||
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=$(BASE_PATH)/libcxxabi/include \
|
||||
-DLIBCXX_CXX_ABI_LIBRARY_PATH=$(BASE_PATH)/libcxxabi/build/lib \
|
||||
-DLIBCXX_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
-DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON
|
||||
|
||||
override_dh_prep: build_doc
|
||||
dh_prep
|
||||
|
||||
@ -433,6 +480,9 @@ endif
|
||||
# Probably useless
|
||||
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/python2.7/site-packages/six.py
|
||||
|
||||
$(MAKE) -C libcxxabi/build install DESTDIR=$(DEB_INST)
|
||||
$(MAKE) -C libcxx/build install DESTDIR=$(DEB_INST)
|
||||
|
||||
# Rename binaries
|
||||
mkdir -p $(DEB_INST)/usr/bin/
|
||||
cd $(DEB_INST)/usr/bin/; \
|
||||
@ -588,6 +638,12 @@ endif
|
||||
# Sanitizer
|
||||
$(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-sanitizer || true
|
||||
|
||||
# Libcxx
|
||||
$(MAKE) $(NJOBS) -C libcxx/build check-libcxx || true
|
||||
|
||||
# Libcxxabi
|
||||
$(MAKE) $(MAKE) -C libcxxabi/build check-libcxxabi || true
|
||||
|
||||
# LLDB tests
|
||||
ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel))
|
||||
ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS)))
|
||||
@ -647,6 +703,6 @@ override_dh_auto_clean:
|
||||
rm -f $(CURDIR)/utils/vim/llvm-$(LLVM_VERSION).vim $(CURDIR)/utils/vim/tablegen-$(LLVM_VERSION).vim
|
||||
rm -f $(CURDIR)/clang/tools/clang-format/clang-format-diff-$(LLVM_VERSION)
|
||||
rm -f $(CURDIR)/clang/tools/clang-format/clang-format-$(LLVM_VERSION).py
|
||||
|
||||
rm -rf libcxx/build libcxxabi/build
|
||||
|
||||
.PHONY: override_dh_strip preconfigure
|
||||
|
4
debian/unpack.sh
vendored
4
debian/unpack.sh
vendored
@ -5,7 +5,7 @@ SVN_REV=`ls -1 *svn*bz2 | tail -1|perl -ne 'print "$1\n" if /svn(\d+)/;' | sort
|
||||
echo "Unpack of llvm"
|
||||
tar jxf llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig.tar.bz2
|
||||
cd llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV/ || ( echo "Bad SVN_REV:\"$SVN_REV\"" && exit 1 )
|
||||
for f in ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-clang.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-clang-tools-extra.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-compiler-rt.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-lld.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-lldb.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-polly.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-openmp.tar.bz2; do
|
||||
for f in ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-clang.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-clang-tools-extra.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-compiler-rt.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-lld.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-lldb.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-polly.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-openmp.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-libcxx.tar.bz2 ../llvm-toolchain-snapshot_$MAJOR_VERSION~svn$SVN_REV.orig-libcxxabi.tar.bz2; do
|
||||
if test -e $f; then
|
||||
echo "unpack of $f"
|
||||
tar jxf $f
|
||||
@ -18,5 +18,7 @@ ln -s polly_$MAJOR_VERSION~svn$SVN_REV polly
|
||||
ln -s lld_$MAJOR_VERSION~svn$SVN_REV lld
|
||||
ln -s lldb_$MAJOR_VERSION~svn$SVN_REV lldb
|
||||
ln -s openmp_$MAJOR_VERSION~svn$SVN_REV openmp
|
||||
ln -s libcxx_$MAJOR_VERSION~svn$SVN_REV libcxx
|
||||
ln -s libcxxabi_$MAJOR_VERSION~svn$SVN_REV libcxxabi
|
||||
cp -R ../snapshot/debian .
|
||||
QUILT_PATCHES=debian/patches/ quilt push -a --fuzz=0
|
||||
|
Loading…
Reference in New Issue
Block a user