diff --git a/programming/build/llvm/actions.py b/programming/build/llvm/actions.py
old mode 100755
new mode 100644
index 5ac53ffde3..c75f2ee2b1
--- a/programming/build/llvm/actions.py
+++ b/programming/build/llvm/actions.py
@@ -9,90 +9,117 @@ 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()]
-
-WorkDir = "llvm-project-%s/llvm" %get.srcVERSION()
+NoStrip = ["/usr/lib/clang/%s/lib/linux" % get.srcVERSION()]
def setup():
- pisitools.ldflags.add("-fuse-ld=lld")
- pisitools.cflags.remove("-D_FORTIFY_SOURCE=2")
- pisitools.cxxflags.remove("-D_FORTIFY_SOURCE=2")
-
+ #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")
+
+ 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 ../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")
+
+ #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", "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")
+
if get.buildTYPE() == "emul32":
- shelltools.export("CC", "clang -m32")
- shelltools.export("CXX", "clang++ -m32")
+ #shelltools.export("CC", "clang -m32")
+ #shelltools.export("CXX", "clang++ -m32")
+ shelltools.export("CC", "gcc -m32")
+ shelltools.export("CXX", "g++ -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")
shelltools.cd("build")
if get.buildTYPE() != "emul32":
- pisitools.cflags.add("-m64")
- pisitools.cxxflags.add("-m64")
- options = "-DLLVM_TARGET_ARCH:STRING=x86_64 \
- -DLLDB_ENABLE_LUA=OFF \
- -DLLVM_DEFAULT_TARGET_TRIPLE=%s " % get.HOST()
+ 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()
if get.buildTYPE() == "emul32":
- pisitools.cflags.add("-m32")
- pisitools.cxxflags.add("-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: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 \
- -G 'Unix Makefiles' \
- %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=".." )
+ %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=".." )
def build():
shelltools.makedirs("build")
shelltools.cd("build")
- autotools.make()
+ cmaketools.make()
def install():
shelltools.makedirs("build")
shelltools.cd("build")
- autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+ cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ if get.buildTYPE() == "emul32":
- if get.buildTYPE() == "emul32":
pisitools.domove("/emul32/lib32/", "/usr/")
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("LICENSE.TXT", "README.txt")
+
+ pisitools.dodoc("CREDITS.TXT", "LICENSE.TXT", "README.txt")
diff --git a/programming/build/llvm/pspec.xml b/programming/build/llvm/pspec.xml
old mode 100755
new mode 100644
index 4819ec566a..0c1bef0247
--- a/programming/build/llvm/pspec.xml
+++ b/programming/build/llvm/pspec.xml
@@ -11,7 +11,13 @@
NCSA
The Low Level Virtual Machine
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.
- https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/llvm-project-11.0.0.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-10.0.1.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/clang-10.0.1.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/clang-tools-extra-10.0.1.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/lldb-10.0.1.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/lld-10.0.1.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/polly-10.0.1.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/compiler-rt-10.0.1.src.tar.xz
zlib-devel
libxml2-devel
@@ -20,14 +26,14 @@
libffi-devel
groff
swig
+ python-devel
libedit-devel
- cmake
- python3-devel
+ cmake
binutils
gcc
- llvm-clang
- lld
+
+
enable-SSP-and-PIE-by-default.patch
@@ -50,7 +56,6 @@
/usr/bin
/usr/bin/llvm-config
/usr/include/llvm*
- /usr/include/mlir*
/usr/include/polly*
/usr/lib/llvm
/usr/lib
@@ -79,12 +84,10 @@
/usr/lib/libLLVM*.so
- /usr/lib/libLLVM*.so.11
+ /usr/lib/libLLVM*.so.10
/usr/lib/LLVMgold.*
/usr/lib/libLTO.*
/usr/lib/libPolly*.so
- /usr/lib/libMLIR*
- /usr/lib/libmlir*
/usr/lib/bfd-plugins/LLVMgold.so
/usr/share/licenses/llvm-libs/LICENSE
@@ -101,7 +104,7 @@
libedit
libgcc
ncurses
- python3
+ python
libxml2
xz
@@ -140,7 +143,7 @@
libedit
libgcc
ncurses
- python3
+ python
libxml2
@@ -191,14 +194,14 @@
/usr/libexec/c++-*
-
+
compiler-rt
Various runtime libraries used by Clang
- /usr/lib/clang/11.0.0/lib/linux/*.so
+ /usr/lib/clang/10.0.1/lib/linux/*.so
@@ -236,7 +239,6 @@
/usr/include/clang
/usr/include/clang-c
- /usr/include/clang-tidy
@@ -277,13 +279,6 @@
-
- 2020-11-15
- 11.0.0
- Version bump.
- İdris Kalp
- idriskalp@gmail.com
-
2020-09-23
10.0.1