From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/libgcrypt/files/, dev-libs/libgcrypt/
Date: Fri, 29 Jan 2021 20:45:56 +0000 (UTC) [thread overview]
Message-ID: <1611953150.c31ae3b3a3df3277b878f88de17d508bde370aee.sam@gentoo> (raw)
commit: c31ae3b3a3df3277b878f88de17d508bde370aee
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 29 20:43:14 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan 29 20:45:50 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c31ae3b3
dev-libs/libgcrypt: fix USE=-asm build
Closes: https://bugs.gentoo.org/767859
Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Sam James <sam <AT> gentoo.org>
.../libgcrypt-1.9.1-fix-no-asm-on-amd64-x86.patch | 141 +++++++++++++++++++++
...rypt-1.9.1.ebuild => libgcrypt-1.9.1-r1.ebuild} | 1 +
2 files changed, 142 insertions(+)
diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.9.1-fix-no-asm-on-amd64-x86.patch b/dev-libs/libgcrypt/files/libgcrypt-1.9.1-fix-no-asm-on-amd64-x86.patch
new file mode 100644
index 00000000000..875c2237008
--- /dev/null
+++ b/dev-libs/libgcrypt/files/libgcrypt-1.9.1-fix-no-asm-on-amd64-x86.patch
@@ -0,0 +1,141 @@
+Broken in https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commitdiff;h=8d404a629167d67ed56e45de3e65d1e0b7cdeb24;hp=3b34bd6e178614d6021ee7d1140646f7c8ed7519
+https://dev.gnupg.org/T5277
+https://bugs.gentoo.org/767859
+
+This is a revert of that commit, as suggested by upstream in the linked bug.
+diff --git a/random/rand-internal.h b/random/rand-internal.h
+index 34221569..d99c6671 100644
+--- a/random/rand-internal.h
++++ b/random/rand-internal.h
+@@ -141,7 +141,7 @@ void _gcry_rndhw_poll_fast (void (*add)(const void*, size_t,
+ enum random_origins origin);
+ size_t _gcry_rndhw_poll_slow (void (*add)(const void*, size_t,
+ enum random_origins),
+- enum random_origins origin, size_t req_length);
++ enum random_origins origin);
+
+
+
+diff --git a/random/rndhw.c b/random/rndhw.c
+index 3cf9acc3..2829382c 100644
+--- a/random/rndhw.c
++++ b/random/rndhw.c
+@@ -198,33 +198,24 @@ _gcry_rndhw_poll_fast (void (*add)(const void*, size_t, enum random_origins),
+
+
+ /* Read 64 bytes from a hardware RNG and return the number of bytes
+- actually read. However hardware source is let account only
+- for up to 50% (or 25% for RDRAND) of the requested bytes. */
++ actually read. */
+ size_t
+ _gcry_rndhw_poll_slow (void (*add)(const void*, size_t, enum random_origins),
+- enum random_origins origin, size_t req_length)
++ enum random_origins origin)
+ {
+ size_t nbytes = 0;
+
+ (void)add;
+ (void)origin;
+
+- req_length /= 2; /* Up to 50%. */
+-
+ #ifdef USE_DRNG
+ if ((_gcry_get_hw_features () & HWF_INTEL_RDRAND))
+- {
+- req_length /= 2; /* Up to 25%. */
+- nbytes += poll_drng (add, origin, 0);
+- }
++ nbytes += poll_drng (add, origin, 0);
+ #endif
+ #ifdef USE_PADLOCK
+ if ((_gcry_get_hw_features () & HWF_PADLOCK_RNG))
+ nbytes += poll_padlock (add, origin, 0);
+ #endif
+
+- if (nbytes > req_length)
+- nbytes = req_length;
+-
+ return nbytes;
+ }
+diff --git a/random/rndlinux.c b/random/rndlinux.c
+index a22db177..f378a549 100644
+--- a/random/rndlinux.c
++++ b/random/rndlinux.c
+@@ -190,10 +190,19 @@ _gcry_rndlinux_gather_random (void (*add)(const void*, size_t,
+ }
+
+
+- /* First read from a hardware source. Note that _gcry_rndhw_poll_slow lets
+- it account only for up to 50% (or 25% for RDRAND) of the requested
+- bytes. */
+- n_hw = _gcry_rndhw_poll_slow (add, origin, length);
++ /* First read from a hardware source. However let it account only
++ for up to 50% (or 25% for RDRAND) of the requested bytes. */
++ n_hw = _gcry_rndhw_poll_slow (add, origin);
++ if ((_gcry_get_hw_features () & HWF_INTEL_RDRAND))
++ {
++ if (n_hw > length/4)
++ n_hw = length/4;
++ }
++ else
++ {
++ if (n_hw > length/2)
++ n_hw = length/2;
++ }
+ if (length > 1)
+ length -= n_hw;
+
+diff --git a/src/g10lib.h b/src/g10lib.h
+index 243997eb..cba2e237 100644
+--- a/src/g10lib.h
++++ b/src/g10lib.h
+@@ -217,8 +217,6 @@ char **_gcry_strtokenize (const char *string, const char *delim);
+
+
+ /*-- src/hwfeatures.c --*/
+-#if defined(HAVE_CPU_ARCH_X86)
+-
+ #define HWF_PADLOCK_RNG (1 << 0)
+ #define HWF_PADLOCK_AES (1 << 1)
+ #define HWF_PADLOCK_SHA (1 << 2)
+@@ -238,28 +236,20 @@ char **_gcry_strtokenize (const char *string, const char *delim);
+ #define HWF_INTEL_RDTSC (1 << 15)
+ #define HWF_INTEL_SHAEXT (1 << 16)
+
+-#elif defined(HAVE_CPU_ARCH_ARM)
+-
+-#define HWF_ARM_NEON (1 << 0)
+-#define HWF_ARM_AES (1 << 1)
+-#define HWF_ARM_SHA1 (1 << 2)
+-#define HWF_ARM_SHA2 (1 << 3)
+-#define HWF_ARM_PMULL (1 << 4)
+-
+-#elif defined(HAVE_CPU_ARCH_PPC)
++#define HWF_ARM_NEON (1 << 17)
++#define HWF_ARM_AES (1 << 18)
++#define HWF_ARM_SHA1 (1 << 19)
++#define HWF_ARM_SHA2 (1 << 20)
++#define HWF_ARM_PMULL (1 << 21)
+
+-#define HWF_PPC_VCRYPTO (1 << 0)
+-#define HWF_PPC_ARCH_3_00 (1 << 1)
+-#define HWF_PPC_ARCH_2_07 (1 << 2)
++#define HWF_PPC_VCRYPTO (1 << 22)
++#define HWF_PPC_ARCH_3_00 (1 << 23)
++#define HWF_PPC_ARCH_2_07 (1 << 24)
+
+-#elif defined(HAVE_CPU_ARCH_S390X)
+-
+-#define HWF_S390X_MSA (1 << 0)
+-#define HWF_S390X_MSA_4 (1 << 1)
+-#define HWF_S390X_MSA_8 (1 << 2)
+-#define HWF_S390X_VX (1 << 3)
+-
+-#endif
++#define HWF_S390X_MSA (1 << 25)
++#define HWF_S390X_MSA_4 (1 << 26)
++#define HWF_S390X_MSA_8 (1 << 27)
++#define HWF_S390X_VX (1 << 28)
+
+ gpg_err_code_t _gcry_disable_hw_feature (const char *name);
+ void _gcry_detect_hw_features (void);
diff --git a/dev-libs/libgcrypt/libgcrypt-1.9.1.ebuild b/dev-libs/libgcrypt/libgcrypt-1.9.1-r1.ebuild
similarity index 98%
rename from dev-libs/libgcrypt/libgcrypt-1.9.1.ebuild
rename to dev-libs/libgcrypt/libgcrypt-1.9.1-r1.ebuild
index a40209631d4..952a5816824 100644
--- a/dev-libs/libgcrypt/libgcrypt-1.9.1.ebuild
+++ b/dev-libs/libgcrypt/libgcrypt-1.9.1-r1.ebuild
@@ -21,6 +21,7 @@ BDEPEND="doc? ( virtual/texi2dvi )"
PATCHES=(
"${FILESDIR}"/${PN}-1.6.1-uscore.patch
"${FILESDIR}"/${PN}-multilib-syspath.patch
+ "${FILESDIR}"/${PN}-1.9.1-fix-no-asm-on-amd64-x86.patch
)
MULTILIB_CHOST_TOOLS=(
next reply other threads:[~2021-01-29 20:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-29 20:45 Sam James [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-10-17 4:12 [gentoo-commits] repo/gentoo:master commit in: dev-libs/libgcrypt/files/, dev-libs/libgcrypt/ Sam James
2024-06-24 23:59 Mike Gilbert
2024-03-04 3:00 Sam James
2022-12-05 3:58 Sam James
2022-06-15 20:58 Sam James
2022-02-10 12:05 Sam James
2021-12-27 12:57 Fabian Groffen
2017-01-16 23:34 Kristian Fiskerstrand
2015-12-01 6:16 Alon Bar-Lev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1611953150.c31ae3b3a3df3277b878f88de17d508bde370aee.sam@gentoo \
--to=sam@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox