[beignet] 09/12: Simplify LLVM/Clang version selection, and allow 3.6

Rebecca Palmer rnpalmer-guest at moszumanska.debian.org
Wed Mar 18 21:37:46 UTC 2015


This is an automated email from the git hooks/post-receive script.

rnpalmer-guest pushed a commit to branch master
in repository beignet.

commit 82b66865539048bd7a7c45dec0add3195da2a6f1
Author: Rebecca N. Palmer <rebecca_palmer at zoho.com>
Date:   Wed Mar 18 20:12:32 2015 +0000

    Simplify LLVM/Clang version selection, and allow 3.6
    
    Version can now be set by editing just debian/control
---
 debian/changelog                         |   1 +
 debian/patches/find-versioned-llvm.patch | 116 +++++++++++++++++++++++++++++++
 debian/patches/force-llvm-3.5.patch      |  52 --------------
 debian/patches/series                    |   2 +-
 4 files changed, 118 insertions(+), 53 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index a6145ec..35b3fd5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,6 +15,7 @@ beignet (1.0.2-1) UNRELEASED; urgency=medium
     on unsupported hardware.
   * Fix crash if /dev/dri/card0 is inaccessible.
   * Enable standard-compliant precision by default.
+  * Simplify LLVM/Clang version selection.
 
  -- Andreas Beckmann <anbe at debian.org>  Tue, 17 Mar 2015 23:29:43 +0100
 
diff --git a/debian/patches/find-versioned-llvm.patch b/debian/patches/find-versioned-llvm.patch
new file mode 100644
index 0000000..6ff9d6a
--- /dev/null
+++ b/debian/patches/find-versioned-llvm.patch
@@ -0,0 +1,116 @@
+Description: Simplify LLVM/Clang version selection
+
+Find non-default (i.e. version-in-name) clang/as/link
+Allow version 3.6
+
+Author: Rebecca Palmer <rebecca_palmer at zoho.com>
+
+--- beignet-1.0.2.orig/CMake/FindLLVM.cmake
++++ beignet-1.0.2/CMake/FindLLVM.cmake
+@@ -8,12 +8,12 @@
+ # LLVM_FOUND       - True if llvm found.
+ if (LLVM_INSTALL_DIR)
+   find_program(LLVM_CONFIG_EXECUTABLE
+-               NAMES llvm-config-35 llvm-config-3.5 llvm-config-33 llvm-config-3.3 llvm-config-34 llvm-config-3.4 llvm-config
++               NAMES llvm-config-35 llvm-config-3.5 llvm-config-36 llvm-config-3.6 llvm-config-33 llvm-config-3.3 llvm-config-34 llvm-config-3.4 llvm-config
+                DOC "llvm-config executable"
+                PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
+ else (LLVM_INSTALL_DIR)
+   find_program(LLVM_CONFIG_EXECUTABLE
+-               NAMES llvm-config-35 llvm-config-3.5 llvm-config-33 llvm-config-3.3 llvm-config-34 llvm-config-3.4 llvm-config
++               NAMES llvm-config-35 llvm-config-3.5 llvm-config-36 llvm-config-3.6 llvm-config-33 llvm-config-3.3 llvm-config-34 llvm-config-3.4 llvm-config
+                DOC "llvm-config executable")
+ endif (LLVM_INSTALL_DIR)
+ 
+@@ -28,13 +28,15 @@ SET(LLVM_STABLE_VERSION_MINOR "5")
+ SET(LLVM_STABLE_VERSION_NODOT "${LLVM_STABLE_VERSION_MAJOR}${LLVM_STABLE_VERSION_MINOR}")
+ SET(LLVM_STABLE_VERSION "${LLVM_STABLE_VERSION_MAJOR}.${LLVM_STABLE_VERSION_MINOR}")
+ 
++execute_process(
++  COMMAND ${LLVM_CONFIG_EXECUTABLE} --version
++  OUTPUT_VARIABLE LLVM_VERSION
++  OUTPUT_STRIP_TRAILING_WHITESPACE
++)
++string(REGEX REPLACE "([0-9])\\.([0-9]*).*" "\\1\\2" LLVM_VERSION_NODOT ${LLVM_VERSION})
++string(REGEX REPLACE "([0-9])\\.([0-9]*).*" "\\1.\\2" LLVM_VERSION_NOPATCH ${LLVM_VERSION})
+ if (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)
+   SET(LLVM_FIND_VERSION_NODOT "${LLVM_FIND_VERSION_MAJOR}${LLVM_FIND_VERSION_MINOR}")
+-  execute_process(
+-    COMMAND ${LLVM_CONFIG_EXECUTABLE} --version
+-    OUTPUT_VARIABLE LLVM_VERSION
+-  )
+-  string(REGEX REPLACE "([0-9])\\.([0-9]*).*" "\\1\\2 " LLVM_VERSION_NODOT ${LLVM_VERSION})
+   if (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
+     message(FATAL_ERROR "imcompatible LLVM version ${LLVM_VERSION} required ${LLVM_FIND_VERSION}")
+   else (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
+@@ -48,6 +50,25 @@ if (LLVM_FIND_VERSION_MAJOR AND LLVM_FIN
+   endif (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
+ endif (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)
+ 
++if (LLVM_INSTALL_DIR)
++  find_program(CLANG_EXECUTABLE
++               NAMES clang-${LLVM_VERSION_NODOT} clang-${LLVM_VERSION_NOPATCH} clang
++               PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
++  find_program(LLVM_AS_EXECUTABLE
++               NAMES llvm-as-${LLVM_VERSION_NODOT} llvm-as-${LLVM_VERSION_NOPATCH} llvm-as
++               PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
++  find_program(LLVM_LINK_EXECUTABLE
++               NAMES llvm-link-${LLVM_VERSION_NODOT} llvm-link-${LLVM_VERSION_NOPATCH} llvm-link
++               PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
++else (LLVM_INSTALL_DIR)
++  find_program(CLANG_EXECUTABLE
++               NAMES clang-${LLVM_VERSION_NODOT} clang-${LLVM_VERSION_NOPATCH} clang)
++  find_program(LLVM_AS_EXECUTABLE
++               NAMES llvm-as-${LLVM_VERSION_NODOT} llvm-as-${LLVM_VERSION_NOPATCH} llvm-as)
++  find_program(LLVM_LINK_EXECUTABLE
++               NAMES llvm-link-${LLVM_VERSION_NODOT} llvm-link-${LLVM_VERSION_NOPATCH} llvm-link)
++endif (LLVM_INSTALL_DIR)
++
+ execute_process(
+   COMMAND ${LLVM_CONFIG_EXECUTABLE} --includedir
+   OUTPUT_VARIABLE LLVM_INCLUDE_DIR
+--- beignet-1.0.2.orig/backend/src/libocl/CMakeLists.txt
++++ beignet-1.0.2/backend/src/libocl/CMakeLists.txt
+@@ -136,7 +136,7 @@ MACRO(ADD_CL_TO_BC_TARGET _file)
+     ADD_CUSTOM_COMMAND(OUTPUT ${output_name}
+ 	COMMAND mkdir -p ${OCL_OBJECT_DIR}/
+ 	#COMMAND echo ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -I ${LIBOCL_BINARY_DIR}/include/ -emit-llvm-bc -triple spir -o ${output_name} -x cl ${_file}
+-	COMMAND ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -I ${OCL_OBJECT_DIR}/include/ -emit-llvm-bc -triple spir -o ${output_name} -x cl ${_file}
++	COMMAND ${CLANG_EXECUTABLE} -cc1 ${CLANG_OCL_FLAGS} -I ${OCL_OBJECT_DIR}/include/ -emit-llvm-bc -triple spir -o ${output_name} -x cl ${_file}
+ 	DEPENDS ${_file} ${OCL_HEADER_FILES}
+ 	COMMENT "Compiling ${_file}"
+ 	)
+@@ -175,7 +175,7 @@ MACRO(ADD_LL_TO_BC_TARGET M)
+     ADD_CUSTOM_COMMAND(OUTPUT ${output_name}
+ 	COMMAND mkdir -p ${OCL_OBJECT_DIR}/
+ 	#COMMAND echo ${LLVM_INSTALL_DIR}llvm-as -o ${output_name} ${srcll_name}
+-	COMMAND ${LLVM_INSTALL_DIR}llvm-as -o ${output_name} ${srcll_name}
++	COMMAND ${LLVM_AS_EXECUTABLE} -o ${output_name} ${srcll_name}
+ 	DEPENDS ${srcll_name}
+ 	COMMENT "Compiling ${srcll_name}"
+ 	)
+@@ -193,21 +193,21 @@ ENDFOREACH(f)
+ ADD_CUSTOM_COMMAND(OUTPUT ${OCL_OBJECT_DIR}/beignet.bc
+     COMMAND mkdir -p ${LIBOCL_BINARY_DIR}/lib/
+     #COMMAND echo llvm-link -o ${LIBOCL_BINARY_DIR}/lib/beignet.bc ${OCL_BC_FILES}
+-    COMMAND ${LLVM_INSTALL_DIR}llvm-link -o ${OCL_OBJECT_DIR}/beignet.bc ${OCL_BC_FILES}
++    COMMAND ${LLVM_LINK_EXECUTABLE} -o ${OCL_OBJECT_DIR}/beignet.bc ${OCL_BC_FILES}
+     DEPENDS ${OCL_BC_FILES}
+     COMMENT "Generate the bitcode file: ${OCL_OBJECT_DIR}/beignet.bc"
+     )
+ 
+ ADD_CUSTOM_COMMAND(OUTPUT ${OCL_OBJECT_DIR}/beignet.local.pch
+     COMMAND mkdir -p ${OCL_OBJECT_DIR}
+-    COMMAND ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ -emit-pch -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.local.pch
++    COMMAND ${CLANG_EXECUTABLE} -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ -emit-pch -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.local.pch
+     DEPENDS ${OCL_HEADER_FILES}
+     COMMENT "Generate the pch file: ${OCL_OBJECT_DIR}/beignet.local.pch"
+     )
+ 
+ ADD_CUSTOM_COMMAND(OUTPUT ${OCL_OBJECT_DIR}/beignet.pch
+     COMMAND mkdir -p ${OCL_OBJECT_DIR}
+-    COMMAND ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ --relocatable-pch -emit-pch -isysroot ${LIBOCL_BINARY_DIR} -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.pch
++    COMMAND ${CLANG_EXECUTABLE} -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ --relocatable-pch -emit-pch -isysroot ${LIBOCL_BINARY_DIR} -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.pch
+     DEPENDS ${OCL_HEADER_FILES}
+     COMMENT "Generate the pch file: ${OCL_OBJECT_DIR}/beignet.pch"
+     )
diff --git a/debian/patches/force-llvm-3.5.patch b/debian/patches/force-llvm-3.5.patch
deleted file mode 100644
index 0169f14..0000000
--- a/debian/patches/force-llvm-3.5.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Description: Explicitly use LLVM/Clang 3.5
-
-The default on Ubuntu is now 3.6, which doesn't work for this package:
-https://launchpad.net/~ginggs/+archive/ubuntu/testing/+build/6971271/+files/buildlog_ubuntu-vivid-amd64.beignet_1.0.1-1%7Eubuntu15.04.1%7Eppa1_FAILEDTOBUILD.txt.gz
-
-Author: Rebecca Palmer <rebecca_palmer at zoho.com>
-
---- beignet-1.0.1.orig/backend/src/libocl/CMakeLists.txt
-+++ beignet-1.0.1/backend/src/libocl/CMakeLists.txt
-@@ -136,7 +136,7 @@ MACRO(ADD_CL_TO_BC_TARGET _file)
-     ADD_CUSTOM_COMMAND(OUTPUT ${output_name}
- 	COMMAND mkdir -p ${OCL_OBJECT_DIR}/
- 	#COMMAND echo ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -I ${LIBOCL_BINARY_DIR}/include/ -emit-llvm-bc -triple spir -o ${output_name} -x cl ${_file}
--	COMMAND ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -I ${OCL_OBJECT_DIR}/include/ -emit-llvm-bc -triple spir -o ${output_name} -x cl ${_file}
-+	COMMAND ${LLVM_INSTALL_DIR}clang-3.5 -cc1 ${CLANG_OCL_FLAGS} -I ${OCL_OBJECT_DIR}/include/ -emit-llvm-bc -triple spir -o ${output_name} -x cl ${_file}
- 	DEPENDS ${_file} ${OCL_HEADER_FILES}
- 	COMMENT "Compiling ${_file}"
- 	)
-@@ -175,7 +175,7 @@ MACRO(ADD_LL_TO_BC_TARGET M)
-     ADD_CUSTOM_COMMAND(OUTPUT ${output_name}
- 	COMMAND mkdir -p ${OCL_OBJECT_DIR}/
- 	#COMMAND echo ${LLVM_INSTALL_DIR}llvm-as -o ${output_name} ${srcll_name}
--	COMMAND ${LLVM_INSTALL_DIR}llvm-as -o ${output_name} ${srcll_name}
-+	COMMAND ${LLVM_INSTALL_DIR}llvm-as-3.5 -o ${output_name} ${srcll_name}
- 	DEPENDS ${srcll_name}
- 	COMMENT "Compiling ${srcll_name}"
- 	)
-@@ -193,21 +193,21 @@ ENDFOREACH(f)
- ADD_CUSTOM_COMMAND(OUTPUT ${OCL_OBJECT_DIR}/beignet.bc
-     COMMAND mkdir -p ${LIBOCL_BINARY_DIR}/lib/
-     #COMMAND echo llvm-link -o ${LIBOCL_BINARY_DIR}/lib/beignet.bc ${OCL_BC_FILES}
--    COMMAND ${LLVM_INSTALL_DIR}llvm-link -o ${OCL_OBJECT_DIR}/beignet.bc ${OCL_BC_FILES}
-+    COMMAND ${LLVM_INSTALL_DIR}llvm-link-3.5 -o ${OCL_OBJECT_DIR}/beignet.bc ${OCL_BC_FILES}
-     DEPENDS ${OCL_BC_FILES}
-     COMMENT "Generate the bitcode file: ${OCL_OBJECT_DIR}/beignet.bc"
-     )
- 
- ADD_CUSTOM_COMMAND(OUTPUT ${OCL_OBJECT_DIR}/beignet.local.pch
-     COMMAND mkdir -p ${OCL_OBJECT_DIR}
--    COMMAND ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ -emit-pch -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.local.pch
-+    COMMAND ${LLVM_INSTALL_DIR}clang-3.5 -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ -emit-pch -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.local.pch
-     DEPENDS ${OCL_HEADER_FILES}
-     COMMENT "Generate the pch file: ${OCL_OBJECT_DIR}/beignet.local.pch"
-     )
- 
- ADD_CUSTOM_COMMAND(OUTPUT ${OCL_OBJECT_DIR}/beignet.pch
-     COMMAND mkdir -p ${OCL_OBJECT_DIR}
--    COMMAND ${LLVM_INSTALL_DIR}clang -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ --relocatable-pch -emit-pch -isysroot ${LIBOCL_BINARY_DIR} -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.pch
-+    COMMAND ${LLVM_INSTALL_DIR}clang-3.5 -cc1 ${CLANG_OCL_FLAGS} -triple spir -I ${OCL_OBJECT_DIR}/include/ --relocatable-pch -emit-pch -isysroot ${LIBOCL_BINARY_DIR} -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_DIR}/beignet.pch
-     DEPENDS ${OCL_HEADER_FILES}
-     COMMENT "Generate the pch file: ${OCL_OBJECT_DIR}/beignet.pch"
-     )
diff --git a/debian/patches/series b/debian/patches/series
index 308c69a..05b3c0f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,7 +2,7 @@ Enhance-debug-output.patch
 Debian-compliant-compiler-flags-handling.patch
 Link-against-terminfo.patch
 Enable-test-debug.patch
-force-llvm-3.5.patch
+find-versioned-llvm.patch
 support-kfreebsd.patch
 reduce-notfound-output.patch
 fail-gracefully-no-hardware.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opencl/beignet.git



More information about the Pkg-opencl-commits mailing list