summaryrefslogtreecommitdiff
path: root/media-libs/kvazaar/files/kvazaar-2.3.0-backport-pr392.patch
blob: 81ee9fdca4d9decd7109ed8ee94ad8d89bda7bb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
https://bugs.gentoo.org/902217
https://github.com/ultravideo/kvazaar/pull/392

From b10fc25cb980e1dbab8f42c38280f57765f93a37 Mon Sep 17 00:00:00 2001
From: matoro <matoro@users.noreply.github.com>
Date: Thu, 1 Feb 2024 18:35:23 -0500
Subject: [PATCH] Ignore "*get_pc_thunk.*" symbols in exported symbols test

On i386 (32-bit x86) and sparc, gcc generates references to these
functions which load the current PC into the specified register.  These
references are then resolved at link-time.  Examples of what these
symbols look like:

../src/.libs/libkvazaar.a:libkvazaar_la-cfg.o:00000000 T __x86.get_pc_thunk.ax
../src/.libs/libkvazaar.a:libkvazaar_la-cabac.o:0000000000000000 W __sparc_get_pc_thunk.l7

Since these are platform symbols inserted by the toolchain, ignore them.
The regex is specified as tightly as possible, and based on a quick
search these appear to be the only two platforms affected.
---
 tests/test_external_symbols.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/test_external_symbols.sh b/tests/test_external_symbols.sh
index b9b3d5957..4983078bf 100755
--- a/tests/test_external_symbols.sh
+++ b/tests/test_external_symbols.sh
@@ -4,7 +4,7 @@
 
 set -eu${BASH+o pipefail}
 
-if nm -go --defined-only ../src/.libs/libkvazaar.a | grep -v ' kvz_'; then
+if nm -go --defined-only ../src/.libs/libkvazaar.a | grep -Ev ' (kvz_|__[a-z0-9]+(_|\.)get_pc_thunk\.)'; then
     printf '%s\n' 'Only symbols prefixed with "kvz_" should be exported from libkvazaar.'
     false
 fi