[meta-freescale] [meta-fsl-arm][PATCH 2/3] gst-fsl-plugin: Fix checking for include headers in multiple paths

Otavio Salvador otavio at ossystems.com.br
Thu Nov 7 12:43:56 PST 2013


Hello Daiane,

On Thu, Nov 7, 2013 at 6:21 PM, Daiane Angolini
<daiane.angolini at freescale.com> wrote:
> On 07-11-2013 17:26, Otavio Salvador wrote:
>>
>> This fixes the support for proper detecting Freescale specific headers
>> in include/linux and include/uapu.
>
>
> include/uapi

Fixed in my tree.

>> Without this patch I have the configure log with the same feature in
>> 'enabled' and 'disabled' state and it was impossible to proper
>> override CPPFLAGS.
>>
>> After this patch, building it against MX53 I get:
>>
>> Configure result:
>>          Enabled features:
>>                  plugin: aac_dec
>>                  plugin: mp3_dec
>>                  plugin: vorbis_dec
>>                  plugin: amr_dec
>>                  plugin: mp3_enc
>>                  plugin: h264_dec
>>                  plugin: mpeg4_dec
>>                  plugin: mpeg2_dec
>>                  plugin: aiur
>>                  plugin: beep
>>                  plugin: v4lsink
>>                  plugin: isink
>>                  plugin: ipucsc
>>                  library: libipu
>>                  library: libX11
>>          Disabled features:
>>                  plugin: aacp_dec
>>                  plugin: wma10_dec
>>                  plugin: ac3_dec
>>                  plugin: wma8_enc
>>                  plugin: downmix
>>                  plugin: wmv9mp_dec
>>                  plugin: wmv78_dec
>>                  plugin: vpu_wrap
>>
>> and building it against MX6Q I get:
>>
>> Configure result:
>>          Enabled features:
>>                  plugin: aac_dec
>>                  plugin: mp3_dec
>>                  plugin: vorbis_dec
>>                  plugin: amr_dec
>>                  plugin: mp3_enc
>>                  plugin: h264_dec
>>                  plugin: mpeg4_dec
>>                  plugin: mpeg2_dec
>>                  plugin: vpu_wrap
>>                  plugin: aiur
>>                  plugin: beep
>>                  plugin: v4lsink
>>                  plugin: isink
>>                  plugin: ipucsc
>>                  library: libipu
>>                  library: libX11
>>          Disabled features:
>>                  plugin: aacp_dec
>>                  plugin: wma10_dec
>>                  plugin: ac3_dec
>>                  plugin: wma8_enc
>>                  plugin: downmix
>>                  plugin: wmv9mp_dec
>>                  plugin: wmv78_dec
>>
>> Change-Id: Icdd40a1686212275b67baede34bb45eb41be3cf1
>> Reported-by: Jānis Čoders <janis.coders at gmail.com>
>> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
>> ---
>>   recipes-multimedia/gstreamer/gst-fsl-plugin.inc    |  6 +--
>>   ...c-Fix-checking-for-include-headers-in-mul.patch | 63
>> ++++++++++++++++++++++
>>   .../gstreamer/gst-fsl-plugin_3.0.9.bb              |  3 +-
>>   3 files changed, 67 insertions(+), 5 deletions(-)
>>   create mode 100644
>> recipes-multimedia/gstreamer/gst-fsl-plugin/configure.ac-Fix-checking-for-include-headers-in-mul.patch
>>
>> diff --git a/recipes-multimedia/gstreamer/gst-fsl-plugin.inc
>> b/recipes-multimedia/gstreamer/gst-fsl-plugin.inc
>> index e179c76..5331887 100644
>> --- a/recipes-multimedia/gstreamer/gst-fsl-plugin.inc
>> +++ b/recipes-multimedia/gstreamer/gst-fsl-plugin.inc
>> @@ -26,10 +26,8 @@ PLATFORM_mx6sl = "MX6SL"
>>   PLATFORM_mx28 = "MX28"
>>
>>   # Todo add a mechanism to map posible build targets
>> -INCLUDE_DIR = "-I${STAGING_KERNEL_DIR}/include/uapi
>> -I${STAGING_KERNEL_DIR}/include"
>> -EXTRA_OEMAKE = "INCLUDES="${INCLUDE_DIR}""
>> -EXTRA_OECONF = "PLATFORM=${PLATFORM} --disable-valgrind
>> --disable-examples --disable-debug CROSS_ROOT=${PKG_CONFIG_SYSROOT_DIR}"
>
>
> Are you droping CROSS_ROOT because now the configure can detect header files
> properly?
...

It worked well without it and the code just uses it if it cannot find
the header. So in the new code it is unused.

Quoted the configure.ac code below:
...
AC_CHECK_HEADERS([linux/ipu.h], [HAVE_IPU_HEAD=yes], [HAVE_IPU_HEAD=no])
AC_CHECK_HEADERS([ipu.h], [HAVE_IPU_HEAD=yes], [HAVE_IPU_HEAD=no])
if test "x$HAVE_IPU_HEAD" = "xno"; then
    ipuhead=`find $CROSS_ROOT/usr/src/ -name ipu.h | grep
"/linux/ipu.h" | head -n 1 | sed -e 's,/linux/ipu.h,,'`
    if test "x$ipuhead" != "x"; then
        IPU_CFLAGS=-I$ipuhead
    fi
fi
...

This try to find the linux/ipu.h in standard paths (which is set in
sysroot option of gcc) and also the paths we provide in CPPFLAGS so it
is found properly and never runs it.

> Very nice patch! Let's wait for Janis Coders test in his side ;)

I hope it works for him. I am also putting this in build in my
autobuilder for /all/ boards so we find out if it breaks something :)

I am sure there're some other corner cases hidden in this code but
this simplifies the code and make it easier to spot it.

Regards,

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750



More information about the meta-freescale mailing list