llvm 9.0.1

This commit is contained in:
idriskalp
2020-01-04 21:18:33 +03:00
parent 297c208729
commit a2f738f6e0
2 changed files with 128 additions and 55 deletions
+65 -44
View File
@@ -3,70 +3,91 @@
# Licensed under the GNU General Public License, version 3.
# See the file http://www.gnu.org/licenses/gpl.txt
from pisi.actionsapi import get
from pisi.actionsapi import autotools
from pisi.actionsapi import pisitools
from pisi.actionsapi import cmaketools
from pisi.actionsapi import shelltools
from pisi.actionsapi import get
from pisi.actionsapi import cmaketools
libdir = "/usr/lib32/llvm" if get.buildTYPE() == "emul32" else "/usr/lib/llvm"
lib = "lib32" if get.buildTYPE() == "emul32" else "lib"
libdir = "/usr/%s/llvm" % lib
def setup():
options = "-DCMAKE_BUILD_TYPE=Release \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_INSTALL_UTILS=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_FFI=ON \
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR \
-DLLVM_BUILD_TESTS=ON \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_ENABLE_SPHINX=ON \
-DLLVM_ENABLE_DOXYGEN=OFF \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \
-DLLVM_BINUTILS_INCDIR=/usr/include \
"
def setup():
if get.buildTYPE() != "emul32":
if not shelltools.can_access_directory("tools/clang"):
shelltools.move("../clang-%s.src" % get.srcVERSION(), "tools/clang")
shelltools.move("../clang-tools-extra-%s.src" % get.srcVERSION(), "tools/clang/tools/extra")
shelltools.move("../lld-%s.src" % get.srcVERSION(), "tools/lld")
shelltools.move("../lldb-%s.src" % get.srcVERSION(), "tools/lldb")
shelltools.move("../compiler-rt-%s.src" % get.srcVERSION(), "projects/compiler-rt")
if not shelltools.can_access_directory("tools/clang"):
shelltools.system("tar xf ../clang-%s.src.tar.xz -C tools" % get.srcVERSION())
shelltools.move("tools/clang-%s.src" % get.srcVERSION(), "tools/clang")
shelltools.system("tar xf ../clang-tools-extra-%s.src.tar.xz -C tools" % get.srcVERSION())
shelltools.move("tools/clang-tools-extra-*", "tools/clang/extra")
else:
shelltools.system("tar xf ../lldb-%s.src.tar.xz -C tools" % get.srcVERSION())
shelltools.move("tools/lldb-*", "tools/lldb")
shelltools.system("tar xf ../lld-%s.src.tar.xz -C tools" % get.srcVERSION())
shelltools.move("tools/lld-*", "tools/lld")
shelltools.system("tar xf ../polly-%s.src.tar.xz -C tools" % get.srcVERSION())
shelltools.move("tools/polly-*", "tools/polly")
if not shelltools.can_access_directory("projects/compiler-rt"):
shelltools.system("tar xf ../compiler-rt-%s.src.tar.xz -C projects" % get.srcVERSION())
shelltools.move("projects/compiler-rt-%s.src" % get.srcVERSION(), "projects/compiler-rt")
shelltools.export("CC", "clang")
shelltools.export("CXX", "clang++")
if get.buildTYPE() == "emul32":
shelltools.export("CC", "clang -m32")
shelltools.export("CXX", "clang++ -m32")
shelltools.export("PKG_CONFIG_PATH","/usr/lib32/pkgconfig")
shelltools.makedirs("build")
shelltools.makedirs("build")
shelltools.cd("build")
if get.buildTYPE() != "emul32":
options = "-DCMAKE_INSTALL_PREFIX=/usr \
-DLLVM_TARGET_ARCH:STRING=x86_64 \
-DLLVM_DEFAULT_TARGET_TRIPLE=%s \
" % get.HOST()
else:
pisitools.flags.replace("-march=\S+", "-march=i686 -m32")
options = "-DCMAKE_INSTALL_PREFIX=/emul32 \
-DLLVM_TARGET_ARCH:STRING=i686 \
-DLLVM_LIBDIR_SUFFIX=32 \
-DLLVM_DEFAULT_TARGET_TRIPLE='i686-pc-linux-gnu' \
"
options += "-DCMAKE_C_FLAGS_RELEASE=%s \
-DCMAKE_CXX_FLAGS_RELEASE=%s \
" % (get.CFLAGS(), get.CXXFLAGS())
cmaketools.configure(options, sourceDir=".." )
options = "-DCMAKE_C_FLAGS:STRING=-m64 \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_CXX_FLAGS:STRING=-m64 \
-DLLVM_TARGET_ARCH:STRING=x86_64 \
-DLLVM_DEFAULT_TARGET_TRIPLE=%s " % get.HOST()
if get.buildTYPE() == "emul32":
options = " -DCMAKE_C_FLAGS:STRING=-m32 \
-DCMAKE_INSTALL_PREFIX=/emul32 \
-DLLVM_TARGET_ARCH:STRING=i686 \
-DLLVM_LIBDIR_SUFFIX=32 \
-DLLVM_DEFAULT_TARGET_TRIPLE='i686-pc-linux-gnu' \
-DCMAKE_CXX_FLAGS:STRING=-m32"
cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \
%s \
-DLLVM_ENABLE_FFI=ON \
-DLLVM_BUILD_DOCS=OFF \
-DBUILD_SHARED_LIBS=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_EH=ON \
-DLLVM_INCLUDEDIR=/usr/include \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DFFI_INCLUDE_DIR=/usr/lib/libffi-3.2.1/include \
-DENABLE_SHARED=ON" % options, sourceDir=".." )
def build():
shelltools.makedirs("build")
shelltools.cd("build")
cmaketools.make()
def install():
shelltools.cd("build")
shelltools.makedirs("build")
shelltools.cd("build")
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
if get.buildTYPE() == "emul32":
Regular → Executable
+63 -11
View File
@@ -11,12 +11,13 @@
<License>NCSA</License>
<Summary>The Low Level Virtual Machine</Summary>
<Description>The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.</Description>
<Archive sha1sum="f7fcf3bd92d130784513c06efe6910f135372ce3" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/llvm-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="3afa0d2573ba55c46360419ed944a729ae08c8f7" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/lldb-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="ef5f529adfb9b57b33c394641d7d5e2d1f1b5ff6" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/lld-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="0d72ce018c85c54fc709c7da71d3dd1463af0bfc" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/clang-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="f0571ec2135cb735f22baa149ac84e7334d0ac70" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/clang-tools-extra-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="b35bc6ed7ce40f18ac45c81f4cf02ffd1f14de82" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/compiler-rt-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="f7fcf3bd92d130784513c06efe6910f135372ce3" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/llvm-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="0d72ce018c85c54fc709c7da71d3dd1463af0bfc" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/clang-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="f0571ec2135cb735f22baa149ac84e7334d0ac70" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/clang-tools-extra-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="3afa0d2573ba55c46360419ed944a729ae08c8f7" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/lldb-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="ef5f529adfb9b57b33c394641d7d5e2d1f1b5ff6" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/lld-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="e7ce627133584db555c5bd980418f96a9684a58f" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/polly-9.0.1.src.tar.xz</Archive>
<Archive sha1sum="b35bc6ed7ce40f18ac45c81f4cf02ffd1f14de82" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/compiler-rt-9.0.1.src.tar.xz</Archive>
<BuildDependencies>
<Dependency>zlib-devel</Dependency>
<Dependency>libxml2-devel</Dependency>
@@ -30,6 +31,7 @@
<Dependency>cmake</Dependency>
<!-- Use new plugin-api.h header file from binutils to enable LLVM gold plugin -->
<Dependency>binutils</Dependency>
<Dependency>llvm-clang</Dependency>
</BuildDependencies>
</Source>
@@ -49,6 +51,7 @@
<Path fileType="executable">/usr/bin</Path>
<Path fileType="executable">/usr/bin/llvm-config</Path>
<Path fileType="header">/usr/include/llvm*</Path>
<Path fileType="header">/usr/include/polly*</Path>
<Path fileType="library">/usr/lib/llvm</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="conf">/etc/ld.so.conf.d</Path>
@@ -78,6 +81,7 @@
<Path fileType="library">/usr/lib/libLLVM*.so</Path>
<Path fileType="library">/usr/lib/LLVMgold.*</Path>
<Path fileType="library">/usr/lib/libLTO.*</Path>
<Path fileType="library">/usr/lib/libPolly*.so</Path>
<Path fileType="library">/usr/lib/bfd-plugins/LLVMgold.so</Path>
<Path fileType="data">/usr/share/licenses/llvm-libs/LICENSE</Path>
</Files>
@@ -109,7 +113,8 @@
<Path fileType="library">/usr/lib/liblldbPluginObjCLanguage.a</Path>
</Files>
</Package>
<Package>
<Name>lldb-devel</Name>
<Summary>Development headers lldb</Summary>
@@ -120,8 +125,53 @@
<Path fileType="header">/usr/include/lldb/*</Path>
</Files>
</Package>
<Package>
<Name>lld</Name>
<Summary> Linker from the LLVM project</Summary>
<RuntimeDependencies>
<Dependency release="current">llvm-libs</Dependency>
<Dependency>zlib</Dependency>
<Dependency>libffi</Dependency>
<Dependency>libedit</Dependency>
<Dependency>libgcc</Dependency>
<Dependency>ncurses</Dependency>
<Dependency>python</Dependency>
<Dependency>libxml2</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/ld.lld</Path>
<Path fileType="executable">/usr/bin/ld64.lld</Path>
<Path fileType="executable">/usr/bin/lld</Path>
<Path fileType="executable">/usr/bin/lld-link</Path>
<Path fileType="executable">/usr/bin/wasm-ld</Path>
<Path fileType="library">/usr/lib/liblldCOFF.*</Path>
<Path fileType="library">/usr/lib/liblldCommon.*</Path>
<Path fileType="library">/usr/lib/liblldCore.*</Path>
<Path fileType="library">/usr/lib/liblldDriver.*</Path>
<Path fileType="library">/usr/lib/liblldELF.*</Path>
<Path fileType="library">/usr/lib/liblldMachO.*</Path>
<Path fileType="library">/usr/lib/liblldMinGW.*</Path>
<Path fileType="library">/usr/lib/liblldReaderWriter.*</Path>
<Path fileType="library">/usr/lib/liblldWasm.*</Path>
<Path fileType="library">/usr/lib/liblldYAML.*</Path>
<Path fileType="doc">/usr/share/doc/lld</Path>
</Files>
</Package>
<Package>
<Name>lld-devel</Name>
<Summary>Development headers lld</Summary>
<RuntimeDependencies>
<Dependency release="current">lld</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="header">/usr/include/lld/*</Path>
</Files>
</Package>
<Package>
<Name>llvm-clang-analyzer</Name>
<IsA>app:console</IsA>
@@ -156,6 +206,8 @@
<Path fileType="executable">/usr/bin/tblgen</Path>
<Path fileType="library">/usr/lib/clang</Path>
<Path fileType="library">/usr/lib/libclang*</Path>
<!-- <Path fileType="library">/usr/lib/liblldbPluginExpressionParserClang.a</Path> -->
<!-- <Path fileType="library">/usr/lib/liblldbPluginObjCLanguage.a</Path> -->
<Path fileType="man">/usr/share/man/man1/clang.1</Path>
<Path fileType="data">/usr/lib/cmake/clang/Clang*</Path>
<Path fileType="data">/usr/share/clang</Path>
@@ -211,12 +263,12 @@
</Package>
<History>
<Update release="11">
<Date>2020-01-03</Date>
<Update release="11">
<Date>2020-01-04</Date>
<Version>9.0.1</Version>
<Comment>Version bump.</Comment>
<Name>Marcin Bojara</Name>
<Email>marcin.bojara@gmail.com</Email>
<Name>Idris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="10">
<Date>2019-05-23</Date>