Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] Solving the mesa3d build issue
Date: Sat, 17 Nov 2012 15:03:57 +0100	[thread overview]
Message-ID: <20121117150357.2aa86a1c@skate> (raw)

Hello,

The mesa3d build is currently broken because it generates during its
build process a bunch of C files from a XML description of the OpenGL
APIs. This generation process is done through Python scripts that
require the libxml2 Python bindings to be installed.

Unfortunately, those libxml2 Python bindings are part of the libxml2
source code itself, so we would have to enable host-python as a
dependency of host-libxml2 in order to get those Python bindings built
and installed. This means that all other users of host-libxml2 would
pay the price of building host-python even if they don't need it, which
is quite annoying.

We have several solutions to address this problem:

 (1) The solution proposed by Will Wagner/Noel Vellemans at
     http://lists.busybox.net/pipermail/buildroot/2012-November/061594.html
     and
     http://lists.busybox.net/pipermail/buildroot/2012-November/061595.html.

     This solution consists in adding a BR2_PACKAGE_HOST_LIBXML2_PYTHON
     hidden configuration symbol, that mesa3d selects. It sells the
     host-libxml2 package that it should build the Python binding, and
     therefore depend on host-python.

     It is quite nice in the sense that it is simple and only builds
     host-python as a dependency of host-libxml2 when needed. However,
     it adds something entirely non-standard: a hidden kconfig option
     that tunes the compilation of a host package. Do we want to do
     this?

 (2) Workaround the problem by adding the generated C files as patches
     to the mesa3d package so that generating them at build time is not
     needed. Unfortunately, those generated files are quite large, so
     I'm not sure we want them as patches. And it also means they would
     have to be updated whenever we bump the mesa3d version.

     -rw-r--r-- 1 thomas thomas 181158 Nov 17 13:02 api_exec_es1.c
     -rw-r--r-- 1 thomas thomas  94023 Nov 17 13:02 api_exec_es2.c

 (3) Rewrite the small Python script that generates those C files so
     that it uses the XML APIs available in the standard Python library
     instead of the libxml2 XML APIs. This is not too complicated, but
     doing it on the old 7.10.1 version we're using seems like a waste
     of time (we'd better do it on a more recent version so that it
     could maybe be upstreamed at some point). I've tried bumping
     mesa3d. It is certainly doable, but requires the bumping of quite
     a few other packages.

We really need to solve that problem, so I would be grateful if you
could comment on it. Peter?

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

             reply	other threads:[~2012-11-17 14:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-17 14:03 Thomas Petazzoni [this message]
2012-11-17 16:49 ` [Buildroot] Solving the mesa3d build issue Peter Korsgaard
2012-11-21 18:34 ` Arnout Vandecappelle
2012-11-22  7:34   ` Thomas Petazzoni

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=20121117150357.2aa86a1c@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --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