app-crypt/dieharder: Apply gcc-10 workaround and cross-compile patch

Closes: https://bugs.gentoo.org/708538
Closes: https://github.com/gentoo/gentoo/pull/12544

Co-authored-by: Tom Hughes <tomhughes@chromium.org>
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Signed-off-by: Jakov Smolic <jakov.smolic@sartura.hr>
Signed-off-by: Ben Kohler <bkohler@gentoo.org>
This commit is contained in:
Jakov Smolic
2021-02-11 20:53:21 +01:00
committed by Ben Kohler
parent 8997323e5e
commit 58e4239da7
4 changed files with 86 additions and 45 deletions

View File

@@ -1,11 +1,13 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools flag-o-matic
DESCRIPTION="An advanced suite for testing the randomness of RNG's"
HOMEPAGE="http://www.phy.duke.edu/~rgb/General/dieharder.php"
SRC_URI="http://www.phy.duke.edu/~rgb/General/${PN}/${P}.tgz"
HOMEPAGE="https://www.phy.duke.edu/~rgb/General/dieharder.php"
SRC_URI="https://www.phy.duke.edu/~rgb/General/${PN}/${P}.tgz"
LICENSE="GPL-2"
SLOT="0"
@@ -14,30 +16,22 @@ IUSE="doc"
RESTRICT="test" # Way too long
RDEPEND="sci-libs/gsl"
DEPEND="${RDEPEND}
doc? ( dev-tex/latex2html )"
DOCS=(
NOTES
)
HTML_DOCS=()
DEPEND="${RDEPEND}"
BDEPEND=" doc? ( dev-tex/latex2html )"
PATCHES=(
"${FILESDIR}/${P}-build.patch"
"${FILESDIR}/${P}-urandom-64bit.patch"
"${FILESDIR}"/${P}-build.patch
"${FILESDIR}"/${P}-urandom-64bit.patch
"${FILESDIR}"/${P}-cross-compile.patch
)
pkg_setup() {
use doc && DOCS+=(
ChangeLog
manual/dieharder.pdf manual/dieharder.ps
)
use doc && HTML_DOCS+=(
dieharder.html
)
src_prepare() {
default
eautoreconf
}
src_configure() {
append-flags -fcommon
econf --disable-static
}
@@ -46,17 +40,18 @@ src_compile() {
use doc && emake -C manual
}
src_test() {
"${S}/dieharder/dieharder" -g 501 -a
}
src_install() {
if use doc; then
DOCS=( ChangeLog manual/dieharder.pdf manual/dieharder.ps)
HTML_DOCS=( dieharder.html )
fi
default
docinto "dieharder"
dodoc dieharder/README dieharder/NOTES
docinto "libdieharder"
dodoc libdieharder/README libdieharder/NOTES
docinto dieharder
dodoc dieharder/{NOTES,README}
docinto libdieharder
dodoc libdieharder/{NOTES,README}
find "${ED}" -name '*.la' -delete || die
}

View File

@@ -1,5 +1,3 @@
diff --git a/include/dieharder/libdieharder.h b/include/dieharder/libdieharder.h
index 2138ebf..f6d471b 100644
--- a/include/dieharder/libdieharder.h
+++ b/include/dieharder/libdieharder.h
@@ -6,6 +6,8 @@
@@ -34,8 +32,6 @@ Subject: [PATCH 1/2] rgb_operm: convert to noop as implementation missing
include/dieharder/rgb_operm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/dieharder/rgb_operm.h b/include/dieharder/rgb_operm.h
index c48fa37..f33fc1f 100644
--- a/include/dieharder/rgb_operm.h
+++ b/include/dieharder/rgb_operm.h
@@ -1,3 +1,4 @@
@@ -62,8 +58,6 @@ Subject: [PATCH 2/2] dab_filltree2: inline cannot have prototype nor can it be
libdieharder/dab_filltree2.c | 48 +++++++++++++++++-------------------
2 files changed, 41 insertions(+), 44 deletions(-)
diff --git a/libdieharder/dab_filltree.c b/libdieharder/dab_filltree.c
index 9cc5ce7..3ed6b00 100644
--- a/libdieharder/dab_filltree.c
+++ b/libdieharder/dab_filltree.c
@@ -34,7 +34,24 @@ static double targetData[] = {
@@ -117,8 +111,6 @@ index 9cc5ce7..3ed6b00 100644
#include<time.h>
int main_filltree(int argc, char **argv) {
diff --git a/libdieharder/dab_filltree2.c b/libdieharder/dab_filltree2.c
index 1e33af2..7102d3c 100644
--- a/libdieharder/dab_filltree2.c
+++ b/libdieharder/dab_filltree2.c
@@ -92,7 +92,29 @@ static double targetData[128] = { // size=128, generated from 6e9 samples

View File

@@ -0,0 +1,57 @@
From: Tom Hughes <tomhughes@chromium.org>
Fix cross-compilation by removing gsl header/library check (these are enforced
through ebuild DEPENDS) and using AC_C_BIGENDIAN instead of the non-standard
AC_C_ENDIAN macro which tries to execute code.
--- a/configure.ac
+++ b/configure.ac
@@ -108,48 +108,7 @@
AC_SUBST(DIEHARDER_LIBS)
AC_SUBST(ACLOCAL_AMFLAGS)
-#==================================================================
-# Checks for libraries, and headers. Test for dependency libraries
-# FIRST in reverse order that you need -lwhatever to appear on
-# compile line as it accumulates libraries to build e.g.
-# -lgsl -lgslcblas
-# for the SECOND test, required (in that order) to succeed.
-#==================================================================
-AC_CHECK_HEADER([gsl/gsl_sf_gamma.h],,[AC_MSG_ERROR([Couldn't find GSL headers. Please install the gsl-devel package.])])
-AC_CHECK_LIB([gslcblas], [main],,[AC_MSG_ERROR([Couldn't find libgsl. Please install the gsl package.])])
-AC_CHECK_LIB([gsl],[gsl_sf_gamma])
-
-
-#==================================================================
-# Check if we're a little-endian or a big-endian system, needed by
-# brg_endian.h in the build of rng_threefish. This is a very
-# certain test, and therefore is checked FIRST in this header file.
-#==================================================================
-AC_DEFUN([AC_C_ENDIAN],
-[AC_CACHE_CHECK(for endianness, ac_cv_c_endian,
-[
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM([], [dnl
- long val = 1;
- char *c = (char *) &val;
- exit(*c == 1);
- ])
- ],[
- ac_cv_c_endian=big
- ],[
- ac_cv_c_endian=little
- ])
-])
-if test $ac_cv_c_endian = big; then
- AC_SUBST(LITTLE_ENDIAN,0)
-fi
-if test $ac_cv_c_endian = little; then
- AC_SUBST(LITTLE_ENDIAN,1)
-fi
-])
-
-AC_C_ENDIAN
-
+AC_C_BIGENDIAN([AC_SUBST(LITTLE_ENDIAN,0)],[AC_SUBST(LITTLE_ENDIAN,1)])
#==================================================================
# Checks for typedefs, structures, and compiler characteristics.

View File

@@ -1,6 +1,5 @@
diff -ru dieharder-3.31.1/libdieharder/rng_dev_arandom.c dieharder-3.31.1_fixed/libdieharder/rng_dev_arandom.c
--- dieharder-3.31.1/libdieharder/rng_dev_arandom.c 2011-10-14 15:41:37.000000000 +0200
+++ dieharder-3.31.1_fixed/libdieharder/rng_dev_arandom.c 2014-01-03 22:51:30.010534418 +0100
--- a/libdieharder/rng_dev_arandom.c
+++ b/libdieharder/rng_dev_arandom.c
@@ -6,6 +6,7 @@
*/
@@ -27,9 +26,8 @@ diff -ru dieharder-3.31.1/libdieharder/rng_dev_arandom.c dieharder-3.31.1_fixed/
}
static void
diff -ru dieharder-3.31.1/libdieharder/rng_dev_random.c dieharder-3.31.1_fixed/libdieharder/rng_dev_random.c
--- dieharder-3.31.1/libdieharder/rng_dev_random.c 2011-10-14 15:41:37.000000000 +0200
+++ dieharder-3.31.1_fixed/libdieharder/rng_dev_random.c 2014-01-03 22:50:57.852321485 +0100
--- a/libdieharder/rng_dev_random.c
+++ b/libdieharder/rng_dev_random.c
@@ -6,6 +6,7 @@
*/
@@ -56,9 +54,8 @@ diff -ru dieharder-3.31.1/libdieharder/rng_dev_random.c dieharder-3.31.1_fixed/l
}
static void
diff -ru dieharder-3.31.1/libdieharder/rng_dev_urandom.c dieharder-3.31.1_fixed/libdieharder/rng_dev_urandom.c
--- dieharder-3.31.1/libdieharder/rng_dev_urandom.c 2011-10-14 15:41:37.000000000 +0200
+++ dieharder-3.31.1_fixed/libdieharder/rng_dev_urandom.c 2014-01-03 23:06:24.124239582 +0100
--- a/libdieharder/rng_dev_urandom.c
+++ b/libdieharder/rng_dev_urandom.c
@@ -3,6 +3,7 @@
*/