[Mesa-dev] Mesa (master): EGL: Implement the libglvnd interface for EGL (v3)

Kyle Brenneman kbrenneman at nvidia.com
Mon Apr 17 18:27:15 UTC 2017


On 04/17/2017 12:11 PM, Brian Paul wrote:
> On 04/17/2017 07:34 AM, Emil Velikov wrote:
>> Module: Mesa
>> Branch: master
>> Commit: ce562f9e3fab769d64b0e5453ec2b4f8710a31ce
>> URL: 
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__cgit.freedesktop.org_mesa_mesa_commit_-3Fid-3Dce562f9e3fab769d64b0e5453ec2b4f8710a31ce&d=DwIGaQ&c=uilaK90D4TOVoH58JNXRgQ&r=Ie7_encNUsqxbSRbqbNgofw0ITcfE8JKfaUjIQhncGA&m=Ds3k6rGGKUw1azY-6PwRSbT8_barIkKrpFEb5MgLHjM&s=4kQ3DN9Ehflpps_falc-HyFLfFgctDCTsD87JMnF4K8&e=
>>
>> Author: Kyle Brenneman <kbrenneman at nvidia.com>
>> Date:   Wed Jan  4 11:31:58 2017 -0700
>>
>> EGL: Implement the libglvnd interface for EGL (v3)
>>
>> The new interface mostly just sits on top of the existing library.
>>
>> The only change to the existing EGL code is to split the client
>> extension string into platform extensions and everything else. On
>> non-glvnd builds, eglQueryString will just concatenate the two strings.
>>
>> The EGL dispatch stubs are all generated. The script is based on the one
>> used to generate entrypoints in libglvnd itself.
>>
>> v2: [Kyle]
>>   - Rebased against master.
>>   - Reworked the EGL makefile to use separate libraries
>>   - Made the EGL code generation scripts work with Python 2 and 3.
>>   - Change gen_egl_dispatch.py to use argparse for the command line 
>> arguments.
>>   - Assorted formatting and style cleanup in the Python scripts.
>>
>> v3: [Emil Velikov]
>>   - Rebase
>>   - Remove separate glvnd glx/egl configure toggles
>>
>> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
>>
>
> This breaks my build:
>
> ./autogen.sh CFLAGS="-g -O0" CXXFLAGS="-g -O0" --enable-debug 
> --enable-glx=gallium-xlib --disable-driglx-direct --disable-dri 
> --enable-osmesa --with-gallium-drivers=swrast,svga --disable-xvmc 
> --disable-gbm --disable-egl
> autoreconf: Entering directory `.'
> autoreconf: configure.ac: not using Gettext
> autoreconf: running: aclocal --force -I m4
> autoreconf: configure.ac: tracing
> autoreconf: running: libtoolize --copy --force
> libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `bin'.
> libtoolize: copying file `bin/ltmain.sh'
> libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
> libtoolize: copying file `m4/libtool.m4'
> libtoolize: copying file `m4/ltoptions.m4'
> libtoolize: copying file `m4/ltsugar.m4'
> libtoolize: copying file `m4/ltversion.m4'
> libtoolize: copying file `m4/lt~obsolete.m4'
> autoreconf: running: /usr/bin/autoconf --force
> configure.ac:1370: error: possibly undefined macro: PKG_CHECK_VAR
>       If this token and others are legitimate, please use 
> m4_pattern_allow.
>       See the Autoconf documentation.
> autoreconf: /usr/bin/autoconf failed with exit status: 1
>
>
> We reverted a couple patches that used PKG_CHECK_VAR last month:
>
> https://lists.freedesktop.org/archives/mesa-dev/2017-March/147054.html
>
> Kyle, is there some way you can work around using PKG_CHECK_VAR?
> -Brian
>
It uses PKG_CHECK_VAR to figure out where the JSON file for Mesa should 
get installed, since that depends on the prefixes when libglvnd was 
configured.

The first alternative that I can think of would be to run pkg-config 
manually from the configure script. I think running "pkg-config 
--variable=..." works at least as far back as pkg-config 0.26. I'm not 
sure about older than that.

If that doesn't work, then it could also just fall back to using the 
datadir and sysconfdir paths that Mesa is configured with, and assume 
that libglvnd was configured the same way.

-Kyle



More information about the mesa-dev mailing list