public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-python/llvmlite/, dev-python/llvmlite/files/
@ 2019-04-21 12:37 Michał Górny
  0 siblings, 0 replies; 2+ messages in thread
From: Michał Górny @ 2019-04-21 12:37 UTC (permalink / raw
  To: gentoo-commits

commit:     3885458d55f1aa924b005e49d906c950ebb57216
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 21 11:58:41 2019 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sun Apr 21 12:37:32 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3885458d

dev-python/llvmlite: Fix building against LLVM 7.1.0

Closes: https://bugs.gentoo.org/683758
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../llvmlite/files/llvmlite-0.28.0-llvm710.patch   | 59 ++++++++++++++++++++++
 dev-python/llvmlite/llvmlite-0.28.0.ebuild         |  1 +
 2 files changed, 60 insertions(+)

diff --git a/dev-python/llvmlite/files/llvmlite-0.28.0-llvm710.patch b/dev-python/llvmlite/files/llvmlite-0.28.0-llvm710.patch
new file mode 100644
index 00000000000..db06adb41c1
--- /dev/null
+++ b/dev-python/llvmlite/files/llvmlite-0.28.0-llvm710.patch
@@ -0,0 +1,59 @@
+From 3845caca60120a8f9a094833e44bc4184b1d6827 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Sun, 21 Apr 2019 13:56:00 +0200
+Subject: [PATCH] Permit building against LLVM 7.1.0
+
+Restrict building to any 7.* version rather than 7.0.*, as 7.1.0 has
+been released that is API-compatible with 7.0.*.
+---
+ README.rst                     | 2 +-
+ ffi/build.py                   | 4 ++--
+ llvmlite/tests/test_binding.py | 3 ++-
+ 3 files changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/README.rst b/README.rst
+index 2462e3f..8e551eb 100644
+--- a/README.rst
++++ b/README.rst
+@@ -70,7 +70,7 @@ Historical compatibility table:
+ =================  ========================
+ llvmlite versions  compatible LLVM versions
+ =================  ========================
+-0.27.0 - ...       7.0.x
++0.27.0 - ...       7.y.x
+ 0.23.0 - 0.26.0    6.0.x
+ 0.21.0 - 0.22.0    5.0.x
+ 0.17.0 - 0.20.0    4.0.x
+diff --git a/ffi/build.py b/ffi/build.py
+index 7d5247d..a87e857 100755
+--- a/ffi/build.py
++++ b/ffi/build.py
+@@ -109,9 +109,9 @@ def main_posix(kind, library_ext):
+ 
+     out = out.decode('latin1')
+     print(out)
+-    if not out.startswith('7.0.'):
++    if not out.startswith('7.'):
+         msg = (
+-            "Building llvmlite requires LLVM 7.0.x. Be sure to "
++            "Building llvmlite requires LLVM 7.y.x. Be sure to "
+             "set LLVM_CONFIG to the right executable path.\n"
+             "Read the documentation at http://llvmlite.pydata.org/ for more "
+             "information about building llvmlite.\n"
+diff --git a/llvmlite/tests/test_binding.py b/llvmlite/tests/test_binding.py
+index 335c30d..134f356 100644
+--- a/llvmlite/tests/test_binding.py
++++ b/llvmlite/tests/test_binding.py
+@@ -339,7 +339,8 @@ class TestMisc(BaseTest):
+ 
+     def test_version(self):
+         major, minor, patch = llvm.llvm_version_info
+-        self.assertEqual((major, minor), (7, 0))
++        self.assertEqual(major, 7)
++        self.assertIn(minor, (0, 1))
+         self.assertIn(patch, range(10))
+ 
+     def test_check_jit_execution(self):
+-- 
+2.21.0
+

diff --git a/dev-python/llvmlite/llvmlite-0.28.0.ebuild b/dev-python/llvmlite/llvmlite-0.28.0.ebuild
index 0cb1efa94f0..0d1f8da500b 100644
--- a/dev-python/llvmlite/llvmlite-0.28.0.ebuild
+++ b/dev-python/llvmlite/llvmlite-0.28.0.ebuild
@@ -32,6 +32,7 @@ S=${WORKDIR}/${P/_/}
 
 PATCHES=(
 	"${FILESDIR}"/llvmlite-0.15.0-use-system-six.patch
+	"${FILESDIR}"/llvmlite-0.28.0-llvm710.patch
 )
 
 python_configure_all() {


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-python/llvmlite/, dev-python/llvmlite/files/
@ 2020-06-11  8:01 Michał Górny
  0 siblings, 0 replies; 2+ messages in thread
From: Michał Górny @ 2020-06-11  8:01 UTC (permalink / raw
  To: gentoo-commits

commit:     080a039de9261ab70f7d5cf92e0cfc0efb6218d1
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 11 07:25:46 2020 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jun 11 08:01:46 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=080a039d

dev-python/llvmlite: Add LLVM 10 support

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../llvmlite/files/llvmlite-0.33.0-llvm-10.patch   | 32 ++++++++++
 dev-python/llvmlite/llvmlite-0.33.0-r1.ebuild      | 70 ++++++++++++++++++++++
 2 files changed, 102 insertions(+)

diff --git a/dev-python/llvmlite/files/llvmlite-0.33.0-llvm-10.patch b/dev-python/llvmlite/files/llvmlite-0.33.0-llvm-10.patch
new file mode 100644
index 00000000000..b6c4242e445
--- /dev/null
+++ b/dev-python/llvmlite/files/llvmlite-0.33.0-llvm-10.patch
@@ -0,0 +1,32 @@
+From 87a2de4b22e141d37b796dce77a6daef243145eb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 11 Jun 2020 09:22:32 +0200
+Subject: [PATCH] Use std::make_unique on LLVM 10
+
+LLVM 10 removes llvm::make_unique in favor of std::make_unique.
+However, this requires C++14 and is therefore unsuitable for LLVM 9
+that forces -std=c++11.  Update the code to use both conditionally.
+This fixes all issues with LLVM 10.
+---
+ ffi/linker.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/ffi/linker.cpp b/ffi/linker.cpp
+index 57bb80b..585b261 100644
+--- a/ffi/linker.cpp
++++ b/ffi/linker.cpp
+@@ -42,7 +42,11 @@ LLVMPY_LinkModules(LLVMModuleRef Dest, LLVMModuleRef Src, const char **Err)
+     auto OldDiagnosticHandler = Ctx.getDiagnosticHandler();
+ 
+     // set the handler to a new one
++#if LLVM_VERSION_MAJOR >= 10
++    Ctx.setDiagnosticHandler(std::make_unique<ReportNotAbortDiagnosticHandler>(errstream));
++#else
+     Ctx.setDiagnosticHandler(llvm::make_unique<ReportNotAbortDiagnosticHandler>(errstream));
++#endif
+ 
+     // link
+     bool failed = LLVMLinkModules2(Dest, Src);
+-- 
+2.27.0
+

diff --git a/dev-python/llvmlite/llvmlite-0.33.0-r1.ebuild b/dev-python/llvmlite/llvmlite-0.33.0-r1.ebuild
new file mode 100644
index 00000000000..5b5f7d1db25
--- /dev/null
+++ b/dev-python/llvmlite/llvmlite-0.33.0-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6..9} )
+
+inherit distutils-r1 llvm
+
+DESCRIPTION="Python wrapper around the llvm C++ library"
+HOMEPAGE="https://llvmlite.pydata.org/"
+SRC_URI="https://github.com/numba/llvmlite/archive/v${PV/_/}.tar.gz -> ${P/_/}.gh.tar.gz"
+S=${WORKDIR}/${P/_/}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="examples"
+
+LLVM_MAX_SLOT=10
+
+RDEPEND="
+	sys-devel/llvm:${LLVM_MAX_SLOT}
+	sys-libs/zlib:0=
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-llvm-10.patch
+)
+
+src_prepare() {
+	# test_version hardcodes permitted versions
+	# test_parse* relies on exact error message
+	sed -e 's:test_version:_&:' \
+		-e 's:test_parse_bitcode_error:_&:' \
+		-i llvmlite/tests/test_binding.py || die
+
+	distutils-r1_src_prepare
+}
+
+python_configure_all() {
+	# upstream's build system is just horrible, and they ignored the PR
+	# fixing it, so let's build the shared lib properly using implicit
+	# make rules
+
+	export LDLIBS=$(llvm-config --libs all)
+	export CXXFLAGS="$(llvm-config --cxxflags) -fPIC ${CXXFLAGS}"
+	export LDFLAGS="$(llvm-config --ldflags) ${LDFLAGS}"
+
+	local files=( ffi/*.cpp )
+	emake -f - <<EOF
+ffi/libllvmlite.so: ${files[*]/.cpp/.o}
+	\$(CXX) -shared \$(CXXFLAGS) \$(LDFLAGS) -o \$@ \$^ \$(LDLIBS)
+EOF
+
+	export LLVMLITE_SKIP_LLVM_VERSION_CHECK=1
+}
+
+python_test() {
+	"${EPYTHON}" runtests.py -v || die "Tests failed under ${EPYTHON}"
+}
+
+python_install_all() {
+	distutils-r1_python_install_all
+	if use examples; then
+		dodoc -r examples
+		docompress -x /usr/share/doc/${PF}/examples
+	fi
+}


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-06-11  8:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-11  8:01 [gentoo-commits] repo/gentoo:master commit in: dev-python/llvmlite/, dev-python/llvmlite/files/ Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2019-04-21 12:37 Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox