[packages/openssl] upstream duplicate symbols test fix
atler
atler at pld-linux.org
Wed Dec 6 13:41:27 CET 2023
commit 06001b82e4b63b31c2590e7df19f2c8ad416c3aa
Author: Jan Palus <atler at pld-linux.org>
Date: Wed Dec 6 12:45:49 2023 +0100
upstream duplicate symbols test fix
fixes: https://github.com/openssl/openssl/issues/22837
from: https://github.com/openssl/openssl/pull/22880
duplicate-symbols-test.patch | 136 +++++++++++++++++++++++++++++++++++++++++++
openssl.spec | 2 +
2 files changed, 138 insertions(+)
---
diff --git a/openssl.spec b/openssl.spec
index 2fc3026..e46913b 100644
--- a/openssl.spec
+++ b/openssl.spec
@@ -27,6 +27,7 @@ Patch1: %{name}-ca-certificates.patch
Patch2: %{name}-find.patch
Patch3: pic.patch
Patch4: engines-dir.patch
+Patch5: duplicate-symbols-test.patch
URL: http://www.openssl.org/
%ifarch %{arm} ppc mips sparc sparcv9
BuildRequires: libatomic-devel
@@ -212,6 +213,7 @@ RC4, RSA и SSL. Включает статические библиотеки д
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
# fails with enable-sctp as of 1.1.1
%{__rm} test/recipes/80-test_ssl_new.t
diff --git a/duplicate-symbols-test.patch b/duplicate-symbols-test.patch
new file mode 100644
index 0000000..db8a316
--- /dev/null
+++ b/duplicate-symbols-test.patch
@@ -0,0 +1,136 @@
+From 38cf48b3044749fd5b37e36e5d9b2dc9fe7056ff Mon Sep 17 00:00:00 2001
+From: Richard Levitte <levitte at openssl.org>
+Date: Thu, 30 Nov 2023 08:48:33 +0100
+Subject: [PATCH 1/3] test/recipes/01-test_symbol_presence.t: Ignore symbols
+ starting with '__'
+
+On some platforms, the compiler may add symbols that aren't ours and that we
+should ignore.
+
+They are generally expected to start with a double underscore, and thereby
+easy to detect.
+
+Fixes #22869 (partially)
+---
+ test/recipes/01-test_symbol_presence.t | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
+index 9efa9f8d2d6eb..66e5669e193c7 100644
+--- a/test/recipes/01-test_symbol_presence.t
++++ b/test/recipes/01-test_symbol_presence.t
+@@ -124,7 +124,13 @@ foreach (sort keys %stlibname) {
+ # Return the result
+ $_
+ }
+- grep(m|.* [BCDST] .*|, @$_);
++ # Drop any symbol starting with a double underscore, they
++ # are reserved for the compiler / system ABI and are none
++ # of our business
++ grep !m|^__|,
++ # Only look at external definitions
++ grep m|.* [BCDST] .*|,
++ @$_ ),
+ }
+
+ # Massage the mkdef.pl output to only contain global symbols
+
+From feead62eb7873c6a8a95e75ad5ca3ac7b9ed8bcd Mon Sep 17 00:00:00 2001
+From: Richard Levitte <levitte at openssl.org>
+Date: Thu, 30 Nov 2023 09:02:25 +0100
+Subject: [PATCH 2/3] test/recipes/01-test_symbol_presence.t: Treat common
+ symbols specially
+
+Common symbols (type 'C' in the 'nm' output) are allowed to be defined more
+than once. This makes test/recipes/01-test_symbol_presence.t reflect that.
+
+Fixes #22869 (partially)
+Fixes #22837
+---
+ test/recipes/01-test_symbol_presence.t | 45 +++++++++++++++++---------
+ 1 file changed, 30 insertions(+), 15 deletions(-)
+
+diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
+index 66e5669e193c7..cd3ac48bae5e7 100644
+--- a/test/recipes/01-test_symbol_presence.t
++++ b/test/recipes/01-test_symbol_presence.t
+@@ -114,23 +114,38 @@ foreach (sort keys %stlibname) {
+ my @arrays = ( \@stlib_lines );
+ push @arrays, \@shlib_lines unless disabled('shared');
+ foreach (@arrays) {
++ my %commons;
++ foreach (@$_) {
++ if (m|^(.*) C .*|) {
++ $commons{$1}++;
++ }
++ }
++ foreach (sort keys %commons) {
++ note "Common symbol: $_";
++ }
++
+ @$_ =
+ sort
+- map {
+- # Drop the first space and everything following it
+- s| .*||;
+- # Drop OpenSSL dynamic version information if there is any
+- s|\@\@.+$||;
+- # Return the result
+- $_
+- }
+- # Drop any symbol starting with a double underscore, they
+- # are reserved for the compiler / system ABI and are none
+- # of our business
+- grep !m|^__|,
+- # Only look at external definitions
+- grep m|.* [BCDST] .*|,
+- @$_ ),
++ ( map {
++ # Drop the first space and everything following it
++ s| .*||;
++ # Drop OpenSSL dynamic version information if there is any
++ s|\@\@.+$||;
++ # Drop any symbol starting with a double underscore, they
++ # are reserved for the compiler / system ABI and are none
++ # of our business
++ s|^__||;
++ # Return the result
++ $_
++ }
++ # Drop any symbol starting with a double underscore, they
++ # are reserved for the compiler / system ABI and are none
++ # of our business
++ grep !m|^__|,
++ # Only look at external definitions
++ grep m|.* [BDST] .*|,
++ @$_ ),
++ keys %commons;
+ }
+
+ # Massage the mkdef.pl output to only contain global symbols
+
+From 1055cefa6718167759e51165324b10345f8e7a99 Mon Sep 17 00:00:00 2001
+From: Richard Levitte <levitte at openssl.org>
+Date: Thu, 30 Nov 2023 10:09:41 +0100
+Subject: [PATCH 3/3] fixup! test/recipes/01-test_symbol_presence.t: Treat
+ common symbols specially
+
+---
+ test/recipes/01-test_symbol_presence.t | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
+index cd3ac48bae5e7..222b1886aec01 100644
+--- a/test/recipes/01-test_symbol_presence.t
++++ b/test/recipes/01-test_symbol_presence.t
+@@ -131,10 +131,6 @@ foreach (sort keys %stlibname) {
+ s| .*||;
+ # Drop OpenSSL dynamic version information if there is any
+ s|\@\@.+$||;
+- # Drop any symbol starting with a double underscore, they
+- # are reserved for the compiler / system ABI and are none
+- # of our business
+- s|^__||;
+ # Return the result
+ $_
+ }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/openssl.git/commitdiff/06001b82e4b63b31c2590e7df19f2c8ad416c3aa
More information about the pld-cvs-commit
mailing list