diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2018-10-28 18:04:51 +0000 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2018-10-28 18:05:16 +0000 |
commit | 6d25fb606f1cf674648e79da2ce71fe7da439508 (patch) | |
tree | 9877f5dd6052f07a86328ec853b14579c2db1d72 /dev-libs | |
parent | dev-lang/mercury: fix libdir in mmc/mmake scripts (diff) | |
download | gentoo-6d25fb606f1cf674648e79da2ce71fe7da439508.tar.gz gentoo-6d25fb606f1cf674648e79da2ce71fe7da439508.tar.bz2 gentoo-6d25fb606f1cf674648e79da2ce71fe7da439508.zip |
dev-libs/beecrypt: disable assembly for x32, bug #461960
beecrypt has target-specifix assembly code for arithmetics
in gas/mpopt.x86_64.m4. That assumes that x86_64 has 64-bit
items to represent bignums.
Unfortunately that is not true for x32 ABI as detection is
based on size of 'unsigned long':
```
AC_DEFUN([BEE_CPU_BITS],[
AC_CHECK_SIZEOF([unsigned long])
if test $ac_cv_sizeof_unsigned_long -eq 8; then
AC_SUBST(MP_WBITS,64U)
```
To workaround this deficiency disable assembly code completely:
pass --enable-debug.
Closes: https://bugs.gentoo.org/461960
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/beecrypt/beecrypt-4.2.1-r6.ebuild | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/dev-libs/beecrypt/beecrypt-4.2.1-r6.ebuild b/dev-libs/beecrypt/beecrypt-4.2.1-r6.ebuild new file mode 100644 index 000000000000..7ec1630ce8c2 --- /dev/null +++ b/dev-libs/beecrypt/beecrypt-4.2.1-r6.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2018 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit autotools flag-o-matic java-pkg-opt-2 python-single-r1 + +DESCRIPTION="General-purpose cryptography library" +HOMEPAGE="https://sourceforge.net/projects/beecrypt/" +SRC_URI="mirror://sourceforge/beecrypt/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="+threads java cxx python static-libs doc" +REQUIRED_USE="cxx? ( threads ) + python? ( ${PYTHON_REQUIRED_USE} )" + +COMMON_DEPEND="!<app-arch/rpm-4.2.1 + cxx? ( >=dev-libs/icu-6.1:= ) + python? ( ${PYTHON_DEPS} )" + +DEPEND="${COMMON_DEPEND} + java? ( >=virtual/jdk-1.4 ) + doc? ( app-doc/doxygen + virtual/latex-base + dev-texlive/texlive-fontsextra + )" +RDEPEND="${COMMON_DEPEND} + java? ( >=virtual/jre-1.4 )" + +DOCS=( BUGS README BENCHMARKS NEWS ) +PATCHES=( + "${FILESDIR}"/${P}-build-system.patch + "${FILESDIR}"/${P}-gcc-4.7.patch + + # Fixes bug 596904 + "${FILESDIR}"/${P}-c++11-allow-throw-in-destructors.patch + "${FILESDIR}"/${P}-cast-uchar.patch #618676 + + "${FILESDIR}"/${P}-icu-61.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # ICU needs char16_t support now + # bug 649548 + append-cxxflags -std=c++14 + + # Crudely disable amd64 assembly code + # as it assumes 64-bit 'unsinged long' size. bug #461960 + local x32_hack=() + use amd64 && [[ ${ABI} == "x32" ]] && x32_hack=(--enable-debug) + + # cplusplus needs threads support + ac_cv_java_include=$(use java && java-pkg_get-jni-cflags) \ + econf \ + --disable-expert-mode \ + $(use_enable static-libs static) \ + $(use_enable threads) \ + $(use_with python python "${PYTHON}") \ + $(use_with cxx cplusplus) \ + $(use_with java) \ + "${x32_hack[@]}" +} + +src_compile() { + default + + if use doc; then + pushd include/beecrypt >/dev/null || die + doxygen || die "doxygen failed" + popd >/dev/null || die + HTML_DOCS=( docs/html/*.{css,html,js,png} ) + fi +} + +src_test() { + export BEECRYPT_CONF_FILE="${T}/beecrypt-test.conf" + echo "provider.1=${S}/c++/provider/.libs/base.so" > "${BEECRYPT_CONF_FILE}" || die + emake check bench +} + +src_install() { + default + + if use python; then + rm -f "${D%/}$(python_get_sitedir)"/_bc.*a || die + fi + if ! use static-libs; then + find "${D}" -name '*.la' -delete || die + fi +} |