diff options
| author | Khem Raj <raj.khem@gmail.com> | 2017-07-05 19:10:00 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-07-11 15:57:08 +0100 |
| commit | 0a672a74085dc3e8a7949fae8d564bc6f7a70124 (patch) | |
| tree | 453fa1cdbec469184507b063f9c62a787496a928 | |
| parent | 23df57b15097dc14f417aa23539dfc1e5265af16 (diff) | |
| download | poky-0a672a74085dc3e8a7949fae8d564bc6f7a70124.tar.gz | |
mpeg2dec: Fix textrels QA errors on arm
Fixes
WARNING: mpeg2dec-0.5.1-r0 do_package_qa: QA Issue: ELF binary '/mnt/a/oe/build/tmp/work/armv5te-bec-linux-musleabi/mpeg2dec/0.5.1-r0/packages-split/libmpeg2/usr/lib/libmpeg2.so.0.1.0' has relocations in .text [textrel]
(From OE-Core rev: bbcc5322d3d0eb9e87e78ec47e71e29860af39d7)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
3 files changed, 122 insertions, 1 deletions
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch b/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch new file mode 100644 index 0000000000..5bf68b39ee --- /dev/null +++ b/meta/recipes-multimedia/mpeg2dec/files/0001-check-for-available-arm-optimizations.patch | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | From cbcff58ed670c8edc0be1004384cbe0fd07d8d26 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Wed, 5 Jul 2017 18:49:21 -0700 | ||
| 4 | Subject: [PATCH 1/2] check for available arm optimizations | ||
| 5 | |||
| 6 | Taken From | ||
| 7 | http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/65_arm-test-with-compiler.patch/ | ||
| 8 | |||
| 9 | Upstream-Status: Pending | ||
| 10 | |||
| 11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 12 | --- | ||
| 13 | configure.ac | 12 ++++++++---- | ||
| 14 | 1 file changed, 8 insertions(+), 4 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/configure.ac b/configure.ac | ||
| 17 | index acdcb1e..2c0a721 100644 | ||
| 18 | --- a/configure.ac | ||
| 19 | +++ b/configure.ac | ||
| 20 | @@ -59,7 +59,7 @@ elif test x"$GCC" = x"yes"; then | ||
| 21 | AC_TRY_CFLAGS([$TRY_CFLAGS $CFLAGS],[OPT_CFLAGS="$TRY_CFLAGS"]) | ||
| 22 | |||
| 23 | dnl arch-specific flags | ||
| 24 | - arm_conditional=false | ||
| 25 | + build_arm_opt=false | ||
| 26 | case "$host" in | ||
| 27 | i?86-* | k?-* | x86_64-* | amd64-*) | ||
| 28 | AC_DEFINE([ARCH_X86],,[x86 architecture]) | ||
| 29 | @@ -102,8 +102,12 @@ elif test x"$GCC" = x"yes"; then | ||
| 30 | alpha*) | ||
| 31 | AC_DEFINE([ARCH_ALPHA],,[alpha architecture]);; | ||
| 32 | arm*) | ||
| 33 | - arm_conditional=: | ||
| 34 | - AC_DEFINE([ARCH_ARM],,[ARM architecture]);; | ||
| 35 | + AC_LANG(C) | ||
| 36 | + AC_COMPILE_IFELSE( | ||
| 37 | + [AC_LANG_SOURCE([[ | ||
| 38 | + void foo(void) { __asm__ volatile("pld [r1]"); }]])], | ||
| 39 | + build_arm_opt=true; AC_DEFINE([ARCH_ARM],,[ARM architecture]), | ||
| 40 | + build_arm_opt=false);; | ||
| 41 | esac | ||
| 42 | elif test x"$CC" = x"tendracc"; then | ||
| 43 | dnl TenDRA portability checking compiler | ||
| 44 | @@ -123,7 +127,7 @@ else | ||
| 45 | esac | ||
| 46 | fi | ||
| 47 | |||
| 48 | -AM_CONDITIONAL(ARCH_ARM, ${arm_conditional}) | ||
| 49 | +AM_CONDITIONAL(ARCH_ARM, test x$build_arm_opt = xtrue) | ||
| 50 | |||
| 51 | dnl Checks for libtool - this must be done after we set cflags | ||
| 52 | AC_LIBTOOL_WIN32_DLL | ||
| 53 | -- | ||
| 54 | 2.13.2 | ||
| 55 | |||
diff --git a/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch b/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch new file mode 100644 index 0000000000..8301692368 --- /dev/null +++ b/meta/recipes-multimedia/mpeg2dec/files/0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | From f9d9dc92d75f8910e3cd5fdcbea72e505cdf3493 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Wed, 5 Jul 2017 19:03:36 -0700 | ||
| 4 | Subject: [PATCH 2/2] Set visibility of global symbols used in ARM specific | ||
| 5 | assembly file to internal | ||
| 6 | |||
| 7 | Taken from | ||
| 8 | http://sources.debian.net/src/mpeg2dec/0.5.1-7/debian/patches/60_arm-private-symbols.patch/ | ||
| 9 | |||
| 10 | Upstream-Status: Pending | ||
| 11 | |||
| 12 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 13 | --- | ||
| 14 | libmpeg2/motion_comp_arm_s.S | 12 ++++++++---- | ||
| 15 | 1 file changed, 8 insertions(+), 4 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/libmpeg2/motion_comp_arm_s.S b/libmpeg2/motion_comp_arm_s.S | ||
| 18 | index f6c3d7d..c921f7c 100644 | ||
| 19 | --- a/libmpeg2/motion_comp_arm_s.S | ||
| 20 | +++ b/libmpeg2/motion_comp_arm_s.S | ||
| 21 | @@ -23,7 +23,8 @@ | ||
| 22 | |||
| 23 | @ ---------------------------------------------------------------- | ||
| 24 | .align | ||
| 25 | - .global MC_put_o_16_arm | ||
| 26 | + .global MC_put_o_16_arm | ||
| 27 | + .internal MC_put_o_16_arm | ||
| 28 | MC_put_o_16_arm: | ||
| 29 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
| 30 | pld [r1] | ||
| 31 | @@ -83,7 +84,8 @@ MC_put_o_16_arm_align_jt: | ||
| 32 | |||
| 33 | @ ---------------------------------------------------------------- | ||
| 34 | .align | ||
| 35 | - .global MC_put_o_8_arm | ||
| 36 | + .global MC_put_o_8_arm | ||
| 37 | + .internal MC_put_o_8_arm | ||
| 38 | MC_put_o_8_arm: | ||
| 39 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
| 40 | pld [r1] | ||
| 41 | @@ -152,7 +154,8 @@ MC_put_o_8_arm_align_jt: | ||
| 42 | .endm | ||
| 43 | |||
| 44 | .align | ||
| 45 | - .global MC_put_x_16_arm | ||
| 46 | + .global MC_put_x_16_arm | ||
| 47 | + .internal MC_put_x_16_arm | ||
| 48 | MC_put_x_16_arm: | ||
| 49 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
| 50 | pld [r1] | ||
| 51 | @@ -244,7 +247,8 @@ MC_put_x_16_arm_align_jt: | ||
| 52 | |||
| 53 | @ ---------------------------------------------------------------- | ||
| 54 | .align | ||
| 55 | - .global MC_put_x_8_arm | ||
| 56 | + .global MC_put_x_8_arm | ||
| 57 | + .internal MC_put_x_8_arm | ||
| 58 | MC_put_x_8_arm: | ||
| 59 | @@ void func(uint8_t * dest, const uint8_t * ref, int stride, int height) | ||
| 60 | pld [r1] | ||
| 61 | -- | ||
| 62 | 2.13.2 | ||
| 63 | |||
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb index 8e995daa7c..7711c2dc10 100644 --- a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb +++ b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.5.1.bb | |||
| @@ -7,7 +7,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | |||
| 7 | file://include/mpeg2.h;beginline=1;endline=22;md5=7766f4fcb58f0f8413c49a746f2ab89b" | 7 | file://include/mpeg2.h;beginline=1;endline=22;md5=7766f4fcb58f0f8413c49a746f2ab89b" |
| 8 | 8 | ||
| 9 | SRC_URI = "http://libmpeg2.sourceforge.net/files/libmpeg2-${PV}.tar.gz \ | 9 | 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 \ | ||
| 12 | file://0002-Set-visibility-of-global-symbols-used-in-ARM-specifi.patch \ | ||
| 13 | " | ||
| 11 | 14 | ||
| 12 | S = "${WORKDIR}/libmpeg2-${PV}" | 15 | S = "${WORKDIR}/libmpeg2-${PV}" |
| 13 | 16 | ||
