- perl-pp-crypt.patch: fix incompatibility with libxcrypt (bsc#1107973) OBS-URL: https://build.opensuse.org/request/show/636590 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=167
39 lines
1.2 KiB
Diff
39 lines
1.2 KiB
Diff
From e9c9cf57594854df9f5802f7f149be4738212e96 Mon Sep 17 00:00:00 2001
|
|
From: David Mitchell <davem@iabyn.com>
|
|
Date: Fri, 11 May 2018 08:03:42 +0100
|
|
Subject: [PATCH] fix build failure with recent glibc
|
|
|
|
RT #133184
|
|
|
|
pp_crypt() directly manipulates a field inside 'struct crypt_data' to work
|
|
around a bug in an ancient glibc version from circa 2002. New glibc
|
|
releases don't have this field so perl fails to compile. Make the hack
|
|
conditional on glibc version.
|
|
|
|
Stolen from a patch to the Fedora 28 distribution.
|
|
---
|
|
pp.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/pp.c b/pp.c
|
|
index 826c20748b..33eac6040d 100644
|
|
--- a/pp.c
|
|
+++ b/pp.c
|
|
@@ -3653,8 +3653,12 @@ PP(pp_crypt)
|
|
#if defined(__GLIBC__) || defined(__EMX__)
|
|
if (PL_reentrant_buffer->_crypt_struct_buffer) {
|
|
PL_reentrant_buffer->_crypt_struct_buffer->initialized = 0;
|
|
- /* work around glibc-2.2.5 bug */
|
|
+#if (defined(__GLIBC__) && __GLIBC__ == 2) && \
|
|
+ (defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ >= 2 && __GLIBC_MINOR__ < 4)
|
|
+ /* work around glibc-2.2.5 bug, has been fixed at some
|
|
+ * time in glibc-2.3.X */
|
|
PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0;
|
|
+#endif
|
|
}
|
|
#endif
|
|
}
|
|
--
|
|
2.19.0
|
|
|