libgcrypt: update to 1.9.3.
This commit is contained in:
parent
9654501a89
commit
fe3bfd1ffd
2 changed files with 49 additions and 2 deletions
|
@ -0,0 +1,46 @@
|
||||||
|
From ec87511d9cd2dc31434e939b6351d74a38d4ceaa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
||||||
|
Date: Wed, 28 Apr 2021 19:19:15 +0300
|
||||||
|
Subject: [PATCH] hwf-x86: fix use of wrong operand type
|
||||||
|
|
||||||
|
* src/hwf-x86.c (get_cpuid): Use xchg for swapping %ebx back
|
||||||
|
and forth between operand register.
|
||||||
|
--
|
||||||
|
|
||||||
|
HW feature routine was giving wrong results with certain compiler &
|
||||||
|
compiler flag combinations on i386. Issue was that "=g" operand was
|
||||||
|
used which caused problem if compiler allocated %ebx register for
|
||||||
|
this operand. CPUID assembly block attempts to save %ebx as in older
|
||||||
|
GCC versions this register was fixed for GOT pointer use and could
|
||||||
|
not be modified otherwise (could not be used as operand or clobber).
|
||||||
|
|
||||||
|
Reported-by: Iru Cai <vimacs@disroot.org>
|
||||||
|
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
|
||||||
|
---
|
||||||
|
src/hwf-x86.c | 12 +++++-------
|
||||||
|
1 file changed, 5 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/hwf-x86.c b/src/hwf-x86.c
|
||||||
|
index 91e4c411e..a1aa02e78 100644
|
||||||
|
--- a/src/hwf-x86.c
|
||||||
|
+++ b/src/hwf-x86.c
|
||||||
|
@@ -83,14 +83,12 @@ get_cpuid(unsigned int in, unsigned int *eax, unsigned int *ebx,
|
||||||
|
unsigned int regs[4];
|
||||||
|
|
||||||
|
asm volatile
|
||||||
|
- ("movl %%ebx, %%edi\n\t" /* Save GOT register. */
|
||||||
|
- "xorl %%ebx, %%ebx\n\t"
|
||||||
|
+ ("xchgl %%ebx, %1\n\t" /* Save GOT register. */
|
||||||
|
"cpuid\n\t"
|
||||||
|
- "movl %%ebx, %1\n\t"
|
||||||
|
- "movl %%edi, %%ebx\n\t" /* Restore GOT register. */
|
||||||
|
- : "=a" (regs[0]), "=g" (regs[1]), "=c" (regs[2]), "=d" (regs[3])
|
||||||
|
- : "0" (in), "2" (0), "3" (0)
|
||||||
|
- : "cc", "edi"
|
||||||
|
+ "xchgl %%ebx, %1\n\t" /* Restore GOT register. */
|
||||||
|
+ : "=a" (regs[0]), "=D" (regs[1]), "=c" (regs[2]), "=d" (regs[3])
|
||||||
|
+ : "0" (in), "1" (0), "2" (0), "3" (0)
|
||||||
|
+ : "cc"
|
||||||
|
);
|
||||||
|
|
||||||
|
if (eax)
|
|
@ -1,6 +1,6 @@
|
||||||
# Template file for 'libgcrypt'
|
# Template file for 'libgcrypt'
|
||||||
pkgname=libgcrypt
|
pkgname=libgcrypt
|
||||||
version=1.9.2
|
version=1.9.3
|
||||||
revision=1
|
revision=1
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
configure_args="--enable-static --without-capabilities"
|
configure_args="--enable-static --without-capabilities"
|
||||||
|
@ -10,7 +10,8 @@ maintainer="skmpz <dem.procopiou@gmail.com>"
|
||||||
license="LGPL-2.1-or-later"
|
license="LGPL-2.1-or-later"
|
||||||
homepage="https://www.gnupg.org"
|
homepage="https://www.gnupg.org"
|
||||||
distfiles="https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${version}.tar.bz2"
|
distfiles="https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-${version}.tar.bz2"
|
||||||
checksum=b2c10d091513b271e47177274607b1ffba3d95b188bbfa8797f948aec9053c5a
|
checksum=97ebe4f94e2f7e35b752194ce15a0f3c66324e0ff6af26659bbfb5ff2ec328fd
|
||||||
|
patch_args="-Np1"
|
||||||
|
|
||||||
if [ "$CROSS_BUILD" ]; then
|
if [ "$CROSS_BUILD" ]; then
|
||||||
configure_args+=" ac_cv_sys_symbol_underscore=no"
|
configure_args+=" ac_cv_sys_symbol_underscore=no"
|
||||||
|
|
Loading…
Reference in a new issue