Message ID | 1494871521-14389-1-git-send-email-daniel.diaz@linaro.org |
---|---|
State | New |
Headers | show |
Hello!
On 15 May 2017 at 15:05, Dylan Baker <baker.dylan.c@gmail.com> wrote:
> GBM_HEADERS is undefined on my system with mesa 17.0.5.
Thanks for giving it a go. It failed to find gbm_bo_map (as expected)
on my system, but for the wrong reason (GBM_HEADERS being undefined).
I have tried a few variations around CHECK_SYMBOL_EXISTS and
gbm_bo_create (which should work) and still fails. I only managed to
get it to properly identify the function with CHECK_FUNCTION_EXISTS.
Will submit a respin of v1.
Greetings!
Daniel Díaz
daniel.diaz@linaro.org
diff --git a/CMakeLists.txt b/CMakeLists.txt index a4ff99e..274490f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -141,8 +141,8 @@ 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) + CHECK_SYMBOL_EXISTS(gbm_bo_map GBM_HEADERS PIGLIT_HAS_GBM_BO_MAP) + if (PIGLIT_HAS_GBM_BO_MAP) add_definitions(-DPIGLIT_HAS_GBM_BO_MAP) endif() endif(GBM_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: Daniel Díaz <daniel.diaz@linaro.org> --- v2: Use CHECK_SYMBOL_EXISTS as suggested by Jan Vesely CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)