[Buildroot] [PATCH] package/opengl: ensure consistency between the various providers
Arnout Vandecappelle
arnout at mind.be
Thu Feb 16 17:46:10 UTC 2017
On 14-02-17 22:13, Yann E. MORIN wrote:
> Some GL providers will provide libegl and libgles, but not libgl, while
> other will provide libgl but not libegl not libgles. This can be the
> case with:
> - mesa3d -> libgl
> - rpi-userland -> libegl and libgles
The commit message is missing an explanation of why this is bad... Something
like "Such a situation leads to conflicting headers and libraries when building
a package that uses both libgl and libegl."
>
> Since we can not protect against this situation in the Config.in files
> (especially because providers may be out-of-tree), we can only check for
> the validity after the fact.
Perhaps it would be possible to create a new opengl virtual package, and that
the libgl* providers provide opengl instead of the specific libgl. So libgl etc.
would no longer be virtual packages by themselves, but just suboptions of
opengl. The libgl* consumers would depend on BR2_PACKAGE_HAS_LIBGL but add
opengl to their dependencies instead of libgl.
Clearly this alternative is too invasive for 2017.02, so your patch is still valid.
>
> Fixes:
> http://autobuild.buildroot.org/results/6f1/6f197c643972e92f0b27b3afac7da7b4b1115f7e/
> http://autobuild.buildroot.org/results/6c6/6c6e0a236bde7b892a69119a49422119f3efaa97/
> http://autobuild.buildroot.org/results/5a2/5a2a1503b7d19c0ca5b0e9093aa24ed9c020e812/
Does the autobuilder script filter out errors like these? If not, the
autobuilder errors will not be fixed, they'll just move...
> ...
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
> ---
> package/opengl/opengl.mk | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/package/opengl/opengl.mk b/package/opengl/opengl.mk
> index abf96d5..47902f2 100644
> --- a/package/opengl/opengl.mk
> +++ b/package/opengl/opengl.mk
> @@ -1 +1,30 @@
> include $(sort $(wildcard package/opengl/*/*.mk))
> +
> +# Ensure consistency betwenn the various GL providers:
> +
> +# If we have a libgl provider, then the libegl provider must be the same
> +ifeq ($(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_HAS_LIBEGL),yy)
> +# No need to qstrip, both are quoted
> +ifneq ($(BR2_PACKAGE_PROVIDES_LIBGL),$(BR2_PACKAGE_PROVIDES_LIBEGL))
> +$(error Provider for libgl ($(BR2_PACKAGE_PROVIDES_LIBGL)) is not the same \
> + as for libegl ($(BR2_PACKAGE_PROVIDES_LIBEGL)))
> +endif
> +endif
Shouldn't all this be protected by BR_BUILDING?
Regards,
Arnout
> +
> +# If we have a libgl provider, then the libgles provider must be the same
> +ifeq ($(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_HAS_LIBGLES),yy)
> +# No need to qstrip, both are quoted
> +ifneq ($(BR2_PACKAGE_PROVIDES_LIBGL),$(BR2_PACKAGE_PROVIDES_LIBGLES))
> +$(error Provider for libgl ($(BR2_PACKAGE_PROVIDES_LIBGL)) is not the same \
> + as for libgles ($(BR2_PACKAGE_PROVIDES_LIBGLES)))
> +endif
> +endif
> +
> +# If we have a libegl provider, then the libgles provider must be the same
> +ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGLES),yy)
> +# No need to qstrip, both are quoted
> +ifneq ($(BR2_PACKAGE_PROVIDES_LIBEGL),$(BR2_PACKAGE_PROVIDES_LIBGLES))
> +$(error Provider for libegl ($(BR2_PACKAGE_PROVIDES_LIBEGL)) is not the same \
> + as for libgles ($(BR2_PACKAGE_PROVIDES_LIBGLES)))
> +endif
> +endif
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
More information about the buildroot
mailing list