Merge pull request #802 from ertugerata/master

revert llvm
This commit is contained in:
Ertuğrul Erata
2015-11-10 10:13:00 +02:00
2 changed files with 71 additions and 92 deletions
+54 -51
View File
@@ -9,103 +9,106 @@ from pisi.actionsapi import pisitools
from pisi.actionsapi import shelltools
from pisi.actionsapi import pkgconfig
from pisi.actionsapi import get
from pisi.actionsapi import cmaketools
from pisi.actionsapi import kde4
#WorkDir = "%s-%s.src" % (get.srcNAME(), get.srcVERSION())
libdir = "/usr/lib32/llvm" if get.buildTYPE() == "emul32" else "/usr/lib/llvm"
lib = "lib32" if get.buildTYPE() == "emul32" else "lib"
def setup():
def setup():
if not shelltools.isDirectory("tools/clang"):
#pisitools.dosed("tools/cfe-3.7.0.src/lib/Driver/ToolChains.cpp", '"ld"', '"ld.gold"')
pisitools.dosed("tools/cfe-3.5.0.src/lib/Driver/ToolChains.cpp", '"ld"', '"ld.gold"')
shelltools.move("tools/cfe-%s.src" % get.srcVERSION(), "tools/clang")
shelltools.move("tools/clang-tools-extra-*", "tools/clang/extra")
shelltools.move("tools/lldb-*", "tools/lldb")
if not shelltools.isDirectory("projects/compiler-rt"):
shelltools.move("projects/compiler-rt-3.7*", "projects/compiler-rt")
shelltools.move("projects/compiler-rt-3.5*", "projects/compiler-rt")
pisitools.dosed("utils/llvm-build/llvm-build", "python", "python2.7")
pisitools.dosed("bindings/ocaml/Makefile.ocaml", '\$\(PROJ_libdir\)', libdir)
pisitools.dosed("Makefile.config.in", "\$\(PROJ_prefix\)/etc/llvm", "/etc/llvm")
pisitools.dosed("Makefile.config.in", "\$\(PROJ_prefix\)/lib", "$(PROJ_prefix)/%s/llvm" % lib)
pisitools.dosed("Makefile.config.in", "\$\(PROJ_prefix\)/docs/llvm", "$(PROJ_prefix)/share/doc/llvm")
pisitools.dosed("tools/llvm-config/llvm-config.cpp", '(ActiveLibDir\s=\sActivePrefix\s\+\s\"\/lib)(.*)', r'\1/llvm\2')
pisitools.dosed("autoconf/configure.ac", '\LLVM_LIBDIR="\$\{prefix\}/lib"', 'LLVM_LIBDIR="${prefix}/%s/llvm"' % lib)
pisitools.dosed("Makefile.rules", "\$\(RPATH\)\s-Wl,\$\(ExmplDir\)\s\$\(DynamicFlag\)", "$(DynamicFlag)")
pisitools.dosed("Makefile.rules", "\$\(RPATH\)\s-Wl,\$\(ToolDir\)\s\$\(DynamicFlag\)", "$(DynamicFlag)")
shelltools.export("CPPFLAGS","%s %s" % (get.CXXFLAGS(),pkgconfig.getLibraryCFLAGS("libffi")))
#pic_option = "enable" if get.ARCH() == "x86_64" else "disable"
shelltools.export("CC", "gcc")
shelltools.export("CXX", "g++")
shelltools.system("patch -d tools/clang/extra -Np1 < clang-tools-extra-3.7.0-install-clang-query.patch")
shelltools.system("patch -d tools/lldb -Np1 < lldb-3.7.0-avoid-linking-to-libLLVM.patch")
shelltools.system("patch -d projects/compiler-rt -Np1 < 0001-New-MSan-mapping-layout-compiler-rt-part.patch")
options = "--libdir=%s \
--datadir=/usr/share/llvm \
--sysconfdir=/etc \
--enable-shared \
--enable-libffi \
--enable-targets=all \
--disable-expensive-checks \
--disable-debug-runtime \
--disable-assertions \
--disable-assertions \
--with-python=/usr/bin/python2.7 \
--with-binutils-include=/usr/include \
" % libdir
shelltools.makedirs("build")
shelltools.cd("build")
autotools.configure(options)
#def check():
# autotools.make("check")
# autotools.make("-C tools/clang test")
cmaketools.configure("-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_DYLIB_EXPORT_ALL=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_FFI=ON \
-DLLVM_BUILD_DOCS=OFF \
-DLLVM_ENABLE_SPHINX=OFF \
-DLLVM_ENABLE_DOXYGEN=OFF \
-DFFI_INCLUDE_DIR=/usr/lib/libffi-3.2.1/include \
-DLLVM_BINUTILS_INCDIR=/usr/include", sourceDir="..")
def build():
shelltools.makedirs("build")
shelltools.cd("build")
cmaketools.make()
autotools.make("REQUIRES_RTTI=1")
def install():
shelltools.makedirs("build")
shelltools.cd("build")
if get.buildTYPE() == "emul32":
#cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
cmaketools.rawInstall("DESTDIR=%s \
autotools.rawInstall("DESTDIR=%s \
PROJ_etcdir=/etc/llvm \
PROJ_libdir=/usr/lib32/llvm \
PROJ_docsdir=/%s/llvm"
% (get.installDIR(), get.docDIR()))
# shelltools.chmod("%s/usr/lib32/llvm/*.a" % get.installDIR(), mode = 0644)
# pisitools.dosym("llvm/LLVMgold.so", "/usr/lib32/LLVMgold.so")
# pisitools.remove("/usr/lib32/llvm/*LLVMHello.*")
shelltools.chmod("%s/usr/lib32/llvm/*.a" % get.installDIR(), mode = 0644)
pisitools.dosym("llvm/LLVMgold.so", "/usr/lib32/LLVMgold.so")
pisitools.remove("/usr/lib32/llvm/*LLVMHello.*")
return
else:
cmaketools.rawInstall("DESTDIR=%s \
autotools.rawInstall("DESTDIR=%s \
PROJ_etcdir=/etc/llvm \
PROJ_libdir=%s \
PROJ_docsdir=/%s/llvm"
% (get.installDIR(), libdir, get.docDIR()))
#shelltools.chmod("%s/usr/lib/llvm/*.a" % get.installDIR(), 0644)
shelltools.cd ("..")
shelltools.chmod("%s/usr/lib/llvm/*.a" % get.installDIR(), 0644)
# Install static analyzers which aren't installed by default
for exe in ("scan-build", "scan-view"):
pisitools.insinto("/usr/lib/clang-analyzer/%s" % exe, "tools/clang/tools/%s/%s" % (exe, exe))
pisitools.dosym("/usr/lib/clang-analyzer/%s/%s" % (exe, exe), "/usr/bin/%s" % exe)
pisitools.dodir("/etc/ld.so.conf.d")
shelltools.echo("%s/etc/ld.so.conf.d/51-llvm.conf" % get.installDIR(), "/usr/lib/llvm")
# Symlink the gold plugin where clang expects it
# pisitools.dosym("llvm/LLVMgold.so", "/usr/lib/LLVMgold.so")
pisitools.dosym("llvm/LLVMgold.so", "/usr/lib/LLVMgold.so")
# Remove example file
# pisitools.remove("/usr/lib/llvm/*LLVMHello.*")
pisitools.remove("/usr/lib/llvm/*LLVMHello.*")
# pisitools.remove("/usr/share/doc/llvm/*.tar.gz")
# pisitools.remove("/usr/share/doc/llvm/ocamldoc/html/*.tar.gz")
# pisitools.removeDir("/usr/share/doc/llvm/ps")
pisitools.remove("/usr/share/doc/llvm/*.tar.gz")
pisitools.remove("/usr/share/doc/llvm/ocamldoc/html/*.tar.gz")
pisitools.removeDir("/usr/share/doc/llvm/ps")
# Install vim syntax files for .ll and .td files
# llvm.vim additional file add ftdetct vim file to detect .ll and .td as llvm files
pisitools.insinto("/usr/share/vim/vimfiles/syntax", "utils/vim/syntax/*.vim")
pisitools.insinto("/usr/share/vim/vimfiles/syntax", "utils/vim/*.vim")
# Install kate syntax file
#pisitools.insinto("%s/katepart/syntax" % kde4.appsdir, "utils/kate/*.xml")
pisitools.insinto("%s/katepart/syntax" % kde4.appsdir, "utils/kate/*.xml")
pisitools.dodoc("CREDITS.TXT", "LICENSE.TXT", "README.txt")
+17 -41
View File
@@ -11,37 +11,25 @@
<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="0355c2fe01a8d17c3315069e6f2ef80c281e7dad" type="tarxz">http://llvm.org/releases/3.7.0/llvm-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="4ff8100565528b13d99a73f807e9b426c3b3bed9" type="tarxz" target="llvm-3.7.0.src/tools">http://llvm.org/releases/3.7.0/cfe-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="99a8c8e04936d37b711664539a1a2271a9663825" type="tarxz" target="llvm-3.7.0.src/tools">http://llvm.org/releases/3.7.0/clang-tools-extra-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="7b162eee856eca95e190210600277f5171425684" type="tarxz" target="llvm-3.7.0.src/tools">http://llvm.org/releases/3.7.0/lldb-3.7.0.src.tar.xz</Archive>
<Archive sha1sum="b61362b409bb7909a6d11097b5f69fded061073c" type="tarxz" target="llvm-3.7.0.src/projects">http://llvm.org/releases/3.7.0/compiler-rt-3.7.0.src.tar.xz</Archive>
<AdditionalFiles>
<AdditionalFile target="clang-tools-extra-3.7.0-install-clang-query.patch">clang-tools-extra-3.7.0-install-clang-query.patch</AdditionalFile>
<AdditionalFile target="lldb-3.7.0-avoid-linking-to-libLLVM.patch">lldb-3.7.0-avoid-linking-to-libLLVM.patch</AdditionalFile>
<AdditionalFile target="0001-New-MSan-mapping-layout-compiler-rt-part.patch">0001-New-MSan-mapping-layout-compiler-rt-part.patch</AdditionalFile>
</AdditionalFiles>
<Archive sha1sum="58d817ac2ff573386941e7735d30702fe71267d5" type="tarxz">http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz</Archive>
<Archive sha1sum="834cee2ed8dc6638a486d8d886b6dce3db675ffa" type="tarxz" target="llvm-3.5.0.src/tools">http://llvm.org/releases/3.5.0/cfe-3.5.0.src.tar.xz</Archive>
<Archive sha1sum="74a84493e3313c180490a4affbb92d61ee4f0d21" type="tarxz" target="llvm-3.5.0.src/tools">http://llvm.org/releases/3.5.0/clang-tools-extra-3.5.0.src.tar.xz</Archive>
<Archive sha1sum="61f3e78088ce4a0787835036f2d3c61ede11e928" type="tarxz" target="llvm-3.5.0.src/projects">http://llvm.org/releases/3.5.0/compiler-rt-3.5.0.src.tar.xz</Archive>
<BuildDependencies>
<Dependency>zlib-devel</Dependency>
<Dependency>libxml2-devel</Dependency>
<Dependency>python-devel</Dependency>
<Dependency>ncurses-devel</Dependency>
<Dependency>ocaml</Dependency>
<Dependency>libffi-devel</Dependency>
<Dependency>groff</Dependency>
<Dependency>swig</Dependency>
<Dependency>cmake</Dependency>
<Dependency>python-sphinx</Dependency>
<Dependency>python-MarkupSafe</Dependency>
<Dependency>libedit-devel</Dependency>
<!-- Use new plugin-api.h header file from binutils to enable LLVM gold plugin -->
<Dependency>binutils</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">llvm-3.7.0-link-tools-against-libLLVM.patch</Patch>
<Patch level="2">llvm-3.7.0-export-more-symbols.patch</Patch>
<Patch>0001-New-MSan-mapping-layout-llvm-part.patch</Patch>
<!--Patch level="2">lldb-3.7.0-avoid-linking-to-libLLVM.patch</Patch-->
<Patch>llvm-3.5.0-fix-cmake-llvm-exports.patch</Patch>
<Patch>llvm-3.5.0-force-link-pass.o.patch</Patch>
</Patches>
</Source>
@@ -60,18 +48,16 @@
<Path fileType="executable">/usr/bin/llvm-config</Path>
<Path fileType="header">/usr/include/llvm*</Path>
<Path fileType="library">/usr/lib/llvm</Path>
<Path fileType="library">/usr/include/lldb</Path>
<Path fileType="library">/usr/lib</Path>
<Path fileType="conf">/etc/ld.so.conf.d</Path>
<Path fileType="data">/etc/ld.so.conf.d</Path>
<Path fileType="data">/etc/llvm</Path>
<Path fileType="doc">/usr/share/doc</Path>
<Path fileType="data">/usr/share/vim</Path>
<Path fileType="data">/usr/share/llvm/cmake</Path>
<!-- Kate syntax file -->
<Path fileType="data">/usr/share/kde4</Path>
<Path fileType="man">/usr/share/man</Path>
</Files>
<AdditionalFiles>
<AdditionalFile owner="root" permission="0644" target="/etc/ld.so.conf.d/51-llvm.conf">51-llvm.conf</AdditionalFile>
</AdditionalFiles>
</Package>
<Package>
@@ -85,15 +71,13 @@
<Dependency>ncurses</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library">/usr/lib/libLLVM.so*</Path>
<Path fileType="library">/usr/lib/LLVMgold.so</Path>
<Path fileType="library">/usr/lib/libLTO.so*</Path>
<Path fileType="data">/usr/share/doc/llvm/LICENSE*</Path>
<Path fileType="library">/usr/lib/llvm/libLLVM-3*</Path>
<Path fileType="data">/usr/share/licenses/llvm-libs/LICENSE</Path>
</Files>
</Package>
<Package>
<Name>llvm-ocaml</Name><!--fix me ocamle package not builded-->
<Name>llvm-ocaml</Name>
<IsA>library</IsA>
<PartOf>programming.language.ocaml</PartOf>
<Summary>OCaml binding for LLVM</Summary>
@@ -126,15 +110,14 @@
<Description>The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.</Description>
<RuntimeDependencies>
<Dependency release="current">llvm-libs</Dependency>
<Dependency>libgcc</Dependency>
<Dependency>ncurses</Dependency>
<Dependency>libgcc</Dependency>
<Dependency>ncurses</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="executable">/usr/bin/clang*</Path>
<Path fileType="executable">/usr/bin/tblgen</Path>
<Path fileType="library">/usr/lib/clang</Path>
<Path fileType="library">/usr/lib/clang/libclang.so</Path>
<Path fileType="data">/usr/share/clang</Path>
<Path fileType="man">/usr/share/man/man1/clang.1</Path>
</Files>
</Package>
@@ -151,7 +134,7 @@
</Files>
</Package>
<!--Package>
<Package>
<Name>llvm-docs</Name>
<PartOf>programming.docs</PartOf>
<IsA>data:doc</IsA>
@@ -160,7 +143,7 @@
<Path fileType="doc">/usr/share/doc/llvm/html</Path>
<Path fileType="doc">/usr/share/doc/llvm/ocamldoc</Path>
</Files>
</Package-->
</Package>
<Package>
<Name>llvm-32bit</Name>
@@ -185,13 +168,6 @@
</Package>
<History>
<Update release="8">
<Date>2015-11-08</Date>
<Version>3.7.0</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="7">
<Date>2014-09-23</Date>
<Version>3.5.0</Version>