On 28/04/14 22:56, Eric Le Bihan wrote: > Hi! > > I'm currently cross-compiling Mesa3d for embedded systems using the > following configure options: > > --enable-shared --disable-glx --disable-xa --disable-static > --with-gallium-drivers=svga --disable-dri --disable-shared-glapi > --without-dri-drivers --enable-opengl --disable-gbm --disable-egl > --enable-gles1 --enable-gles2 > I seem to recall making a patch that explicitly requires shared glapi whenever more than one GL api is built. Do you have some local patches that hack around that ?
> So: no DRI, GALLIUM3D drivers, GLES only and no shared glapi. The build is > successful, but when trying to link another program to libGLESv2.so, I get an > undefined reference to _glapi_get_dispatch(). > > Looking at src/mapi/es2api/Makefile.am, I can see that, when > --disable-shared-glapi is passed, the libglapi is not added as dependency: > > if HAVE_SHARED_GLAPI > libGLESv2_la_LIBADD += ../shared-glapi/libglapi.la > endif > > But unfortunately it does not seem to be handled in src/mapi/entry.c, which is > used to build libGLESv{1,2}.so and libglapi.so. In this file, we have: > > /* in bridge mode, mapi is a user of glapi */ > #ifdef MAPI_MODE_BRIDGE > #define ENTRY_CURRENT_TABLE_GET "_glapi_get_dispatch" > #else > #define ENTRY_CURRENT_TABLE_GET U_STRINGIFY(u_current_get_internal) > #endif > > When comparing src/mapi/glapi/Makefile.am and src/map/es2api/Makefile.am, I > can see that, when passing --disable-shared-glapi, MAPI_MODE_BRIDGE is handled > differently. For libGLESv2.so, entry.c will be compiled with > -DMAPI_MODE_BRIDGE, hence the reference to _glapi_get_dispatch(). > > I tried to pass -DMAPI_MODE_BRIDGE only if HAVE_SHARED_GLAPI is true for > libGLESv2, but ended with an error about MAPI_ABI_HEADER not being defined. > > So, why is MAPI_MODE_BRIDGE handled differently? Is it forbidden to build > libGLES with shared glapi disabled? > While I cannot comment on the dispatch code, I would recommend that you use shared glapi. That seems to be general consensus of developers. -Emil > Best regards, > ELB > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev