Skip to content

Commit 91f591a

Browse files
committed
up to 16.0.0
multiple upstream fixes for build failures/missing soname from: intel/opencl-clang#416 intel/opencl-clang#419 intel/opencl-clang#437 intel/opencl-clang#439
1 parent 6656c21 commit 91f591a

File tree

5 files changed

+212
-9
lines changed

5 files changed

+212
-9
lines changed

cxx17.patch

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
From 7eed60a0ccefe9354da1ab0e54a045df8b6b06e9 Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <[email protected]>
3+
Date: Fri, 14 Apr 2023 12:02:13 +0200
4+
Subject: [PATCH] Bump CMAKE_CXX_STANDARD to 17
5+
6+
Fixes build issues
7+
---
8+
CMakeLists.txt | 2 +-
9+
1 file changed, 1 insertion(+), 1 deletion(-)
10+
11+
diff --git a/CMakeLists.txt b/CMakeLists.txt
12+
index 3d7eff1..efb2adf 100644
13+
--- a/CMakeLists.txt
14+
+++ b/CMakeLists.txt
15+
@@ -58,7 +58,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
16+
${CMAKE_MODULE_PATH}
17+
${LLVM_CMAKE_DIR})
18+
19+
- set(CMAKE_CXX_STANDARD 14)
20+
+ set(CMAKE_CXX_STANDARD 17)
21+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
22+
23+
option(LLVMSPIRV_INCLUDED_IN_LLVM

llvm16.patch

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
From 1568bb95cbae480e15ef985ad2e0e695a65516c5 Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <[email protected]>
3+
Date: Fri, 14 Apr 2023 19:07:42 +0200
4+
Subject: [PATCH] Support llvm headers in
5+
${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}/
6+
7+
Fedora places llvm include files into that directory instead of assumed
8+
${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/include/
9+
10+
Try both, fail horribly when none of them exist
11+
---
12+
cl_headers/CMakeLists.txt | 11 +++++++++--
13+
1 file changed, 9 insertions(+), 2 deletions(-)
14+
15+
diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
16+
index 788adff..70aa321 100644
17+
--- a/cl_headers/CMakeLists.txt
18+
+++ b/cl_headers/CMakeLists.txt
19+
@@ -15,8 +15,15 @@ add_custom_command(
20+
endfunction(copy_file)
21+
22+
if(USE_PREBUILT_LLVM)
23+
- set(OPENCL_HEADERS_DIR
24+
- "${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/include/")
25+
+ if(EXISTS "${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/")
26+
+ set(OPENCL_HEADERS_DIR
27+
+ "${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/include/")
28+
+ elseif(EXISTS "${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}/")
29+
+ set(OPENCL_HEADERS_DIR
30+
+ "${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}/include/")
31+
+ else()
32+
+ message(FATAL_ERROR "[OPENCL-CLANG] Couldn't find prebuilt LLVM include directory.")
33+
+ endif()
34+
else(USE_PREBUILT_LLVM)
35+
set(OPENCL_HEADERS_DIR "${CLANG_SOURCE_DIR}/lib/Headers")
36+
endif(USE_PREBUILT_LLVM)

opencl-clang.spec

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
11

22
# requires the OpenCL patches
3-
%define llvm_version 15.0.0
4-
%define spirv_llvm_translator_version 15.0.0
3+
%define llvm_version 16.0.0
4+
%define spirv_llvm_translator_version 16.0.0
55

66
Summary: Intel Graphics Compute Runtime for OpenCL
77
Summary(pl.UTF-8): Biblioteki uruchomieniowe Intel Graphics Compute dla OpenCL
88
Name: opencl-clang
9-
Version: 15.0.0
10-
Release: 3
9+
Version: 16.0.0
10+
Release: 1
1111
License: University of Illinois/NCSA Open Source License
1212
Group: Libraries
1313
Source0: https://github.com/intel/opencl-clang/archive/v%{version}/%{name}-%{version}.tar.gz
14-
# Source0-md5: 9c11f058256917e48f1be64fe4dc6666
14+
# Source0-md5: f2eb3b9f9201349860f0e7ef0eb31d46
15+
Patch0: cxx17.patch
16+
Patch1: llvm16.patch
17+
Patch2: soname.patch
18+
Patch3: standalone.patch
1519
URL: https://01.org/compute-runtime
1620
BuildRequires: SPIRV-LLVM-Translator-devel >= %{spirv_llvm_translator_version}
1721
BuildRequires: clang >= %{llvm_rpm_version}
1822
BuildRequires: clang-devel >= %{llvm_version}
19-
BuildRequires: cmake >= 3.4.3
23+
BuildRequires: cmake >= 3.13.4
2024
BuildRequires: llvm-devel >= %{llvm_version}
2125
BuildRequires: pkgconfig
2226
BuildRequires: rpmbuild(macros) >= 1.605
@@ -47,6 +51,10 @@ Pliki nagłówkowe biblioteki %{name}.
4751

4852
%prep
4953
%setup -q
54+
%patch0 -p1
55+
%patch1 -p1
56+
%patch2 -p1
57+
%patch3 -p1
5058

5159
%build
5260
install -d build
@@ -68,8 +76,8 @@ rm -rf $RPM_BUILD_ROOT
6876
%{__make} -C build install \
6977
DESTDIR=$RPM_BUILD_ROOT
7078

71-
%{__mv} $RPM_BUILD_ROOT%{_libdir}/libopencl-clang.so.15 $RPM_BUILD_ROOT%{_libdir}/libopencl-clang.so.%{llvm_version}
72-
ln -s libopencl-clang.so.%{llvm_version} $RPM_BUILD_ROOT%{_libdir}/libopencl-clang.so.15
79+
%{__mv} $RPM_BUILD_ROOT%{_libdir}/libopencl-clang.so.16 $RPM_BUILD_ROOT%{_libdir}/libopencl-clang.so.%{llvm_version}
80+
ln -s libopencl-clang.so.%{llvm_version} $RPM_BUILD_ROOT%{_libdir}/libopencl-clang.so.16
7381
ln -sf libopencl-clang.so.%{llvm_version} $RPM_BUILD_ROOT%{_libdir}/libopencl-clang.so
7482

7583
%post -p /sbin/ldconfig
@@ -82,7 +90,7 @@ rm -rf $RPM_BUILD_ROOT
8290
%defattr(644,root,root,755)
8391
%doc README.md
8492
%attr(755,root,root) %{_libdir}/libopencl-clang.so.%{llvm_version}
85-
%ghost %attr(755,root,root) %{_libdir}/libopencl-clang.so.15
93+
%ghost %attr(755,root,root) %{_libdir}/libopencl-clang.so.16
8694

8795
%files devel
8896
%defattr(644,root,root,755)

soname.patch

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
From 8102ee2f83c3bd87e5b6aa405d04b5c3abc5ef3b Mon Sep 17 00:00:00 2001
2+
From: Wenju He <[email protected]>
3+
Date: Wed, 17 May 2023 08:54:44 +0800
4+
Subject: [PATCH] Revert to use add_llvm_library and revert linking LLVM
5+
libraries
6+
7+
Add cmake option EXCLUDE_LIBS_FROM_ALL to remove a specific llvm library
8+
from llvm 'all'.
9+
10+
This PR partially reverts 743bd15.
11+
This PR addresses #401, #417, #418, #422, and brings back SONAME.
12+
---
13+
CMakeLists.txt | 73 +++++++++++---------------------------------------
14+
1 file changed, 15 insertions(+), 58 deletions(-)
15+
16+
diff --git a/CMakeLists.txt b/CMakeLists.txt
17+
index b1bde90..5b3c4b7 100644
18+
--- a/CMakeLists.txt
19+
+++ b/CMakeLists.txt
20+
@@ -292,21 +292,23 @@ else()
21+
)
22+
endif()
23+
24+
-add_library(${TARGET_NAME} SHARED
25+
- ${TARGET_INCLUDE_FILES}
26+
- ${TARGET_SOURCE_FILES}
27+
- $<TARGET_OBJECTS:cl_headers>
28+
-)
29+
-
30+
-# Same CRT compile option are reqiured to avoid link errors on Windows.
31+
-# MD and MDd are choosed by default for release and debug build in LLVM.
32+
-# If users set MT or MTd flags, they also need to add the flags for
33+
-# opencl-clang sources using a custom macro set_msvc_crt_flags.
34+
-if(COMMAND set_msvc_crt_flags)
35+
- set_msvc_crt_flags(${TARGET_NAME})
36+
+set(EXCLUDE_LIBS_FROM_ALL "" CACHE STRING "Space-separated list of LLVM libraries to exclude from all")
37+
+llvm_map_components_to_libnames(ALL_LLVM_LIBS all)
38+
+if (NOT "${EXCLUDE_LIBS_FROM_ALL}" STREQUAL "")
39+
+ list(REMOVE_ITEM ALL_LLVM_LIBS ${EXCLUDE_LIBS_FROM_ALL})
40+
endif()
41+
+list(APPEND OPENCL_CLANG_LINK_LIBS ${ALL_LLVM_LIBS})
42+
+
43+
+add_llvm_library(${TARGET_NAME} SHARED
44+
+ ${TARGET_INCLUDE_FILES}
45+
+ ${TARGET_SOURCE_FILES}
46+
+ $<TARGET_OBJECTS:cl_headers>
47+
48+
-add_dependencies(${TARGET_NAME} CClangCompileOptions)
49+
+ DEPENDS CClangCompileOptions
50+
+
51+
+ LINK_LIBS
52+
+ ${OPENCL_CLANG_LINK_LIBS}
53+
+ )
54+
55+
if (WIN32)
56+
# Enable compiler generation of Control Flow Guard security checks.
57+
@@ -322,51 +324,6 @@ elseif(UNIX)
58+
LINK_FLAGS " -Wl,--no-undefined")
59+
endif(WIN32)
60+
61+
-# Enable new IN_LIST operator.
62+
-cmake_policy(SET CMP0057 NEW)
63+
-set(OTHER_LIBRARIES)
64+
-if ("NVPTX" IN_LIST LLVM_TARGETS_TO_BUILD)
65+
- list(APPEND OTHER_LIBRARIES LLVMNVPTXCodeGen LLVMNVPTXDesc LLVMNVPTXInfo)
66+
-endif()
67+
-if ("AMDGPU" IN_LIST LLVM_TARGETS_TO_BUILD)
68+
- list(APPEND OTHER_LIBRARIES LLVMAMDGPUCodeGen LLVMAMDGPUAsmParser LLVMAMDGPUDesc LLVMAMDGPUInfo)
69+
-endif()
70+
-
71+
-target_link_libraries( ${TARGET_NAME}
72+
- LINK_PRIVATE
73+
- ${OPENCL_CLANG_LINK_LIBS}
74+
- LLVMX86CodeGen
75+
- LLVMX86AsmParser
76+
- LLVMX86Desc
77+
- LLVMX86Info
78+
- LLVMX86Disassembler
79+
- LLVMAnalysis
80+
- LLVMCodeGen
81+
- LLVMCore
82+
- LLVMipo
83+
- LLVMInstCombine
84+
- LLVMInstrumentation
85+
- LLVMMC
86+
- LLVMMCParser
87+
- LLVMObjCARCOpts
88+
- LLVMOption
89+
- LLVMScalarOpts
90+
- LLVMSupport
91+
- LLVMTransformUtils
92+
- LLVMVectorize
93+
- LLVMAsmPrinter
94+
- LLVMSelectionDAG
95+
- LLVMMCDisassembler
96+
- LLVMProfileData
97+
- LLVMObject
98+
- LLVMBitWriter
99+
- LLVMIRReader
100+
- LLVMAsmParser
101+
- LLVMTarget
102+
- LLVMBitReader
103+
- ${OTHER_LIBRARIES}
104+
- )
105+
-
106+
install(FILES opencl_clang.h
107+
DESTINATION include/cclang
108+
COMPONENT ${TARGET_NAME})

standalone.patch

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
From 3efa0f5e1770dc082919adc8e8d48b19ecaaabaa Mon Sep 17 00:00:00 2001
2+
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <[email protected]>
3+
Date: Fri, 21 Apr 2023 04:07:21 +0200
4+
Subject: [PATCH] Fix standalone build (#415)
5+
6+
Fixes https://github.com/intel/opencl-clang/issues/406
7+
Fixes https://github.com/intel/opencl-clang/issues/374
8+
9+
(cherry picked from commit 529a9188114bcbd8ed753d2276942384fa50d7a1)
10+
---
11+
cl_headers/CMakeLists.txt | 6 +++++-
12+
1 file changed, 5 insertions(+), 1 deletion(-)
13+
14+
diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
15+
index 788adff..86df76f 100644
16+
--- a/cl_headers/CMakeLists.txt
17+
+++ b/cl_headers/CMakeLists.txt
18+
@@ -1,5 +1,9 @@
19+
set(CL_HEADERS_LIB cl_headers)
20+
-set(CLANG_COMMAND $<TARGET_FILE:clang> )
21+
+if(USE_PREBUILT_LLVM)
22+
+ find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
23+
+else()
24+
+ set(CLANG_COMMAND $<TARGET_FILE:clang>)
25+
+endif()
26+
if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
27+
build_native_tool(clang CLANG_COMMAND)
28+
endif()

0 commit comments

Comments
 (0)