llvm 11.0.0

This commit is contained in:
Idris Kalp
2020-11-13 01:25:40 +03:00
parent 2ff6642d43
commit 3f5e51d08b
2 changed files with 81 additions and 69 deletions
+63 -57
View File
@@ -9,60 +9,64 @@ from pisi.actionsapi import shelltools
from pisi.actionsapi import get
from pisi.actionsapi import cmaketools
projects = "clang;polly;compiler-rt;mlir" if get.buildTYPE() == "emul32" else "clang;clang-tools-extra;lld;lldb;polly;compiler-rt;mlir"
libdir = "/usr/lib32/llvm" if get.buildTYPE() == "emul32" else "/usr/lib/llvm"
lib = "lib32" if get.buildTYPE() == "emul32" else "lib"
libsuffix = "32" if get.buildTYPE() == "emul32" else ""
NoStrip = ["/usr/lib/clang/%s/lib/linux" % get.srcVERSION()]
NoStrip = ["/usr/"]
WorkDir = "llvm-project-%s/llvm" %get.srcVERSION()
def setup():
#pisitools.ldflags.add("-fuse-ld=lld")
pisitools.ldflags.add("-fuse-ld=lld")
if get.buildTYPE() != "emul32":
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")
#if get.buildTYPE() != "emul32":
#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/tools/extra")
#shelltools.system("tar xf ../clang-tools-extra-%s.src.tar.xz -C tools" % get.srcVERSION())
#shelltools.move("tools/clang-tools-extra-*", "tools/clang/tools/extra")
shelltools.system("tar xf ../lldb-%s.src.tar.xz -C tools" % get.srcVERSION())
shelltools.move("tools/lldb-*", "tools/lldb")
#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 ../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")
#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")
#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")
#clang patch
#shelltools.cd("tools")
#shelltools.system("patch -p1 < enable-SSP-and-PIE-by-default.patch")
#shelltools.cd("..")
##clang patch
##shelltools.cd("tools")
##shelltools.system("patch -p1 < enable-SSP-and-PIE-by-default.patch")
##shelltools.cd("..")
##shelltools.export("CC", "clang")
##shelltools.export("CXX", "clang++")
#shelltools.export("CC", "clang")
#shelltools.export("CXX", "clang++")
shelltools.export("CC", "gcc")
shelltools.export("CXX", "g++")
else:
shelltools.system("tar xf ../clang-%s.src.tar.xz -C tools" % get.srcVERSION())
shelltools.move("tools/clang-%s.src" % get.srcVERSION(), "tools/clang")
#else:
#shelltools.system("tar xf ../clang-%s.src.tar.xz -C tools" % get.srcVERSION())
#shelltools.move("tools/clang-%s.src" % get.srcVERSION(), "tools/clang")
if get.buildTYPE() == "emul32":
#shelltools.export("CC", "clang -m32")
#shelltools.export("CXX", "clang++ -m32")
shelltools.export("CC", "gcc -m32")
shelltools.export("CXX", "g++ -m32")
shelltools.export("CC", "clang -m32")
shelltools.export("CXX", "clang++ -m32")
shelltools.export("PKG_CONFIG_PATH","/usr/lib32/pkgconfig")
#clang patch
#shelltools.cd("tools")
#shelltools.system("patch -p1 < enable-SSP-and-PIE-by-default.patch")
#shelltools.cd("..")
else:
shelltools.export("CC", "clang")
shelltools.export("CXX", "clang++")
shelltools.makedirs("build")
@@ -70,47 +74,49 @@ def setup():
if get.buildTYPE() != "emul32":
options = "-DCMAKE_C_FLAGS:STRING=-m64 \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_CXX_FLAGS:STRING=-m64 \
-DLLVM_TARGET_ARCH:STRING=x86_64 \
-DLLDB_ENABLE_LUA=OFF \
-DLLVM_DEFAULT_TARGET_TRIPLE=%s " % get.HOST()
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_CXX_FLAGS:STRING=-m64 \
-DLLVM_TARGET_ARCH:STRING=x86_64 \
-DLLDB_ENABLE_LUA=OFF \
-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"
-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 \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_EH=ON \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_INCLUDEDIR=/usr/include \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DFFI_INCLUDE_DIR=/usr/lib/libffi-3.2.1/include \
-DCOMPILER_RT_USE_LIBCXX=OFF \
-DLIBOMP_USE_HIER_SCHED=ON" % (options), sourceDir=".." )
-G 'Ninja' \
%s \
-DLLVM_ENABLE_PROJECTS='%s' \
-DLLVM_ENABLE_FFI=ON \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_EH=ON \
-DBUILD_SHARED_LIBS=ON \
-DLLVM_INCLUDEDIR=/usr/include \
-DLLVM_ENABLE_ASSERTIONS=OFF \
-DFFI_INCLUDE_DIR=/usr/include \
-DCOMPILER_RT_USE_LIBCXX=OFF \
-DCLANG_DEFAULT_RTLIB=compiler-rt \
.. " % (options, projects), sourceDir=".." )
def build():
shelltools.makedirs("build")
shelltools.cd("build")
cmaketools.make()
shelltools.system("ninja")
def install():
shelltools.makedirs("build")
shelltools.cd("build")
cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
shelltools.system("DESTDIR=%s ninja install" % get.installDIR())
if get.buildTYPE() == "emul32":
@@ -118,8 +124,8 @@ def install():
pisitools.insinto("/usr/include/llvm/Config/","%s/emul32/include/llvm/Config/llvm-config.h" % get.installDIR(),"llvm-config-32.h")
pisitools.insinto("/usr/bin/","%s/emul32/bin/llvm-config" % get.installDIR(),"llvm-config-32")
pisitools.removeDir("/emul32")
pisitools.remove("/usr/lib/python2.7/site-packages/six.py")
#pisitools.remove("/usr/lib/python2.7/site-packages/six.py")
shelltools.cd ("..")
pisitools.dodoc("CREDITS.TXT", "LICENSE.TXT", "README.txt")
pisitools.dodoc("LICENSE.TXT", "README.txt")
+18 -12
View File
@@ -11,13 +11,7 @@
<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="25d07260f3b7bf4f647e115c4a663fdeda130fbd" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-10.0.1.src.tar.xz</Archive>
<Archive sha1sum="0e61e92b22a620fe7f833fa8b2a56f2db96f7335" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/clang-10.0.1.src.tar.xz</Archive>
<Archive sha1sum="26c996da082677aca1016bcf2141dbff01dc7300" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/clang-tools-extra-10.0.1.src.tar.xz</Archive>
<Archive sha1sum="90b946ff7b850bcded598509a10d0795e7da3f63" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/lldb-10.0.1.src.tar.xz</Archive>
<Archive sha1sum="8581337dba00041c2633f61bfb5be778df83cff7" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/lld-10.0.1.src.tar.xz</Archive>
<Archive sha1sum="fd1ece6c77d420f52d0502bc2b34075c353eed21" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/polly-10.0.1.src.tar.xz</Archive>
<Archive sha1sum="ee6077b4728b3c750e476938cead11cea45b49ff" type="binary">https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/compiler-rt-10.0.1.src.tar.xz</Archive>
<Archive sha1sum="3c88390b19ac6779c8d9c89256892d690903412b" type="tarxz">https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/llvm-project-11.0.0.tar.xz</Archive>
<BuildDependencies>
<Dependency>zlib-devel</Dependency>
<Dependency>libxml2-devel</Dependency>
@@ -32,8 +26,9 @@
<!-- Use new plugin-api.h header file from binutils to enable LLVM gold plugin -->
<Dependency>binutils</Dependency>
<Dependency>gcc</Dependency>
<!-- <Dependency>llvm-clang</Dependency> -->
<!-- <Dependency>lld</Dependency> -->
<Dependency>llvm-clang</Dependency>
<Dependency>lld</Dependency>
<Dependency>ninja</Dependency>
</BuildDependencies>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="tools/enable-SSP-and-PIE-by-default.patch">enable-SSP-and-PIE-by-default.patch</AdditionalFile>
@@ -56,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/mlir*</Path>
<Path fileType="header">/usr/include/polly*</Path>
<Path fileType="library">/usr/lib/llvm</Path>
<Path fileType="library">/usr/lib</Path>
@@ -84,10 +80,12 @@
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/libLLVM*.so</Path>
<Path fileType="library">/usr/lib/libLLVM*.so.10</Path>
<Path fileType="library">/usr/lib/libLLVM*.so.11</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/libMLIR*</Path>
<Path fileType="library">/usr/lib/libmlir*</Path>
<Path fileType="library">/usr/lib/bfd-plugins/LLVMgold.so</Path>
<Path fileType="data">/usr/share/licenses/llvm-libs/LICENSE</Path>
</Files>
@@ -194,14 +192,14 @@
<Path fileType="executable">/usr/libexec/c++-*</Path>
</Files>
</Package>
<Package>
<Name>compiler-rt</Name>
<Summary>Various runtime libraries used by Clang</Summary>
<RuntimeDependencies>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/clang/10.0.1/lib/linux/*.so</Path>
<Path fileType="library">/usr/lib/clang/11.0.0/lib/linux/*.so</Path>
</Files>
</Package>
@@ -239,6 +237,7 @@
<Files>
<Path fileType="header">/usr/include/clang</Path>
<Path fileType="header">/usr/include/clang-c</Path>
<Path fileType="header">/usr/include/clang-tidy</Path>
</Files>
</Package>
@@ -279,6 +278,13 @@
</Package>
<History>
<Update release="14">
<Date>2020-11-12</Date>
<Version>11.0.0</Version>
<Comment>Version bump.</Comment>
<Name>İdris Kalp</Name>
<Email>idriskalp@gmail.com</Email>
</Update>
<Update release="13">
<Date>2020-09-23</Date>
<Version>10.0.1</Version>