piglit: add patch for lack of gbm_bo_map

[Backported from master.]

[Piglit Bug #100978] -- https://bugs.freedesktop.org/show_bug.cgi?id=100978

When linking against Mali 450 r6, errors like the following
can be seen:
  ../../../../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

This is due to gbm_bo_map() and gbm_bo_unmap() being recently
added but not yet implemented by all graphics drivers.

Instead of relying on GBM's version, actually try to link
against those symbols.

(From OE-Core rev: 484db109df742aafa8efc41dc3a8d31386d9b2a3)

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Daniel Díaz 2017-06-07 09:51:20 -05:00 committed by Richard Purdie
parent a99c56fb6d
commit 262af7bf2d
2 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,51 @@
From 47697aee05a112422acf203982085e7b3e6c05b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20D=C3=ADaz?= <daniel.diaz@linaro.org>
Date: Thu, 4 May 2017 00:57:39 -0500
Subject: [PATCH 1/4] CMake: define GBM_BO_MAP only when symbol is found
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
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.
Upstream-Status: Submitted [piglit@lists.freedesktop.org]
Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
---
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

View File

@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b2beded7103a3d8a442a2a0391d607b0"
SRC_URI = "git://anongit.freedesktop.org/piglit \
file://0001-cmake-install-bash-completions-in-the-right-place.patch \
file://0001-tests-Use-FE_UPWARD-only-if-its-defined-in-fenv.h.patch \
file://0001-CMake-define-GBM_BO_MAP-only-when-symbol-is-found.patch \
"
# From 2017-02-06