[Piglit] [PATCH v5] CMake: define GBM_BO_MAP only when symbol is found

Daniel Díaz Rodríguez daniel.diaz at linaro.org
Wed Jun 7 14:14:22 UTC 2017


Ping.

-- 
ddiaz


On 30 May 2017 at 12:52, Dylan Baker <baker.dylan.c at gmail.com> wrote:
> Quoting Daniel Díaz (2017-05-16 17:06:40)
>> gbm_bo_map() and _unmap() have been added recently to Mesa,
>> and this update may not have reached all implementations of
>> GBM, such as the one provided by Mali r6, where said
>> definitions can be found in the header file but not in the
>> library itself. This leads to errors like the following when
>> linking:
>>   ../../../../lib/libpiglitutil_gl.so.0: undefined reference to `gbm_bo_unmap'
>>   ../../../../lib/libpiglitutil_gl.so.0: undefined reference to `gbm_bo_map'
>>   collect2: error: ld returned 1 exit status
>>   make[2]: *** [bin/point-sprite] Error 1
>>
>> Instead of relying on the header file, actually try to link
>> using that symbol to determine if PIGLIT_HAS_GBM_BO_MAP
>> should be defined.
>>
>> Signed-off-by: Daniel Díaz <daniel.diaz at linaro.org>
>> Reviewed-by: Jan Vesely <jan.vesely at rutgers.edu>
>> ---
>> v2: Use CHECK_SYMBOL_EXISTS as suggested by Jan Vesely.
>> v3: Back to CHECK_FUNCTION_EXISTS.
>> v4: Use ${GBM_LIBRARIES} instead of 'gbm'.
>> v5: Add reviewed-by; hopefully final version.
>>
>>  CMakeLists.txt | 5 +++--
>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/CMakeLists.txt b/CMakeLists.txt
>> index a4ff99e..cc26fa8 100644
>> --- a/CMakeLists.txt
>> +++ b/CMakeLists.txt
>> @@ -141,8 +141,9 @@ IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
>>         if(GBM_FOUND)
>>                 set(PIGLIT_HAS_GBM True)
>>                 add_definitions(-DPIGLIT_HAS_GBM)
>> -               if (GBM_VERSION VERSION_EQUAL "12.1" OR GBM_VERSION VERSION_GREATER "12.1")
>> -                       set(PIGLIT_HAS_GBM_BO_MAP True)
>> +               set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${GBM_LIBRARIES})
>> +               CHECK_FUNCTION_EXISTS(gbm_bo_map PIGLIT_HAS_GBM_BO_MAP)
>> +               if (PIGLIT_HAS_GBM_BO_MAP)
>>                         add_definitions(-DPIGLIT_HAS_GBM_BO_MAP)
>>                 endif()
>>         endif(GBM_FOUND)
>> --
>> 1.9.1
>>
>
> Sorry, I've been on vacation. I checked that this does still find GBM_BO_MAP on
> my system, and that it still compiles,
>
> Reviewed-by: Dylan Baker <dylan at pnwbakers.com>


More information about the Piglit mailing list