# Contributor: Travis Tilley # Contributor: Mitch Tishmack # Contributor: Jakub Jirutka # Maintainer: Jakub Jirutka global _pkgname := 'llvm' global pkgver := '4.0.0' global _majorver := $(pkgver%%.*) global pkgname := "$_pkgname$_majorver" global pkgrel := '5' global pkgdesc := ""Low Level Virtual Machine compiler system, version $_majorver"" global arch := '"all'" global url := '"http://llvm.org/'" global license := '"UOI-NCSA'" global depends_dev := ""$pkgname=$pkgver-r$pkgrel"" global makedepends := '"binutils-dev chrpath cmake file libffi-dev paxmark python2 py-setuptools zlib-dev'" global subpackages := ""$pkgname-static $pkgname-libs $pkgname-dev $pkgname-test-utils:_test_utils"" global source := ""http://llvm.org/releases/$pkgver/llvm-$pkgver.src.tar.xz llvm-fix-build-with-musl-libc.patch llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch cmake-fix-libLLVM-name.patch disable-FileSystemTest.CreateDir-perms-assert.patch silent-amdgpu-test-failing.patch fix-CheckAtomic.cmake.patch "" global builddir := ""$srcdir/$_pkgname-$pkgver.src"" # ARM has few failures in test suite that we don't care about currently and # also it takes forever to run them on the builder. matchstr $CARCH { arm* { global options := '"!check'"} } # Whether is this package the default (latest) LLVM version. global _default_llvm := '"yes'" if test $_default_llvm = yes { global provides := ""llvm=$pkgver-r$pkgrel"" global replaces := '"llvm'" } # NOTE: It seems that there's no (sane) way how to change includedir, sharedir # etc. separately, just the CMAKE_INSTALL_PREFIX. Standard CMake variables and # even LLVM-specific variables, that are related to these paths, actually # don't work (in llvm 3.7). # # When building a software that depends on LLVM, utility llvm-config should be # used to discover where is LLVM installed. It provides options to print # path of bindir, includedir, and libdir separately, but in its source, all # these paths are actually hard-coded against INSTALL_PREFIX. We can patch it # and move paths manually, but I'm really not sure what it may break... # # Also note that we should *not* add version suffix to files in llvm bindir! # It breaks build system of some software that depends on LLVM, because they # don't expect these files to have a sufix. # # So, we install all the LLVM files into /usr/lib/llvm$_majorver. # BTW, Fedora and Debian do the same thing. # global _prefix := ""usr/lib/llvm$_majorver"" proc prepare { default_prepare cd $builddir # https://bugs.llvm.org//show_bug.cgi?id=31870 rm test/tools/llvm-symbolizer/print_context.c mkdir -p "$builddir"/build } proc build { cd "$builddir"/build # Auto-detect it by guessing either. var ffi_include_dir = $[pkg-config --cflags-only-I libffi | sed 's|^-I||g] cmake -G "Unix Makefiles" -Wno-dev \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/$_prefix \ -DCMAKE_VERBOSE_MAKEFILE=NO \ -DFFI_INCLUDE_DIR="$ffi_include_dir" \ -DLLVM_BINUTILS_INCDIR=/usr/include \ -DLLVM_BUILD_DOCS=OFF \ -DLLVM_BUILD_EXAMPLES=OFF \ -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON \ -DLLVM_BUILD_LLVM_DYLIB=ON \ -DLLVM_BUILD_TESTS=ON \ -DLLVM_DEFAULT_TARGET_TRIPLE="$CBUILD" \ -DLLVM_DYLIB_EXPORT_ALL=ON \ -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_ENABLE_CXX1Y=ON \ -DLLVM_ENABLE_FFI=ON \ -DLLVM_ENABLE_LIBCXX=OFF \ -DLLVM_ENABLE_PIC=ON \ -DLLVM_ENABLE_RTTI=ON \ -DLLVM_ENABLE_SPHINX=OFF \ -DLLVM_ENABLE_TERMINFO=ON \ -DLLVM_ENABLE_ZLIB=ON \ -DLLVM_HOST_TRIPLE="$CHOST" \ -DLLVM_INCLUDE_EXAMPLES=OFF \ -DLLVM_LINK_LLVM_DYLIB=ON \ -DLLVM_TARGETS_TO_BUILD='X86;ARM;AArch64;PowerPC;SystemZ;AMDGPU;NVPTX;Mips;BPF' \ $builddir make llvm-tblgen make paxmark m \ bin/llvm-rtdyld \ bin/lli \ bin/lli-child-target \ unittests/ExecutionEngine/MCJIT/MCJITTests \ unittests/ExecutionEngine/Orc/OrcJITTests \ unittests/Support/SupportTests python2 ../utils/lit/setup.py build } proc check { cd "$builddir"/build # FIXME: Few tests fail on s390x, ignore it for now. See build log # https://gist.github.com/jirutka/6edc951ad5b8002cf1780546cf661edc matchstr $CARCH { s390x { make check-llvm || true} * { make check-llvm} } } proc package { cd "$builddir"/build make DESTDIR="$pkgdir" install cd "$pkgdir"/$_prefix # Remove RPATHs. file lib/*.so bin/* \ | awk -F: '$2~/ELF/{print $1}' \ | xargs -r chrpath -d # Symlink files from /usr/lib/llvm*/bin to /usr/bin. mkdir -p "$pkgdir"/usr/bin var name = '', newname = '', path = '' for path in [bin/*] { name := $(path##*/) # Add version infix/suffix to the executable name. matchstr $name { llvm-* { newname := ""llvm$_majorver-$(name#llvm-)""} * { newname := ""$name$_majorver""} } # If this package provides=llvm (i.e. it's the default/latest # llvm package), omit version infix/suffix. if test $_default_llvm = yes { newname := $name } matchstr $name { FileCheck | obj2yaml | yaml2obj { continue} } ln -s ../lib/llvm$_majorver/bin/$name "$pkgdir"/usr/bin/$newname } # Move /usr/lib/$pkgname/include/ into /usr/include/$pkgname/ # and symlink it back. _mv include/* "$pkgdir"/usr/include/$pkgname/ rmdir include ln -s ../../include/$pkgname include # Move /usr/lib/$pkgname/lib/cmake/llvm/ into /usr/lib/cmake/$pkgname/ # and symlink it back. _mv lib/cmake/llvm/* "$pkgdir"/usr/lib/cmake/$pkgname/ rmdir lib/cmake/llvm ln -s ../../../cmake/$pkgname lib/cmake/llvm } proc static { global pkgdesc := ""LLVM $_majorver static libraries"" _common_subpkg _mv "$pkgdir"/$_prefix/lib/*.a "$subpkgdir"/$_prefix/lib/ } proc libs { global pkgdesc := ""LLVM $_majorver runtime library"" var soname = ""libLLVM-$_majorver.0.so"" var soname2 = ""libLLVM-$pkgver.so"" _common_subpkg mkdir -p $subpkgdir cd $subpkgdir # libLLVM should be in /usr/lib. This is needed for binaries that are # dynamically linked with libLLVM, so they can find it on default path. _mv "$pkgdir"/$_prefix/lib/$soname usr/lib/ ln -s $soname usr/lib/$soname2 # And also symlink it back to the LLVM prefix. mkdir -p $_prefix/lib ln -s ../../$soname $_prefix/lib/$soname ln -s ../../$soname $_prefix/lib/$soname2 } proc dev { _common_subpkg default_dev cd $subpkgdir _mv "$pkgdir"/$_prefix/lib $_prefix/ _mv "$pkgdir"/$_prefix/include $_prefix/ _mv "$pkgdir"/$_prefix/bin/llvm-config $_prefix/bin/ } proc _test_utils { global pkgdesc := ""LLVM $_majorver utilities for executing LLVM and Clang style test suites"" global depends := '"python2 py-setuptools'" _common_subpkg global replaces := ''"" var litver = $[python2 "$builddir"/utils/lit/setup.py --version !2 >/dev/null \ | sed 's/\.dev.*$//] test -n $litver || return 1 global provides := ""$provides lit=$litver-r$pkgrel"" cd "$builddir"/build install -D -m 755 bin/FileCheck "$subpkgdir"/$_prefix/bin/FileCheck install -D -m 755 bin/not "$subpkgdir"/$_prefix/bin/not python2 ../utils/lit/setup.py install --prefix=/usr --root="$subpkgdir" ln -s ../../../bin/lit "$subpkgdir"/$_prefix/bin/lit } proc _common_subpkg { if test $_default_llvm = yes { global replaces := ""llvm$(subpkgname#$pkgname)"" global provides := ""$replaces=$pkgver-r$pkgrel"" } } proc _mv { var dest = ''for dest in @Argv { true; } # get last argument mkdir -p $dest mv $ifsjoin(Argv) } global sha512sums := '"cf681f0626ef6d568d951cdc3e143471a1d7715a0ba11e52aa273cf5d8d421e1357ef2645cc85879eaefcd577e99e74d07b01566825b3d0461171ef2cbfc7704 llvm-4.0.0.src.tar.xz f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71 llvm-fix-build-with-musl-libc.patch 19bfb9282455d39d07dbb2b1293b03a45c57d522fbb9c5e58dac034200669628b97e7a90cd4ff5d52d9bb79acfccbef653d8a1140a7f0589ecd6f9b7c4ba0eb6 llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch 6d1a716e5aa24e6b9a3acf4cc11e2504b1b01abf574074e9e5617b991de87d5e4e687eb18e85e73d5e632568afe2fc357771c4c96f9e136502071991496fb78c cmake-fix-libLLVM-name.patch 49c47f125014b60d0ea7870f981a2c1708ad705793f89287ed846ee881a837a4dc0170bf467e03f2ef56177473128945287749ac80dc2d13cfabcf8b929ba58a disable-FileSystemTest.CreateDir-perms-assert.patch 97f788110abbb9e6add2e3a3d3b606dc2817ab726b74ead71241fc5433ba42d5d58e23be91a3b2444eb687c4f56a7c879bf5453e96f9785ce3541301329dda9c silent-amdgpu-test-failing.patch 3bcfeccc1f14567f99029a131b1289290226d48855857f2eb6a251e041981a8b8b2d7965099df16ebf0a406e48130679f97235ef3f3524577413bb51cf40e613 fix-CheckAtomic.cmake.patch'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_pkgname) op:Equal rhs:{(llvm)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(4.0.0)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_majorver) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(".*")}) spids: [19 23] ) } spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgname) op: Equal rhs: {($ VSub_Name "$_pkgname") ($ VSub_Name "$_majorver")} spids: [25] ) ] spids: [25] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(5)} spids:[29])] spids: [29] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Low Level Virtual Machine compiler system, version ") ($ VSub_Name "$_majorver"))} spids: [32] ) ] spids: [32] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[38])] spids: [38] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://llvm.org/"))} spids: [43] ) ] spids: [43] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (UOI-NCSA))} spids:[48])] spids: [48] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends_dev) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel")) } spids: [53] ) ] spids: [53] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ( "binutils-dev chrpath cmake file libffi-dev paxmark python2 py-setuptools zlib-dev" ) ) } spids: [62] ) ] spids: [62] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-static ") ($ VSub_Name "$pkgname") ("-libs ") ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-test-utils:_test_utils") ) } spids: [67] ) ] spids: [67] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://llvm.org/releases/") ($ VSub_Name "$pkgver") (/llvm-) ($ VSub_Name "$pkgver") (".src.tar.xz\n") ("\tllvm-fix-build-with-musl-libc.patch\n") ("\tllvm-fix-DynamicLibrary-to-build-with-musl-libc.patch\n") ("\tcmake-fix-libLLVM-name.patch\n") ("\tdisable-FileSystemTest.CreateDir-perms-assert.patch\n") ("\tsilent-amdgpu-test-failing.patch\n") ("\tfix-CheckAtomic.cmake.patch\n") ("\t") ) } spids: [79] ) ] spids: [79] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: { (DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$_pkgname") (-) ($ VSub_Name "$pkgver") (.src)) } spids: [95] ) ] spids: [95] ) (Case to_match: {(DQ ($ VSub_Name "$CARCH"))} arms: [ (case_arm pat_list: [{(arm) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:options) op: Equal rhs: {(DQ ("!check"))} spids: [125] ) ] spids: [125] ) ] spids: [121 123 129 -1] ) ] spids: [112 118 131] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_default_llvm) op:Equal rhs:{(DQ (yes))} spids:[137])] spids: [137] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$_default_llvm"))} {(Lit_Other "=")} {(yes)} {(Lit_Other "]")} ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: {(DQ ("llvm=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))} spids: [161] ) ] spids: [161] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: {(DQ (llvm))} spids: [170] ) ] spids: [170] ) ] spids: [-1 158] ) ] spids: [-1 175] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_prefix) op: Equal rhs: {(DQ (usr/lib/llvm) ($ VSub_Name "$_majorver"))} spids: [232] ) ] spids: [232] ) (FuncDef name: prepare body: (BraceGroup children: [ (C {(default_prepare)}) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(rm)} {(test/tools/llvm-symbolizer/print_context.c)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$builddir")) (/build)}) ] spids: [243] ) spids: [239 242] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ffi_include_dir) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(pkg-config)} {(--cflags-only-I)} {(libffi)}) (C {(sed)} {(SQ <"s|^-I||g">)}) ] negated: False ) ] ) left_token: spids: [303 317] ) ) } spids: [301] ) ] spids: [299] ) (C {(cmake)} {(-G)} {(DQ ("Unix Makefiles"))} {(-Wno-dev)} {(-DCMAKE_BUILD_TYPE) (Lit_Other "=") (Release)} {(-DCMAKE_INSTALL_PREFIX) (Lit_Other "=") (/) ($ VSub_Name "$_prefix")} {(-DCMAKE_VERBOSE_MAKEFILE) (Lit_Other "=") (NO)} {(-DFFI_INCLUDE_DIR) (Lit_Other "=") (DQ ($ VSub_Name "$ffi_include_dir"))} {(-DLLVM_BINUTILS_INCDIR) (Lit_Other "=") (/usr/include)} {(-DLLVM_BUILD_DOCS) (Lit_Other "=") (OFF)} {(-DLLVM_BUILD_EXAMPLES) (Lit_Other "=") (OFF)} {(-DLLVM_BUILD_EXTERNAL_COMPILER_RT) (Lit_Other "=") (ON)} {(-DLLVM_BUILD_LLVM_DYLIB) (Lit_Other "=") (ON)} {(-DLLVM_BUILD_TESTS) (Lit_Other "=") (ON)} {(-DLLVM_DEFAULT_TARGET_TRIPLE) (Lit_Other "=") (DQ ($ VSub_Name "$CBUILD"))} {(-DLLVM_DYLIB_EXPORT_ALL) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_ASSERTIONS) (Lit_Other "=") (OFF)} {(-DLLVM_ENABLE_CXX1Y) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_FFI) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_LIBCXX) (Lit_Other "=") (OFF)} {(-DLLVM_ENABLE_PIC) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_RTTI) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_SPHINX) (Lit_Other "=") (OFF)} {(-DLLVM_ENABLE_TERMINFO) (Lit_Other "=") (ON)} {(-DLLVM_ENABLE_ZLIB) (Lit_Other "=") (ON)} {(-DLLVM_HOST_TRIPLE) (Lit_Other "=") (DQ ($ VSub_Name "$CHOST"))} {(-DLLVM_INCLUDE_EXAMPLES) (Lit_Other "=") (OFF)} {(-DLLVM_LINK_LLVM_DYLIB) (Lit_Other "=") (ON)} {(-DLLVM_TARGETS_TO_BUILD) (Lit_Other "=") (SQ <"X86;ARM;AArch64;PowerPC;SystemZ;AMDGPU;NVPTX;Mips;BPF">) } {(DQ ($ VSub_Name "$builddir"))} ) (C {(make)} {(llvm-tblgen)}) (C {(make)}) (C {(paxmark)} {(m)} {(bin/llvm-rtdyld)} {(bin/lli)} {(bin/lli-child-target)} {(unittests/ExecutionEngine/MCJIT/MCJITTests)} {(unittests/ExecutionEngine/Orc/OrcJITTests)} {(unittests/Support/SupportTests)} ) (C {(python2)} {(../utils/lit/setup.py)} {(build)}) ] spids: [283] ) spids: [279 282] ) (FuncDef name: check body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (Case to_match: {(DQ ($ VSub_Name "$CARCH"))} arms: [ (case_arm pat_list: [{(s390x)}] action: [(AndOr children:[(C {(make)} {(check-llvm)})(C {(true)})] op_id:Op_DPipe)] spids: [580 581 590 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(C {(make)} {(check-llvm)})] spids: [593 594 599 -1] ) ] spids: [571 577 602] ) ] spids: [551] ) spids: [547 550] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (C {(cd)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix")}) (Pipeline children: [ (C {(file)} {(lib/) (Lit_Other "*") (.so)} {(bin/) (Lit_Other "*")}) (C {(awk)} {(-F) (Lit_Other ":")} {(SQ <"$2~/ELF/{print $1}">)}) (C {(xargs)} {(-r)} {(chrpath)} {(-d)}) ] negated: False ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:name) op:Equal spids:[700]) (assign_pair lhs:(LhsName name:newname) op:Equal spids:[702]) (assign_pair lhs:(LhsName name:path) op:Equal spids:[704]) ] spids: [698] ) (ForEach iter_name: path iter_words: [{(bin/) (Lit_Other "*")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_DPound arg_word: {("*") (Lit_Slash /)} ) spids: [721 726] ) } spids: [720] ) ] spids: [720] ) (Case to_match: {(DQ ($ VSub_Name "$name"))} arms: [ (case_arm pat_list: [{(llvm-) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:newname) op: Equal rhs: { (DQ (llvm) ($ VSub_Name "$_majorver") (-) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(llvm-)}) spids: [751 755] ) ) } spids: [746] ) ] spids: [746] ) ] spids: [742 744 757 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:newname) op: Equal rhs: {(DQ ($ VSub_Name "$name") ($ VSub_Name "$_majorver"))} spids: [763] ) ] spids: [763] ) ] spids: [760 761 768 -1] ) ] spids: [733 739 771] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$_default_llvm"))} {(Lit_Other "=")} {(yes)} {(Lit_Other "]")} ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:newname) op: Equal rhs: {($ VSub_Name "$name")} spids: [800] ) ] spids: [800] ) ] spids: [-1 797] ) ] spids: [-1 804] ) (Case to_match: {(DQ ($ VSub_Name "$name"))} arms: [ (case_arm pat_list: [{(FileCheck)} {(obj2yaml)} {(yaml2obj)}] action: [(ControlFlow token:)] spids: [816 825 828 -1] ) ] spids: [807 813 831] ) (C {(ln)} {(-s)} {(../lib/llvm) ($ VSub_Name "$_majorver") (/bin/) ($ VSub_Name "$name")} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) ($ VSub_Name "$newname")} ) ] spids: [717 850] ) spids: [712 715] ) (C {(_mv)} {(include/) (Lit_Other "*")} {(DQ ($ VSub_Name "$pkgdir")) (/usr/include/) ($ VSub_Name "$pkgname") (/)} ) (C {(rmdir)} {(include)}) (C {(ln)} {(-s)} {(../../include/) ($ VSub_Name "$pkgname")} {(include)}) (C {(_mv)} {(lib/cmake/llvm/) (Lit_Other "*")} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/cmake/) ($ VSub_Name "$pkgname") (/)} ) (C {(rmdir)} {(lib/cmake/llvm)}) (C {(ln)} {(-s)} {(../../../cmake/) ($ VSub_Name "$pkgname")} {(lib/cmake/llvm)}) ] spids: [611] ) spids: [607 610] ) (FuncDef name: static body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("LLVM ") ($ VSub_Name "$_majorver") (" static libraries"))} spids: [936] ) ] spids: [936] ) (C {(_common_subpkg)}) (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/lib/) (Lit_Other "*") (.a)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_prefix") (/lib/)} ) ] spids: [933] ) spids: [929 932] ) (FuncDef name: libs body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("LLVM ") ($ VSub_Name "$_majorver") (" runtime library"))} spids: [976] ) ] spids: [976] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:soname) op: Equal rhs: {(DQ (libLLVM-) ($ VSub_Name "$_majorver") (.0.so))} spids: [986] ) ] spids: [984] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:soname2) op: Equal rhs: {(DQ (libLLVM-) ($ VSub_Name "$pkgver") (.so))} spids: [996] ) ] spids: [994] ) (C {(_common_subpkg)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir"))}) (C {(cd)} {(DQ ($ VSub_Name "$subpkgdir"))}) (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/lib/) ($ VSub_Name "$soname") } {(usr/lib/)} ) (C {(ln)} {(-s)} {($ VSub_Name "$soname")} {(usr/lib/) ($ VSub_Name "$soname2")}) (C {(mkdir)} {(-p)} {($ VSub_Name "$_prefix") (/lib)}) (C {(ln)} {(-s)} {(../../) ($ VSub_Name "$soname")} {($ VSub_Name "$_prefix") (/lib/) ($ VSub_Name "$soname")} ) (C {(ln)} {(-s)} {(../../) ($ VSub_Name "$soname")} {($ VSub_Name "$_prefix") (/lib/) ($ VSub_Name "$soname2")} ) ] spids: [973] ) spids: [969 972] ) (FuncDef name: dev body: (BraceGroup children: [ (C {(_common_subpkg)}) (C {(default_dev)}) (C {(cd)} {(DQ ($ VSub_Name "$subpkgdir"))}) (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/lib)} {($ VSub_Name "$_prefix") (/)} ) (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/include)} {($ VSub_Name "$_prefix") (/)} ) (C {(_mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_prefix") (/bin/llvm-config)} {($ VSub_Name "$_prefix") (/bin/)} ) ] spids: [1099] ) spids: [1095 1098] ) (FuncDef name: _test_utils body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: { (DQ ("LLVM ") ($ VSub_Name "$_majorver") (" utilities for executing LLVM and Clang style test suites") ) } spids: [1165] ) ] spids: [1165] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ("python2 py-setuptools"))} spids: [1173] ) ] spids: [1173] ) (C {(_common_subpkg)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:replaces) op:Equal rhs:{(DQ )} spids:[1182])] spids: [1182] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:litver) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [ {(python2)} {(DQ ($ VSub_Name "$builddir")) (/utils/lit/setup.py)} {(--version)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [1201] ) ] ) (C {(sed)} {(SQ <"s/\\.dev.*$//">)}) ] negated: False ) ] ) left_token: spids: [1191 1213] ) } spids: [1190] ) ] spids: [1188] ) (AndOr children: [ (C {(test)} {(-n)} {(DQ ($ VSub_Name "$litver"))}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: { (DQ ($ VSub_Name "$provides") (" lit=") ($ VSub_Name "$litver") (-r) ($ VSub_Name "$pkgrel") ) } spids: [1231] ) ] spids: [1231] ) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/build)}) (C {(install)} {(-D)} {(-m)} {(755)} {(bin/FileCheck)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_prefix") (/bin/FileCheck)} ) (C {(install)} {(-D)} {(-m)} {(755)} {(bin/not)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_prefix") (/bin/not)} ) (C {(python2)} {(../utils/lit/setup.py)} {(install)} {(--prefix) (Lit_Other "=") (/usr)} {(--root) (Lit_Other "=") (DQ ($ VSub_Name "$subpkgdir"))} ) (C {(ln)} {(-s)} {(../../../bin/lit)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_prefix") (/bin/lit)} ) ] spids: [1162] ) spids: [1158 1161] ) (FuncDef name: _common_subpkg body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$_default_llvm"))} {(Lit_Other "=")} {(yes)} {(Lit_Other "]")} ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: { (DQ (llvm) (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {($ VSub_Name "$pkgname")} ) spids: [1349 1353] ) ) } spids: [1346] ) ] spids: [1346] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: { (DQ ($ VSub_Name "$replaces") ("=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel") ) } spids: [1357] ) ] spids: [1357] ) ] spids: [-1 1343] ) ] spids: [-1 1367] ) ] spids: [1325] ) spids: [1321 1324] ) (FuncDef name: _mv body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:dest) op:Equal spids:[1381])] spids: [1379] ) terminator: ) (ForEach iter_name: dest do_arg_iter: True body: (DoGroup children: [(Sentence child:(C {(true)}) terminator:)] spids: [1389 1394] ) spids: [-1 -1] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$dest"))}) (C {(mv)} {($ VSub_At "$@")}) ] spids: [1376] ) spids: [1372 1375] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "cf681f0626ef6d568d951cdc3e143471a1d7715a0ba11e52aa273cf5d8d421e1357ef2645cc85879eaefcd577e99e74d07b01566825b3d0461171ef2cbfc7704 llvm-4.0.0.src.tar.xz\n" ) ( "f84cd65d7042e89826ba6e8d48c4c302bf4980da369d7f19a55f217e51c00ca8ed178d453df3a3cee76598a7cecb94aed0775a6d24fe73266f82749913fc3e71 llvm-fix-build-with-musl-libc.patch\n" ) ( "19bfb9282455d39d07dbb2b1293b03a45c57d522fbb9c5e58dac034200669628b97e7a90cd4ff5d52d9bb79acfccbef653d8a1140a7f0589ecd6f9b7c4ba0eb6 llvm-fix-DynamicLibrary-to-build-with-musl-libc.patch\n" ) ( "6d1a716e5aa24e6b9a3acf4cc11e2504b1b01abf574074e9e5617b991de87d5e4e687eb18e85e73d5e632568afe2fc357771c4c96f9e136502071991496fb78c cmake-fix-libLLVM-name.patch\n" ) ( "49c47f125014b60d0ea7870f981a2c1708ad705793f89287ed846ee881a837a4dc0170bf467e03f2ef56177473128945287749ac80dc2d13cfabcf8b929ba58a disable-FileSystemTest.CreateDir-perms-assert.patch\n" ) ( "97f788110abbb9e6add2e3a3d3b606dc2817ab726b74ead71241fc5433ba42d5d58e23be91a3b2444eb687c4f56a7c879bf5453e96f9785ce3541301329dda9c silent-amdgpu-test-failing.patch\n" ) ( "3bcfeccc1f14567f99029a131b1289290226d48855857f2eb6a251e041981a8b8b2d7965099df16ebf0a406e48130679f97235ef3f3524577413bb51cf40e613 fix-CheckAtomic.cmake.patch" ) ) } spids: [1416] ) ] spids: [1416] ) ] )