summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-01-30 22:50:11 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-02-02 11:06:00 +0000
commitbbc4c8eb9b2ebde05b2cb1d01e693cda9083ae6d (patch)
tree1cddb8e3aa706890685ddbcb329b180ceaefc0b7 /meta/recipes-multimedia
parentba7731646ee1342d997310f9efe2629ac08401b3 (diff)
downloadpoky-bbc4c8eb9b2ebde05b2cb1d01e693cda9083ae6d.tar.gz
mpeg2dec: Fix global symbol tests
Rewrite the public symbol check to verify the shared libraries, to check for more things, and to avoid duplication; fixes make check on ARM (From OE-Core rev: 31e02216c94cc49f90052c82982dec0be7d3133b) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-multimedia')
-rw-r--r--meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch70
-rw-r--r--meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb1
2 files changed, 71 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch b/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch
new file mode 100644
index 0000000000..00b667d336
--- /dev/null
+++ b/meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch
@@ -0,0 +1,70 @@
1Rewrite the public symbol check to verify the shared libraries, to check for
2more things, and to avoid duplication; fixes make check on ARM
3
4Taken From
5https://sources.debian.org/src/mpeg2dec/0.5.1-8/debian/patches/61_global-symbol-test.patch/
6
7Upstream-Status: Pending
8
9Signed-off-by: Khem Raj <raj.khem@gmail.com>
10---
11 test/globals | 42 +++++++++++++++++++++++++++---------------
12 1 file changed, 27 insertions(+), 15 deletions(-)
13
14--- mpeg2dec.orig/test/globals
15+++ mpeg2dec/test/globals
16@@ -1,4 +1,8 @@
17 #!/bin/sh
18+# TODO
19+# - fix checking of .a libs; problem is that "nm -g --defined-only" lists
20+# internal symbols; this can be solved by using objdump, but it's probably
21+# good enough to just run the tests on the shared lib
22
23 if test x"$srcdir" != x""; then
24 builddir="." # running from make check, but it does not define that
25@@ -14,22 +18,30 @@ builddir=`cd $builddir;pwd`
26
27 error=0
28
29-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/*.o |\
30- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2_'`
31-
32-if test x"$bad_globals" != x""; then
33- echo BAD GLOBAL SYMBOLS:
34- for s in $bad_globals; do echo $s; done
35+# check_bad_public_symbols <symbol prefix> <lib file> [<lib file>...]
36+#
37+# checks public symbols in shared libs:
38+# - allow prefix_anything
39+# - reject _prefixanything
40+# - allow _anything
41+# - reject anything else
42+#
43+# NB: skips missing files
44+check_bad_public_symbols() {
45+ symbols_prefix="$1"
46+ shift
47+ lib_files=`ls "$@" 2>/dev/null`
48+ [ -z "$lib_files" ] && return
49+ bad_globals=`nm -g --defined-only $lib_files |
50+ awk '{if ($3) print $3}' |
51+ sed -n "/^${symbols_prefix}_/ d; /^_${symbols_prefix}/ { p; d }; /^_/ d; p"`
52+ [ -z "$bad_globals" ] && return
53 error=1
54-fi
55-
56-bad_globals=`nm -g --defined-only $builddir/../libmpeg2/convert/*.o |\
57- awk '{if ($3) print $3}' | grep -v '^_\?mpeg2convert_'`
58+ echo BAD GLOBAL SYMBOLS in $lib_files:
59+ echo "$bad_globals"
60+}
61
62-if test x"$bad_globals" != x""; then
63- echo BAD GLOBAL SYMBOLS:
64- for s in $bad_globals; do echo $s; done
65- error=1
66-fi
67+check_bad_public_symbols mpeg2 $builddir/../libmpeg2/.libs/libmpeg2.so
68+check_bad_public_symbols mpeg2convert $builddir/../libmpeg2/convert/.libs/libmpeg2convert.so
69
70 exit $error
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb
index 7711c2dc10..6b59d4f681 100644
--- a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb
+++ b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb
@@ -10,6 +10,7 @@ SRC_URI = "http://libmpeg2.sourceforge.net/files/libmpeg2-${PV}.tar.gz \
10 file://altivec_h_needed.patch \ 10 file://altivec_h_needed.patch \
11 file://0001-check-for-available-arm-optimizations.patch \ 11 file://0001-check-for-available-arm-optimizations.patch \
12 file://0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch \ 12 file://0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch \
13 file://61_global-symbol-test.patch \
13 " 14 "
14 15
15S = "${WORKDIR}/libmpeg2-${PV}" 16S = "${WORKDIR}/libmpeg2-${PV}"