summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 06:39:36 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 06:39:36 +0000
commitb00b1671a1012f16ac856647fca8b44943e7e78e (patch)
tree1f83c2e128d209e03bfacfc968203ba7c4903e66
parente236ffe0546b1ea924e76a830adbc539d352b9a3 (diff)
automatic import of python-wllvm
-rw-r--r--.gitignore1
-rw-r--r--python-wllvm.spec135
-rw-r--r--sources1
3 files changed, 137 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..b22a113 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/wllvm-1.3.1.tar.gz
diff --git a/python-wllvm.spec b/python-wllvm.spec
new file mode 100644
index 0000000..fe009bf
--- /dev/null
+++ b/python-wllvm.spec
@@ -0,0 +1,135 @@
+%global _empty_manifest_terminate_build 0
+Name: python-wllvm
+Version: 1.3.1
+Release: 1
+Summary: Whole Program LLVM
+License: MIT
+URL: https://github.com/SRI-CSL/whole-program-llvm
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/4b/df/31d7519052bc21d0e9771e9a6540d6310bfb13bae7dacde060d8f647b8d3/wllvm-1.3.1.tar.gz
+BuildArch: noarch
+
+
+%description
+This project, WLLVM, provides tools for building whole-program (or
+whole-library) LLVM bitcode files from an unmodified C or C++
+source package. It currently runs on `*nix` platforms such as Linux,
+FreeBSD, and Mac OS X.
+WLLVM provides python-based compiler wrappers that work in two
+steps. The wrappers first invoke the compiler as normal. Then, for
+each object file, they call a bitcode compiler to produce LLVM
+bitcode. The wrappers also store the location of the generated bitcode
+file in a dedicated section of the object file. When object files are
+linked together, the contents of the dedicated sections are
+concatenated (so we don't lose the locations of any of the constituent
+bitcode files). After the build completes, one can use an WLLVM
+utility to read the contents of the dedicated section and link all of
+the bitcode into a single whole-program bitcode file. This utility
+works for both executable and native libraries.
+This two-phase build process is necessary to be a drop-in replacement
+for ``gcc`` or ``g++`` in any build system. Using the LTO framework in gcc
+and the gold linker plugin works in many cases, but fails in the
+presence of static libraries in builds. WLLVM's approach has the
+distinct advantage of generating working binaries, in case some part
+of a build process requires that.
+WLLVM works with either ``clang`` or the ``gcc dragonegg`` plugin.
+
+%package -n python3-wllvm
+Summary: Whole Program LLVM
+Provides: python-wllvm
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-wllvm
+This project, WLLVM, provides tools for building whole-program (or
+whole-library) LLVM bitcode files from an unmodified C or C++
+source package. It currently runs on `*nix` platforms such as Linux,
+FreeBSD, and Mac OS X.
+WLLVM provides python-based compiler wrappers that work in two
+steps. The wrappers first invoke the compiler as normal. Then, for
+each object file, they call a bitcode compiler to produce LLVM
+bitcode. The wrappers also store the location of the generated bitcode
+file in a dedicated section of the object file. When object files are
+linked together, the contents of the dedicated sections are
+concatenated (so we don't lose the locations of any of the constituent
+bitcode files). After the build completes, one can use an WLLVM
+utility to read the contents of the dedicated section and link all of
+the bitcode into a single whole-program bitcode file. This utility
+works for both executable and native libraries.
+This two-phase build process is necessary to be a drop-in replacement
+for ``gcc`` or ``g++`` in any build system. Using the LTO framework in gcc
+and the gold linker plugin works in many cases, but fails in the
+presence of static libraries in builds. WLLVM's approach has the
+distinct advantage of generating working binaries, in case some part
+of a build process requires that.
+WLLVM works with either ``clang`` or the ``gcc dragonegg`` plugin.
+
+%package help
+Summary: Development documents and examples for wllvm
+Provides: python3-wllvm-doc
+%description help
+This project, WLLVM, provides tools for building whole-program (or
+whole-library) LLVM bitcode files from an unmodified C or C++
+source package. It currently runs on `*nix` platforms such as Linux,
+FreeBSD, and Mac OS X.
+WLLVM provides python-based compiler wrappers that work in two
+steps. The wrappers first invoke the compiler as normal. Then, for
+each object file, they call a bitcode compiler to produce LLVM
+bitcode. The wrappers also store the location of the generated bitcode
+file in a dedicated section of the object file. When object files are
+linked together, the contents of the dedicated sections are
+concatenated (so we don't lose the locations of any of the constituent
+bitcode files). After the build completes, one can use an WLLVM
+utility to read the contents of the dedicated section and link all of
+the bitcode into a single whole-program bitcode file. This utility
+works for both executable and native libraries.
+This two-phase build process is necessary to be a drop-in replacement
+for ``gcc`` or ``g++`` in any build system. Using the LTO framework in gcc
+and the gold linker plugin works in many cases, but fails in the
+presence of static libraries in builds. WLLVM's approach has the
+distinct advantage of generating working binaries, in case some part
+of a build process requires that.
+WLLVM works with either ``clang`` or the ``gcc dragonegg`` plugin.
+
+%prep
+%autosetup -n wllvm-1.3.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-wllvm -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 1.3.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..3151ccd
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+ac8e009a47407cf6377ab057d7db6c37 wllvm-1.3.1.tar.gz