aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrzemyslaw Pawelczyk <przemoc@zoho.com>2016-11-17 16:13:41 +0100
committerCarlo Landmeter <clandmeter@gmail.com>2016-11-17 16:25:03 +0100
commit13ba328cd6f9f5813254077b748ed7a896d81d06 (patch)
tree5b427e8814e64f58f38c8e467e4a59c5df88922e
parentd28218e57bad5be1081d1ea349c214c1e6820ae5 (diff)
downloadaports-13ba328cd6f9f5813254077b748ed7a896d81d06.tar.bz2
aports-13ba328cd6f9f5813254077b748ed7a896d81d06.tar.xz
testing/rhash: Fix building on aarch64.
Tested-by: Carlo Landmeter <clandmeter@gmail.com>
-rw-r--r--testing/rhash/APKBUILD16
-rw-r--r--testing/rhash/librhash-byte_order.h-Consult-also-compiler-s-predef.patch50
2 files changed, 60 insertions, 6 deletions
diff --git a/testing/rhash/APKBUILD b/testing/rhash/APKBUILD
index eaecc12769..e90f6c7345 100644
--- a/testing/rhash/APKBUILD
+++ b/testing/rhash/APKBUILD
@@ -1,16 +1,17 @@
# Maintainer: Przemyslaw Pawelczyk <przemoc@zoho.com>
pkgname=rhash
pkgver=1.3.4
-pkgrel=0
+pkgrel=1
pkgdesc="Utility for calculation and verification of hash sums and magnet links"
url="http://rhash.anz.ru/"
-arch="all !aarch64"
+arch="all"
license="custom"
depends=
depends_dev=""
makedepends="$depends_dev"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-src.tar.gz"
+source="$pkgname-$pkgver.tar.gz::http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver-src.tar.gz
+ librhash-byte_order.h-Consult-also-compiler-s-predef.patch"
builddir="$srcdir"/$pkgname-$pkgver
@@ -28,6 +29,9 @@ package() {
|| return 1
}
-md5sums="0b51010604659e9e99f6307b053ba13b rhash-1.3.4.tar.gz"
-sha256sums="406662c4703bd4cb1caae26f32700951a5e12adf39f141d3f40e0b461b1e9e49 rhash-1.3.4.tar.gz"
-sha512sums="a78be309011798d5e55023eb93f898c10254a42270288fa5ec68ad446b5f3d001e8c6f893683e5171e3858c86d45ce2ce16eefde1173209e1925420c27a7ff7a rhash-1.3.4.tar.gz"
+md5sums="0b51010604659e9e99f6307b053ba13b rhash-1.3.4.tar.gz
+59a1c0a0d04a7b4356a8b893dce7c266 librhash-byte_order.h-Consult-also-compiler-s-predef.patch"
+sha256sums="406662c4703bd4cb1caae26f32700951a5e12adf39f141d3f40e0b461b1e9e49 rhash-1.3.4.tar.gz
+19561529fdd2ccb1aaf54b0459962f969b7eadccd4119d8e4c94dadd8ed24589 librhash-byte_order.h-Consult-also-compiler-s-predef.patch"
+sha512sums="a78be309011798d5e55023eb93f898c10254a42270288fa5ec68ad446b5f3d001e8c6f893683e5171e3858c86d45ce2ce16eefde1173209e1925420c27a7ff7a rhash-1.3.4.tar.gz
+5d14156b42d41f976f605d0e07fe9ae5cf5cb2266f65e2ab09690b2bb992d348317c0e115c81015ff645eb25ff556e628d1ebc268ced816c5f192c0cc83e3ed1 librhash-byte_order.h-Consult-also-compiler-s-predef.patch"
diff --git a/testing/rhash/librhash-byte_order.h-Consult-also-compiler-s-predef.patch b/testing/rhash/librhash-byte_order.h-Consult-also-compiler-s-predef.patch
new file mode 100644
index 0000000000..ddaefadaf0
--- /dev/null
+++ b/testing/rhash/librhash-byte_order.h-Consult-also-compiler-s-predef.patch
@@ -0,0 +1,50 @@
+From cf3c9003487cbf8cc594dbb77e333e1609a1786e Mon Sep 17 00:00:00 2001
+From: Przemyslaw Pawelczyk <przemoc@gmail.com>
+Date: Thu, 17 Nov 2016 15:57:19 +0100
+Subject: [PATCH] librhash/byte_order.h: Consult also compiler's predefined
+ macros.
+
+byte_order.h includes <endian.h> only if glibc is used (i.e. __GLIBC__
+is defined), but there are other libc implementation that also provide
+endian.h, like musl libc for instance. Generally it's much better and
+cleaner to check feature test macros than check for particular
+implementation (and that is also why musl libc doesn't define __MUSL__).
+Unfortunately I am not aware of feature test macro guaranteeing endian.h
+availability.
+
+The simple solution is to add checking for compiler's pre-defined macros
+(__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_LITTLE_ENDIAN__) after
+checking macros coming from system headers, i.e. <endian.h> in this case
+(__BYTE_ORDER, __BIG_ENDIAN, __LITTLE_ENDIAN).
+
+That way we can better support new architectures w/o hardcoding their
+endianness, which is especially useful if they support both.
+---
+ librhash/byte_order.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/librhash/byte_order.h b/librhash/byte_order.h
+index 77b8bb9..5cb081e 100644
+--- a/librhash/byte_order.h
++++ b/librhash/byte_order.h
+@@ -38,6 +38,8 @@ extern "C" {
+ /* detect CPU endianness */
+ #if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \
+ __BYTE_ORDER == __LITTLE_ENDIAN) || \
++ (defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && \
++ __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || \
+ defined(CPU_IA32) || defined(CPU_X64) || \
+ defined(__ia64) || defined(__ia64__) || defined(__alpha__) || defined(_M_ALPHA) || \
+ defined(vax) || defined(MIPSEL) || defined(_ARM_) || defined(__arm__)
+@@ -46,6 +48,8 @@ extern "C" {
+ # define IS_LITTLE_ENDIAN 1
+ #elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \
+ __BYTE_ORDER == __BIG_ENDIAN) || \
++ (defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && \
++ __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) || \
+ defined(__sparc) || defined(__sparc__) || defined(sparc) || \
+ defined(_ARCH_PPC) || defined(_ARCH_PPC64) || defined(_POWER) || \
+ defined(__POWERPC__) || defined(POWERPC) || defined(__powerpc) || \
+--
+2.8.3
+