1 From 38cf48b3044749fd5b37e36e5d9b2dc9fe7056ff Mon Sep 17 00:00:00 2001
2 From: Richard Levitte <levitte@openssl.org>
3 Date: Thu, 30 Nov 2023 08:48:33 +0100
4 Subject: [PATCH 1/3] test/recipes/01-test_symbol_presence.t: Ignore symbols
7 On some platforms, the compiler may add symbols that aren't ours and that we
10 They are generally expected to start with a double underscore, and thereby
13 Fixes #22869 (partially)
15 test/recipes/01-test_symbol_presence.t | 8 +++++++-
16 1 file changed, 7 insertions(+), 1 deletion(-)
18 diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
19 index 9efa9f8d2d6eb..66e5669e193c7 100644
20 --- a/test/recipes/01-test_symbol_presence.t
21 +++ b/test/recipes/01-test_symbol_presence.t
22 @@ -124,7 +124,13 @@ foreach (sort keys %stlibname) {
26 - grep(m|.* [BCDST] .*|, @$_);
27 + # Drop any symbol starting with a double underscore, they
28 + # are reserved for the compiler / system ABI and are none
31 + # Only look at external definitions
32 + grep m|.* [BCDST] .*|,
36 # Massage the mkdef.pl output to only contain global symbols
38 From feead62eb7873c6a8a95e75ad5ca3ac7b9ed8bcd Mon Sep 17 00:00:00 2001
39 From: Richard Levitte <levitte@openssl.org>
40 Date: Thu, 30 Nov 2023 09:02:25 +0100
41 Subject: [PATCH 2/3] test/recipes/01-test_symbol_presence.t: Treat common
44 Common symbols (type 'C' in the 'nm' output) are allowed to be defined more
45 than once. This makes test/recipes/01-test_symbol_presence.t reflect that.
47 Fixes #22869 (partially)
50 test/recipes/01-test_symbol_presence.t | 45 +++++++++++++++++---------
51 1 file changed, 30 insertions(+), 15 deletions(-)
53 diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
54 index 66e5669e193c7..cd3ac48bae5e7 100644
55 --- a/test/recipes/01-test_symbol_presence.t
56 +++ b/test/recipes/01-test_symbol_presence.t
57 @@ -114,23 +114,38 @@ foreach (sort keys %stlibname) {
58 my @arrays = ( \@stlib_lines );
59 push @arrays, \@shlib_lines unless disabled('shared');
63 + if (m|^(.*) C .*|) {
67 + foreach (sort keys %commons) {
68 + note "Common symbol: $_";
74 - # Drop the first space and everything following it
76 - # Drop OpenSSL dynamic version information if there is any
81 - # Drop any symbol starting with a double underscore, they
82 - # are reserved for the compiler / system ABI and are none
85 - # Only look at external definitions
86 - grep m|.* [BCDST] .*|,
89 + # Drop the first space and everything following it
91 + # Drop OpenSSL dynamic version information if there is any
93 + # Drop any symbol starting with a double underscore, they
94 + # are reserved for the compiler / system ABI and are none
100 + # Drop any symbol starting with a double underscore, they
101 + # are reserved for the compiler / system ABI and are none
104 + # Only look at external definitions
105 + grep m|.* [BDST] .*|,
110 # Massage the mkdef.pl output to only contain global symbols
112 From 1055cefa6718167759e51165324b10345f8e7a99 Mon Sep 17 00:00:00 2001
113 From: Richard Levitte <levitte@openssl.org>
114 Date: Thu, 30 Nov 2023 10:09:41 +0100
115 Subject: [PATCH 3/3] fixup! test/recipes/01-test_symbol_presence.t: Treat
116 common symbols specially
119 test/recipes/01-test_symbol_presence.t | 4 ----
120 1 file changed, 4 deletions(-)
122 diff --git a/test/recipes/01-test_symbol_presence.t b/test/recipes/01-test_symbol_presence.t
123 index cd3ac48bae5e7..222b1886aec01 100644
124 --- a/test/recipes/01-test_symbol_presence.t
125 +++ b/test/recipes/01-test_symbol_presence.t
126 @@ -131,10 +131,6 @@ foreach (sort keys %stlibname) {
128 # Drop OpenSSL dynamic version information if there is any
130 - # Drop any symbol starting with a double underscore, they
131 - # are reserved for the compiler / system ABI and are none