commit:     58e4239da7523f1889ad080a5d484d133faba8dc
Author:     Jakov Smolic <jakov.smolic <AT> sartura <DOT> hr>
AuthorDate: Thu Feb 11 19:53:21 2021 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Fri Feb 12 13:44:32 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=58e4239d

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 <AT> chromium.org>
Signed-off-by: Tom Hughes <tomhughes <AT> chromium.org>
Signed-off-by: Jakov Smolic <jakov.smolic <AT> sartura.hr>
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 app-crypt/dieharder/dieharder-3.31.1-r3.ebuild     | 51 +++++++++----------
 .../dieharder/files/dieharder-3.31.1-build.patch   |  8 ---
 .../files/dieharder-3.31.1-cross-compile.patch     | 57 ++++++++++++++++++++++
 .../files/dieharder-3.31.1-urandom-64bit.patch     | 15 +++---
 4 files changed, 86 insertions(+), 45 deletions(-)

diff --git a/app-crypt/dieharder/dieharder-3.31.1-r3.ebuild 
b/app-crypt/dieharder/dieharder-3.31.1-r3.ebuild
index 269cb352cf1..fe4f37aa10e 100644
--- a/app-crypt/dieharder/dieharder-3.31.1-r3.ebuild
+++ b/app-crypt/dieharder/dieharder-3.31.1-r3.ebuild
@@ -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
 }

diff --git a/app-crypt/dieharder/files/dieharder-3.31.1-build.patch 
b/app-crypt/dieharder/files/dieharder-3.31.1-build.patch
index 50e2119030c..07d33171a4c 100644
--- a/app-crypt/dieharder/files/dieharder-3.31.1-build.patch
+++ b/app-crypt/dieharder/files/dieharder-3.31.1-build.patch
@@ -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

diff --git a/app-crypt/dieharder/files/dieharder-3.31.1-cross-compile.patch 
b/app-crypt/dieharder/files/dieharder-3.31.1-cross-compile.patch
new file mode 100644
index 00000000000..18bbf659fc0
--- /dev/null
+++ b/app-crypt/dieharder/files/dieharder-3.31.1-cross-compile.patch
@@ -0,0 +1,57 @@
+From: Tom Hughes <tomhug...@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.
+

diff --git a/app-crypt/dieharder/files/dieharder-3.31.1-urandom-64bit.patch 
b/app-crypt/dieharder/files/dieharder-3.31.1-urandom-64bit.patch
index c5615b673fd..e8a28ea4177 100644
--- a/app-crypt/dieharder/files/dieharder-3.31.1-urandom-64bit.patch
+++ b/app-crypt/dieharder/files/dieharder-3.31.1-urandom-64bit.patch
@@ -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 @@
   */
  

Reply via email to