[Piglit] [PATCH v5] CMake: define GBM_BO_MAP only when symbol is found
Daniel Díaz Rodríguez
daniel.diaz at linaro.org
Mon May 29 18:13:25 UTC 2017
Ping.
--
ddiaz
On 16 May 2017 at 19:06, Daniel Díaz <daniel.diaz at linaro.org> wrote:
> 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
>
More information about the Piglit
mailing list