[Mesa-users] yocto 1.8 emgd_dri.so missing depencies
Jean-Francois Dagenais
jeff.dagenais at gmail.com
Fri Oct 30 09:04:46 PDT 2015
Hi guys,
Getting a bit desparate here, hence the mass e-mail on top of the mesa-user list. Sorry for the interruption.
Note that although I am getting pretty good in kernel and yocto development, I am a mesa/xorg newbie.
While migrating from dylan 1.4 to fido 1.8, I ran into the missing emgd. Since we need it, I am trying to restore emgd onto 1.8. To do so, I have imported the related files from meta-intel, at the commit just before the emgd recipes and xserver-xorg were removed, into my machine layer. It looks like this:
meta-sonatest/meta-osprey/classes/emgd-gl.bbclass
meta-sonatest/meta-osprey/conf/machine/include/meta-intel-emgd.inc
meta-sonatest/meta-osprey/conf/machine/osprey-common.inc
meta-sonatest/meta-osprey/custom-licenses/Intel-software-license-emgd-1.18
meta-sonatest/meta-osprey/custom-licenses/Intel-user-space-graphics-driver-binary-license-emgd-1.18
meta-sonatest/meta-osprey/recipes-graphics/xorg-driver/emgd-driver-bin/egl.pc
meta-sonatest/meta-osprey/recipes-graphics/xorg-driver/emgd-driver-bin/glchar.patch
meta-sonatest/meta-osprey/recipes-graphics/xorg-driver/emgd-driver-bin/gles_cm.pc
meta-sonatest/meta-osprey/recipes-graphics/xorg-driver/emgd-driver-bin/glesv2.pc
meta-sonatest/meta-osprey/recipes-graphics/xorg-driver/emgd-driver-bin_1.18.bb
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3.inc
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/crosscompile.patch
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/fix_open_max_preprocessor_error.patch
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/macro_tweak.patch
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/nodolt.patch
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/ptr-to-int-cast-fix.patch
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg-1.9.3/werror-address-fix.patch
meta-sonatest/meta-osprey/recipes-graphics/xorg-xserver/xserver-xorg_1.9.3.bb
meta-sonatest/meta-osprey/recipes-multimedia/gstreamer/gst-va-intel.bb
meta-sonatest/meta-osprey/recipes-multimedia/libva/va-intel.bbappend
I have adjusted my machine to mimic the last state of crownbay-emgd to prefer xserver-xorg 1.9.3.
I have manually added the emgd drm stuff from https://github.com/EMGD-Community/intel-binaries-linux/tree/master/drm into my linux-yocto_3.19 based kernel.
The result is a working system, except for glx which fails to initialize emgd_dri.so because of missing symbols:
root at jfdprismadev:~# ldd -r /usr/lib/dri/emgd_dri.so
linux-gate.so.1 (0xb775a000)
libm.so.6 => /lib/libm.so.6 (0xb74c4000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb74a8000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7480000)
libdl.so.2 => /lib/libdl.so.2 (0xb747b000)
libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb746d000)
libEMGDOGL.so => /usr/lib/libEMGDOGL.so (0xb71bd000)
libEMGD2d.so => /usr/lib/libEMGD2d.so (0xb71b5000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb70bf000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb70ab000)
libc.so.6 => /lib/libc.so.6 (0xb6f30000)
/lib/ld-linux.so.2 (0x43bb6000)
libemgdsrv_um.so => /usr/lib/libemgdsrv_um.so (0xb6f0d000)
undefined symbol: _glapi_Dispatch (/usr/lib/dri/emgd_dri.so)
undefined symbol: _glapi_Context (/usr/lib/dri/emgd_dri.so)
undefined symbol: _glapi_get_dispatch_table_size (/usr/lib/dri/emgd_dri.so)
undefined symbol: _glapi_get_dispatch (/usr/lib/dri/emgd_dri.so)
undefined symbol: _glapi_get_context (/usr/lib/dri/emgd_dri.so)
undefined symbol: _glapi_add_dispatch (/usr/lib/dri/emgd_dri.so)
undefined symbol: _glapi_set_context (/usr/lib/dri/emgd_dri.so)
undefined symbol: _glapi_set_dispatch (/usr/lib/dri/emgd_dri.so)
Digging a bit more:
dagenaisj at jfddesk:/export/ospreyfs/usr$ for lib in $(find -mount -type f -name "*.so*" 2>/dev/null); do \
if readelf -Ws $lib 2>/dev/null | grep _glapi_Dispatch ; then \
echo found in $lib; \
fi ;\
done
135: 0006d970 4 OBJECT GLOBAL DEFAULT 26 _glapi_Dispatch
found in ./lib/xorg/modules/extensions/libglx.so
2298: 0006d970 4 OBJECT GLOBAL DEFAULT 26 _glapi_Dispatch
found in ./lib/xorg/modules/extensions/.debug/libglx.so
907: 00000000 4 OBJECT GLOBAL DEFAULT ABS _glapi_Dispatch
found in ./lib/libglapi.so.0.0.0
489: 00000000 0 NOTYPE GLOBAL DEFAULT UND _glapi_Dispatch
found in ./lib/dri/emgd_dri.so
So emgd_dri.so needs it, and libglx.so provides it but as I understand it, as an extension, it is not available for generic consumption.
In my reference dylan rootfs, libglapi.so.0.0.0 provides the symbol instead of needing it (ABS instead of UND).
Of couse, the mesa package and recipe has changed between dylan and fido, but from my newbie pespective, the --enable-shared-glapi has not changed. I will try to pull in the old dylan recipe for mesa into my machine layer and prefer it.
Any clues would be appreciated!
Thank you all
/jfd
More information about the mesa-users
mailing list