Commit 2217871a authored by Daniel Diaz's avatar Daniel Diaz Committed by Dylan Baker

CMake: define GBM_BO_MAP only when symbol is found

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: default avatarDaniel Díaz <daniel.diaz@linaro.org>
Reviewed-by: Jan Vesely's avatarJan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Dylan Baker's avatarDylan Baker <dylan@pnwbakers.com>
parent 0d401ef0
......@@ -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)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment