Remove patches applied in upstream tarball
This commit is contained in:
parent
51577133b8
commit
6f4821622e
@ -1,70 +0,0 @@
|
|||||||
From a1bff4255fb9cad501a8a5d4bffb8f95df0f615f Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= <besser82@fedoraproject.org>
|
|
||||||
Date: Thu, 13 Aug 2020 18:51:50 +0200
|
|
||||||
Subject: [PATCH] crypt-port: Add the bits for compiling with link-time
|
|
||||||
optimization.
|
|
||||||
|
|
||||||
GCC 10.2 and LLVM/Clang 10 offer initial support for building
|
|
||||||
libraries, that are using symbol versioning features, with LTO.
|
|
||||||
|
|
||||||
To make use of this with GCC 10.2, the exported versioned symbols
|
|
||||||
need to be declared explicitly with __attribute__((symver (...))).
|
|
||||||
|
|
||||||
LLVM/Clang 10 supports symbol versioning with LTO out of the box
|
|
||||||
without any changes needed.
|
|
||||||
|
|
||||||
Fixes #24.
|
|
||||||
---
|
|
||||||
lib/crypt-port.h | 25 ++++++++++++++++++++++++-
|
|
||||||
1 file changed, 24 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/lib/crypt-port.h b/lib/crypt-port.h
|
|
||||||
index bec36ac..ca86261 100644
|
|
||||||
--- a/lib/crypt-port.h
|
|
||||||
+++ b/lib/crypt-port.h
|
|
||||||
@@ -179,11 +179,29 @@ _crypt_strcpy_or_abort (void *, const size_t, const void *);
|
|
||||||
# define _strong_alias(name, aliasname) \
|
|
||||||
extern __typeof (name) aliasname __THROW __attribute__ ((alias (#name)))
|
|
||||||
|
|
||||||
+/* Starting with GCC 10.2, we can use the symver attribute, which also works
|
|
||||||
+ with link-time optimization enabled. */
|
|
||||||
+# if __GNUC__ > 10 || (__GNUC__ == 10 && __GNUC_MINOR__ >= 2)
|
|
||||||
+
|
|
||||||
+/* Referencing specific _compatibility_ symbols still needs inline asm. */
|
|
||||||
+# define _symver_ref(extstr, intname, version) \
|
|
||||||
+ __asm__ (".symver " #intname "," extstr "@" #version)
|
|
||||||
+
|
|
||||||
+/* Set the symbol version for EXTNAME, which uses INTNAME as its
|
|
||||||
+ implementation. */
|
|
||||||
+# define symver_set(extstr, intname, version, mode) \
|
|
||||||
+ extern __typeof (intname) intname __THROW \
|
|
||||||
+ __attribute__((symver (extstr mode #version)))
|
|
||||||
+
|
|
||||||
+# else
|
|
||||||
+
|
|
||||||
/* Set the symbol version for EXTNAME, which uses INTNAME as its
|
|
||||||
implementation. */
|
|
||||||
# define symver_set(extstr, intname, version, mode) \
|
|
||||||
__asm__ (".symver " #intname "," extstr mode #version)
|
|
||||||
|
|
||||||
+# endif
|
|
||||||
+
|
|
||||||
#else
|
|
||||||
# error "Don't know how to do symbol versioning with this compiler"
|
|
||||||
#endif
|
|
||||||
@@ -239,9 +257,14 @@ _crypt_strcpy_or_abort (void *, const size_t, const void *);
|
|
||||||
|
|
||||||
/* Tests may need to _refer_ to compatibility symbols, but should never need
|
|
||||||
to _define_ them. */
|
|
||||||
-
|
|
||||||
#define symver_ref(extstr, intname, version) \
|
|
||||||
+ _symver_ref(extstr, intname, version)
|
|
||||||
+
|
|
||||||
+/* Generic way for referencing specific _compatibility_ symbols. */
|
|
||||||
+#ifndef _symver_ref
|
|
||||||
+#define _symver_ref(extstr, intname, version) \
|
|
||||||
symver_set(extstr, intname, version, "@")
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/* Define configuration macros used during compile-time by the
|
|
||||||
GOST R 34.11-2012 "Streebog" hash function. */
|
|
@ -165,7 +165,6 @@ Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
|||||||
# Patch 0000 - 2999: Backported patches from upstream.
|
# Patch 0000 - 2999: Backported patches from upstream.
|
||||||
|
|
||||||
# Patch 3000 - 5999: Backported patches from pull requests.
|
# Patch 3000 - 5999: Backported patches from pull requests.
|
||||||
Patch3000: libxcrypt-4.4.17-enable_LTO_build.patch
|
|
||||||
|
|
||||||
# Patch 6000 - 9999: Downstream patches.
|
# Patch 6000 - 9999: Downstream patches.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user