diff options
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/recipes-multimedia/mpeg2dec/files/61_global-symbol-test.patch | 70 | ||||
| -rw-r--r-- | meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb | 1 |
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 @@ | |||
| 1 | Rewrite the public symbol check to verify the shared libraries, to check for | ||
| 2 | more things, and to avoid duplication; fixes make check on ARM | ||
| 3 | |||
| 4 | Taken From | ||
| 5 | https://sources.debian.org/src/mpeg2dec/0.5.1-8/debian/patches/61_global-symbol-test.patch/ | ||
| 6 | |||
| 7 | Upstream-Status: Pending | ||
| 8 | |||
| 9 | Signed-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 | ||
| 15 | S = "${WORKDIR}/libmpeg2-${PV}" | 16 | S = "${WORKDIR}/libmpeg2-${PV}" |
