summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorWillyPillow2022-03-18 17:54:21 +0800
committerWillyPillow2022-03-18 18:02:01 +0800
commitde9c6abfda458535ca30297a3ca41fda63dc7dea (patch)
tree7b1f3c7d21543c901078d417545e41e9640fcb0a
parentecf69e1d1822f4c569815088f21c28e104b274ca (diff)
downloadaur-de9c6abfda458535ca30297a3ca41fda63dc7dea.tar.gz
Initial commit.
-rw-r--r--.SRCINFO57
-rw-r--r--PKGBUILD120
-rw-r--r--libc++-msan.install8
3 files changed, 131 insertions, 54 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 985199ef7b63..d6a578795892 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,24 +1,53 @@
pkgbase = libc++-msan
- pkgdesc = Standard C++ library implementation from the LLVM project (Memory Sanitizer enabled)
- pkgver = 3.6.0
+ pkgver = 13.0.1
pkgrel = 1
- url = http://libcxx.llvm.org
- install = libc++-msan.install
- arch = i686
+ url = https://libcxx.llvm.org/
arch = x86_64
- license = custom:University of Illinois/NCSA Open Source License
+ license = custom:Apache 2.0 with LLVM Exception
makedepends = clang
- makedepends = subversion
makedepends = cmake
- depends = glibc
- depends = libc++abi
+ makedepends = llvm
+ makedepends = libunwind
+ makedepends = ninja
+ makedepends = python
depends = gcc-libs
+ noextract = llvm-13.0.1.src.tar.xz
+ noextract = llvm-13.0.1.src.tar.xz.sig
+ noextract = libcxx-13.0.1.src.tar.xz
+ noextract = libcxx-13.0.1.src.tar.xz.sig
+ noextract = libcxxabi-13.0.1.src.tar.xz
+ noextract = libcxxabi-13.0.1.src.tar.xz.sig
+ options = !lto
+ source = https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/llvm-13.0.1.src.tar.xz
+ source = https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/llvm-13.0.1.src.tar.xz.sig
+ source = https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/libcxx-13.0.1.src.tar.xz
+ source = https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/libcxx-13.0.1.src.tar.xz.sig
+ source = https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/libcxxabi-13.0.1.src.tar.xz
+ source = https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/libcxxabi-13.0.1.src.tar.xz.sig
+ validpgpkeys = 474E22316ABF4785A88C6E8EA2C794A986419D8A
+ validpgpkeys = B6C8F98282B944E3B0D5C2530FC3042E345AD05D
+ sha512sums = 05fbe8708ac3d0dfef3a9135ee88185a95ed492095429a97d33b8aadb0187e59ad42d1a7184f02b5c84fdd31f3d7227c65bd292ed0aa039b29522e59cf90a965
+ sha512sums = SKIP
+ sha512sums = 72970fbb3db44a652e89ace7843e992b4f118c978fa0fa7035bf5825cb6958cf71f7c80b56c1970977177bb3bcbf81309d4f01c29b3ac1cd057be54baf55e56f
+ sha512sums = SKIP
+ sha512sums = 1a7c032ee34643518be01edddc16b1c872f339ed2944d31573438d38a018abc801a53f3fbd97e6a3d6ee58a6ed55d9703a8531ac7290c1d6e3e5593b97186749
+ sha512sums = SKIP
+
+pkgname = libc++-msan
+ pkgdesc = LLVM C++ standard library - with support for memory sanitizers.
+ depends = libc++abi-msan=13.0.1-1
provides = libc++
conflicts = libc++
- options = debug
- options = !strip
- source = http://www.llvm.org/releases/3.6.0/libcxx-3.6.0.src.tar.xz
- md5sums = 5d4a2ff4e2023eaa3f2025e26274d504
+ options = staticlibs
-pkgname = libc++-msan
+pkgname = libc++abi-msan
+ pkgdesc = Low level support for the LLVM C++ standard library - with support for memory sanitizers.
+ provides = libc++abi
+ conflicts = libc++abi
+ options = staticlibs
+pkgname = libc++experimental-msan
+ pkgdesc = LLVM C++ experimental library - with support for memory sanitizers.
+ depends = libc++-msan=13.0.1-1
+ provides = libc++experimental
+ conflicts = libc++experimental
diff --git a/PKGBUILD b/PKGBUILD
index b76d1c01995c..91e74f733c1e 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,37 +1,93 @@
-# $Id$
-# Maintainer: Andrew Nelless <andrew@nelless.net>
-# Contributor: Daniel Micay <danielmicay@gmail.com>
-# Contributor: MThinkCpp <mtc.maintainer[at]outlook.com>
-pkgname=libc++-msan
-pkgver=3.6.2
-pkgrel=1
-pkgdesc='Standard C++ library implementation from the LLVM project (Memory Sanitizer enabled)'
-url='http://libcxx.llvm.org'
-license=('custom:University of Illinois/NCSA Open Source License')
-arch=('i686' 'x86_64')
-# gcc-libs needed for libgcc_s, because Arch doesn't use a pure compiler-rt clang
-depends=('glibc' 'libc++abi' 'gcc-libs')
-makedepends=('clang' 'cmake')
-provides=('libc++')
-conflicts=('libc++')
-source=("http://www.llvm.org/releases/$pkgver/libcxx-${pkgver}.src.tar.xz")
-md5sums=('22214c90697636ef960a49aef7c1823a')
-options=('debug' '!strip')
-install=${pkgname}.install
+# Maintainer: William Huang <wp /at/ nerde /period/ pw>
+# Maintener: Anatol Pomozov
+# Contributor: Llewelyn Trahaearn <woefulderelict [at] gmail [dot] com>
+# Contributor: Daniel Micay <danielmicay [at] gmail [dot] com>
+# Contributor: MThinkCpp <mtc [dot] maintainer [at] outlook [dot] com>
+pkgbase=libc++-msan
+pkgname=(libc++-msan libc++abi-msan libc++experimental-msan)
+pkgver=13.0.1
+pkgrel=1
+url="https://libcxx.llvm.org/"
+license=('custom:Apache 2.0 with LLVM Exception')
+arch=('x86_64')
+depends=('gcc-libs')
+makedepends=('clang' 'cmake' 'llvm' 'libunwind' 'ninja' 'python')
+options=(!lto)
+source=("https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-$pkgver.src.tar.xz"{,.sig}
+ "https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/libcxx-$pkgver.src.tar.xz"{,.sig}
+ "https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/libcxxabi-$pkgver.src.tar.xz"{,.sig})
+noextract=("${source[@]##*/}")
+sha512sums=('05fbe8708ac3d0dfef3a9135ee88185a95ed492095429a97d33b8aadb0187e59ad42d1a7184f02b5c84fdd31f3d7227c65bd292ed0aa039b29522e59cf90a965'
+ 'SKIP'
+ '72970fbb3db44a652e89ace7843e992b4f118c978fa0fa7035bf5825cb6958cf71f7c80b56c1970977177bb3bcbf81309d4f01c29b3ac1cd057be54baf55e56f'
+ 'SKIP'
+ '1a7c032ee34643518be01edddc16b1c872f339ed2944d31573438d38a018abc801a53f3fbd97e6a3d6ee58a6ed55d9703a8531ac7290c1d6e3e5593b97186749'
+ 'SKIP')
+validpgpkeys=('474E22316ABF4785A88C6E8EA2C794A986419D8A' # Tom Stellard <tstellar@redhat.com> (.1 releases)
+ 'B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <hans@chromium.org> (.0 releases)
+
+prepare() {
+ mkdir -p build llvm/projects/libcxx llvm/projects/libcxxabi
+ bsdtar --strip-components 1 -zxf "${source[0]##*/}" -C llvm
+ bsdtar --strip-components 1 -zxf "${source[2]##*/}" -C llvm/projects/libcxx
+ bsdtar --strip-components 1 -zxf "${source[4]##*/}" -C llvm/projects/libcxxabi
+ sed -i 's/CREDITS.TXT/CREDITS/' llvm/projects/libcxx/LICENSE.TXT llvm/projects/libcxxabi/LICENSE.TXT
+}
+
build() {
- mkdir -p libcxx-${pkgver}.src/build
- cd libcxx-${pkgver}.src/build
- CXXFLAGS="-Qunused-arguments" CFLAGS="-Qunused-arguments" \
- cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libcxxabi \
- -DLIBCXX_LIBCXXABI_INCLUDE_PATHS=/usr/include/cxxabi \
- -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ \
+ cd build
+
+ cmake \
+ -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_C_COMPILER=clang \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=NO \
-DLLVM_USE_SANITIZER=MemoryWithOrigins \
- -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr "$srcdir/libcxx-${pkgver}.src"
- make
+ "$srcdir"/llvm
+ ninja cxx cxx_experimental
+}
+
+# Enabling MSAN seems to break the tests?
+# check() {
+# ninja -C build check-cxx check-cxxabi
+# }
+
+# Do not remove the space before the () or commitpkg will
+# accidentally to run this function on the system (!!!)
+package_libc++-msan () {
+ pkgdesc='LLVM C++ standard library - with support for memory sanitizers.'
+ depends=("libc++abi-msan=$pkgver-$pkgrel")
+ provides=('libc++')
+ conflicts=('libc++')
+ options=('staticlibs')
+
+ DESTDIR="$pkgdir" ninja -C build install-cxx
+
+ install -Dm0644 "$srcdir"/llvm/projects/libcxx/CREDITS.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/CREDITS
+ install -Dm0644 "$srcdir"/llvm/projects/libcxx/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
+}
+
+package_libc++abi-msan() {
+ pkgdesc='Low level support for the LLVM C++ standard library - with support for memory sanitizers.'
+ options=('staticlibs')
+ provides=('libc++abi')
+ conflicts=('libc++abi')
+
+ DESTDIR="$pkgdir" ninja -C build install-cxxabi
+ install -Dm0644 "$srcdir"/llvm/projects/libcxxabi/CREDITS.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/CREDITS
+ install -Dm0644 "$srcdir"/llvm/projects/libcxxabi/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}
-package() {
- install -Dm644 libcxx-${pkgver}.src/LICENSE.TXT "$pkgdir/usr/share/licenses/$pkgname/license.txt"
- cd libcxx-${pkgver}.src/build
- make DESTDIR="$pkgdir" install
+
+package_libc++experimental-msan() {
+ depends=("libc++-msan=$pkgver-$pkgrel")
+ pkgdesc='LLVM C++ experimental library - with support for memory sanitizers.'
+ provides=('libc++experimental')
+ conflicts=('libc++experimental')
+
+ install -Dm0644 -t "$pkgdir"/usr/lib/ build/lib/libc++experimental.a
+ install -Dm0644 llvm/projects/libcxx/CREDITS.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/CREDITS
+ install -Dm0644 llvm/projects/libcxx/LICENSE.TXT "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}
diff --git a/libc++-msan.install b/libc++-msan.install
deleted file mode 100644
index 608ace2114ec..000000000000
--- a/libc++-msan.install
+++ /dev/null
@@ -1,8 +0,0 @@
-post_install() {
- echo compile with \`clang++ -std=c++11 -stdlib=libc++ -fsanitize=memory -lc++abi\` to use libc++-msan
- echo "see http://clang.llvm.org/docs/MemorySanitizer.html for further instructions"
-}
-
-post_upgrade() {
- post_install
-}