summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--user/orc/APKBUILD52
-rw-r--r--user/orc/orc-0.4.28-ppc64-elfv2.patch28
2 files changed, 80 insertions, 0 deletions
diff --git a/user/orc/APKBUILD b/user/orc/APKBUILD
new file mode 100644
index 000000000..9726ef4f4
--- /dev/null
+++ b/user/orc/APKBUILD
@@ -0,0 +1,52 @@
+# Contributor: Łukasz Jendrysik <scadu@yandex.com>
+# Contributor: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: A. Wilcox <awilfox@adelielinux.org>
+pkgname=orc
+pkgver=0.4.28
+pkgrel=1
+pkgdesc="The Oil Run-time Compiler"
+url="https://gstreamer.freedesktop.org/modules/orc.html"
+arch="all"
+license="BSD-2-Clause AND BSD-3-Clause"
+makedepends="linux-headers"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-compiler"
+source="https://gstreamer.freedesktop.org/src/orc/${pkgname}-${pkgver}.tar.xz
+ orc-0.4.28-ppc64-elfv2.patch"
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ cd "$builddir"
+ make check
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+}
+
+dev() {
+ default_dev
+ mkdir -p "$subpkgdir"/usr/bin
+ mv "$pkgdir"/usr/bin/orc-bugreport "$subpkgdir"/usr/bin/
+}
+
+compiler() {
+ pkgdesc="Orc compiler"
+ mkdir -p "$subpkgdir"/usr/
+ mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+}
+
+sha512sums="2ae3100e7d0c03eba9a8a10a8924da4d729e1967b63e5dfdf88c4aee907d7ece82c782d74f4cb7e28a366dd74ce5e1ddc6e2b971e5a2f879b0501cc313b93410 orc-0.4.28.tar.xz
+c7067aff0295a68048cc0c2dbe9d7ce5b0eff6a19fce553fcccb6a358d35fb2f14f1a201f96e995d920f44995483f2eccc779f9d81817b0661794354555b5532 orc-0.4.28-ppc64-elfv2.patch"
diff --git a/user/orc/orc-0.4.28-ppc64-elfv2.patch b/user/orc/orc-0.4.28-ppc64-elfv2.patch
new file mode 100644
index 000000000..7f4f8b0d3
--- /dev/null
+++ b/user/orc/orc-0.4.28-ppc64-elfv2.patch
@@ -0,0 +1,28 @@
+--- orc-0.4.28/orc/orcprogram-altivec.c.old 2014-04-11 03:36:22.000000000 -0500
++++ orc-0.4.28/orc/orcprogram-altivec.c 2018-01-07 23:32:55.065198004 -0600
+@@ -27,12 +27,14 @@
+ ORC_ASM_CODE (compiler, "%s:\n", compiler->program->name);
+
+ if (compiler->is_64bit) {
++#if !defined(_CALL_ELF) || _CALL_ELF == 1
+ ORC_ASM_CODE (compiler, " .quad .%s,.TOC.@tocbase,0\n",
+ compiler->program->name);
+ ORC_ASM_CODE (compiler, ".%s:\n", compiler->program->name);
+ powerpc_emit (compiler, 0); powerpc_emit (compiler, 0);
+ powerpc_emit (compiler, 0); powerpc_emit (compiler, 0);
+ powerpc_emit (compiler, 0); powerpc_emit (compiler, 0);
++#endif
+ powerpc_emit_stdu (compiler, POWERPC_R1, POWERPC_R1, -16);
+ } else {
+ powerpc_emit_stwu (compiler, POWERPC_R1, POWERPC_R1, -16);
+--- orc-0.4.28/orc/orcpowerpc.c.old 2014-04-11 03:36:22.000000000 -0500
++++ orc-0.4.28/orc/orcpowerpc.c 2018-01-07 23:31:53.285259170 -0600
+@@ -423,7 +423,7 @@
+ int size = code->code_size;
+
+ ptr = code->code;
+-#ifdef __powerpc64__
++#if defined(__powerpc64__) && (!defined(_CALL_ELF) || _CALL_ELF == 1)
+ *(unsigned char **) ptr = (unsigned char *) code->exec + 24;
+ #endif
+ for (i=0;i<size;i+=cache_line_size) {