Bug 10567

Summary: Unable to build gstreamer1.0-plugins-bad without X11 and Wayland for RaspberryPi3 Machine
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Karim <karim_atiki>
Component: multimediaAssignee: Jussi Kukkonen <jku>
Status: RESOLVED INVALID QA Contact:
Severity: major    
Priority: Undecided CC: meta.mr.watcher, meta.watcher, randy.macleod
Version: 2.2   
Target Milestone: ---   
Hardware: Other   
OS: arm   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Don't know

Description Karim 2016-11-01 19:10:26 UTC
Hi,

I'm facing an issue with Poky (both Krogoth and Master) and using a RaspberryPi3 as target machine.
Using a fresh minimal checkout, I just tried to build "gstreamer1.0-plugins-bad" without X11 and Wayland.
So in my local.conf:

DISTRO_FEATURES_remove = " X11 wayland"

Wich is a very common configuration for Rpi when using Qt based applications...

Build Configuration:

BB_VERSION        = "1.32.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Debian-8.2"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "raspberrypi3"
DISTRO            = "poky"
DISTRO_VERSION    = "2.2"
TUNE_FEATURES     = "arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
TARGET_FPU        = "hard"
meta              
meta-poky         
meta-yocto-bsp    = "master:ef627ab364d52fe19994c94c1a78fbe21620a32c"
meta-raspberrypi  = "master:de016ceef63028f5578191785c50529695f76a1a"
meta-oe           
meta-multimedia   = "master:8ba31c9ba214802b1305aabbc0be0353cba0bc3e


I simply launched:

bitbake -k  gstreamer1.0-plugins-bad

I always get a failure during the do_compile() task:

undefined reference to graphics_get_display_size().


graphics_get_display_size() is a function from libbcm_host, but this library is detected and installed with USERLAND.

I posted this issue in yocto mailing list and it appears that:

the do_configure log for gstreamer1.0-plugins-bad does contain:

configure: WARNING: X or Wayland is required for OpenGL support

configure.ac in gst-plugins-bad-1.8.3 contains:

    dnl EGL
    if test "x$HAVE_EGL" = "xno"; then
      if test "x$HAVE_GL" = "xno"; then
        AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
      fi
    else
      if test "x$NEED_EGL" != "xno"; then
        if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
          GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
          GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
          USE_EGL=yes
        fi
      fi
    fi
    ;;

In config.status EGL_LIBS contains "-lbcm_host -lvcos
-lvchiq_arm", however GL_LIBS only contains "-lGLESv2". So I'd say
EGL_LIBS is not being included in to GL_LIBS because
HAVE_WINDOW_WAYLAND, HAVE_WINDOW_X11 and HAVE_WINDOW_DISPMAX are all
false.


I've always built images on Rpi2 (and Fido) without X11 and Wayland.
I don't understand whiy it fails now.

Karim
Comment 1 Jussi Kukkonen 2016-11-03 15:12:03 UTC
This seems to be a meta-raspberry bug and that layer does not use this bugzilla so I'm closing this. The layer README should mention a bug reporting place. Please reopen if I've misunderstood.


Also Khem seems to have a fix on the yocto list:
https://www.mail-archive.com/yocto@yoctoproject.org/msg32052.html