From: Eric Le Bihan <eric.le.bihan.dev@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [autobuild.buildroot.net] Build results for 2014-04-25
Date: Wed, 30 Apr 2014 10:30:20 +0200 [thread overview]
Message-ID: <20140430083018.GA27960@pc-eric> (raw)
In-Reply-To: <20140426235953.GA15466@ned>
On Sun, Apr 27, 2014 at 01:59:55AM +0200, Eric Le Bihan wrote:
> Hi!
> On Sat, Apr 26, 2014 at 08:30:11AM +0200, Thomas Petazzoni wrote:
> > x86_64 | cairo-1.12.10 | NOK | http://autobuild.buildroot.net/results/d8c703043220ec95be9c793712570843ca7c0a16/
>
> This is not a cairo issue, but a mesa3d one: in the defconfig file, mesa3d is
> configured with Gallium3D drivers and GLES support only. In this case, the
> Makefile of the package adds --disable-shared-glapi to the configure options,
> but anyway, the configure script will also sets it by itself, as support for
> DRI is disabled.
>
> The build fails because libGLESv2.so has undefined references to
> _glapi_get_dispatch() which is defined... in libglapi.so! See
> http://www.mesa3d.org/dispatch.html to learn about this function.
>
> Looking at src/mapi/es2api/Makefile.am, we 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, this is not correctly 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, we
> 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 build libGLESv2.so without -DMAPI_MODE_BRIDGE, but I ended up with
> new header issues...
>
> So it looks that building GLES with Gallium3D only is currently broken. I'll
> query upstream about this: finding the right configure options for building
> only specific parts of Mesa3D is not straight forward.
This problem has been discussed on the mesa-dev mailing list:
http://lists.freedesktop.org/archives/mesa-dev/2014-April/058610.html.
Recent changes in the upcoming version 10.0.6 now make --enabled-shared-glapi
mandatory if one or more GL* API is selected (which is the case in the
autobuild defconfig, with GLESv1/v2). Besides, building shared glapi is not
restricted to use DRI drivers anymore.
I backported:
- 0432aa064bf5d4d0ad8fc3c4d648b8feb238ddfa
- 1bb23abe0659559ec95d6d20cdcfc67b48619286
- 1a568e0f2b65e4e1e1d19a6dece3a792a33da825
to 10.0.4, and this error is fixed. I'll cook up a patch.
Best regards,
ELB
next prev parent reply other threads:[~2014-04-30 8:30 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-26 6:30 [Buildroot] [autobuild.buildroot.net] Build results for 2014-04-25 Thomas Petazzoni
2014-04-26 23:59 ` Eric Le Bihan
2014-04-30 8:30 ` Eric Le Bihan [this message]
2014-05-01 18:22 ` Bernd Kuhls
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140430083018.GA27960@pc-eric \
--to=eric.le.bihan.dev@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox