diff options
211 files changed, 4636 insertions, 5060 deletions
diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index a99cbb1f..00000000 --- a/CHANGELOG +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | This file will only list major changes that occur within a release. | ||
2 | For a full list of changes, view the git log of the repository. | ||
3 | |||
4 | Rocko Release 11/2017 | ||
5 | ===================== | ||
6 | |||
7 | Moved qat support to separate layer | ||
8 | ----------------------------------- | ||
9 | Quick Assist Technology (QAT) is more middleware and should not be part of the | ||
10 | core BSP. The new layer can be found here: | ||
11 | https://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-qat/ | ||
12 | |||
13 | Moved dpdk support to separate layer | ||
14 | ------------------------------------ | ||
15 | We had some requests to make DPDK standalone so that it could be included | ||
16 | without bringing in anything else from meta-intel, as it is not specific to | ||
17 | Intel(R) hardware. The new layer is located here: | ||
18 | https://git.yoctoproject.org/cgit/cgit.cgi/meta-dpdk/ | ||
19 | |||
20 | Added support for out-of-tree iwlwifi drivers | ||
21 | --------------------------------------------- | ||
22 | Backport-iwlwifi out-of-tree wifi modules are now available via meta-intel. | ||
23 | Backport-iwlwifi brings the latest iwlwifi drivers to almost any kernel | ||
24 | Note that mac80211 and cfg80211 backports are also necessary, which will most | ||
25 | likely cause incompatibility with other in-tree wifi drivers. | ||
26 | See https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi for more info. | ||
27 | |||
28 | Added support for out-of-tree ixgbe drivers | ||
29 | ------------------------------------------- | ||
30 | The out-of-tree ixgbe drivers bring ixgbe support to nearly any kernel. See | ||
31 | here: http://www.intel.com/network/connectivity/products/server_adapters.htm | ||
32 | |||
33 | Added an implementation of Secure Boot | ||
34 | -------------------------------------- | ||
35 | meta-intel now supports a simple Secure Boot implementation. This implementation | ||
36 | consists of a single binary consisting of an EFI stub, the kernel, an | ||
37 | initrd, and a kernel command line. The binary is then signed via keys defined by | ||
38 | the variables SECUREBOOT_SIGNING_KEY and SECUREBOOT_SIGNING_CERT. These keys | ||
39 | should match the keys embedded in your hardware's firmware. | ||
40 | See documentation/secureboot/README for more information on this feature. | ||
41 | |||
42 | Improved Yocto Project Compatibility status | ||
43 | ------------------------------------------- | ||
44 | The common layer should now be considered Yocto Project compatible - it should | ||
45 | no longer modify OE-core values when adding the layer to your bblayers.conf. | ||
46 | The meta-tlk layer is still not Yocto Project compatible, however. | ||
47 | |||
48 | Pyro Release 5/2017 | ||
49 | =================== | ||
50 | |||
51 | Changed default kernel provider from linux-yocto to linux-intel. | ||
52 | ---------------------------------------------------------------- | ||
53 | Linux-intel is an Intel(R)-maintained kernel based on the latest stable | ||
54 | branch, along with backports from upstream to better support Intel(R) | ||
55 | hardware. The intel-linux kernel also has a branch with the preempt-rt | ||
56 | patches applied, providing a preempt-rt kernel with no additional work. | ||
57 | |||
58 | Added QEMU support. | ||
59 | ------------------- | ||
60 | We now build several virtio drivers into the kernel by default, and | ||
61 | have qemuboot.conf files for intel-corei7-64 and intel-core2-32 | ||
62 | targets. This allows one to do basic testing on meta-intel images | ||
63 | without having to use hardware. The virtio drivers are added via | ||
64 | KERNEL_FEATURES_INTEL_COMMON. This prevents them from being added to | ||
65 | custom kernels by default. They can be removed by adding the | ||
66 | following to a conf or kernel bbappend file: | ||
67 | KERNEL_FEATURES_INTEL_COMMON_remove = “cfg/virtio.scc” | ||
68 | OVMF firmware is also built and can be used in order to emulate a UEFI | ||
69 | environment. A full runqemu command line for intel-corei7-64 could look | ||
70 | like this: | ||
71 | runqemu core-image-minimal intel-corei7-64 wic ovmf | ||
72 | |||
73 | Musl support | ||
74 | ------------ | ||
75 | Meta-intel is now compatible with the musl C library. You can specify musl | ||
76 | As your C library by adding the following to your local.conf: | ||
77 | TCLIBC = “musl” | ||
78 | Note: there is a known failure with DPDK. | ||
79 | |||
80 | X32 support | ||
81 | ----------- | ||
82 | The meta-intel layer can now build with the x32 tune settings in a multi-lib | ||
83 | setting, it will not work in as the primary MACHINE tune as the bootloader needs | ||
84 | to be built as a 64bit binary. The setup for this would be as follows: | ||
85 | require conf/multilib.conf | ||
86 | MULTILIBS = "multilib:libx32 | ||
87 | DEFAULTTUNE_virtclass-multilib-libx32 = "corei7-64-x32" | ||
diff --git a/MAINTAINERS b/MAINTAINERS deleted file mode 100644 index 73a9fe3a..00000000 --- a/MAINTAINERS +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
1 | This file contains a list of BSP maintainers for the BSPs contained in | ||
2 | the meta-intel repository. | ||
3 | |||
4 | The purpose of this file is to provide contact information for | ||
5 | specific BSPs and other code contained within meta-intel. You should | ||
6 | address questions and patches for a particular BSP or other code to | ||
7 | the appropriate maintainer listed in this file, cc'ing the meta-intel | ||
8 | mailing list. This ensures that your question or patch will be | ||
9 | addressed by the appropriate person, and that it will be seen by other | ||
10 | users who may be facing similar problems or questions. | ||
11 | |||
12 | Please see the top-level README file for guidelines relating to the | ||
13 | details of submitting patches, reporting problems, or asking questions | ||
14 | about any of the BSPs or other recipes contained within meta-intel. | ||
15 | |||
16 | Descriptions of section entries: | ||
17 | |||
18 | M: Mail patches to: FullName <address@domain> | ||
19 | F: Files and directories with wildcard patterns. | ||
20 | A trailing slash includes all files and subdirectory files. | ||
21 | F: common/ all files in and below common | ||
22 | F: common/* all files in common, but not below | ||
23 | One pattern per line. Multiple F: lines acceptable. | ||
24 | |||
25 | Please keep this list in alphabetical order. | ||
26 | |||
27 | Maintainers List (try to look for most precise areas first) | ||
28 | |||
29 | ----------------------------------- | ||
30 | |||
31 | M: Anuj Mittal <anuj.mittal@intel.com> | ||
32 | F: * | ||
diff --git a/README b/README deleted file mode 100644 index fef16673..00000000 --- a/README +++ /dev/null | |||
@@ -1,432 +0,0 @@ | |||
1 | meta-intel | ||
2 | ========== | ||
3 | |||
4 | This README file contains information on building and booting | ||
5 | meta-intel BSP layers. Please see the corresponding sections below | ||
6 | for details. | ||
7 | |||
8 | |||
9 | Yocto Project Compatible | ||
10 | ======================== | ||
11 | |||
12 | The BSPs contained in this layer are compatible with the Yocto Project | ||
13 | as per the requirements listed here: | ||
14 | |||
15 | https://www.yoctoproject.org/webform/yocto-project-compatible-registration | ||
16 | |||
17 | |||
18 | Dependencies | ||
19 | ============ | ||
20 | |||
21 | This layer depends on: | ||
22 | |||
23 | URI: git://git.openembedded.org/bitbake | ||
24 | |||
25 | URI: git://git.openembedded.org/openembedded-core | ||
26 | layers: meta | ||
27 | branch: master | ||
28 | |||
29 | |||
30 | Table of Contents | ||
31 | ================= | ||
32 | |||
33 | I. Overview | ||
34 | II. Building and booting meta-intel BSP layers | ||
35 | a. Building the intel-common BSP layers | ||
36 | b. Booting the intel-common BSP images | ||
37 | III. Technical Miscellany | ||
38 | Benefits of using meta-intel | ||
39 | The intel-common kernel package architecture | ||
40 | Intel-specific machine features | ||
41 | IV. Tested Hardware | ||
42 | V. Guidelines for submitting patches | ||
43 | |||
44 | |||
45 | I. Overview | ||
46 | =========== | ||
47 | |||
48 | This is the location for Intel-maintained BSPs. | ||
49 | |||
50 | For details on the intel-common, see the information below. | ||
51 | |||
52 | For all others, please see the README files contained in the | ||
53 | individual BSP layers for BSP-specific information. | ||
54 | |||
55 | If you have problems with or questions about a particular BSP, please | ||
56 | contact the maintainer listed in the MAINTAINERS file directly (cc:ing | ||
57 | the Yocto mailing list puts it in the archive and helps other people | ||
58 | who might have the same questions in the future), but please try to do | ||
59 | the following first: | ||
60 | |||
61 | - look in the Yocto Project Bugzilla | ||
62 | (http://bugzilla.yoctoproject.org/) to see if a problem has | ||
63 | already been reported | ||
64 | |||
65 | - look through recent entries of the meta-intel | ||
66 | (https://lists.yoctoproject.org/pipermail/meta-intel/) and Yocto | ||
67 | (https://lists.yoctoproject.org/pipermail/yocto/) mailing list | ||
68 | archives to see if other people have run into similar problems or | ||
69 | had similar questions answered. | ||
70 | |||
71 | If you believe you have encountered a bug, you can open a new bug and | ||
72 | enter the details in the Yocto Project Bugzilla | ||
73 | (http://bugzilla.yoctoproject.org/). If you're relatively certain | ||
74 | that it's a bug against the BSP itself, please use the 'Yocto Project | ||
75 | Components: BSPs | meta-intel' category for the bug; otherwise, please | ||
76 | submit the bug against the most likely category for the problem - if | ||
77 | you're wrong, it's not a big deal and the bug will be recategorized | ||
78 | upon triage. | ||
79 | |||
80 | |||
81 | II. Building and booting meta-intel BSP layers | ||
82 | ============================================== | ||
83 | |||
84 | The following sections contain information on building and booting the | ||
85 | BSPs contained in the meta-intel layer. | ||
86 | |||
87 | Note that these instructions specifically cover the intel-common, which | ||
88 | may or may not be applicable to other BSPs contained in this layer - if | ||
89 | a given BSP contains its own README, that version should be used instead, | ||
90 | and these instructions can be ignored. | ||
91 | |||
92 | a. Building the intel-common BSP layers | ||
93 | ------------------------------------------------- | ||
94 | |||
95 | In order to build an image with BSP support for a given release, you | ||
96 | need to download the corresponding BSP tarball from the 'Board Support | ||
97 | Package (BSP) Downloads' page of the Yocto Project website (or | ||
98 | equivalently, check out the appropriate branch from the meta-intel git | ||
99 | repository, see below). For the intel-common BSPs, those tarballs would | ||
100 | correspond to the following choices in the BSP downloads section: | ||
101 | |||
102 | - Intel-core2-32 Intel® Common Core BSP (Intel-core2-32) | ||
103 | - Intel-corei7-64 Intel® Common Core BSP (Intel-corei7-64) | ||
104 | |||
105 | The intel-* BSPs, also known as the intel-common BSPs, provide a few | ||
106 | carefully selected tune options and generic hardware support to cover | ||
107 | the majority of current Intel CPUs and devices. The naming follows the | ||
108 | convention of intel-<TUNE>-<BITS>, where TUNE is the gcc cpu-type | ||
109 | (used with mtune and march typically) and BITS is either 32 bit or 64 | ||
110 | bit. | ||
111 | |||
112 | Having done that, and assuming you extracted the BSP tarball contents | ||
113 | at the top-level of your yocto build tree, you can build a BSP image | ||
114 | by adding the location of the meta-intel layer to bblayers.conf e.g.: | ||
115 | |||
116 | yocto/meta-intel \ | ||
117 | |||
118 | To enable a particular machine, you need to add a MACHINE line naming | ||
119 | the BSP to the local.conf file: | ||
120 | |||
121 | MACHINE ?= "xxx" | ||
122 | |||
123 | where 'xxx' is replaced by one of the following BSP names: | ||
124 | |||
125 | - intel-core2-32 | ||
126 | |||
127 | This BSP is optimized for the Core2 family of CPUs as well as all | ||
128 | Atom CPUs prior to the Silvermont core. | ||
129 | |||
130 | - intel-corei7-64 | ||
131 | |||
132 | This BSP is optimized for Nehalem and later Core and Xeon CPUs as | ||
133 | well as Silvermont and later Atom CPUs, such as the Baytrail SoCs. | ||
134 | |||
135 | You should then be able to build an image as such: | ||
136 | |||
137 | $ source oe-init-build-env | ||
138 | $ bitbake core-image-sato | ||
139 | |||
140 | At the end of a successful build, you should have an image that | ||
141 | you can boot from a USB flash drive (see instructions on how to do | ||
142 | that below, in the section 'Booting the intel-common BSP images'). | ||
143 | |||
144 | As an alternative to downloading the BSP tarball, you can also work | ||
145 | directly from the meta-intel git repository. For each BSP in the | ||
146 | 'meta-intel' repository, there are multiple branches, one | ||
147 | corresponding to each major release starting with 'laverne' (0.90), in | ||
148 | addition to the latest code which tracks the current master (note that | ||
149 | not all BSPs are present in every release). Instead of extracting | ||
150 | a BSP tarball at the top level of your yocto build tree, you can | ||
151 | equivalently check out the appropriate branch from the meta-intel | ||
152 | repository at the same location. | ||
153 | |||
154 | b. Booting the intel-common BSP images | ||
155 | -------------------------------------- | ||
156 | |||
157 | If you've built your own image, either from the downloaded BSP layer | ||
158 | or from the meta-intel git repository, you'll find the bootable | ||
159 | image in the build/tmp/deploy/images/xxx directory, where again | ||
160 | 'xxx' refers to the machine name used in the build. | ||
161 | |||
162 | Under Linux, insert a USB flash drive. Assuming the USB flash drive | ||
163 | takes device /dev/sdf, use dd to copy the image to it. Before the image | ||
164 | can be burned onto a USB drive, it should be un-mounted. Some Linux distros | ||
165 | may automatically mount a USB drive when it is plugged in. Using USB device | ||
166 | /dev/sdf as an example, find all mounted partitions: | ||
167 | |||
168 | $ mount | grep sdf | ||
169 | |||
170 | and un-mount those that are mounted, for example: | ||
171 | |||
172 | $ umount /dev/sdf1 | ||
173 | $ umount /dev/sdf2 | ||
174 | |||
175 | Now burn the image onto the USB drive: | ||
176 | |||
177 | $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress | ||
178 | $ sync | ||
179 | $ eject /dev/sdf | ||
180 | |||
181 | This should give you a bootable USB flash device. Insert the device | ||
182 | into a bootable USB socket on the target, and power on. This should | ||
183 | result in a system booted to the Sato graphical desktop. | ||
184 | |||
185 | If you want a terminal, use the arrows at the top of the UI to move to | ||
186 | different pages of available applications, one of which is named | ||
187 | 'Terminal'. Clicking that should give you a root terminal. | ||
188 | |||
189 | If you want to ssh into the system, you can use the root terminal to | ||
190 | ifconfig the IP address and use that to ssh in. The root password is | ||
191 | empty, so to log in type 'root' for the user name and hit 'Enter' at | ||
192 | the Password prompt: and you should be in. | ||
193 | |||
194 | If you find you're getting corrupt images on the USB (it doesn't show | ||
195 | the syslinux boot: prompt, or the boot: prompt contains strange | ||
196 | characters), try doing this first: | ||
197 | |||
198 | $ dd if=/dev/zero of=/dev/sdf bs=1M count=512 | ||
199 | |||
200 | III. Technical Miscellany | ||
201 | ========================= | ||
202 | |||
203 | Benefits of using meta-intel | ||
204 | ---------------------------- | ||
205 | |||
206 | Using meta-intel has the following benefits over a generic BSP: | ||
207 | |||
208 | tune flags | ||
209 | ++++++++++ | ||
210 | intel-* MACHINEs each have different compilation flags appropriate for their | ||
211 | targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern | ||
212 | 64-bit Intel Core i microarchitecture, and includes instruction sets up to | ||
213 | SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2 | ||
214 | microarchitecture, and includes instruction sets up to SSE3. | ||
215 | |||
216 | linux-intel kernel | ||
217 | ++++++++++++++++++ | ||
218 | The linux-intel kernel is an initiative to bring better Intel(R) hardware | ||
219 | support to the current LTS linux kernel. It contains a base LTS kernel with | ||
220 | additional backports from upstream Intel drivers. In addition, a default kernel | ||
221 | config containing most features found on Intel boards is supplied via the | ||
222 | yocto-kernel-cache. | ||
223 | |||
224 | graphics stack | ||
225 | ++++++++++++++ | ||
226 | Meta-intel provides the latest Intel Graphics Linux Stack drivers to support | ||
227 | Intel hardware as defined by the https://01.org/linuxgraphics. | ||
228 | |||
229 | Other software | ||
230 | ++++++++++++++ | ||
231 | * intel ucode - provides the latest microcode updates for Intel processors | ||
232 | |||
233 | * thermald - which proactively controls thermal, using P-states, T-states, and | ||
234 | the Intel power clamp driver. | ||
235 | (https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon) | ||
236 | |||
237 | The intel-common kernel package architecture | ||
238 | -------------------------------------------- | ||
239 | |||
240 | These BSPs use what we call the intel-common Linux kernel package | ||
241 | architecture. This includes core2-32-intel-common and | ||
242 | corei7-64-intel-common. These kernel packages can also be used by any | ||
243 | of the BSPs in meta-intel that choose to include the | ||
244 | intel-common-pkgarch.inc file. | ||
245 | |||
246 | To minimize the proliferation of vendor trees, reduce the sources we | ||
247 | must support, and consolidate QA efforts, all BSP maintainers are | ||
248 | encouraged to make use of the intel-common Linux kernel package | ||
249 | architecture. | ||
250 | |||
251 | Intel-specific machine features | ||
252 | ------------------------------- | ||
253 | |||
254 | The meta-intel layer makes some additional machine features available | ||
255 | to BSPs. These machine features can be used in a BSP layer in the | ||
256 | same way that machine features are used in other layers based on | ||
257 | oe-core, via the MACHINE_FEATURES variable. | ||
258 | |||
259 | Requirements | ||
260 | ++++++++++++ | ||
261 | |||
262 | The meta-intel-specific machine features are only available to a BSP | ||
263 | when the meta-intel layer is included in the build configuration, and | ||
264 | the meta-intel.inc file is included in the machine configuration of | ||
265 | that BSP. | ||
266 | |||
267 | To make these features available for your machine, you will need to: | ||
268 | |||
269 | 1. include a configuration line such as the below in bblayers.conf | ||
270 | BBLAYERS += "<local path>/meta-intel" | ||
271 | 2. include the following line in the machine configuration file | ||
272 | require conf/machine/include/meta-intel.inc | ||
273 | |||
274 | Once the above requirements are met, the machine features provided by | ||
275 | the meta-intel layer will be available for the BSP to use. | ||
276 | |||
277 | Available machine features | ||
278 | ++++++++++++++++++++++++++ | ||
279 | |||
280 | Currently, the meta-intel layer makes the following set of | ||
281 | Intel-specific machine features available: | ||
282 | |||
283 | * intel-ucode | ||
284 | |||
285 | These machine features can be included by listing them in the | ||
286 | MACHINE_FEATURES variable in the machine configuration file. For | ||
287 | example: | ||
288 | |||
289 | MACHINE_FEATURES += "intel-ucode" | ||
290 | |||
291 | Machine feature details | ||
292 | +++++++++++++++++++++++ | ||
293 | |||
294 | * intel-ucode | ||
295 | |||
296 | This feature provides support for microcode updates to Intel | ||
297 | processors. The intel-ucode feature runs at early boot and uses | ||
298 | the microcode data file added by the feature into the BSP's | ||
299 | initrd. It also puts the userland microcode-updating tool, | ||
300 | iucode_tool, into the target images along with the microcode data | ||
301 | file. | ||
302 | |||
303 | Q. Why might a user want to enable the intel-ucode feature? | ||
304 | |||
305 | A. Intel releases microcode updates to correct processor behavior | ||
306 | as documented in the respective processor specification | ||
307 | updates. While the normal approach to getting such microcode | ||
308 | updates is via a BIOS upgrade, this can be an administrative | ||
309 | hassle and not always possible in the field. The intel-ucode | ||
310 | feature enables the microcode update capability present in the | ||
311 | Linux kernel. It provides an easy path for upgrading processor | ||
312 | microcode without the need to change the BIOS. If the feature | ||
313 | is enabled, it is also possible to update the existing target | ||
314 | images with a newer microcode update in the future. | ||
315 | |||
316 | Q. How would a user bundle only target-specific microcode in the | ||
317 | target image? | ||
318 | |||
319 | A. The Intel microcode data file released by Intel contains | ||
320 | microcode updates for multiple processors. If the BSP image is | ||
321 | meant to run on only a certain subset of processor types, a | ||
322 | processor-specific subset of microcode can be bundled into the | ||
323 | target image via the UCODE_FILTER_PARAMETERS variable. This | ||
324 | works by listing a sequence of iucode-tool parameters in the | ||
325 | UCODE_FILTER_PARAMETERS variable, which in this case will | ||
326 | select only the specific microcode relevant to the BSP. For | ||
327 | more information on the underlying parameters refer to the | ||
328 | iucode-tool manual page at http://manned.org/iucode-tool | ||
329 | |||
330 | To define a set of parameters for microcode-filtering via the | ||
331 | UCODE_FILTER_PARAMETERS variable, one needs to identify the | ||
332 | cpuid signatures of all the processors the BSP is meant to run | ||
333 | on. One way to determine the cpuid signature for a specific | ||
334 | processor is to build and run an intel-ucode-feature-enabled | ||
335 | image on the target hardware, without first assigning any value | ||
336 | to the UCODE_FILTER_PARAMETERS variable, and then once the | ||
337 | image is booted, run the "ucode_tool -S" command to have the | ||
338 | ucode tool scan the system for processor signatures. These | ||
339 | signatures can then be used in the UCODE_FILTER_PARAMETERS | ||
340 | variable in conjunction with -s parameter. For example, for | ||
341 | the fri2 BSP, the cpuid can be determined as such: | ||
342 | |||
343 | [root@fri2 ~]# iucode_tool -S | ||
344 | iucode_tool: system has processor(s) with signature 0x00020661 | ||
345 | |||
346 | Given that output, a suitable UCODE_FILTER_PARAMETERS variable | ||
347 | definition could be specified in the machine configuration as | ||
348 | such: | ||
349 | |||
350 | UCODE_FILTER_PARAMETERS = "-s 0x00020661" | ||
351 | |||
352 | Q. Are there any reasons a user might want to disable the | ||
353 | intel-ucode feature? | ||
354 | |||
355 | A. The microcode data file and associated tools occupy a small | ||
356 | amount of space (a few KB) on the target image. BSPs which are | ||
357 | highly sensitive to target image size and which are not | ||
358 | experiencing microcode-related issues might consider not | ||
359 | enabling this feature. | ||
360 | |||
361 | |||
362 | IV. Tested Hardware | ||
363 | =================== | ||
364 | |||
365 | The following undergo regular basic testing with their respective MACHINE types. | ||
366 | Note that both 64-bit and 32-bit firmware is available for the MinnowBoard | ||
367 | Turbot, so it is tested against both intel-corei7-64 and intel-core2-32. | ||
368 | |||
369 | intel-corei7-64: | ||
370 | NUC6i5SYH | ||
371 | NUC7i7BNH | ||
372 | Coffee Lake-H | ||
373 | |||
374 | intel-core2-32: | ||
375 | MinnowBoard Turbot | ||
376 | |||
377 | |||
378 | V. Guidelines for submitting patches | ||
379 | ==================================== | ||
380 | |||
381 | Please submit any patches against meta-intel BSPs to the meta-intel | ||
382 | mailing list (meta-intel@yoctoproject.org). Also, if your patches are | ||
383 | available via a public git repository, please also include a URL to | ||
384 | the repo and branch containing your patches as that makes it easier | ||
385 | for maintainers to grab and test your patches. | ||
386 | |||
387 | There are patch submission scripts available that will, among other | ||
388 | things, automatically include the repo URL and branch as mentioned. | ||
389 | Please see the Yocto Project Development Manual sections entitled | ||
390 | 'Using Scripts to Push a Change Upstream and Request a Pull' and | ||
391 | 'Using Email to Submit a Patch' for details. | ||
392 | |||
393 | Regardless of how you submit a patch or patchset, the patches should | ||
394 | at minimum follow the suggestions outlined in the 'Submitting a Change | ||
395 | to the Yocto Project' section in the Yocto Project Development Manual. | ||
396 | Specifically, they should: | ||
397 | |||
398 | - Include a 'Signed-off-by:' line. A commit can't legally be pulled | ||
399 | in without this. | ||
400 | |||
401 | - Provide a single-line, short summary of the change. This short | ||
402 | description should be prefixed by the BSP or recipe name, as | ||
403 | appropriate, followed by a colon. Capitalize the first character | ||
404 | of the summary (following the colon). | ||
405 | |||
406 | - For the body of the commit message, provide detailed information | ||
407 | that describes what you changed, why you made the change, and the | ||
408 | approach you used. | ||
409 | |||
410 | - If the change addresses a specific bug or issue that is associated | ||
411 | with a bug-tracking ID, include a reference to that ID in your | ||
412 | detailed description in the following format: [YOCTO #<bug-id>]. | ||
413 | |||
414 | - Pay attention to line length - please don't allow any particular | ||
415 | line in the commit message to stretch past 72 characters. | ||
416 | |||
417 | - For any non-trivial patch, provide information about how you | ||
418 | tested the patch, and for any non-trivial or non-obvious testing | ||
419 | setup, provide details of that setup. | ||
420 | |||
421 | Doing a quick 'git log' in meta-intel will provide you with many | ||
422 | examples of good example commits if you have questions about any | ||
423 | aspect of the preferred format. | ||
424 | |||
425 | The meta-intel maintainers will do their best to review and/or pull in | ||
426 | a patch or patchset within 24 hours of the time it was posted. For | ||
427 | larger and/or more involved patches and patchsets, the review process | ||
428 | may take longer. | ||
429 | |||
430 | Please see the meta-intel/MAINTAINERS file for the list of maintainers | ||
431 | and their specific areas; it's also a good idea to cc: the specific | ||
432 | maintainer, if applicable. | ||
diff --git a/README.md b/README.md new file mode 100644 index 00000000..91577f1d --- /dev/null +++ b/README.md | |||
@@ -0,0 +1,36 @@ | |||
1 | # meta-intel | ||
2 | |||
3 | OpenEmbedded/Yocto BSP layer for Intel platforms. | ||
4 | |||
5 | ## Dependencies | ||
6 | |||
7 | This layer primarily depends on OpenEmbedded-Core (OE-Core). However, certain | ||
8 | recipes may require additional layers to support optional features or | ||
9 | programming languages not supported by OE-Core. Such recipes are located within | ||
10 | the `dynamic-layers` directory. | ||
11 | |||
12 | Base dependencies: | ||
13 | - [Bitbake](https://git.openembedded.org/bitbake) | ||
14 | - [OE-Core](https://git.openembedded.org/openembedded-core) | ||
15 | |||
16 | Dynamic additional dependencies: | ||
17 | |||
18 | - [meta-openembedded](https://git.openembedded.org/meta-openembedded/tree/meta-oe) | ||
19 | - [meta-python](https://git.openembedded.org/meta-openembedded/tree/meta-python) | ||
20 | - [meta-clang](https://github.com/kraj/meta-clang.git) | ||
21 | |||
22 | |||
23 | ## Contents | ||
24 | |||
25 | - [Building and booting meta-intel BSP layers](documentation/building_and_booting.md) | ||
26 | - [Intel oneAPI DPC++/C++ Compiler](documentation/dpcpp-compiler.md) | ||
27 | - [Build Image with OpenVINO™ toolkit](documentation/openvino.md) | ||
28 | - [Tested Hardware](documentation/tested_hardware.md) | ||
29 | - [Guidelines for submitting patches](documentation/submitting_patches.md) | ||
30 | - [Reporting bugs](documentation/reporting_bugs.md) | ||
31 | - [Reporting security bugs](SECURITY.md) | ||
32 | |||
33 | ## Maintainers | ||
34 | |||
35 | - Anuj Mittal <anuj.mittal@intel.com> | ||
36 | |||
diff --git a/README.sources b/README.sources deleted file mode 100644 index 9b483ee0..00000000 --- a/README.sources +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | The sources for the packages comprising the images shipped with this | ||
2 | BSP can be found at the following location: | ||
3 | |||
4 | http://downloads.yoctoproject.org/mirror/sources/ | ||
5 | |||
6 | The metadata used to generate the images shipped with this BSP, in | ||
7 | addition to the code contained in this BSP, can be found at the | ||
8 | following location: | ||
9 | |||
10 | http://downloads.yoctoproject.org/releases/yocto/yocto-2.7/poky-warrior-21.0.0.tar.bz2 | ||
11 | |||
12 | The metadata used to generate the images shipped with this BSP, in | ||
13 | addition to the code contained in this BSP, can also be found at the | ||
14 | following locations: | ||
15 | |||
16 | git://git.yoctoproject.org/poky.git | ||
17 | git://git.yoctoproject.org/meta-intel | ||
diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..e70fcb0f --- /dev/null +++ b/SECURITY.md | |||
@@ -0,0 +1,6 @@ | |||
1 | # Security Policy | ||
2 | Intel is committed to rapidly addressing security vulnerabilities affecting our customers and providing clear guidance on the solution, impact, severity and mitigation. | ||
3 | |||
4 | ## Reporting a Vulnerability | ||
5 | Please report any security vulnerabilities in this project [utilizing the guidelines here](https://www.intel.com/content/www/us/en/security-center/vulnerability-handling-guidelines.html). | ||
6 | |||
diff --git a/classes/uefi-comboapp.bbclass b/classes/uefi-comboapp.bbclass deleted file mode 100644 index 4ecc5535..00000000 --- a/classes/uefi-comboapp.bbclass +++ /dev/null | |||
@@ -1,151 +0,0 @@ | |||
1 | # This class brings a more generic version of the UEFI combo app from refkit to meta-intel. | ||
2 | # It uses a combo file, containing kernel, initramfs and | ||
3 | # command line, presented to the BIOS as UEFI application, by prepending | ||
4 | # it with the efi stub obtained from systemd-boot. | ||
5 | |||
6 | # Don't add syslinux or build an ISO | ||
7 | PCBIOS_forcevariable = "0" | ||
8 | NOISO_forcevariable = "1" | ||
9 | |||
10 | # image-live.bbclass will default INITRD_LIVE to the image INITRD_IMAGE creates. | ||
11 | # We want behavior to be consistent whether or not "live" is in IMAGE_FSTYPES, so | ||
12 | # we default INITRD_LIVE to the INITRD_IMAGE as well. | ||
13 | INITRD_IMAGE ?= "core-image-minimal-initramfs" | ||
14 | INITRD_LIVE ?= " ${@ ('${DEPLOY_DIR_IMAGE}/' + d.getVar('INITRD_IMAGE', expand=True) + '-${MACHINE}.cpio.gz') if d.getVar('INITRD_IMAGE', True) else ''}" | ||
15 | |||
16 | do_uefiapp[depends] += " \ | ||
17 | intel-microcode:do_deploy \ | ||
18 | systemd-boot:do_deploy \ | ||
19 | virtual/kernel:do_deploy \ | ||
20 | " | ||
21 | |||
22 | # INITRD_IMAGE is added to INITRD_LIVE, which we use to create our initrd, so depend on it if it is set | ||
23 | do_uefiapp[depends] += "${@ '${INITRD_IMAGE}:do_image_complete' if d.getVar('INITRD_IMAGE') else ''}" | ||
24 | |||
25 | # The image does without traditional bootloader. | ||
26 | # In its place, instead, it uses a single UEFI executable binary, which is | ||
27 | # composed by: | ||
28 | # - an UEFI stub | ||
29 | # The linux kernel can generate a UEFI stub, however the one from systemd-boot can fetch | ||
30 | # the command line from a separate section of the EFI application, avoiding the need to | ||
31 | # rebuild the kernel. | ||
32 | # - the kernel | ||
33 | # - an initramfs (optional) | ||
34 | |||
35 | def create_uefiapp(d, uuid=None, app_suffix=''): | ||
36 | import glob, re | ||
37 | from subprocess import check_call | ||
38 | |||
39 | build_dir = d.getVar('B') | ||
40 | deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE') | ||
41 | image_link_name = d.getVar('IMAGE_LINK_NAME') | ||
42 | |||
43 | cmdline = '%s/cmdline.txt' % build_dir | ||
44 | linux = '%s/%s' % (deploy_dir_image, d.getVar('KERNEL_IMAGETYPE')) | ||
45 | initrd = '%s/initrd' % build_dir | ||
46 | |||
47 | stub_path = '%s/linux*.efi.stub' % deploy_dir_image | ||
48 | stub = glob.glob(stub_path)[0] | ||
49 | m = re.match(r"\S*(ia32|x64)(.efi)\S*", os.path.basename(stub)) | ||
50 | app = "boot%s%s%s" % (m.group(1), app_suffix, m.group(2)) | ||
51 | executable = '%s/%s.%s' % (deploy_dir_image, image_link_name, app) | ||
52 | |||
53 | if d.getVar('INITRD_LIVE'): | ||
54 | with open(initrd, 'wb') as dst: | ||
55 | for cpio in d.getVar('INITRD_LIVE').split(): | ||
56 | with open(cpio, 'rb') as src: | ||
57 | dst.write(src.read()) | ||
58 | initrd_cmd = "--add-section .initrd=%s --change-section-vma .initrd=0x3000000 " % initrd | ||
59 | else: | ||
60 | initrd_cmd = "" | ||
61 | |||
62 | root = 'root=PARTUUID=%s' % uuid if uuid else '' | ||
63 | |||
64 | with open(cmdline, 'w') as f: | ||
65 | f.write('%s %s' % (d.getVar('APPEND'), root)) | ||
66 | |||
67 | objcopy_cmd = ("objcopy " | ||
68 | "--add-section .cmdline=%s --change-section-vma .cmdline=0x30000 " | ||
69 | "--add-section .linux=%s --change-section-vma .linux=0x40000 " | ||
70 | "%s %s %s") % \ | ||
71 | (cmdline, linux, initrd_cmd, stub, executable) | ||
72 | |||
73 | check_call(objcopy_cmd, shell=True) | ||
74 | |||
75 | python create_uefiapps () { | ||
76 | # We must clean up anything that matches the expected output pattern, to ensure that | ||
77 | # the next steps do not accidentally use old files. | ||
78 | import glob | ||
79 | pattern = d.expand('${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi') | ||
80 | for old_efi in glob.glob(pattern): | ||
81 | os.unlink(old_efi) | ||
82 | uuid = d.getVar('DISK_SIGNATURE_UUID') | ||
83 | create_uefiapp(d, uuid=uuid) | ||
84 | } | ||
85 | |||
86 | # This is intentionally split into different parts. This way, derived | ||
87 | # classes or images can extend the individual parts. We can also use | ||
88 | # whatever language (shell script or Python) is more suitable. | ||
89 | python do_uefiapp() { | ||
90 | bb.build.exec_func('create_uefiapps', d) | ||
91 | } | ||
92 | |||
93 | do_uefiapp[vardeps] += "APPEND DISK_SIGNATURE_UUID INITRD_LIVE KERNEL_IMAGETYPE IMAGE_LINK_NAME" | ||
94 | |||
95 | uefiapp_deploy_at() { | ||
96 | dest=$1 | ||
97 | for i in ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi; do | ||
98 | target=`basename $i` | ||
99 | target=`echo $target | sed -e 's/${IMAGE_LINK_NAME}.//'` | ||
100 | cp --preserve=timestamps -r $i $dest/$target | ||
101 | done | ||
102 | } | ||
103 | |||
104 | fakeroot do_uefiapp_deploy() { | ||
105 | rm -rf ${IMAGE_ROOTFS}/boot/* | ||
106 | dest=${IMAGE_ROOTFS}/boot/EFI/BOOT | ||
107 | mkdir -p $dest | ||
108 | uefiapp_deploy_at $dest | ||
109 | } | ||
110 | |||
111 | do_uefiapp_deploy[depends] += "${PN}:do_uefiapp virtual/fakeroot-native:do_populate_sysroot" | ||
112 | |||
113 | |||
114 | # This decides when/how we add our tasks to the image | ||
115 | python () { | ||
116 | image_fstypes = d.getVar('IMAGE_FSTYPES', True) | ||
117 | initramfs_fstypes = d.getVar('INITRAMFS_FSTYPES', True) | ||
118 | |||
119 | # Don't add any of these tasks to initramfs images | ||
120 | if initramfs_fstypes not in image_fstypes: | ||
121 | bb.build.addtask('uefiapp', 'do_image', 'do_rootfs', d) | ||
122 | bb.build.addtask('uefiapp_deploy', 'do_image', 'do_rootfs', d) | ||
123 | } | ||
124 | |||
125 | SIGN_AFTER ?= "do_uefiapp" | ||
126 | SIGN_BEFORE ?= "do_uefiapp_deploy" | ||
127 | SIGNING_DIR ?= "${DEPLOY_DIR_IMAGE}" | ||
128 | SIGNING_BINARIES ?= "${IMAGE_LINK_NAME}.boot*.efi" | ||
129 | inherit uefi-sign | ||
130 | |||
131 | # Legacy hddimg support below this line | ||
132 | efi_hddimg_populate() { | ||
133 | uefiapp_deploy_at "$1" | ||
134 | } | ||
135 | |||
136 | build_efi_cfg() { | ||
137 | # The command line is built into the combo app, so this is a null op | ||
138 | : | ||
139 | } | ||
140 | |||
141 | populate_kernel_append() { | ||
142 | # The kernel and initrd are built into the app, so we don't need these | ||
143 | if [ -f $dest/initrd ]; then | ||
144 | rm $dest/initrd | ||
145 | fi | ||
146 | if [ -f $dest/vmlinuz ]; then | ||
147 | rm $dest/vmlinuz | ||
148 | fi | ||
149 | } | ||
150 | |||
151 | IMAGE_FEATURES[validitems] += "secureboot" | ||
diff --git a/classes/uefi-sign.bbclass b/classes/uefi-sign.bbclass deleted file mode 100644 index e8f203b9..00000000 --- a/classes/uefi-sign.bbclass +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | # By default, sign all .efi binaries in ${B} after compiling and before deploying | ||
2 | SIGNING_DIR ?= "${B}" | ||
3 | SIGNING_BINARIES ?= "*.efi" | ||
4 | SIGN_AFTER ?= "do_compile" | ||
5 | SIGN_BEFORE ?= "do_deploy" | ||
6 | |||
7 | python () { | ||
8 | import os | ||
9 | import hashlib | ||
10 | |||
11 | # Ensure that if the signing key or cert change, we rerun the uefiapp process | ||
12 | if bb.utils.contains('IMAGE_FEATURES', 'secureboot', True, False, d): | ||
13 | for varname in ('SECURE_BOOT_SIGNING_CERT', 'SECURE_BOOT_SIGNING_KEY'): | ||
14 | filename = d.getVar(varname) | ||
15 | if filename is None: | ||
16 | bb.fatal('%s is not set.' % varname) | ||
17 | if not os.path.isfile(filename): | ||
18 | bb.fatal('%s=%s is not a file.' % (varname, filename)) | ||
19 | with open(filename, 'rb') as f: | ||
20 | data = f.read() | ||
21 | hash = hashlib.sha256(data).hexdigest() | ||
22 | d.setVar('%s_HASH' % varname, hash) | ||
23 | |||
24 | # Must reparse and thus rehash on file changes. | ||
25 | bb.parse.mark_dependency(d, filename) | ||
26 | |||
27 | bb.build.addtask('uefi_sign', d.getVar('SIGN_BEFORE'), d.getVar('SIGN_AFTER'), d) | ||
28 | |||
29 | # Original binary needs to be regenerated if the hash changes since we overwrite it | ||
30 | # SIGN_AFTER isn't necessarily when it gets generated, but its our best guess | ||
31 | d.appendVarFlag(d.getVar('SIGN_AFTER'), 'vardeps', 'SECURE_BOOT_SIGNING_CERT_HASH SECURE_BOOT_SIGNING_KEY_HASH') | ||
32 | } | ||
33 | |||
34 | do_uefi_sign() { | ||
35 | if [ -f ${SECURE_BOOT_SIGNING_KEY} ] && [ -f ${SECURE_BOOT_SIGNING_CERT} ]; then | ||
36 | for i in `find ${SIGNING_DIR}/ -name '${SIGNING_BINARIES}'`; do | ||
37 | sbsign --key ${SECURE_BOOT_SIGNING_KEY} --cert ${SECURE_BOOT_SIGNING_CERT} $i | ||
38 | sbverify --cert ${SECURE_BOOT_SIGNING_CERT} $i.signed | ||
39 | mv $i.signed $i | ||
40 | done | ||
41 | fi | ||
42 | } | ||
43 | |||
44 | do_uefi_sign[depends] += "sbsigntool-native:do_populate_sysroot" | ||
45 | |||
46 | do_uefi_sign[vardeps] += "SECURE_BOOT_SIGNING_CERT_HASH \ | ||
47 | SECURE_BOOT_SIGNING_KEY_HASH \ | ||
48 | SIGNING_BINARIES SIGNING_DIR \ | ||
49 | SIGN_BEFORE SIGN_AFTER \ | ||
50 | " | ||
diff --git a/conf/include/maintainers.inc b/conf/include/maintainers.inc index 99ddec24..fb8b0b12 100644 --- a/conf/include/maintainers.inc +++ b/conf/include/maintainers.inc | |||
@@ -1,21 +1,47 @@ | |||
1 | # This file contains a list of recipe maintainers for meta-intel | 1 | # This file contains a list of recipe maintainers for meta-intel |
2 | 2 | ||
3 | RECIPE_MAINTAINER_pn-core-image-rt = "Anuj Mittal <anuj.mittal@intel.com>" | 3 | RECIPE_MAINTAINER:pn-backport-iwlwifi = "Naveen Saini <naveen.kumar.saini@intel.com>" |
4 | RECIPE_MAINTAINER_pn-core-image-rt-sdk = "Anuj Mittal <anuj.mittal@intel.com>" | 4 | RECIPE_MAINTAINER:pn-core-image-rt = "Anuj Mittal <anuj.mittal@intel.com>" |
5 | RECIPE_MAINTAINER_pn-gma500-gfx-check = "Anuj Mittal <anuj.mittal@intel.com>" | 5 | RECIPE_MAINTAINER:pn-core-image-rt-sdk = "Anuj Mittal <anuj.mittal@intel.com>" |
6 | RECIPE_MAINTAINER_pn-gmmlib = "Anuj Mittal <anuj.mittal@intel.com>" | 6 | RECIPE_MAINTAINER:pn-core-image-tiny = "Naveen Saini <naveen.kumar.saini@intel.com>" |
7 | RECIPE_MAINTAINER_pn-intel-gpu-tools = "Anuj Mittal <anuj.mittal@intel.com>" | 7 | RECIPE_MAINTAINER:pn-core-image-minimal-initramfs = "Anuj Mittal <anuj.mittal@intel.com>" |
8 | RECIPE_MAINTAINER_pn-intel-media-driver = "Anuj Mittal <anuj.mittal@intel.com>" | 8 | RECIPE_MAINTAINER:pn-embree = "Naveen Saini <naveen.kumar.saini@intel.com>" |
9 | RECIPE_MAINTAINER_pn-intel-mediasdk = "Anuj Mittal <anuj.mittal@intel.com>" | 9 | RECIPE_MAINTAINER:pn-gmmlib = "Lim Siew Hoon <siew.hoon.lim@intel.com>" |
10 | RECIPE_MAINTAINER_pn-intel-microcode = "Anuj Mittal <anuj.mittal@intel.com>" | 10 | RECIPE_MAINTAINER:pn-hdcp = "Naveen Saini <naveen.kumar.saini@intel.com>" |
11 | RECIPE_MAINTAINER_pn-core-image-minimal-initramfs = "Anuj Mittal <anuj.mittal@intel.com>" | 11 | RECIPE_MAINTAINER:pn-intel-cmt-cat = "Naveen Saini <naveen.kumar.saini@intel.com>" |
12 | RECIPE_MAINTAINER_pn-iucode-tool = "Anuj Mittal <anuj.mittal@intel.com>" | 12 | RECIPE_MAINTAINER:pn-intel-compute-runtime = "Naveen Saini <naveen.kumar.saini@intel.com>" |
13 | RECIPE_MAINTAINER_pn-intel-vaapi-driver = "Anuj Mittal <anuj.mittal@intel.com>" | 13 | RECIPE_MAINTAINER:pn-intel-crypto-mb = "Anuj Mittal <anuj.mittal@intel.com>" |
14 | RECIPE_MAINTAINER_pn-libyami = "Anuj Mittal <anuj.mittal@intel.com>" | 14 | RECIPE_MAINTAINER:pn-intel-graphics-compiler = "Naveen Saini <naveen.kumar.saini@intel.com>" |
15 | RECIPE_MAINTAINER_pn-libyami-utils = "Anuj Mittal <anuj.mittal@intel.com>" | 15 | RECIPE_MAINTAINER:pn-intel-media-driver = "Lim Siew Hoon <siew.hoon.lim@intel.com>" |
16 | RECIPE_MAINTAINER_pn-linux-intel = "Anuj Mittal <anuj.mittal@intel.com>" | 16 | RECIPE_MAINTAINER:pn-intel-microcode = "Anuj Mittal <anuj.mittal@intel.com>" |
17 | RECIPE_MAINTAINER_pn-linux-intel-rt = "Anuj Mittal <anuj.mittal@intel.com>" | 17 | RECIPE_MAINTAINER:pn-intel-vaapi-driver = "Lim Siew Hoon <siew.hoon.lim@intel.com>" |
18 | RECIPE_MAINTAINER_pn-thermald = "Anuj Mittal <anuj.mittal@intel.com>" | 18 | RECIPE_MAINTAINER:pn-ipmctl = "Anuj Mittal <anuj.mittal@intel.com>" |
19 | RECIPE_MAINTAINER_pn-xf86-video-ast = "Anuj Mittal <anuj.mittal@intel.com>" | 19 | RECIPE_MAINTAINER:pn-isa-l = "Naveen Saini <naveen.kumar.saini@intel.com>" |
20 | RECIPE_MAINTAINER_pn-mkl-dnn = "Ankit Navik <ankit.tarot@gmail.com>" | 20 | RECIPE_MAINTAINER:pn-ispc = "Naveen Saini <naveen.kumar.saini@intel.com>" |
21 | RECIPE_MAINTAINER_pn-metrics-discovery = "Ankit Navik <ankit.tarot@gmail.com>" | 21 | RECIPE_MAINTAINER:pn-itt = "Naveen Saini <naveen.kumar.saini@intel.com>" |
22 | RECIPE_MAINTAINER:pn-ixgbe = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
23 | RECIPE_MAINTAINER:pn-ixgbevf = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
24 | RECIPE_MAINTAINER:pn-iucode-tool = "Anuj Mittal <anuj.mittal@intel.com>" | ||
25 | RECIPE_MAINTAINER:pn-level-zero = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
26 | RECIPE_MAINTAINER:pn-libipt = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
27 | RECIPE_MAINTAINER:pn-libva-intel = "Anuj Mittal <anuj.mittal@intel.com>" | ||
28 | RECIPE_MAINTAINER:pn-libva-intel-utils = "Anuj Mittal <anuj.mittal@intel.com>" | ||
29 | RECIPE_MAINTAINER:pn-libxcam = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
30 | RECIPE_MAINTAINER:pn-linux-intel = "Anuj Mittal <anuj.mittal@intel.com>" | ||
31 | RECIPE_MAINTAINER:pn-linux-intel-rt = "Anuj Mittal <anuj.mittal@intel.com>" | ||
32 | RECIPE_MAINTAINER:pn-linux-intel-dev = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
33 | RECIPE_MAINTAINER:pn-linux-npu-driver = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
34 | RECIPE_MAINTAINER:pn-lms = "Anuj Mittal <anuj.mittal@intel.com>" | ||
35 | RECIPE_MAINTAINER:pn-metee = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
36 | RECIPE_MAINTAINER:pn-metrics-discovery = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
37 | RECIPE_MAINTAINER:pn-oidn = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
38 | RECIPE_MAINTAINER:pn-onednn = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
39 | RECIPE_MAINTAINER:pn-onedpl = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
40 | RECIPE_MAINTAINER:pn-onevpl = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
41 | RECIPE_MAINTAINER:pn-onevpl-intel-gpu = "Yew Chang Ching <chang.ching.yew@intel.com>" | ||
42 | RECIPE_MAINTAINER:pn-opencl-clang = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
43 | RECIPE_MAINTAINER:pn-openvkl = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
44 | RECIPE_MAINTAINER:pn-ospray = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
45 | RECIPE_MAINTAINER:pn-rkcommon = "Naveen Saini <naveen.kumar.saini@intel.com>" | ||
46 | RECIPE_MAINTAINER:pn-thermald = "Anuj Mittal <anuj.mittal@intel.com>" | ||
47 | RECIPE_MAINTAINER:pn-xf86-video-ast = "Anuj Mittal <anuj.mittal@intel.com>" | ||
diff --git a/conf/layer.conf b/conf/layer.conf index 0db08957..9365f3a2 100644 --- a/conf/layer.conf +++ b/conf/layer.conf | |||
@@ -10,24 +10,36 @@ BBFILE_PATTERN_intel := "^${LAYERDIR}/" | |||
10 | BBFILE_PRIORITY_intel = "5" | 10 | BBFILE_PRIORITY_intel = "5" |
11 | 11 | ||
12 | # Additional license directories. | 12 | # Additional license directories. |
13 | LICENSE_PATH += "${LAYERDIR}/custom-licenses" | 13 | CUSTOM_LICENSES_PATH = "${LAYERDIR}/custom-licenses" |
14 | LICENSE_PATH += "${CUSTOM_LICENSES_PATH}" | ||
14 | 15 | ||
15 | LAYERDEPENDS_intel = "core" | 16 | LAYERDEPENDS_intel = "core" |
16 | LAYERRECOMMENDS_intel = "dpdk intel-qat" | 17 | LAYERRECOMMENDS_intel = "dpdk" |
17 | 18 | ||
18 | # This should only be incremented on significant changes that will | 19 | # This should only be incremented on significant changes that will |
19 | # cause compatibility issues with other layers | 20 | # cause compatibility issues with other layers |
20 | LAYERVERSION_intel = "5" | 21 | LAYERVERSION_intel = "5" |
21 | LAYERSERIES_COMPAT_intel = "thud warrior" | 22 | LAYERSERIES_COMPAT_intel = "scarthgap whinlatter" |
22 | 23 | ||
23 | BBFILES_DYNAMIC += " \ | 24 | BBFILES_DYNAMIC += " \ |
24 | clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bb \ | 25 | clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bb \ |
25 | clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bbappend \ | 26 | clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bbappend \ |
26 | " | ||
27 | |||
28 | BBFILES_DYNAMIC += " \ | ||
29 | openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \ | 27 | openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bb \ |
30 | openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \ | 28 | openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/*/*/*.bbappend \ |
29 | meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bb \ | ||
30 | meta-python:${LAYERDIR}/dynamic-layers/meta-python/*/*/*.bbappend \ | ||
31 | " | 31 | " |
32 | 32 | ||
33 | require ${LAYERDIR}/conf/include/maintainers.inc | 33 | require ${LAYERDIR}/conf/include/maintainers.inc |
34 | |||
35 | # Use the libva from OE-Core when layer is included but no MACHINE | ||
36 | # from meta-intel is being used. | ||
37 | PREFERRED_PROVIDER_libva ?= "libva" | ||
38 | PREFERRED_PROVIDER_libva-native ?= "libva-native" | ||
39 | PREFERRED_PROVIDER_nativesdk-libva ?= "nativesdk-libva" | ||
40 | |||
41 | PREFERRED_PROVIDER_libva-utils ?= "libva-utils" | ||
42 | PREFERRED_PROVIDER_libva-utils-native ?= "libva-utils-native" | ||
43 | PREFERRED_PROVIDER_nativesdk-libva-utils ?= "nativesdk-libva-utils" | ||
44 | |||
45 | addpylib ${LAYERDIR}/lib oeqa | ||
diff --git a/conf/machine/include/intel-common-pkgarch.inc b/conf/machine/include/intel-common-pkgarch.inc index d0f208bd..94d77e06 100644 --- a/conf/machine/include/intel-common-pkgarch.inc +++ b/conf/machine/include/intel-common-pkgarch.inc | |||
@@ -1,15 +1,15 @@ | |||
1 | INTEL_COMMON_PACKAGE_ARCH ?= "${TUNE_PKGARCH}-intel-common" | 1 | INTEL_COMMON_PACKAGE_ARCH ?= "${TUNE_PKGARCH}-intel-common" |
2 | PACKAGE_ARCH_pn-linux-intel = "${INTEL_COMMON_PACKAGE_ARCH}" | 2 | PACKAGE_ARCH:pn-linux-intel = "${INTEL_COMMON_PACKAGE_ARCH}" |
3 | PACKAGE_ARCH_pn-linux-intel-rt = "${INTEL_COMMON_PACKAGE_ARCH}" | 3 | PACKAGE_ARCH:pn-linux-intel-rt = "${INTEL_COMMON_PACKAGE_ARCH}" |
4 | PACKAGE_ARCH_pn-linux-intel-tiny = "${INTEL_COMMON_PACKAGE_ARCH}" | 4 | PACKAGE_ARCH:pn-linux-intel-tiny = "${INTEL_COMMON_PACKAGE_ARCH}" |
5 | PACKAGE_ARCH_pn-linux-intel-dev = "${INTEL_COMMON_PACKAGE_ARCH}" | 5 | PACKAGE_ARCH:pn-linux-intel-dev = "${INTEL_COMMON_PACKAGE_ARCH}" |
6 | PACKAGE_ARCH_pn-linux-yocto = "${INTEL_COMMON_PACKAGE_ARCH}" | 6 | PACKAGE_ARCH:pn-linux-yocto = "${INTEL_COMMON_PACKAGE_ARCH}" |
7 | PACKAGE_ARCH_pn-linux-yocto-rt = "${INTEL_COMMON_PACKAGE_ARCH}" | 7 | PACKAGE_ARCH:pn-linux-yocto-rt = "${INTEL_COMMON_PACKAGE_ARCH}" |
8 | PACKAGE_ARCH_pn-linux-yocto-tiny = "${INTEL_COMMON_PACKAGE_ARCH}" | 8 | PACKAGE_ARCH:pn-linux-yocto-tiny = "${INTEL_COMMON_PACKAGE_ARCH}" |
9 | PACKAGE_ARCH_pn-linux-yocto-dev = "${INTEL_COMMON_PACKAGE_ARCH}" | 9 | PACKAGE_ARCH:pn-linux-yocto-dev = "${INTEL_COMMON_PACKAGE_ARCH}" |
10 | PACKAGE_ARCH_pn-intel-microcode = "${INTEL_COMMON_PACKAGE_ARCH}" | 10 | PACKAGE_ARCH:pn-intel-microcode = "${INTEL_COMMON_PACKAGE_ARCH}" |
11 | PACKAGE_ARCH_pn-backport-iwlwifi = "${INTEL_COMMON_PACKAGE_ARCH}" | 11 | PACKAGE_ARCH:pn-backport-iwlwifi = "${INTEL_COMMON_PACKAGE_ARCH}" |
12 | PACKAGE_ARCH_pn-ixgbe = "${INTEL_COMMON_PACKAGE_ARCH}" | 12 | PACKAGE_ARCH:pn-ixgbe = "${INTEL_COMMON_PACKAGE_ARCH}" |
13 | PACKAGE_ARCH_pn-ixgbevf = "${INTEL_COMMON_PACKAGE_ARCH}" | 13 | PACKAGE_ARCH:pn-ixgbevf = "${INTEL_COMMON_PACKAGE_ARCH}" |
14 | PACKAGE_EXTRA_ARCHS_append += "${INTEL_COMMON_PACKAGE_ARCH}" | 14 | PACKAGE_EXTRA_ARCHS:append = " ${INTEL_COMMON_PACKAGE_ARCH}" |
15 | MACHINEOVERRIDES =. "${INTEL_COMMON_PACKAGE_ARCH}:" | 15 | MACHINEOVERRIDES =. "${INTEL_COMMON_PACKAGE_ARCH}:" |
diff --git a/conf/machine/include/intel-core2-32-common.inc b/conf/machine/include/intel-core2-32-common.inc index 8c469499..ce34d9bb 100644 --- a/conf/machine/include/intel-core2-32-common.inc +++ b/conf/machine/include/intel-core2-32-common.inc | |||
@@ -3,5 +3,5 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | DEFAULTTUNE ?= "core2-32" | 5 | DEFAULTTUNE ?= "core2-32" |
6 | require conf/machine/include/tune-core2.inc | 6 | require conf/machine/include/x86/tune-core2.inc |
7 | require conf/machine/include/x86-base.inc | 7 | require conf/machine/include/x86/x86-base.inc |
diff --git a/conf/machine/include/intel-corei7-64-common.inc b/conf/machine/include/intel-corei7-64-common.inc index 00282569..3498ebe3 100644 --- a/conf/machine/include/intel-corei7-64-common.inc +++ b/conf/machine/include/intel-corei7-64-common.inc | |||
@@ -3,5 +3,5 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | DEFAULTTUNE ?= "corei7-64" | 5 | DEFAULTTUNE ?= "corei7-64" |
6 | require conf/machine/include/tune-corei7.inc | 6 | require conf/machine/include/x86/tune-corei7.inc |
7 | require conf/machine/include/x86-base.inc | 7 | require conf/machine/include/x86/x86-base.inc |
diff --git a/conf/machine/include/meta-intel.inc b/conf/machine/include/meta-intel.inc index d45f4825..c98aa78a 100644 --- a/conf/machine/include/meta-intel.inc +++ b/conf/machine/include/meta-intel.inc | |||
@@ -5,34 +5,40 @@ | |||
5 | # | 5 | # |
6 | 6 | ||
7 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-intel" | 7 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-intel" |
8 | PREFERRED_PROVIDER_virtual/kernel_poky-tiny ?= "linux-intel" | 8 | PREFERRED_PROVIDER_virtual/kernel:poky-tiny ?= "linux-intel" |
9 | 9 | ||
10 | # Only use the Intel-tuned zlib for target builds to improve reuse | 10 | PREFERRED_VERSION_linux-intel ?= "6.12%" |
11 | PREFERRED_PROVIDER_zlib = "zlib-intel" | 11 | PREFERRED_VERSION_linux-intel-rt ?= "6.12%" |
12 | PREFERRED_PROVIDER_zlib-native = "zlib-native" | 12 | PREFERRED_VERSION_linux-intel:poky-altcfg ?= "6.12%" |
13 | PREFERRED_PROVIDER_nativesdk-zlib = "nativesdk-zlib" | 13 | PREFERRED_VERSION_linux-intel-rt:poky-altcfg ?= "6.12%" |
14 | 14 | ||
15 | PREFERRED_VERSION_linux-intel_linuxstdbase ?= "4.19%" | 15 | # Need to point to latest version of libva needed for media components |
16 | PREFERRED_VERSION_linux-intel ?= "4.19%" | 16 | PREFERRED_PROVIDER_libva = "libva-intel" |
17 | PREFERRED_VERSION_linux-intel-rt ?= "4.19%" | 17 | PREFERRED_PROVIDER_libva-native = "libva-intel-native" |
18 | PREFERRED_PROVIDER_nativesdk-libva = "nativesdk-libva-intel" | ||
19 | |||
20 | PREFERRED_PROVIDER_libva-utils = "libva-intel-utils" | ||
21 | PREFERRED_PROVIDER_libva-utils-native = "libva-intel-utils-native" | ||
22 | PREFERRED_PROVIDER_nativesdk-libva-utils = "nativesdk-libva-intel-utils" | ||
18 | 23 | ||
19 | XSERVER_X86_ASPEED_AST = "xf86-video-ast \ | 24 | XSERVER_X86_ASPEED_AST = "xf86-video-ast \ |
20 | " | 25 | " |
21 | 26 | ||
22 | # include the user space intel microcode loading support in the generated images. | 27 | # include the user space intel microcode loading support in the generated images. |
23 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS_append = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', ' intel-microcode', '', d)} thermald" | 28 | MACHINE_ESSENTIAL_EXTRA_RDEPENDS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', ' intel-microcode', '', d)}" |
24 | 29 | ||
25 | # recommended extra packages common to all intel machines | 30 | # recommended extra packages common to all intel machines |
26 | MACHINE_EXTRA_RRECOMMENDS_append = " kernel-modules linux-firmware" | 31 | MACHINE_EXTRA_RRECOMMENDS:append = " kernel-modules linux-firmware" |
32 | MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS:append = " kernel-module-i915 linux-firmware-i915 kernel-module-igc kernel-module-r8152" | ||
27 | 33 | ||
28 | # for the early boot time kernel microcode loading support, | 34 | # for the early boot time kernel microcode loading support, |
29 | # merge the microcode data in the final initrd image. | 35 | # merge the microcode data in the final initrd image. |
30 | INITRD_LIVE_prepend = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', '${DEPLOY_DIR_IMAGE}/microcode.cpio ', '', d)}" | 36 | INITRD_LIVE:prepend = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', '${DEPLOY_DIR_IMAGE}/microcode.cpio ', '', d)}" |
31 | 37 | ||
32 | DISK_SIGNATURE_UUID ??= "deadbeef-dead-beef-dead-beefdeadbeef" | 38 | DISK_SIGNATURE_UUID ??= "deadbeef-dead-beef-dead-beefdeadbeef" |
33 | 39 | ||
34 | EFI_PROVIDER ?= "systemd-boot" | 40 | EFI_PROVIDER ?= "systemd-boot" |
35 | EFI_PROVIDER_x86-x32 = "grub-efi" | 41 | EFI_PROVIDER:x86-x32 = "grub-efi" |
36 | 42 | ||
37 | # Add general MACHINEOVERRIDE for meta-intel | 43 | # Add general MACHINEOVERRIDE for meta-intel |
38 | MACHINEOVERRIDES =. "intel-x86-common:" | 44 | MACHINEOVERRIDES =. "intel-x86-common:" |
diff --git a/conf/machine/include/qemu-intel.inc b/conf/machine/include/qemu-intel.inc index 81510404..4608db99 100644 --- a/conf/machine/include/qemu-intel.inc +++ b/conf/machine/include/qemu-intel.inc | |||
@@ -2,7 +2,7 @@ | |||
2 | # distro content (in particular the kernel) less than qemu.inc. | 2 | # distro content (in particular the kernel) less than qemu.inc. |
3 | 3 | ||
4 | # Ensure that qemu gets built when building images. | 4 | # Ensure that qemu gets built when building images. |
5 | EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" | 5 | EXTRA_IMAGEDEPENDS += "qemu-system-native qemu-helper-native:do_addto_recipe_sysroot" |
6 | 6 | ||
7 | # Build ovmf firmware for uefi support in qemu. | 7 | # Build ovmf firmware for uefi support in qemu. |
8 | EXTRA_IMAGEDEPENDS += "ovmf" | 8 | EXTRA_IMAGEDEPENDS += "ovmf" |
diff --git a/conf/machine/include/qemuboot-intel.inc b/conf/machine/include/qemuboot-intel.inc index 6586cf09..17a1234d 100644 --- a/conf/machine/include/qemuboot-intel.inc +++ b/conf/machine/include/qemuboot-intel.inc | |||
@@ -1,15 +1,18 @@ | |||
1 | # For runqemu | 1 | # For runqemu |
2 | IMAGE_CLASSES += "qemuboot" | 2 | IMAGE_CLASSES += "qemuboot" |
3 | QB_SYSTEM_NAME_intel-core2-32 = "qemu-system-i386" | 3 | QB_SYSTEM_NAME:intel-core2-32 = "qemu-system-i386" |
4 | QB_CPU_intel-core2-32 = "-cpu coreduo" | 4 | QB_CPU:intel-core2-32 = "-cpu coreduo" |
5 | QB_CPU_KVM_intel-core2-32 = "-cpu kvm32" | 5 | QB_CPU_KVM:intel-core2-32 = "-cpu kvm32" |
6 | 6 | ||
7 | QB_SYSTEM_NAME_intel-corei7-64 = "qemu-system-x86_64" | 7 | QB_SYSTEM_NAME:intel-corei7-64 = "qemu-system-x86_64" |
8 | QB_CPU_intel-corei7-64 = "-cpu Nehalem" | 8 | QB_CPU:intel-corei7-64 = "-cpu Nehalem" |
9 | QB_CPU_KVM_intel-corei7-64 = "-cpu kvm64" | 9 | QB_CPU_KVM:intel-corei7-64 = "-cpu kvm64" |
10 | |||
11 | QB_SYSTEM_NAME:intel-skylake-64 = "qemu-system-x86_64" | ||
12 | QB_CPU:intel-skylake-64 = "-cpu Skylake-Client" | ||
13 | QB_CPU_KVM:intel-skylake-64 = "-cpu Skylake-Client" | ||
10 | 14 | ||
11 | QB_AUDIO_DRV = "alsa" | 15 | QB_AUDIO_DRV = "alsa" |
12 | QB_AUDIO_OPT = "-soundhw ac97,es1370" | 16 | QB_AUDIO_OPT = "-device AC97" |
13 | QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1" | 17 | QB_KERNEL_CMDLINE_APPEND = " oprofile.timer=1" |
14 | # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy | 18 | QB_OPT_APPEND = " -usb -usbdevice tablet " |
15 | QB_OPT_APPEND = "-vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci" | ||
diff --git a/conf/machine/intel-core2-32.conf b/conf/machine/intel-core2-32.conf index d99dc783..5b134dc3 100644 --- a/conf/machine/intel-core2-32.conf +++ b/conf/machine/intel-core2-32.conf | |||
@@ -13,11 +13,6 @@ MACHINE_FEATURES += "intel-ucode" | |||
13 | 13 | ||
14 | MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi" | 14 | MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi" |
15 | 15 | ||
16 | MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "gma500-gfx-check" | ||
17 | |||
18 | # Enable optional QAT items: | ||
19 | COMPATIBLE_MACHINE_pn-qat17 = "intel-core2-32" | ||
20 | |||
21 | XSERVER ?= "${XSERVER_X86_BASE} \ | 16 | XSERVER ?= "${XSERVER_X86_BASE} \ |
22 | ${XSERVER_X86_EXT} \ | 17 | ${XSERVER_X86_EXT} \ |
23 | ${XSERVER_X86_FBDEV} \ | 18 | ${XSERVER_X86_FBDEV} \ |
@@ -29,9 +24,9 @@ XSERVER ?= "${XSERVER_X86_BASE} \ | |||
29 | " | 24 | " |
30 | 25 | ||
31 | SYSLINUX_OPTS = "serial 0 115200" | 26 | SYSLINUX_OPTS = "serial 0 115200" |
32 | SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyPCH0" | 27 | SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyPCH0" |
33 | APPEND += "rootwait console=ttyS0,115200 console=ttyPCH0,115200 console=tty0" | 28 | APPEND += "rootwait console=ttyS0,115200 console=ttyPCH0,115200 console=tty0" |
34 | 29 | ||
35 | IMAGE_FSTYPES += "wic" | 30 | IMAGE_FSTYPES += "wic" |
36 | WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" | 31 | WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" |
37 | WKS_FILE_DEPENDS_append = " intel-microcode" | 32 | WKS_FILE_DEPENDS:append = " intel-microcode" |
diff --git a/conf/machine/intel-corei7-64.conf b/conf/machine/intel-corei7-64.conf index 197546f7..947f72d4 100644 --- a/conf/machine/intel-corei7-64.conf +++ b/conf/machine/intel-corei7-64.conf | |||
@@ -11,15 +11,11 @@ MACHINE_FEATURES += "pcbios efi" | |||
11 | MACHINE_FEATURES += "wifi 3g nfc" | 11 | MACHINE_FEATURES += "wifi 3g nfc" |
12 | MACHINE_FEATURES += "intel-ucode" | 12 | MACHINE_FEATURES += "intel-ucode" |
13 | 13 | ||
14 | MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi" | 14 | MACHINE_HWCODECS ?= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'intel-media-driver vpl-gpu-rt', d)} gstreamer1.0-vaapi" |
15 | 15 | ||
16 | # Enable optional dpdk: | 16 | # Enable optional dpdk: |
17 | COMPATIBLE_MACHINE_pn-dpdk = "intel-corei7-64" | 17 | COMPATIBLE_MACHINE:pn-dpdk = "intel-corei7-64" |
18 | 18 | COMPATIBLE_MACHINE:pn-dpdk-module = "intel-corei7-64" | |
19 | # Enable optional QAT items: | ||
20 | COMPATIBLE_MACHINE_pn-qat16 = "intel-corei7-64" | ||
21 | COMPATIBLE_MACHINE_pn-qat17 = "intel-corei7-64" | ||
22 | COMPATIBLE_MACHINE_pn-zlib-qat = "intel-corei7-64" | ||
23 | 19 | ||
24 | XSERVER ?= "${XSERVER_X86_BASE} \ | 20 | XSERVER ?= "${XSERVER_X86_BASE} \ |
25 | ${XSERVER_X86_EXT} \ | 21 | ${XSERVER_X86_EXT} \ |
@@ -32,9 +28,9 @@ XSERVER ?= "${XSERVER_X86_BASE} \ | |||
32 | " | 28 | " |
33 | 29 | ||
34 | SYSLINUX_OPTS = "serial 0 115200" | 30 | SYSLINUX_OPTS = "serial 0 115200" |
35 | SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyS2" | 31 | SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyS2" |
36 | APPEND += "rootwait console=ttyS0,115200 console=tty0" | 32 | APPEND += "rootwait console=ttyS0,115200 console=tty0" |
37 | 33 | ||
38 | IMAGE_FSTYPES += "wic" | 34 | IMAGE_FSTYPES += "wic" |
39 | WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" | 35 | WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" |
40 | WKS_FILE_DEPENDS_append = " intel-microcode" | 36 | WKS_FILE_DEPENDS:append = " intel-microcode" |
diff --git a/conf/machine/intel-skylake-64.conf b/conf/machine/intel-skylake-64.conf new file mode 100644 index 00000000..bfaf08dd --- /dev/null +++ b/conf/machine/intel-skylake-64.conf | |||
@@ -0,0 +1,36 @@ | |||
1 | #@TYPE: Machine | ||
2 | #@NAME: intel-skylake-64 | ||
3 | |||
4 | #@DESCRIPTION: Machine configuration for 64 bit Intel Skylake CPU (and later) with MMX, SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, and AVX2 instruction set support. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware. | ||
5 | |||
6 | require conf/machine/include/meta-intel.inc | ||
7 | require conf/machine/include/x86/x86-base.inc | ||
8 | require conf/machine/include/x86/tune-x86-64-v3.inc | ||
9 | require conf/machine/include/intel-common-pkgarch.inc | ||
10 | |||
11 | MACHINE_FEATURES += "efi" | ||
12 | MACHINE_FEATURES += "wifi 3g nfc" | ||
13 | MACHINE_FEATURES += "intel-ucode" | ||
14 | |||
15 | MACHINE_HWCODECS ?= "intel-media-driver vpl-gpu-rt gstreamer1.0-vaapi" | ||
16 | |||
17 | COMPATIBLE_MACHINE:pn-dpdk = "intel-skylake-64" | ||
18 | COMPATIBLE_MACHINE:pn-dpdk-module = "intel-skylake-64" | ||
19 | |||
20 | XSERVER ?= "${XSERVER_X86_BASE} \ | ||
21 | ${XSERVER_X86_EXT} \ | ||
22 | ${XSERVER_X86_FBDEV} \ | ||
23 | ${XSERVER_X86_I915} \ | ||
24 | ${XSERVER_X86_I965} \ | ||
25 | ${XSERVER_X86_MODESETTING} \ | ||
26 | ${XSERVER_X86_VESA} \ | ||
27 | ${XSERVER_X86_ASPEED_AST} \ | ||
28 | " | ||
29 | |||
30 | SYSLINUX_OPTS = "serial 0 115200" | ||
31 | SERIAL_CONSOLES ?= "115200;ttyS0 115200;ttyS1 115200;ttyS2" | ||
32 | APPEND += "rootwait console=ttyS0,115200 console=tty0" | ||
33 | |||
34 | IMAGE_FSTYPES += "wic" | ||
35 | WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}" | ||
36 | WKS_FILE_DEPENDS:append = " intel-microcode" | ||
diff --git a/custom-licenses/ACE-TAO-CIAO b/custom-licenses/ACE-TAO-CIAO deleted file mode 100644 index 67fc5632..00000000 --- a/custom-licenses/ACE-TAO-CIAO +++ /dev/null | |||
@@ -1,111 +0,0 @@ | |||
1 | |||
2 | _________________________________________________________________ | ||
3 | |||
4 | Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM), | ||
5 | DAnCE(TM), and CoSMIC(TM) | ||
6 | |||
7 | [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), DAnCE(TM), and [4]CoSMIC(TM) | ||
8 | (henceforth referred to as "DOC software") are copyrighted by | ||
9 | [5]Douglas C. Schmidt and his [6]research group at [7]Washington | ||
10 | University, [8]University of California, Irvine, and [9]Vanderbilt | ||
11 | University, Copyright (c) 1993-2018, all rights reserved. Since DOC | ||
12 | software is open-source, freely available software, you are free to | ||
13 | use, modify, copy, and distribute--perpetually and irrevocably--the | ||
14 | DOC software source code and object code produced from the source, as | ||
15 | well as copy and distribute modified versions of this software. You | ||
16 | must, however, include this copyright statement along with any code | ||
17 | built using DOC software that you release. No copyright statement | ||
18 | needs to be provided if you just ship binary executables of your | ||
19 | software products. | ||
20 | |||
21 | You can use DOC software in commercial and/or binary software releases | ||
22 | and are under no obligation to redistribute any of your source code | ||
23 | that is built using DOC software. Note, however, that you may not | ||
24 | misappropriate the DOC software code, such as copyrighting it yourself | ||
25 | or claiming authorship of the DOC software code, in a way that will | ||
26 | prevent DOC software from being distributed freely using an | ||
27 | open-source development model. You needn't inform anyone that you're | ||
28 | using DOC software in your software, though we encourage you to let | ||
29 | [10]us know so we can promote your project in the [11]DOC software | ||
30 | success stories. | ||
31 | |||
32 | The [12]ACE, [13]TAO, [14]CIAO, [15]DAnCE, and [16]CoSMIC web sites | ||
33 | are maintained by the [17]DOC Group at the [18]Institute for Software | ||
34 | Integrated Systems (ISIS) and the [19]Center for Distributed Object | ||
35 | Computing of Washington University, St. Louis for the development of | ||
36 | open-source software as part of the open-source software community. | ||
37 | Submissions are provided by the submitter ``as is'' with no warranties | ||
38 | whatsoever, including any warranty of merchantability, noninfringement | ||
39 | of third party intellectual property, or fitness for any particular | ||
40 | purpose. In no event shall the submitter be liable for any direct, | ||
41 | indirect, special, exemplary, punitive, or consequential damages, | ||
42 | including without limitation, lost profits, even if advised of the | ||
43 | possibility of such damages. Likewise, DOC software is provided as is | ||
44 | with no warranties of any kind, including the warranties of design, | ||
45 | merchantability, and fitness for a particular purpose, | ||
46 | noninfringement, or arising from a course of dealing, usage or trade | ||
47 | practice. Washington University, UC Irvine, Vanderbilt University, | ||
48 | their employees, and students shall have no liability with respect to | ||
49 | the infringement of copyrights, trade secrets or any patents by DOC | ||
50 | software or any part thereof. Moreover, in no event will Washington | ||
51 | University, UC Irvine, or Vanderbilt University, their employees, or | ||
52 | students be liable for any lost revenue or profits or other special, | ||
53 | indirect and consequential damages. | ||
54 | |||
55 | DOC software is provided with no support and without any obligation on | ||
56 | the part of Washington University, UC Irvine, Vanderbilt University, | ||
57 | their employees, or students to assist in its use, correction, | ||
58 | modification, or enhancement. A [20]number of companies around the | ||
59 | world provide commercial support for DOC software, however. DOC | ||
60 | software is Y2K-compliant, as long as the underlying OS platform is | ||
61 | Y2K-compliant. Likewise, DOC software is compliant with the new US | ||
62 | daylight savings rule passed by Congress as "The Energy Policy Act of | ||
63 | 2005," which established new daylight savings times (DST) rules for | ||
64 | the United States that expand DST as of March 2007. Since DOC software | ||
65 | obtains time/date and calendaring information from operating systems | ||
66 | users will not be affected by the new DST rules as long as they | ||
67 | upgrade their operating systems accordingly. | ||
68 | |||
69 | The names ACE(TM), TAO(TM), CIAO(TM), DAnCE(TM), CoSMIC(TM), | ||
70 | Washington University, UC Irvine, and Vanderbilt University, may not | ||
71 | be used to endorse or promote products or services derived from this | ||
72 | source without express written permission from Washington University, | ||
73 | UC Irvine, or Vanderbilt University. This license grants no permission | ||
74 | to call products or services derived from this source ACE(TM), | ||
75 | TAO(TM), CIAO(TM), DAnCE(TM), or CoSMIC(TM), nor does it grant | ||
76 | permission for the name Washington University, UC Irvine, or | ||
77 | Vanderbilt University to appear in their names. | ||
78 | |||
79 | If you have any suggestions, additions, comments, or questions, please | ||
80 | let [21]me know. | ||
81 | |||
82 | [22]Douglas C. Schmidt | ||
83 | _________________________________________________________________ | ||
84 | |||
85 | Back to the [23]ACE home page. | ||
86 | |||
87 | References | ||
88 | |||
89 | 1. http://www.dre.vanderbilt.edu/~schmidt/ACE.html | ||
90 | 2. http://www.dre.vanderbilt.edu/~schmidt/TAO.html | ||
91 | 3. http://www.dre.vanderbilt.edu/CIAO/ | ||
92 | 4. http://www.dre.vanderbilt.edu/cosmic/ | ||
93 | 5. http://www.dre.vanderbilt.edu/~schmidt/ | ||
94 | 6. http://www.dre.vanderbilt.edu/~schmidt/ACE-members.html | ||
95 | 7. http://www.wustl.edu/ | ||
96 | 8. http://www.uci.edu/ | ||
97 | 9. http://www.vanderbilt.edu/ | ||
98 | 10. mailto:doc_group@cs.wustl.edu | ||
99 | 11. http://www.dre.vanderbilt.edu/~schmidt/ACE-users.html | ||
100 | 12. http://www.dre.vanderbilt.edu/~schmidt/ACE.html | ||
101 | 13. http://www.dre.vanderbilt.edu/~schmidt/TAO.html | ||
102 | 14. http://www.dre.vanderbilt.edu/CIAO/ | ||
103 | 15. http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/DAnCE/ | ||
104 | 16. http://www.dre.vanderbilt.edu/cosmic/ | ||
105 | 17. http://www.dre.vanderbilt.edu/ | ||
106 | 18. http://www.isis.vanderbilt.edu/ | ||
107 | 19. http://www.cs.wustl.edu/~schmidt/doc-center.html | ||
108 | 20. http://www.dre.vanderbilt.edu/~schmidt/commercial-support.html | ||
109 | 21. mailto:d.schmidt@vanderbilt.edu | ||
110 | 22. http://www.dre.vanderbilt.edu/~schmidt/ | ||
111 | 23. http://www.dre.vanderbilt.edu/~schmidt/ACE.html | ||
diff --git a/custom-licenses/EULA b/custom-licenses/EULA new file mode 100644 index 00000000..549f78e1 --- /dev/null +++ b/custom-licenses/EULA | |||
@@ -0,0 +1,392 @@ | |||
1 | Intel End User License Agreement for Developer Tools (Version October 2021) | ||
2 | |||
3 | IMPORTANT NOTICE - PLEASE READ AND AGREE BEFORE DOWNLOADING, INSTALLING, COPYING | ||
4 | OR USING | ||
5 | |||
6 | This Agreement is between you, or the company or other legal entity that you | ||
7 | represent and warrant you have the legal authority to bind, (each, "You" or | ||
8 | "Your") and Intel Corporation and its subsidiaries (collectively, "Intel") | ||
9 | regarding Your use of the Materials. By downloading, installing, copying or | ||
10 | using the Materials, You agree to be bound by the terms of this Agreement. If | ||
11 | You do not agree to the terms of this Agreement, or do not have legal authority | ||
12 | or required age to agree to them, do not download, install, copy or use the | ||
13 | Materials. | ||
14 | |||
15 | 1. LICENSE DEFINITIONS. | ||
16 | |||
17 | A. "Cloud Provider" means a third party service provider offering a cloud-based | ||
18 | platform, infrastructure, application or storage services, such as Microsoft | ||
19 | Azure or Amazon Web Services, which You may only utilize to host the | ||
20 | Materials subject to the restrictions set forth in Section 2.3 B. | ||
21 | |||
22 | B. "Derivative Work" means a derivative work, as defined in 17 U.S.C. 101, of | ||
23 | the Source Code. | ||
24 | |||
25 | C. "Executable Code" means computer programming code in binary form suitable | ||
26 | for machine execution by a processor without the intervening steps of | ||
27 | interpretation or compilation. | ||
28 | |||
29 | D. "Materials" mean the software, documentation, the software product serial | ||
30 | number, and other collateral, including any updates, made available to You | ||
31 | by Intel under this Agreement. Materials include Redistributables, | ||
32 | Executable Code, Source Code, Sample Source Code, and Pre-Release Materials, | ||
33 | but do not include Third Party Software. | ||
34 | |||
35 | E. "Pre-Release Materials" mean the Materials, or portions of the Materials, | ||
36 | that are identified (in the product release notes, on Intel's download | ||
37 | website for the Materials or elsewhere) or labeled as pre-release, | ||
38 | prototype, alpha or beta code and, as such, are deemed to be pre-release | ||
39 | code (i) which may not be fully functional or tested and may contain bugs or | ||
40 | errors; (ii) which Intel may substantially modify in its development of a | ||
41 | production version; or (iii) for which Intel makes no assurances that it | ||
42 | will ever develop or make a production version generally available. | ||
43 | Pre-Release Materials are subject to the terms of Section 3.2. | ||
44 | |||
45 | F. "Reciprocal Open Source Software" means any software that is subject to a | ||
46 | license which requires that (i) it must be distributed in source code form; | ||
47 | (ii) it must be licensed under the same open source license terms; and (iii) | ||
48 | its derivative works must be licensed under the same open source license | ||
49 | terms. Examples of this type of license are the GNU General Public License | ||
50 | or the Mozilla Public License. | ||
51 | |||
52 | G. "Redistributables" mean the files (if any) listed in the "redist.txt," | ||
53 | "redist-rt.txt" or similarly-named text files that may be included in the | ||
54 | Materials. Redistributables include Sample Source Code. | ||
55 | |||
56 | H. "Sample Source Code" means those portions of the Materials that are Source | ||
57 | Code and are identified as sample code. Sample Source Code may not have been | ||
58 | tested or validated by Intel and is provided purely as a programming example. | ||
59 | |||
60 | I. "Source Code" means the software portion of the Materials provided in human | ||
61 | readable format. | ||
62 | |||
63 | J. "Third Party Software" mean the files (if any) listed in the | ||
64 | "third-party-software.txt" or other similarly-named text file that may be | ||
65 | included in the Materials for the applicable software. Third Party Software | ||
66 | is subject to the terms of Section 2.2. | ||
67 | |||
68 | K. "Your Product" means one or more applications, products or projects | ||
69 | developed by or for You using the Materials. | ||
70 | |||
71 | 2. LICENSE GRANTS. | ||
72 | |||
73 | 2.1 License to the Materials. Subject to the terms and conditions of this | ||
74 | Agreement, Intel grants You a non-exclusive, worldwide, non-assignable, | ||
75 | non-sublicensable, limited right and license under its copyrights, to: | ||
76 | |||
77 | A. reproduce internally a reasonable number of copies of the Materials for Your | ||
78 | personal or business use; | ||
79 | |||
80 | B. use the Materials solely for Your personal or business use to develop Your | ||
81 | Product, in accordance with the documentation included as part of the | ||
82 | Materials; | ||
83 | |||
84 | C. modify or create Derivative Works only of the Redistributables, or any | ||
85 | portions, that are provided to You in Source Code; | ||
86 | |||
87 | D. distribute (directly and through Your distributors, resellers, and other | ||
88 | channel partners, if applicable), the Redistributables, including any | ||
89 | modifications to or Derivative Works of the Redistributables or any portions | ||
90 | made pursuant to Section 2.1.C subject to the following conditions: | ||
91 | |||
92 | (1) Any distribution of the Redistributables must only be as part of Your | ||
93 | Product which must add significant primary functionality different than | ||
94 | that of the Redistributables themselves; | ||
95 | |||
96 | (2) You must only distribute the Redistributables originally provided to You | ||
97 | by Intel only in Executable Code subject to a license agreement that | ||
98 | prohibits reverse engineering, decompiling or disassembling the | ||
99 | Redistributables; | ||
100 | |||
101 | (3) This distribution right includes a limited right to sublicense only the | ||
102 | Intel copyrights in the Redistributables and only to the extent necessary | ||
103 | to perform, display, and distribute the Redistributables (including Your | ||
104 | modifications and Derivative Works of the Redistributables provided in | ||
105 | Source Code) solely as incorporated in Your Product; and | ||
106 | |||
107 | (4) You: (i) will be solely responsible to Your customers for any update, | ||
108 | support obligation or other obligation or liability which may arise from | ||
109 | the distribution of Your Product, (ii) will not make any statement that | ||
110 | Your Product is "certified" or that its performance is guaranteed by Intel | ||
111 | or its suppliers, (iii) will not use Intel's or its suppliers' names or | ||
112 | trademarks to market Your Product, (iv) will comply with any additional | ||
113 | restrictions which are included in the text files with the | ||
114 | Redistributables and in Section 3 below, (v) will indemnify, hold | ||
115 | harmless, and defend Intel and its suppliers from and against any claims | ||
116 | or lawsuits, costs, damages, and expenses, including attorney's fees, that | ||
117 | arise or result from (a) Your modifications or Derivative Works of the | ||
118 | Materials or (b) Your distribution of Your Product. | ||
119 | |||
120 | 2.2 Third Party Software. Third Party Software, even if included with the | ||
121 | distribution of the Materials, may be governed by separate license terms, | ||
122 | including without limitation, third party license terms, open source | ||
123 | software notices and terms, and/or other Intel software license terms. These | ||
124 | separate license terms solely govern Your use of the Third Party Software. | ||
125 | |||
126 | 2.3 Third Party Use. | ||
127 | |||
128 | A. If You are an entity, Your contractors may use the Materials under the | ||
129 | license specified in Section 2, provided: (i) their use of the Materials is | ||
130 | solely on behalf of and in support of Your business, (ii) they agree to the | ||
131 | terms and conditions of this Agreement, and (iii) You are solely responsible | ||
132 | for their use, misuse or disclosure of the Materials. | ||
133 | |||
134 | B. You may utilize a Cloud Provider to host the Materials for You, provided: | ||
135 | (i) the Cloud Provider may only host the Materials for Your exclusive use | ||
136 | and may not use the Materials for any other purpose whatsoever, including the | ||
137 | restriction set forth in Section 3.1(xi); (ii) the Cloud Provider's use of | ||
138 | the Materials must be solely on behalf of and in support of Your Product, and | ||
139 | (iii) You will indemnify, hold harmless, and defend Intel and its suppliers | ||
140 | from and against any claims or lawsuits, costs, damages, and expenses, | ||
141 | including attorney's fees, that arise or result from Your Cloud Provider's | ||
142 | use, misuse or disclosure of the Materials. | ||
143 | |||
144 | 3. LICENSE CONDITIONS. | ||
145 | |||
146 | 3.1 Restrictions. Except as expressly provided in this Agreement, You may NOT: | ||
147 | (i) use, reproduce, disclose, distribute, or publicly display the | ||
148 | Materials; (ii) share, publish, rent or lease the Materials to any third | ||
149 | party; (iii) assign this Agreement or transfer the Materials; (iv) modify, | ||
150 | adapt, or translate the Materials in whole or in part; (v) reverse engineer, | ||
151 | decompile, or disassemble the Materials, or otherwise attempt to derive the | ||
152 | source code for the software; (vi) work around any technical limitations in | ||
153 | the Materials; (vii) distribute, sublicense or transfer any Source Code, | ||
154 | modifications or Derivative Works of any Source Code to any third party; | ||
155 | (viii) remove, minimize, block or modify any notices of Intel or its | ||
156 | suppliers in the Materials; (ix) include the Redistributables in malicious, | ||
157 | deceptive, or unlawful programs or products or use the Materials in any way | ||
158 | that is against the law; (x) modify, create a Derivative Work, link, or | ||
159 | distribute the Materials so that any part of it becomes Reciprocal Open | ||
160 | Source Software; (xi) use the Materials directly or indirectly for SaaS | ||
161 | services or service bureau purposes (i.e., a service that allows use of or | ||
162 | access to the Materials by a third party as part of that service, such as | ||
163 | the salesforce.com service business model). | ||
164 | |||
165 | 3.2 Pre-Release Materials. If You receive Pre-Release Materials, You may | ||
166 | reproduce a reasonable number of copies and use the Pre-Release Materials | ||
167 | for evaluation and testing purposes only. You may not (i) modify or | ||
168 | incorporate the Pre-Release Materials into Your Product; (ii) continue to | ||
169 | use the Pre-Release Materials once a commercial version is released; or | ||
170 | (iii) disclose to any third party any benchmarks, performance results, or | ||
171 | other information relating to the Pre-Release Materials. Intel may waive | ||
172 | these restrictions in writing at its sole discretion; however, if You decide | ||
173 | to use the Pre-Release Materials in Your Product (even with Intel's waiver), | ||
174 | You acknowledge and agree that You are fully responsible for any and all | ||
175 | issues that result from such use. | ||
176 | |||
177 | 3.3 Safety-Critical, and Life-Saving Applications; Indemnity. The Materials may | ||
178 | provide information relevant to safety-critical applications | ||
179 | ("Safety-Critical Applications") to allow compliance with functional safety | ||
180 | standards or requirements. You acknowledge and agree that safety is Your | ||
181 | responsibility. To the extent You use the Materials to create, or as part | ||
182 | of, products used in Safety-Critical Applications, it is Your responsibility | ||
183 | to design, manage, and ensure that there are system-level safeguards to | ||
184 | anticipate, monitor, and control system failures, and You agree that You are | ||
185 | solely responsible for all applicable regulatory standards and | ||
186 | safety-related requirements concerning Your use of the Materials in Safety | ||
187 | Critical Applications. | ||
188 | |||
189 | Should You use the Materials for Safety-Critical Applications or in any type | ||
190 | of a system or application in which the failure of the Materials could | ||
191 | create a situation where personal injury or death may occur (e.g., medical | ||
192 | systems, life-sustaining or life-saving systems) ("Life-Saving | ||
193 | Applications"), You agree to indemnify, defend, and hold Intel and its | ||
194 | representatives harmless against any claims or lawsuits, costs, damages, and | ||
195 | expenses, including reasonable attorney fees, arising in any way out of Your | ||
196 | use of the Materials in Safety-Critical Applications or Life-Saving | ||
197 | Applications and claims of product liability, personal injury or death | ||
198 | associated with those applications; even if such claims allege that Intel | ||
199 | was negligent or strictly liable regarding the design or manufacture of the | ||
200 | Materials or its failure to warn regarding the Materials. | ||
201 | |||
202 | 3.4 Media Format Codecs and Digital Rights Management. You acknowledge and agree | ||
203 | that Your use of the Materials or distribution of the Redistributables with | ||
204 | Your Product as permitted by this Agreement may require You to procure | ||
205 | license(s) from third parties that may hold intellectual property rights | ||
206 | applicable to any media decoding, encoding or transcoding technology (e.g., | ||
207 | the use of an audio or video codec) and/or digital rights management | ||
208 | capabilities of the Materials, if any. Should any such additional licenses | ||
209 | be required, You are solely responsible for obtaining any such licenses and | ||
210 | agree to obtain any such licenses at Your own expense. | ||
211 | |||
212 | 4. DATA COLLECTION AND PRIVACY. | ||
213 | |||
214 | 4.1 Data Collection. The Materials may generate and collect anonymous data | ||
215 | and/or provisioning data about the Materials and/or the development | ||
216 | environment and transmit the data to Intel as a one-time event during | ||
217 | installation. Optional data may also be collected by the Materials, however, | ||
218 | You will be provided notice of the request to collect optional data and no | ||
219 | optional data will be collected without Your consent. All data collection by | ||
220 | Intel is performed pursuant to relevant privacy laws, including notice and | ||
221 | consent requirements. | ||
222 | |||
223 | 4.2 Intel's Privacy Notice. Intel is committed to respecting Your privacy. To | ||
224 | learn more about Intel's privacy practices, please visit | ||
225 | http://www.intel.com/privacy. | ||
226 | |||
227 | 5. OWNERSHIP. Title to the Materials and all copies remain with Intel or its | ||
228 | suppliers. The Materials are protected by intellectual property rights, | ||
229 | including without limitation, United States copyright laws and international | ||
230 | treaty provisions. You will not remove any copyright or other proprietary | ||
231 | notices from the Materials. Except as expressly provided herein, no license | ||
232 | or right is granted to You directly or by implication, inducement, estoppel | ||
233 | or otherwise; specifically, Intel does not grant any express or implied right | ||
234 | to You under Intel patents, copyrights, trademarks, or trade secrets. | ||
235 | |||
236 | 6. NO WARRANTY AND NO SUPPORT. | ||
237 | |||
238 | 6.1 No Warranty. Disclaimer. Intel disclaims all warranties of any kind and the | ||
239 | terms and remedies provided in this Agreement are instead of any other | ||
240 | warranty or condition, express, implied or statutory, including those | ||
241 | regarding merchantability, fitness for any particular purpose, | ||
242 | non-infringement or any warranty arising out of any course of dealing, usage | ||
243 | of trade, proposal, specification or sample. Intel does not assume (and does | ||
244 | not authorize any person to assume on its behalf) any liability. | ||
245 | |||
246 | 6.2 No Support; Priority Support. Intel may make changes to the Materials, or to | ||
247 | items referenced therein, at any time without notice, but is not obligated | ||
248 | to support, update or provide training for the Materials under the terms of | ||
249 | this Agreement. Intel offers free community and paid priority support | ||
250 | options. More information on these support options can be found at: | ||
251 | https://software.intel.com/content/www/us/en/develop/support/priority-support.html. | ||
252 | |||
253 | 7. LIMITATION OF LIABILITY. | ||
254 | |||
255 | 7.1 Intel will not be liable for any of the following losses or damages (whether | ||
256 | such losses or damages were foreseen, foreseeable, known or otherwise): (i) | ||
257 | loss of revenue; (ii) loss of actual or anticipated profits; (iii) loss of | ||
258 | the use of money; (iv) loss of anticipated savings; (v) loss of business; | ||
259 | (vi) loss of opportunity; (vii) loss of goodwill; (viii) loss of use of the | ||
260 | Materials; (ix) loss of reputation; (x) loss of, damage to, or corruption of | ||
261 | data; or (xi) any indirect, incidental, special or consequential loss of | ||
262 | damage however caused (including loss or damage of the type specified in | ||
263 | this Section 7). | ||
264 | |||
265 | 7.2 Intel's total cumulative liability to You, including for direct damages for | ||
266 | claims relating to this Agreement, and whether for breach of contract, | ||
267 | negligence, or for any other reason, will not exceed $100. | ||
268 | |||
269 | 7.3 You acknowledge that the limitations of liability provided in this Section 7 | ||
270 | are an essential part of this Agreement. You agree that the limitations of | ||
271 | liability provided in this Agreement with respect to Intel will be conveyed | ||
272 | to and made binding upon any customer of Yours that acquires the | ||
273 | Redistributables. | ||
274 | |||
275 | 8. USER SUBMISSIONS. Should you provide Intel with comments, modifications, | ||
276 | corrections, enhancements or other input ("Feedback") related to the | ||
277 | Materials, Intel will be free to use, disclose, reproduce, license or | ||
278 | otherwise distribute or exploit the Feedback in its sole discretion without | ||
279 | any obligations or restrictions of any kind, including without limitation, | ||
280 | intellectual property rights or licensing obligations. If You wish to provide | ||
281 | Intel with information that You intend to be treated as confidential | ||
282 | information, Intel requires that such confidential information be provided | ||
283 | pursuant to a non-disclosure agreement ("NDA"); please contact Your Intel | ||
284 | representative to ensure the proper NDA is in place. | ||
285 | |||
286 | 9. NON-DISCLOSURE. Information provided by Intel to You may include information | ||
287 | marked as confidential. You must treat such information as confidential under | ||
288 | the terms of the applicable NDA between Intel and You. If You have not | ||
289 | entered into an NDA with Intel, You must not disclose, distribute or make use | ||
290 | of any information marked as confidential, except as expressly authorized in | ||
291 | writing by Intel. Intel retains all rights in and to its confidential | ||
292 | information specifications, designs, engineering details, discoveries, | ||
293 | inventions, patents, copyrights, trademarks, trade secrets, and other | ||
294 | proprietary rights relating to the Materials. Any breach by You of the | ||
295 | confidentiality obligations provided for in this Section 9 will cause | ||
296 | irreparable injury to Intel for which money damages may be inadequate to | ||
297 | compensate Intel for losses arising from such a breach. Intel may obtain | ||
298 | equitable relief, including injunctive relief, if You breach or threaten to | ||
299 | breach Your confidentiality obligations. | ||
300 | |||
301 | 10. TERM AND TERMINATION. This Agreement becomes effective on the date You | ||
302 | accept this Agreement and will continue until terminated as provided for in | ||
303 | this Agreement. The term for any Pre-Release Materials terminates upon | ||
304 | release of a commercial version. This Agreement will terminate if You are in | ||
305 | breach of any of its terms and conditions. Upon termination, You will | ||
306 | promptly destroy the Materials and all copies. In the event of termination of | ||
307 | this Agreement, Your license to any Redistributables distributed by You in | ||
308 | accordance with the terms and conditions of this Agreement, prior to the | ||
309 | effective date of such termination, will survive any such termination of this | ||
310 | Agreement. Sections 1, 2.1.D(4)(v), 2.2, 2.3.A(iii), 2.3.B(iii), 3.3, 5, 6, | ||
311 | 7, 8, 9, 10 (with respect to these survival provisions in the last sentence), | ||
312 | and 12 will survive expiration or termination of this Agreement. | ||
313 | |||
314 | 11. U.S. GOVERNMENT RESTRICTED RIGHTS. The technical data and computer software | ||
315 | covered by this license is a "Commercial Item," as such term is defined by | ||
316 | the FAR 2.101 (48 C.F.R. 2.101) and is "commercial computer software" and | ||
317 | "commercial computer software documentation" as specified under FAR 12.212 | ||
318 | (48 C.F.R. 12.212) or DFARS 227.7202 (48 C.F.R. 227.7202), as applicable. | ||
319 | This commercial computer software and related documentation is provided to | ||
320 | end users for use by and on behalf of the U.S. Government with only those | ||
321 | rights as are granted to all other end users pursuant to the terms and | ||
322 | conditions of this Agreement. | ||
323 | |||
324 | 12. GENERAL PROVISIONS. | ||
325 | |||
326 | 12.1 ENTIRE AGREEMENT. This Agreement contains the complete and exclusive | ||
327 | agreement and understanding between the parties concerning the subject | ||
328 | matter of this Agreement, and supersedes all prior and contemporaneous | ||
329 | proposals, agreements, understanding, negotiations, representations, | ||
330 | warranties, conditions, and communications, oral or written, between the | ||
331 | parties relating to the same subject matter. Each party acknowledges and | ||
332 | agrees that in entering into this Agreement it has not relied on, and will | ||
333 | not be entitled to rely on, any oral or written representations, | ||
334 | warranties, conditions, understanding, or communications between the | ||
335 | parties that are not expressly set forth in this Agreement. The express | ||
336 | provisions of this Agreement control over any course of performance, course | ||
337 | of dealing, or usage of the trade inconsistent with any of the provisions | ||
338 | of this Agreement. The provisions of this Agreement will prevail | ||
339 | notwithstanding any different, conflicting, or additional provisions that | ||
340 | may appear on any purchase order, acknowledgement, invoice, or other | ||
341 | writing issued by either party in connection with this Agreement. No | ||
342 | modification or amendment to this Agreement will be effective unless in | ||
343 | writing and signed by authorized representatives of each party, and must | ||
344 | specifically identify this Agreement by its title and version (e.g., "Intel | ||
345 | End User License Agreement for Developer Tools (Version October 2021)"); | ||
346 | except that Intel may make changes to this Agreement as it distributes new | ||
347 | versions of the Materials. When changes are made, Intel will make a new | ||
348 | version of the Agreement available on its website. If You received a copy | ||
349 | of this Agreement translated into another language, the English language | ||
350 | version of this Agreement will prevail in the event of any conflict between | ||
351 | versions. | ||
352 | |||
353 | 12.2 EXPORT. You acknowledge that the Materials and all related technical | ||
354 | information are subject to export controls and you agree to comply with all | ||
355 | laws and regulations of the United States and other applicable governments | ||
356 | governing export, re-export, import, transfer, distribution, and use of the | ||
357 | Materials. In particular, but without limitation, the Materials may not be | ||
358 | exported or re-exported (i) into any U.S. embargoed countries or (ii) to | ||
359 | any person or entity listed on a denial order published by the U.S. | ||
360 | government or any other applicable governments. By using the Materials, You | ||
361 | represent and warrant that You are not located in any such country or on | ||
362 | any such list. You also agree that You will not use the Materials for, or | ||
363 | sell or transfer them to a third party who is known or suspected to be | ||
364 | involved in, any purposes prohibited by the U.S. government or other | ||
365 | applicable governments, including, without limitation, the development, | ||
366 | design, manufacture, or production of nuclear, missile, chemical or | ||
367 | biological weapons. | ||
368 | |||
369 | 12.3 GOVERNING LAW, JURISDICTION, AND VENUE. All disputes arising out of or | ||
370 | related to this Agreement, whether based on contract, tort, or any other | ||
371 | legal or equitable theory, will in all respects be governed by, and | ||
372 | construed and interpreted under, the laws of the United States of America | ||
373 | and the State of Delaware, without reference to conflict of laws | ||
374 | principles. The parties agree that the United Nations Convention on | ||
375 | Contracts for the International Sale of Goods (1980) is specifically | ||
376 | excluded from and will not apply to this Agreement. All disputes arising | ||
377 | out of or related to this Agreement, whether based on contract, tort, or | ||
378 | any other legal or equitable theory, will be subject to the exclusive | ||
379 | jurisdiction of the courts of the State of Delaware or of the Federal | ||
380 | courts sitting in that State. Each party submits to the personal | ||
381 | jurisdiction of those courts and waives all objections to that jurisdiction | ||
382 | and venue for those disputes. | ||
383 | |||
384 | 12.4 SEVERABILITY. The parties intend that if a court holds that any provision | ||
385 | or part of this Agreement is invalid or unenforceable under applicable law, | ||
386 | the court will modify the provision to the minimum extent necessary to make | ||
387 | it valid and enforceable, or if it cannot be made valid and enforceable, | ||
388 | the parties intend that the court will sever and delete the provision or | ||
389 | part from this Agreement. Any change to or deletion of a provision or part | ||
390 | of this Agreement under this Section will not affect the validity or | ||
391 | enforceability of the remainder of this Agreement, which will continue in | ||
392 | full force and effect. | ||
diff --git a/custom-licenses/ISSL b/custom-licenses/ISSL new file mode 100644 index 00000000..f987e502 --- /dev/null +++ b/custom-licenses/ISSL | |||
@@ -0,0 +1,73 @@ | |||
1 | Intel Simplified Software License (Version August 2021) | ||
2 | |||
3 | Use and Redistribution. You may use and redistribute the software (the | ||
4 | "Software"), without modification, provided the following conditions are met: | ||
5 | |||
6 | * Redistributions must reproduce the above copyright notice and the following | ||
7 | terms of use in the Software and in the documentation and/or other materials | ||
8 | provided with the distribution. | ||
9 | * Neither the name of Intel nor the names of its suppliers may be used to | ||
10 | endorse or promote products derived from this Software without specific | ||
11 | prior written permission. | ||
12 | * No reverse engineering, decompilation, or disassembly of this Software is | ||
13 | permitted. | ||
14 | |||
15 | No other licenses. Except as provided in the preceding section, Intel grants no | ||
16 | licenses or other rights by implication, estoppel or otherwise to, patent, | ||
17 | copyright, trademark, trade name, service mark or other intellectual property | ||
18 | licenses or rights of Intel. | ||
19 | |||
20 | Third party software. The Software may contain Third Party Software. "Third | ||
21 | Party Software" is open source software, third party software, or other Intel | ||
22 | software that may be identified in the Software itself or in the files (if any) | ||
23 | listed in the "third-party-software.txt" or similarly named text file included | ||
24 | with the Software. Third Party Software, even if included with the distribution | ||
25 | of the Software, may be governed by separate license terms, including without | ||
26 | limitation, open source software license terms, third party software license | ||
27 | terms, and other Intel software license terms. Those separate license terms | ||
28 | solely govern your use of the Third Party Software, and nothing in this license | ||
29 | limits any rights under, or grants rights that supersede, the terms of the | ||
30 | applicable license terms. | ||
31 | |||
32 | DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED | ||
33 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
34 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE | ||
35 | DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS | ||
36 | WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE | ||
37 | THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND | ||
38 | ATTORNEYS' FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT | ||
39 | INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE. | ||
40 | |||
41 | LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, | ||
42 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
43 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
44 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
45 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | ||
46 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | ||
47 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
48 | |||
49 | No support. Intel may make changes to the Software, at any time without notice, | ||
50 | and is not obligated to support, update or provide training for the Software. | ||
51 | |||
52 | Termination. Your right to use the Software is terminated in the event of your | ||
53 | breach of this license. | ||
54 | |||
55 | Feedback. Should you provide Intel with comments, modifications, corrections, | ||
56 | enhancements or other input ("Feedback") related to the Software, Intel will be | ||
57 | free to use, disclose, reproduce, license or otherwise distribute or exploit the | ||
58 | Feedback in its sole discretion without any obligations or restrictions of any | ||
59 | kind, including without limitation, intellectual property rights or licensing | ||
60 | obligations. | ||
61 | |||
62 | Compliance with laws. You agree to comply with all relevant laws and regulations | ||
63 | governing your use, transfer, import or export (or prohibition thereof) of the | ||
64 | Software. | ||
65 | |||
66 | Governing law. All disputes will be governed by the laws of the United States of | ||
67 | America and the State of Delaware without reference to conflict of law | ||
68 | principles and subject to the exclusive jurisdiction of the state or federal | ||
69 | courts sitting in the State of Delaware, and each party agrees that it submits | ||
70 | to the personal jurisdiction and venue of those courts and waives any | ||
71 | objections. The United Nations Convention on Contracts for the International | ||
72 | Sale of Goods (1980) is specifically excluded and will not apply to the | ||
73 | Software. | ||
diff --git a/custom-licenses/syrah b/custom-licenses/syrah new file mode 100644 index 00000000..5cd7f4e6 --- /dev/null +++ b/custom-licenses/syrah | |||
@@ -0,0 +1,32 @@ | |||
1 | Copyright (c) 2009, Stanford University, and authors listed below. | ||
2 | All rights reserved. | ||
3 | |||
4 | Original authors: | ||
5 | Solomon Boulos | ||
6 | |||
7 | Redistribution and use in source and binary forms, with or without | ||
8 | modification, are permitted provided that the following conditions are | ||
9 | met: | ||
10 | |||
11 | Redistributions of source code must retain the above copyright notice, | ||
12 | this list of conditions and the following disclaimer. | ||
13 | |||
14 | Redistributions in binary form must reproduce the above copyright | ||
15 | notice, this list of conditions and the following disclaimer in the | ||
16 | documentation and/or other materials provided with the distribution. | ||
17 | |||
18 | Neither the name of Stanford University nor the names of its | ||
19 | contributors may be used to endorse or promote products derived from | ||
20 | this software without specific prior written permission. | ||
21 | |||
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
23 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
24 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||
25 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
26 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
27 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
28 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
29 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
30 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
31 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||
32 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file | ||
diff --git a/documentation/building_and_booting.md b/documentation/building_and_booting.md new file mode 100644 index 00000000..478a4fb0 --- /dev/null +++ b/documentation/building_and_booting.md | |||
@@ -0,0 +1,134 @@ | |||
1 | ### Building the Intel BSP layers | ||
2 | |||
3 | The intel-common BSP provide a few carefully selected tune options and | ||
4 | generic hardware support to cover the majority of current Intel CPUs and | ||
5 | devices. The naming follows the convention of intel-<TUNE>-<BITS>, where | ||
6 | TUNE is the gcc cpu-type (used with mtune and march typically) and BITS | ||
7 | is either 32 bit or 64 bit. | ||
8 | |||
9 | In order to build an image with BSP support for a given release, you | ||
10 | need to clone the meta-intel layer from git repository: | ||
11 | ``` | ||
12 | git clone https://git.yoctoproject.org/meta-intel | ||
13 | ``` | ||
14 | |||
15 | Check out the appropriate branch or release tags. The branch name and tags | ||
16 | would align with Yocto Project | ||
17 | [Release Codenames](https://wiki.yoctoproject.org/wiki/Releases). | ||
18 | Assuming meta-intel repository is cloned at the top-level of | ||
19 | OE-Core build tree, you can build a BSP image by adding the location of | ||
20 | the meta-intel layer to bblayers.conf: | ||
21 | ``` | ||
22 | BBLAYERS = " \ | ||
23 | /openembedded-core/meta \ | ||
24 | /openembedded-core/meta-intel " | ||
25 | ``` | ||
26 | |||
27 | To enable a particular machine, add a MACHINE line naming the BSP | ||
28 | to the local.conf file: | ||
29 | ``` | ||
30 | MACHINE ?= "intel-corei7-64" | ||
31 | ``` | ||
32 | |||
33 | where this can be replaced by other MACHINE types available: | ||
34 | |||
35 | - intel-core2-32 | ||
36 | |||
37 | This BSP is optimized for the Core2 family of CPUs as well as all | ||
38 | Atom CPUs prior to the Silvermont core. | ||
39 | |||
40 | - intel-corei7-64 | ||
41 | |||
42 | This BSP is optimized for Nehalem and later Core and Xeon CPUs as | ||
43 | well as Silvermont and later Atom CPUs, such as the Baytrail SoCs. | ||
44 | |||
45 | - intel-skylake-64 | ||
46 | |||
47 | This BSP uses [x86-64-v3 tuning](https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html). | ||
48 | |||
49 | You should then be able to build an image as such: | ||
50 | ``` | ||
51 | $ source oe-init-build-env | ||
52 | $ bitbake core-image-sato | ||
53 | ``` | ||
54 | |||
55 | At the end of a successful build, you should have an image that | ||
56 | you can boot from a USB flash drive. | ||
57 | |||
58 | |||
59 | ## Booting the intel-common BSP images | ||
60 | |||
61 | If you've built your own image, you'll find the bootable | ||
62 | image in the build/tmp/deploy/images/{MACHINE} directory, where | ||
63 | 'MACHINE' refers to the machine name used in the build. | ||
64 | |||
65 | Under Linux, insert a USB flash drive. Assuming the USB flash drive | ||
66 | takes device /dev/sdf, use dd to copy the image to it. Before the image | ||
67 | can be burned onto a USB drive, it should be un-mounted. Some Linux distros | ||
68 | may automatically mount a USB drive when it is plugged in. Using USB device | ||
69 | /dev/sdf as an example, find all mounted partitions: | ||
70 | ``` | ||
71 | $ mount | grep sdf | ||
72 | ``` | ||
73 | |||
74 | and un-mount those that are mounted, for example: | ||
75 | ``` | ||
76 | $ umount /dev/sdf1 | ||
77 | $ umount /dev/sdf2 | ||
78 | ``` | ||
79 | |||
80 | Now burn the image onto the USB drive: | ||
81 | ``` | ||
82 | $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress | ||
83 | $ sync | ||
84 | $ eject /dev/sdf | ||
85 | ``` | ||
86 | |||
87 | This should give you a bootable USB flash device. Insert the device | ||
88 | into a bootable USB socket on the target, and power on. This should | ||
89 | result in a system booted to the Sato graphical desktop. | ||
90 | |||
91 | If you want a terminal, use the arrows at the top of the UI to move to | ||
92 | different pages of available applications, one of which is named | ||
93 | 'Terminal'. Clicking that should give you a root terminal. | ||
94 | |||
95 | If you want to ssh into the system, you can use the root terminal to | ||
96 | ifconfig the IP address and use that to ssh in. The root password is | ||
97 | empty, so to log in type 'root' for the user name and hit 'Enter' at | ||
98 | the Password prompt: and you should be in. | ||
99 | |||
100 | If you find you're getting corrupt images on the USB (it doesn't show | ||
101 | the syslinux boot: prompt, or the boot: prompt contains strange | ||
102 | characters), try doing this first: | ||
103 | ``` | ||
104 | $ dd if=/dev/zero of=/dev/sdf bs=1M count=512 | ||
105 | ``` | ||
106 | |||
107 | ## Building the installer image | ||
108 | |||
109 | If you plan to install your image to your target machine, you can build a wic | ||
110 | based installer image instead of default wic image. To build it, you need to | ||
111 | add below configuration to local.conf : | ||
112 | |||
113 | ``` | ||
114 | WKS_FILE = "image-installer.wks.in" | ||
115 | IMAGE_FSTYPES:append = " ext4" | ||
116 | IMAGE_TYPEDEP:wic = "ext4" | ||
117 | INITRD_IMAGE_LIVE="core-image-minimal-initramfs" | ||
118 | do_image_wic[depends] += "${INITRD_IMAGE_LIVE}:do_image_complete" | ||
119 | do_rootfs[depends] += "virtual/kernel:do_deploy" | ||
120 | IMAGE_BOOT_FILES:append = "\ | ||
121 | ${KERNEL_IMAGETYPE} \ | ||
122 | microcode.cpio \ | ||
123 | ${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.rootfs.ext4;rootfs.img \ | ||
124 | ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', 'grub-efi-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \ | ||
125 | ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', '${IMAGE_ROOTFS}/boot/EFI/BOOT/grub.cfg;EFI/BOOT/grub.cfg', '', d)} \ | ||
126 | ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', 'systemd-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \ | ||
127 | ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/loader.conf;loader/loader.conf ', '', d)} \ | ||
128 | ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/entries/boot.conf;loader/entries/boot.conf', '', d)} " | ||
129 | ``` | ||
130 | |||
131 | Burn the wic image onto USB flash device, insert the device to target machine | ||
132 | and power on. This should start the installation process. | ||
133 | |||
134 | |||
diff --git a/documentation/dpcpp-compiler.md b/documentation/dpcpp-compiler.md new file mode 100644 index 00000000..b709a685 --- /dev/null +++ b/documentation/dpcpp-compiler.md | |||
@@ -0,0 +1,107 @@ | |||
1 | Intel(R) oneAPI DPC++/C++ Compiler (ICX) toolchain | ||
2 | ========================================================================== | ||
3 | |||
4 | Get Started with the Intel oneAPI DPC++/C++ Compiler: | ||
5 | |||
6 | https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html# | ||
7 | |||
8 | |||
9 | Getting Started | ||
10 | =============== | ||
11 | |||
12 | Clone the required layers and include them in bblayers.conf: | ||
13 | |||
14 | ``` | ||
15 | git clone https://git.openembedded.org/openembedded-core | ||
16 | git clone https://git.openembedded.org/bitbake | ||
17 | git clone https://git.openembedded.org/meta-openembedded | ||
18 | git clone https://github.com/kraj/meta-clang.git | ||
19 | git clone https://git.yoctoproject.org/meta-intel | ||
20 | |||
21 | $ source openembedded-core/oe-init-build-env | ||
22 | |||
23 | $ bitbake-layers add-layer ../meta-openembedded/meta-oe/ | ||
24 | $ bitbake-layers add-layer ../meta-intel | ||
25 | $ bitbake-layers add-layer ../meta-clang | ||
26 | ``` | ||
27 | |||
28 | Distro | ||
29 | ====== | ||
30 | |||
31 | Note that oneAPI DPC++/C++ compiler currently only works when the vendor string is "oe". | ||
32 | |||
33 | ``` | ||
34 | DISTRO ?= "nodistro" | ||
35 | ``` | ||
36 | |||
37 | MACHINE configuration | ||
38 | ===================== | ||
39 | |||
40 | ``` | ||
41 | MACHINE ?= "intel-skylake-64" | ||
42 | ``` | ||
43 | |||
44 | Package installation | ||
45 | ==================== | ||
46 | |||
47 | ``` | ||
48 | # To include OpenCL driver that might be needed when compiling SYCL programs, include: | ||
49 | IMAGE_INSTALL:append = " intel-compute-runtime intel-graphics-compiler" | ||
50 | |||
51 | # To install only runtime libraries, include: | ||
52 | IMAGE_INSTALL:append = " intel-oneapi-dpcpp-cpp-runtime intel-oneapi-dpcpp-cpp-runtime-dev" | ||
53 | |||
54 | # To install the toolchain, include: | ||
55 | IMAGE_INSTALL:append = " intel-oneapi-dpcpp-cpp intel-oneapi-dpcpp-cpp-dev" | ||
56 | ``` | ||
57 | in local.conf. | ||
58 | |||
59 | Build an image | ||
60 | ============== | ||
61 | |||
62 | ``` | ||
63 | $ bitbake core-image-minimal | ||
64 | ``` | ||
65 | |||
66 | Including oneAPI C++/DPC++ compiler in generated SDK toolchain | ||
67 | ============================================================== | ||
68 | |||
69 | The compiler is not included in the generated SDK by default. If it is expected to be part of SDK, add ICXSDK = "1" in local.conf: | ||
70 | |||
71 | ``` | ||
72 | ICXSDK = "1" | ||
73 | ``` | ||
74 | |||
75 | Generate SDK: | ||
76 | ``` | ||
77 | bitbake core-image-minimal -c populate_sdk | ||
78 | ``` | ||
79 | |||
80 | |||
81 | To setup PATH variables on target | ||
82 | ================================= | ||
83 | |||
84 | Once image is booted successfully, some variables would need to be exported to make sure compiler can be used: | ||
85 | |||
86 | ``` | ||
87 | $ source /opt/intel/oneapi/compiler/2022.1.0/env/vars.sh | ||
88 | |||
89 | $ mkdir -p /lib64 | ||
90 | |||
91 | $ ln -sf /lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 | ||
92 | ``` | ||
93 | |||
94 | Build application and run | ||
95 | ========================= | ||
96 | |||
97 | To compile a sycl application, for example: | ||
98 | |||
99 | ``` | ||
100 | $ icpx --target=x86_64-oe-linux -fsycl simple-sycl-app.c -o simple-sycl-app | ||
101 | ``` | ||
102 | |||
103 | To run: | ||
104 | |||
105 | ``` | ||
106 | $ ./simple-sycl-app | ||
107 | ``` | ||
diff --git a/documentation/openvino.md b/documentation/openvino.md new file mode 100644 index 00000000..9794b928 --- /dev/null +++ b/documentation/openvino.md | |||
@@ -0,0 +1,92 @@ | |||
1 | Build a Yocto Image with OpenVINO™ toolkit | ||
2 | ========================================== | ||
3 | |||
4 | Follow the [Yocto Project official documentation](https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html#compatible-linux-distribution) to set up and configure your host machine to be compatible with BitBake. | ||
5 | |||
6 | ## Step 1: Set Up Environment | ||
7 | |||
8 | 1. Clone the repositories. | ||
9 | |||
10 | ``` | ||
11 | git clone https://git.yoctoproject.org/git/poky | ||
12 | git clone https://github.com/openembedded/meta-openembedded | ||
13 | git clone https://git.yoctoproject.org/git/meta-intel | ||
14 | git clone https://github.com/intel/meta-openvino | ||
15 | ``` | ||
16 | |||
17 | |||
18 | 2. Set up the OpenEmbedded build environment. | ||
19 | |||
20 | ``` | ||
21 | source poky/oe-init-build-env | ||
22 | |||
23 | ``` | ||
24 | |||
25 | |||
26 | |||
27 | 3. Add BitBake layers. | ||
28 | |||
29 | |||
30 | ``` | ||
31 | bitbake-layers add-layer ../meta-openembedded/meta-oe | ||
32 | bitbake-layers add-layer ../meta-openembedded/meta-python | ||
33 | bitbake-layers add-layer ../meta-intel | ||
34 | bitbake-layers add-layer ../meta-openvino | ||
35 | |||
36 | ``` | ||
37 | |||
38 | |||
39 | 4. Set up BitBake configurations. | ||
40 | Include extra configuration in the `conf/local.conf` file in your build directory as required. | ||
41 | |||
42 | |||
43 | ``` | ||
44 | MACHINE = "intel-skylake-64" | ||
45 | |||
46 | # Enable building OpenVINO Python API. | ||
47 | # This requires meta-python layer to be included in bblayers.conf. | ||
48 | PACKAGECONFIG:append:pn-openvino-inference-engine = " python3" | ||
49 | |||
50 | # This adds OpenVINO related libraries in the target image. | ||
51 | CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine" | ||
52 | |||
53 | # This adds OpenVINO samples in the target image. | ||
54 | CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine-samples" | ||
55 | |||
56 | # Include OpenVINO Python API package in the target image. | ||
57 | CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine-python3" | ||
58 | |||
59 | ``` | ||
60 | |||
61 | ## Step 2: Build a Yocto Image with OpenVINO Packages | ||
62 | |||
63 | Run BitBake to build your image with OpenVINO packages. For example, to build the minimal image, run the following command: | ||
64 | |||
65 | |||
66 | ``` | ||
67 | bitbake core-image-minimal | ||
68 | |||
69 | ``` | ||
70 | |||
71 | ## Step 3: Verify the Yocto Image | ||
72 | |||
73 | Verify that OpenVINO packages were built successfully. Run the following command: | ||
74 | |||
75 | ``` | ||
76 | oe-pkgdata-util list-pkgs | grep openvino | ||
77 | |||
78 | ``` | ||
79 | |||
80 | |||
81 | If the image build is successful, it will return the list of packages as below: | ||
82 | |||
83 | ``` | ||
84 | openvino-inference-engine | ||
85 | openvino-inference-engine-dbg | ||
86 | openvino-inference-engine-dev | ||
87 | openvino-inference-engine-python3 | ||
88 | openvino-inference-engine-samples | ||
89 | openvino-inference-engine-src | ||
90 | openvino-inference-engine-doc | ||
91 | |||
92 | ``` | ||
diff --git a/documentation/reporting_bugs.md b/documentation/reporting_bugs.md new file mode 100644 index 00000000..5fbc3d27 --- /dev/null +++ b/documentation/reporting_bugs.md | |||
@@ -0,0 +1,22 @@ | |||
1 | ## Reporting bugs | ||
2 | |||
3 | If you have problems with or questions about a particular BSP, please | ||
4 | contact the maintainer listed in the [Maintainer](../README.md#maintainers) section directly (cc:ing | ||
5 | the Yocto mailing list puts it in the archive and helps other people | ||
6 | who might have the same questions in the future), but please try to do | ||
7 | the following first: | ||
8 | |||
9 | - look in the [Yocto Project Bugzilla](http://bugzilla.yoctoproject.org/) to see if a | ||
10 | problem has already been reported | ||
11 | |||
12 | - look through recent entries of the [meta-intel](https://lists.yoctoproject.org/g/meta-intel/messages) | ||
13 | and [Yocto Archives](https://lists.yoctoproject.org/g/yocto/messages) mailing list archives to see | ||
14 | if other people have run into similar problems or had similar questions answered. | ||
15 | |||
16 | If you believe you have encountered a bug, you can open a new bug and | ||
17 | enter the details in the [Yocto Project Bugzilla](https://bugzilla.yoctoproject.org/). | ||
18 | If you're relatively certain that it's a bug against the BSP itself, please use the | ||
19 | 'BSPs | bsps-meta-intel' category for the bug; otherwise, please submit the bug against | ||
20 | the most likely category for the problem. if you're wrong, it's not a big deal and | ||
21 | the bug will be recategorized upon triage. | ||
22 | |||
diff --git a/documentation/secureboot/README b/documentation/secureboot/README deleted file mode 100644 index 3d5703bb..00000000 --- a/documentation/secureboot/README +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | Currently, only one implementation of Secure Boot is available out of the box, | ||
2 | which is using a single signed EFI application to directly boot the kernel with | ||
3 | an optional initramfs. | ||
4 | |||
5 | This can be added to your build either through local.conf, or via your own | ||
6 | custom image recipe. | ||
7 | |||
8 | If you are adding it via local.conf, set the following variables: | ||
9 | |||
10 | IMAGE_FEATURES += "secureboot" | ||
11 | WKS_FILE = "generic-bootdisk.wks.in" | ||
12 | SECURE_BOOT_SIGNING_KEY = "/path/to/your/signing/key" | ||
13 | SECURE_BOOT_SIGNING_CERT = "/path/to/your/signing/cert" | ||
14 | IMAGE_CLASSES += "uefi-comboapp" | ||
15 | |||
16 | If working with an image recipe, you can inherit uefi-comboapp directly instead | ||
17 | of using the IMAGE_CLASSES variable. | ||
18 | |||
19 | The signing keys and certs can be created via openssl commands. Here's an | ||
20 | example: | ||
21 | openssl req -new -x509 -newkey rsa:2048 -subj "/CN=your-subject/" -keyout \ | ||
22 | your-key.key -out your-key.crt -days 365 -nodes -sha256 | ||
23 | openssl x509 -in your-key.crt -out your-key.cer -outform DER | ||
24 | |||
25 | The .crt file is your SECURE_BOOT_SIGNING_CERT, and the .key file is your | ||
26 | SECURE_BOOT_SIGNING_KEY. | ||
27 | |||
28 | You should enroll the .crt key in your firmware under the PK, KEK, and DB | ||
29 | options (methods are different depending on your firmware). If a key should ever | ||
30 | become invalid, enroll it under DBX to blacklist it. | ||
31 | |||
32 | The comboapp can be further manipulated in a number of ways. You can modify the | ||
33 | kernel command line via the APPEND variable, you can change the default UUID via | ||
34 | the DISK_SIGNATURE_UUID variable, and you can modify the contents of the | ||
35 | initramfs via the INITRD_IMAGE or INITRD_LIVE variables. | ||
36 | |||
37 | A simple Secure Boot enabled image used for testing can be viewed at: | ||
38 | common/recipes-selftest/images/secureboot-selftest-image-signed.bb | ||
diff --git a/documentation/submitting_patches.md b/documentation/submitting_patches.md new file mode 100644 index 00000000..f36c4b08 --- /dev/null +++ b/documentation/submitting_patches.md | |||
@@ -0,0 +1,26 @@ | |||
1 | ## Guidelines for submitting patches | ||
2 | |||
3 | Please submit any patches against meta-intel BSPs to the | ||
4 | [meta-intel mailing list](https://lists.yoctoproject.org/g/meta-intel) | ||
5 | (email: meta-intel@lists.yoctoproject.org). Also, if your patches are | ||
6 | available via a public git repository, please also include a URL to | ||
7 | the repo and branch containing your patches as that makes it easier | ||
8 | for maintainers to grab and test your patches. | ||
9 | |||
10 | The patches should follow the suggestions outlined in the | ||
11 | [Yocto Project and OpenEmbedded Contributor Guide](https://docs.yoctoproject.org/dev/contributor-guide/index.html). | ||
12 | In addition, for any non-trivial patch, provide information about how you | ||
13 | tested the patch, and for any non-trivial or non-obvious testing | ||
14 | setup, provide details of that setup. | ||
15 | |||
16 | Doing a quick 'git log' in meta-intel will provide you with many | ||
17 | examples of good example commits if you have questions about any | ||
18 | aspect of the preferred format. | ||
19 | |||
20 | The meta-intel maintainers will do their best to review and/or pull in | ||
21 | a patch or patch sets within 24 hours of the time it was posted. For | ||
22 | larger and/or more involved patches and patch sets, the review process | ||
23 | may take longer. | ||
24 | |||
25 | Please see the [maintainers](../README.md#maintainers) section for the list of maintainers. It's also | ||
26 | a good idea to cc: the maintainer, if applicable. | ||
diff --git a/documentation/tested_hardware.md b/documentation/tested_hardware.md new file mode 100644 index 00000000..1fa81454 --- /dev/null +++ b/documentation/tested_hardware.md | |||
@@ -0,0 +1,21 @@ | |||
1 | ## Tested Hardware | ||
2 | |||
3 | The following undergo regular testing with their respective MACHINE types: | ||
4 | |||
5 | - intel-corei7-64: | ||
6 | * Alder Lake-P/S/PS | ||
7 | * Amston Lake | ||
8 | * Elkhart Lake | ||
9 | * Metor Lake-P | ||
10 | * Raptor Lake-P/S | ||
11 | * Tiger Lake | ||
12 | |||
13 | - intel-skylake-64: | ||
14 | * Alder Lake-P/S/PS | ||
15 | * Amston Lake | ||
16 | * Metor Lake-P | ||
17 | * Raptor Lake-P/S | ||
18 | * Tiger Lake | ||
19 | |||
20 | - intel-core2-32: | ||
21 | * MinnowBoard Turbot | ||
diff --git a/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest b/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest new file mode 100755 index 00000000..82d4df58 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-core/dnn/files/run-ptest | |||
@@ -0,0 +1,15 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd tests | ||
4 | ./api-c | ||
5 | if [ $? -eq 0 ]; then | ||
6 | echo 'PASS: api-c' | ||
7 | else | ||
8 | echo 'FAIL: api-c' | ||
9 | fi | ||
10 | ./test_c_symbols-c | ||
11 | if [ $? -eq 0 ]; then | ||
12 | echo 'PASS: test_c_symbols-c' | ||
13 | else | ||
14 | echo 'FAIL: test_c_symbols-c' | ||
15 | fi | ||
diff --git a/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.5.3.bb b/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.5.3.bb new file mode 100644 index 00000000..7a627e83 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-core/dnn/onednn_3.5.3.bb | |||
@@ -0,0 +1,57 @@ | |||
1 | HOMEPAGE = "https://www.oneapi.com" | ||
2 | SUMMARY = "Deep Neural Network Library" | ||
3 | DESCRIPTION = "This software is a user mode library that accelerates\ | ||
4 | deep-learning applications and frameworks on Intel architecture." | ||
5 | LICENSE = "Apache-2.0 & BSD-3-Clause & BSL-1.0" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \ | ||
7 | file://tests/gtests/gtest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \ | ||
8 | file://src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \ | ||
9 | file://src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \ | ||
10 | " | ||
11 | SECTION = "lib" | ||
12 | |||
13 | inherit pkgconfig cmake ptest | ||
14 | |||
15 | DNN_BRANCH = "rls-v${@'.'.join(d.getVar('PV').split('.')[0:2])}" | ||
16 | |||
17 | S = "${WORKDIR}/git" | ||
18 | SRCREV = "66f0cb9eb66affd2da3bf5f8d897376f04aae6af" | ||
19 | SRC_URI = "git://github.com/oneapi-src/oneDNN.git;branch=${DNN_BRANCH};protocol=https \ | ||
20 | file://run-ptest \ | ||
21 | " | ||
22 | |||
23 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" | ||
24 | |||
25 | CVE_PRODUCT = "intel:math_kernel_library" | ||
26 | |||
27 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
28 | COMPATIBLE_HOST:libc-musl = 'null' | ||
29 | |||
30 | EXTRA_OECMAKE += " \ | ||
31 | -DDNNL_LIBRARY_TYPE=SHARED \ | ||
32 | -DDNNL_BUILD_EXAMPLES=ON \ | ||
33 | -DDNNL_BUILD_TESTS=ON \ | ||
34 | -DDNNL_CPU_RUNTIME=OMP \ | ||
35 | -DDNNL_ARCH_OPT_FLAGS="" \ | ||
36 | -DCMAKE_SKIP_RPATH=ON \ | ||
37 | -DONEDNN_BUILD_GRAPH=OFF \ | ||
38 | " | ||
39 | |||
40 | PACKAGECONFIG ??= "gpu" | ||
41 | PACKAGECONFIG[gpu] = "-DDNNL_GPU_RUNTIME=OCL, , opencl-headers virtual/opencl-icd, intel-compute-runtime" | ||
42 | |||
43 | do_install:append () { | ||
44 | install -d ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs | ||
45 | install -m 0755 ${B}/tests/benchdnn/benchdnn ${D}${bindir}/mkl-dnn/tests/benchdnn | ||
46 | cp -r ${B}/tests/benchdnn/inputs/* ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs | ||
47 | } | ||
48 | |||
49 | do_install_ptest () { | ||
50 | install -d ${D}${PTEST_PATH}/tests | ||
51 | install -m 0755 ${B}/tests/api-c ${D}${PTEST_PATH}/tests | ||
52 | install -m 0755 ${B}/tests/test_c_symbols-c ${D}${PTEST_PATH}/tests | ||
53 | } | ||
54 | |||
55 | PACKAGES =+ "${PN}-test" | ||
56 | |||
57 | FILES:${PN}-test = "${bindir}/mkl-dnn/*" | ||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend b/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend deleted file mode 100644 index f8d5a252..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/clang_%.bbappend +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:" | ||
2 | |||
3 | DEPENDS_append = " opencl-clang-native" | ||
4 | LLVM_TARGETS_TO_BUILD = "X86" | ||
5 | |||
6 | do_install_append_intel-x86-common() { | ||
7 | DESTDIR=${D} ninja -v install-cmake-exports | ||
8 | } | ||
9 | |||
10 | LIBCPLUSPLUS = "" | ||
11 | |||
12 | # undefined reference to `__atomic_load' on i*86. | ||
13 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch deleted file mode 100644 index 1c491402..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch +++ /dev/null | |||
@@ -1,156 +0,0 @@ | |||
1 | From 39a3ac0065c23d1e2d55dfd8792cc28a146a4307 Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexey Bader <alexey.bader@intel.com> | ||
3 | Date: Tue, 19 Feb 2019 15:19:06 +0000 | ||
4 | Subject: [PATCH 1/2] [OpenCL] Change type of block pointer for OpenCL | ||
5 | |||
6 | Summary: | ||
7 | |||
8 | For some reason OpenCL blocks in LLVM IR are represented as function pointers. | ||
9 | These pointers do not point to any real function and never get called. Actually | ||
10 | they point to some structure, which in turn contains pointer to the real block | ||
11 | invoke function. | ||
12 | This patch changes represntation of OpenCL blocks in LLVM IR from function | ||
13 | pointers to pointers to `%struct.__block_literal_generic`. | ||
14 | Such representation allows to avoid unnecessary bitcasts and simplifies | ||
15 | further processing (e.g. translation to SPIR-V ) of the module for targets | ||
16 | which do not support function pointers. | ||
17 | |||
18 | Patch by: Alexey Sotkin. | ||
19 | |||
20 | Reviewers: Anastasia, yaxunl, svenvh | ||
21 | |||
22 | Reviewed By: Anastasia | ||
23 | |||
24 | Subscribers: alexbatashev, cfe-commits | ||
25 | |||
26 | Tags: #clang | ||
27 | |||
28 | Differential Revision: https://reviews.llvm.org/D58277 | ||
29 | |||
30 | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354337 91177308-0d34-0410-b5e6-96231b3b80d8 | ||
31 | |||
32 | Upstream-Status: Backport | ||
33 | [https://github.com/llvm-mirror/clang/commit/283f308bdb5893bab1f36791711346e746045f94] | ||
34 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
35 | --- | ||
36 | lib/CodeGen/CodeGenTypes.cpp | 4 +++- | ||
37 | test/CodeGenOpenCL/blocks.cl | 18 ++++++++---------- | ||
38 | test/CodeGenOpenCL/cl20-device-side-enqueue.cl | 18 +++++++++--------- | ||
39 | 3 files changed, 20 insertions(+), 20 deletions(-) | ||
40 | |||
41 | diff --git a/lib/CodeGen/CodeGenTypes.cpp b/lib/CodeGen/CodeGenTypes.cpp | ||
42 | index 2acf1ac..93b3ebf 100644 | ||
43 | --- a/lib/CodeGen/CodeGenTypes.cpp | ||
44 | +++ b/lib/CodeGen/CodeGenTypes.cpp | ||
45 | @@ -637,7 +637,9 @@ llvm::Type *CodeGenTypes::ConvertType(QualType T) { | ||
46 | |||
47 | case Type::BlockPointer: { | ||
48 | const QualType FTy = cast<BlockPointerType>(Ty)->getPointeeType(); | ||
49 | - llvm::Type *PointeeType = ConvertTypeForMem(FTy); | ||
50 | + llvm::Type *PointeeType = CGM.getLangOpts().OpenCL | ||
51 | + ? CGM.getGenericBlockLiteralType() | ||
52 | + : ConvertTypeForMem(FTy); | ||
53 | unsigned AS = Context.getTargetAddressSpace(FTy); | ||
54 | ResultType = llvm::PointerType::get(PointeeType, AS); | ||
55 | break; | ||
56 | diff --git a/test/CodeGenOpenCL/blocks.cl b/test/CodeGenOpenCL/blocks.cl | ||
57 | index 675240c..19aacc3 100644 | ||
58 | --- a/test/CodeGenOpenCL/blocks.cl | ||
59 | +++ b/test/CodeGenOpenCL/blocks.cl | ||
60 | @@ -35,11 +35,10 @@ void foo(){ | ||
61 | // SPIR: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 }>, <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]], i32 0, i32 3 | ||
62 | // SPIR: %[[i_value:.*]] = load i32, i32* %i | ||
63 | // SPIR: store i32 %[[i_value]], i32* %[[block_captured]], | ||
64 | - // SPIR: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]] to i32 ()* | ||
65 | - // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast i32 ()* %[[blk_ptr]] to i32 () addrspace(4)* | ||
66 | - // SPIR: store i32 () addrspace(4)* %[[blk_gen_ptr]], i32 () addrspace(4)** %[[block_B:.*]], | ||
67 | - // SPIR: %[[blk_gen_ptr:.*]] = load i32 () addrspace(4)*, i32 () addrspace(4)** %[[block_B]] | ||
68 | - // SPIR: %[[block_literal:.*]] = bitcast i32 () addrspace(4)* %[[blk_gen_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)* | ||
69 | + // SPIR: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 }>* %[[block]] to %struct.__opencl_block_literal_generic* | ||
70 | + // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic* %[[blk_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)* | ||
71 | + // SPIR: store %struct.__opencl_block_literal_generic addrspace(4)* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B:.*]], | ||
72 | + // SPIR: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic addrspace(4)*, %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B]] | ||
73 | // SPIR: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]], i32 0, i32 2 | ||
74 | // SPIR: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]] to i8 addrspace(4)* | ||
75 | // SPIR: %[[invoke_func_ptr:.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* %[[invoke_addr]] | ||
76 | @@ -50,11 +49,10 @@ void foo(){ | ||
77 | // AMDGCN: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]], i32 0, i32 3 | ||
78 | // AMDGCN: %[[i_value:.*]] = load i32, i32 addrspace(5)* %i | ||
79 | // AMDGCN: store i32 %[[i_value]], i32 addrspace(5)* %[[block_captured]], | ||
80 | - // AMDGCN: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]] to i32 () addrspace(5)* | ||
81 | - // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast i32 () addrspace(5)* %[[blk_ptr]] to i32 ()* | ||
82 | - // AMDGCN: store i32 ()* %[[blk_gen_ptr]], i32 ()* addrspace(5)* %[[block_B:.*]], | ||
83 | - // AMDGCN: %[[blk_gen_ptr:.*]] = load i32 ()*, i32 ()* addrspace(5)* %[[block_B]] | ||
84 | - // AMDGCN: %[[block_literal:.*]] = bitcast i32 ()* %[[blk_gen_ptr]] to %struct.__opencl_block_literal_generic* | ||
85 | + // AMDGCN: %[[blk_ptr:.*]] = bitcast <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]] to %struct.__opencl_block_literal_generic addrspace(5)* | ||
86 | + // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic addrspace(5)* %[[blk_ptr]] to %struct.__opencl_block_literal_generic* | ||
87 | + // AMDGCN: store %struct.__opencl_block_literal_generic* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B:.*]], | ||
88 | + // AMDGCN: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic*, %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B]] | ||
89 | // AMDGCN: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic* %[[block_literal]], i32 0, i32 2 | ||
90 | // AMDGCN: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic* %[[block_literal]] to i8* | ||
91 | // AMDGCN: %[[invoke_func_ptr:.*]] = load i8*, i8** %[[invoke_addr]] | ||
92 | diff --git a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl | ||
93 | index 4732194..8445016 100644 | ||
94 | --- a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl | ||
95 | +++ b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl | ||
96 | @@ -11,7 +11,7 @@ typedef struct {int a;} ndrange_t; | ||
97 | |||
98 | // For a block global variable, first emit the block literal as a global variable, then emit the block variable itself. | ||
99 | // COMMON: [[BL_GLOBAL:@__block_literal_global[^ ]*]] = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 {{[0-9]+}}, i32 {{[0-9]+}}, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* [[INV_G:@[^ ]+]] to i8*) to i8 addrspace(4)*) } | ||
100 | -// COMMON: @block_G = addrspace(1) constant void (i8 addrspace(3)*) addrspace(4)* addrspacecast (void (i8 addrspace(3)*) addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to void (i8 addrspace(3)*) addrspace(1)*) to void (i8 addrspace(3)*) addrspace(4)*) | ||
101 | +// COMMON: @block_G = addrspace(1) constant %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*) | ||
102 | |||
103 | // For anonymous blocks without captures, emit block literals as global variable. | ||
104 | // COMMON: [[BLG1:@__block_literal_global[^ ]*]] = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 {{[0-9]+}}, i32 {{[0-9]+}}, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* {{@[^ ]+}} to i8*) to i8 addrspace(4)*) } | ||
105 | @@ -77,9 +77,9 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) { | ||
106 | // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue | ||
107 | // COMMON: [[FLAGS:%[0-9]+]] = load i32, i32* %flags | ||
108 | // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL1:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke | ||
109 | - // B32: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block to void ()* | ||
110 | - // B64: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32 addrspace(1)*, i32 }>* %block to void ()* | ||
111 | - // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* [[BL]] to i8 addrspace(4)* | ||
112 | + // B32: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block to %struct.__opencl_block_literal_generic* | ||
113 | + // B64: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32 addrspace(1)*, i32 }>* %block to %struct.__opencl_block_literal_generic* | ||
114 | + // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[BL]] to i8 addrspace(4)* | ||
115 | // COMMON-LABEL: call i32 @__enqueue_kernel_basic( | ||
116 | // COMMON-SAME: %opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* byval [[NDR]]{{([0-9]+)?}}, | ||
117 | // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK1:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*), | ||
118 | @@ -95,8 +95,8 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) { | ||
119 | // COMMON: [[WAIT_EVNT:%[0-9]+]] = addrspacecast %opencl.clk_event_t{{.*}}** %event_wait_list to %opencl.clk_event_t{{.*}}* addrspace(4)* | ||
120 | // COMMON: [[EVNT:%[0-9]+]] = addrspacecast %opencl.clk_event_t{{.*}}** %clk_event to %opencl.clk_event_t{{.*}}* addrspace(4)* | ||
121 | // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL2:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke | ||
122 | - // COMMON: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* %block3 to void ()* | ||
123 | - // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* [[BL]] to i8 addrspace(4)* | ||
124 | + // COMMON: [[BL:%[0-9]+]] = bitcast <{ i32, i32, i8 addrspace(4)*, i32{{.*}}, i32{{.*}}, i32{{.*}} }>* %block3 to %struct.__opencl_block_literal_generic* | ||
125 | + // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[BL]] to i8 addrspace(4)* | ||
126 | // COMMON-LABEL: call i32 @__enqueue_kernel_basic_events | ||
127 | // COMMON-SAME: (%opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t{{.*}}* addrspace(4)* [[WAIT_EVNT]], %opencl.clk_event_t{{.*}}* addrspace(4)* [[EVNT]], | ||
128 | // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK2:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*), | ||
129 | @@ -300,13 +300,13 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) { | ||
130 | // Emits global block literal [[BLG8]] and invoke function [[INVG8]]. | ||
131 | // The full type of these expressions are long (and repeated elsewhere), so we | ||
132 | // capture it as part of the regex for convenience and clarity. | ||
133 | - // COMMON: store void () addrspace(4)* addrspacecast (void () addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to void () addrspace(1)*) to void () addrspace(4)*), void () addrspace(4)** %block_A | ||
134 | + // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %block_A | ||
135 | void (^const block_A)(void) = ^{ | ||
136 | return; | ||
137 | }; | ||
138 | |||
139 | // Emits global block literal [[BLG9]] and invoke function [[INVG9]]. | ||
140 | - // COMMON: store void (i8 addrspace(3)*) addrspace(4)* addrspacecast (void (i8 addrspace(3)*) addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG9]] to void (i8 addrspace(3)*) addrspace(1)*) to void (i8 addrspace(3)*) addrspace(4)*), void (i8 addrspace(3)*) addrspace(4)** %block_B | ||
141 | + // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG9]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %block_B | ||
142 | void (^const block_B)(local void *) = ^(local void *a) { | ||
143 | return; | ||
144 | }; | ||
145 | @@ -346,7 +346,7 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) { | ||
146 | // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL3:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke | ||
147 | // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue | ||
148 | // COMMON: [[FLAGS:%[0-9]+]] = load i32, i32* %flags | ||
149 | - // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast void ()* {{.*}} to i8 addrspace(4)* | ||
150 | + // COMMON: [[BL_I8:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* {{.*}} to i8 addrspace(4)* | ||
151 | // COMMON-LABEL: call i32 @__enqueue_kernel_basic( | ||
152 | // COMMON-SAME: %opencl.queue_t{{.*}}* [[DEF_Q]], i32 [[FLAGS]], %struct.ndrange_t* byval [[NDR]]{{([0-9]+)?}}, | ||
153 | // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INVLK3:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*), | ||
154 | -- | ||
155 | 1.8.3.1 | ||
156 | |||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch deleted file mode 100644 index 4a528674..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch +++ /dev/null | |||
@@ -1,1119 +0,0 @@ | |||
1 | From 9ce0fe02fd6cda5fb29fbb0d5037a1798a810b8a Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexey Sotkin <alexey.sotkin@intel.com> | ||
3 | Date: Thu, 21 Feb 2019 17:14:36 +0300 | ||
4 | Subject: [PATCH 1/3] Update LowerOpenCL pass to handle new blocks | ||
5 | represntation in LLVM IR | ||
6 | |||
7 | Upstream-Status: Backport | ||
8 | [https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/bd6ddfaf7232cd81c7f2fe9877e66f286731bd8e] | ||
9 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
10 | --- | ||
11 | lib/SPIRV/SPIRVLowerOCLBlocks.cpp | 413 ++++++++---------------------- | ||
12 | test/global_block.ll | 71 ++--- | ||
13 | test/literal-struct.ll | 31 ++- | ||
14 | test/transcoding/block_w_struct_return.ll | 47 ++-- | ||
15 | test/transcoding/enqueue_kernel.ll | 237 ++++++++++------- | ||
16 | 5 files changed, 317 insertions(+), 482 deletions(-) | ||
17 | |||
18 | diff --git a/lib/SPIRV/SPIRVLowerOCLBlocks.cpp b/lib/SPIRV/SPIRVLowerOCLBlocks.cpp | ||
19 | index 50e1838..b42a4ec 100644 | ||
20 | --- a/lib/SPIRV/SPIRVLowerOCLBlocks.cpp | ||
21 | +++ b/lib/SPIRV/SPIRVLowerOCLBlocks.cpp | ||
22 | @@ -1,303 +1,110 @@ | ||
23 | -//===- SPIRVLowerOCLBlocks.cpp - OCL Utilities ----------------------------===// | ||
24 | -// | ||
25 | -// The LLVM/SPIRV Translator | ||
26 | -// | ||
27 | -// This file is distributed under the University of Illinois Open Source | ||
28 | -// License. See LICENSE.TXT for details. | ||
29 | -// | ||
30 | -// Copyright (c) 2018 Intel Corporation. All rights reserved. | ||
31 | -// | ||
32 | -// Permission is hereby granted, free of charge, to any person obtaining a | ||
33 | -// copy of this software and associated documentation files (the "Software"), | ||
34 | -// to deal with the Software without restriction, including without limitation | ||
35 | -// the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
36 | -// and/or sell copies of the Software, and to permit persons to whom the | ||
37 | -// Software is furnished to do so, subject to the following conditions: | ||
38 | -// | ||
39 | -// Redistributions of source code must retain the above copyright notice, | ||
40 | -// this list of conditions and the following disclaimers. | ||
41 | -// Redistributions in binary form must reproduce the above copyright notice, | ||
42 | -// this list of conditions and the following disclaimers in the documentation | ||
43 | -// and/or other materials provided with the distribution. | ||
44 | -// Neither the names of Intel Corporation, nor the names of its | ||
45 | -// contributors may be used to endorse or promote products derived from this | ||
46 | -// Software without specific prior written permission. | ||
47 | -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
48 | -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
49 | -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
50 | -// CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
51 | -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
52 | -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH | ||
53 | -// THE SOFTWARE. | ||
54 | -// | ||
55 | -//===----------------------------------------------------------------------===// | ||
56 | -// | ||
57 | -// SPIR-V specification doesn't allow function pointers, so SPIR-V translator | ||
58 | -// is designed to fail if a value with function type (except calls) is occured. | ||
59 | -// Currently there is only two cases, when function pointers are generating in | ||
60 | -// LLVM IR in OpenCL - block calls and device side enqueue built-in calls. | ||
61 | -// | ||
62 | -// In both cases values with function type used as intermediate representation | ||
63 | -// for block literal structure. | ||
64 | -// | ||
65 | -// This pass is designed to find such cases and simplify them to avoid any | ||
66 | -// function pointer types occurrences in LLVM IR in 4 steps. | ||
67 | -// | ||
68 | -// 1. Find all function pointer allocas, like | ||
69 | -// %block = alloca void () * | ||
70 | -// | ||
71 | -// Then find a single store to that alloca: | ||
72 | -// %blockLit = alloca <{ i32, i32, ...}>, align 4 | ||
73 | -// %0 = bitcast <{ i32, i32, ... }>* %blockLit to void ()* | ||
74 | -// > store void ()* %0, void ()** %block, align 4 | ||
75 | -// | ||
76 | -// And replace the alloca users by new instructions which used stored value | ||
77 | -// %blockLit itself instead of function pointer alloca %block. | ||
78 | -// | ||
79 | -// 2. Find consecutive casts from block literal type to i8 addrspace(4)* | ||
80 | -// used function pointers as an intermediate type: | ||
81 | -// %0 = bitcast <{ i32, i32 }> %block to void() * | ||
82 | -// %1 = addrspacecast void() * %0 to i8 addrspace(4)* | ||
83 | -// And simplify them: | ||
84 | -// %2 = addrspacecast <{ i32, i32 }> %block to i8 addrspace(4)* | ||
85 | -// | ||
86 | -// 3. Find all unused instructions with function pointer type occured after | ||
87 | -// pp.1-2 and remove them. | ||
88 | -// | ||
89 | -// 4. Find unused globals with function pointer type, like | ||
90 | -// @block = constant void ()* | ||
91 | -// bitcast ({ i32, i32 }* @__block_literal_global to void ()* | ||
92 | -// | ||
93 | -// And remove them. | ||
94 | -// | ||
95 | -//===----------------------------------------------------------------------===// | ||
96 | -#define DEBUG_TYPE "spv-lower-ocl-blocks" | ||
97 | - | ||
98 | -#include "OCLUtil.h" | ||
99 | -#include "SPIRVInternal.h" | ||
100 | - | ||
101 | -#include "llvm/ADT/SetVector.h" | ||
102 | -#include "llvm/Analysis/ValueTracking.h" | ||
103 | -#include "llvm/IR/GlobalVariable.h" | ||
104 | -#include "llvm/IR/InstIterator.h" | ||
105 | -#include "llvm/IR/Module.h" | ||
106 | -#include "llvm/Pass.h" | ||
107 | -#include "llvm/PassSupport.h" | ||
108 | -#include "llvm/Support/Casting.h" | ||
109 | - | ||
110 | -using namespace llvm; | ||
111 | - | ||
112 | -namespace { | ||
113 | - | ||
114 | -static void | ||
115 | -removeUnusedFunctionPtrInst(Instruction *I, | ||
116 | - SmallSetVector<Instruction *, 16> &FuncPtrInsts) { | ||
117 | - for (unsigned OpIdx = 0, Ops = I->getNumOperands(); OpIdx != Ops; ++OpIdx) { | ||
118 | - Instruction *OpI = dyn_cast<Instruction>(I->getOperand(OpIdx)); | ||
119 | - I->setOperand(OpIdx, nullptr); | ||
120 | - if (OpI && OpI != I && OpI->user_empty()) | ||
121 | - FuncPtrInsts.insert(OpI); | ||
122 | - } | ||
123 | - I->eraseFromParent(); | ||
124 | -} | ||
125 | - | ||
126 | -static bool isFuncPtrAlloca(const AllocaInst *AI) { | ||
127 | - auto *ET = dyn_cast<PointerType>(AI->getAllocatedType()); | ||
128 | - return ET && ET->getElementType()->isFunctionTy(); | ||
129 | -} | ||
130 | - | ||
131 | -static bool hasFuncPtrType(const Value *V) { | ||
132 | - auto *PT = dyn_cast<PointerType>(V->getType()); | ||
133 | - return PT && PT->getElementType()->isFunctionTy(); | ||
134 | -} | ||
135 | - | ||
136 | -static bool isFuncPtrInst(const Instruction *I) { | ||
137 | - if (auto *AI = dyn_cast<AllocaInst>(I)) | ||
138 | - return isFuncPtrAlloca(AI); | ||
139 | - | ||
140 | - for (auto &Op : I->operands()) { | ||
141 | - if (auto *AI = dyn_cast<AllocaInst>(Op)) | ||
142 | - return isFuncPtrAlloca(AI); | ||
143 | - | ||
144 | - auto *OpI = dyn_cast<Instruction>(&Op); | ||
145 | - if (OpI && OpI != I && hasFuncPtrType(OpI)) | ||
146 | - return true; | ||
147 | - } | ||
148 | - return false; | ||
149 | -} | ||
150 | - | ||
151 | -static StoreInst *findSingleStore(AllocaInst *AI) { | ||
152 | - StoreInst *Store = nullptr; | ||
153 | - for (auto *U : AI->users()) { | ||
154 | - if (!isa<StoreInst>(U)) | ||
155 | - continue; // not a store | ||
156 | - if (Store) | ||
157 | - return nullptr; // there are more than one stores | ||
158 | - Store = dyn_cast<StoreInst>(U); | ||
159 | - } | ||
160 | - return Store; | ||
161 | -} | ||
162 | - | ||
163 | -static void fixFunctionPtrAllocaUsers(AllocaInst *AI) { | ||
164 | - // Find and remove a single store to alloca | ||
165 | - auto *SingleStore = findSingleStore(AI); | ||
166 | - assert(SingleStore && "More than one store to the function pointer alloca"); | ||
167 | - auto *StoredVal = SingleStore->getValueOperand(); | ||
168 | - SingleStore->eraseFromParent(); | ||
169 | - | ||
170 | - // Find loads from the alloca and replace thier users | ||
171 | - for (auto *U : AI->users()) { | ||
172 | - auto *LI = dyn_cast<LoadInst>(U); | ||
173 | - if (!LI) | ||
174 | - continue; | ||
175 | - | ||
176 | - for (auto *U : LI->users()) { | ||
177 | - auto *UInst = cast<Instruction>(U); | ||
178 | - auto *Cast = CastInst::CreatePointerBitCastOrAddrSpaceCast( | ||
179 | - StoredVal, UInst->getType(), "", UInst); | ||
180 | - UInst->replaceAllUsesWith(Cast); | ||
181 | - } | ||
182 | - } | ||
183 | -} | ||
184 | - | ||
185 | -static int getBlockLiteralIdx(const Function &F) { | ||
186 | - StringRef FName = F.getName(); | ||
187 | - if (isEnqueueKernelBI(FName)) | ||
188 | - return FName.contains("events") ? 7 : 4; | ||
189 | - if (isKernelQueryBI(FName)) | ||
190 | - return FName.contains("for_ndrange") ? 2 : 1; | ||
191 | - if (FName.startswith("__") && FName.contains("_block_invoke")) | ||
192 | - return F.hasStructRetAttr() ? 1 : 0; | ||
193 | - | ||
194 | - return -1; // No block literal argument | ||
195 | -} | ||
196 | - | ||
197 | -static bool hasBlockLiteralArg(const Function &F) { | ||
198 | - return getBlockLiteralIdx(F) != -1; | ||
199 | -} | ||
200 | - | ||
201 | -static bool simplifyFunctionPtrCasts(Function &F) { | ||
202 | - bool Changed = false; | ||
203 | - int BlockLiteralIdx = getBlockLiteralIdx(F); | ||
204 | - for (auto *U : F.users()) { | ||
205 | - auto *Call = dyn_cast<CallInst>(U); | ||
206 | - if (!Call) | ||
207 | - continue; | ||
208 | - if (Call->getFunction()->getName() == F.getName().str() + "_kernel") | ||
209 | - continue; // Skip block invoke function calls inside block invoke kernels | ||
210 | - | ||
211 | - const DataLayout &DL = F.getParent()->getDataLayout(); | ||
212 | - auto *BlockLiteral = Call->getOperand(BlockLiteralIdx); | ||
213 | - auto *BlockLiteralVal = GetUnderlyingObject(BlockLiteral, DL); | ||
214 | - if (isa<GlobalVariable>(BlockLiteralVal)) | ||
215 | - continue; // nothing to do with globals | ||
216 | - | ||
217 | - auto *BlockLiteralAlloca = cast<AllocaInst>(BlockLiteralVal); | ||
218 | - assert(!BlockLiteralAlloca->getAllocatedType()->isFunctionTy() && | ||
219 | - "Function type shouldn't be there"); | ||
220 | - | ||
221 | - auto *NewBlockLiteral = CastInst::CreatePointerBitCastOrAddrSpaceCast( | ||
222 | - BlockLiteralAlloca, BlockLiteral->getType(), "", Call); | ||
223 | - BlockLiteral->replaceAllUsesWith(NewBlockLiteral); | ||
224 | - Changed |= true; | ||
225 | - } | ||
226 | - return Changed; | ||
227 | -} | ||
228 | - | ||
229 | -static void | ||
230 | -findFunctionPtrAllocas(Module &M, | ||
231 | - SmallVectorImpl<AllocaInst *> &FuncPtrAllocas) { | ||
232 | - for (auto &F : M) { | ||
233 | - if (F.isDeclaration()) | ||
234 | - continue; | ||
235 | - for (auto &I : instructions(F)) { | ||
236 | - auto *AI = dyn_cast<AllocaInst>(&I); | ||
237 | - if (!AI || !isFuncPtrAlloca(AI)) | ||
238 | - continue; | ||
239 | - FuncPtrAllocas.push_back(AI); | ||
240 | - } | ||
241 | - } | ||
242 | -} | ||
243 | - | ||
244 | -static void | ||
245 | -findUnusedFunctionPtrInsts(Module &M, | ||
246 | - SmallSetVector<Instruction *, 16> &FuncPtrInsts) { | ||
247 | - for (auto &F : M) { | ||
248 | - if (F.isDeclaration()) | ||
249 | - continue; | ||
250 | - for (auto &I : instructions(F)) | ||
251 | - if (I.user_empty() && isFuncPtrInst(&I)) | ||
252 | - FuncPtrInsts.insert(&I); | ||
253 | - } | ||
254 | -} | ||
255 | - | ||
256 | -static void | ||
257 | -findUnusedFunctionPtrGlbs(Module &M, | ||
258 | - SmallVectorImpl<GlobalVariable *> &FuncPtrGlbs) { | ||
259 | - for (auto &GV : M.globals()) { | ||
260 | - if (!GV.user_empty()) | ||
261 | - continue; | ||
262 | - auto *GVType = dyn_cast<PointerType>(GV.getType()->getElementType()); | ||
263 | - if (GVType && GVType->getElementType()->isFunctionTy()) | ||
264 | - FuncPtrGlbs.push_back(&GV); | ||
265 | - } | ||
266 | -} | ||
267 | - | ||
268 | -class SPIRVLowerOCLBlocks : public ModulePass { | ||
269 | - | ||
270 | -public: | ||
271 | - SPIRVLowerOCLBlocks() : ModulePass(ID) {} | ||
272 | - | ||
273 | - bool runOnModule(Module &M) { | ||
274 | - bool Changed = false; | ||
275 | - | ||
276 | - // 1. Find function pointer allocas and fix their users | ||
277 | - SmallVector<AllocaInst *, 16> FuncPtrAllocas; | ||
278 | - findFunctionPtrAllocas(M, FuncPtrAllocas); | ||
279 | - | ||
280 | - Changed |= !FuncPtrAllocas.empty(); | ||
281 | - for (auto *AI : FuncPtrAllocas) | ||
282 | - fixFunctionPtrAllocaUsers(AI); | ||
283 | - | ||
284 | - // 2. Simplify consecutive casts which use function pointer types | ||
285 | - for (auto &F : M) | ||
286 | - if (hasBlockLiteralArg(F)) | ||
287 | - Changed |= simplifyFunctionPtrCasts(F); | ||
288 | - | ||
289 | - // 3. Cleanup unused instructions with function pointer type | ||
290 | - // which are occured after pp. 1-2 | ||
291 | - SmallSetVector<Instruction *, 16> FuncPtrInsts; | ||
292 | - findUnusedFunctionPtrInsts(M, FuncPtrInsts); | ||
293 | - | ||
294 | - Changed |= !FuncPtrInsts.empty(); | ||
295 | - while (!FuncPtrInsts.empty()) { | ||
296 | - Instruction *I = FuncPtrInsts.pop_back_val(); | ||
297 | - removeUnusedFunctionPtrInst(I, FuncPtrInsts); | ||
298 | - } | ||
299 | - | ||
300 | - // 4. Find and remove unused global variables with function pointer type | ||
301 | - SmallVector<GlobalVariable *, 16> FuncPtrGlbs; | ||
302 | - findUnusedFunctionPtrGlbs(M, FuncPtrGlbs); | ||
303 | - | ||
304 | - Changed |= !FuncPtrGlbs.empty(); | ||
305 | - for (auto *GV : FuncPtrGlbs) | ||
306 | - GV->eraseFromParent(); | ||
307 | - | ||
308 | - return Changed; | ||
309 | - } | ||
310 | - | ||
311 | - static char ID; | ||
312 | -}; // class SPIRVLowerOCLBlocks | ||
313 | - | ||
314 | -char SPIRVLowerOCLBlocks::ID = 0; | ||
315 | - | ||
316 | -} // namespace | ||
317 | - | ||
318 | -INITIALIZE_PASS( | ||
319 | - SPIRVLowerOCLBlocks, "spv-lower-ocl-blocks", | ||
320 | - "Remove function pointers occured in case of using OpenCL blocks", false, | ||
321 | - false) | ||
322 | - | ||
323 | -llvm::ModulePass *llvm::createSPIRVLowerOCLBlocks() { | ||
324 | - return new SPIRVLowerOCLBlocks(); | ||
325 | -} | ||
326 | +//===- SPIRVLowerOCLBlocks.cpp - OCL Utilities ----------------------------===// | ||
327 | +// | ||
328 | +// The LLVM/SPIRV Translator | ||
329 | +// | ||
330 | +// This file is distributed under the University of Illinois Open Source | ||
331 | +// License. See LICENSE.TXT for details. | ||
332 | +// | ||
333 | +// Copyright (c) 2018 Intel Corporation. All rights reserved. | ||
334 | +// | ||
335 | +// Permission is hereby granted, free of charge, to any person obtaining a | ||
336 | +// copy of this software and associated documentation files (the "Software"), | ||
337 | +// to deal with the Software without restriction, including without limitation | ||
338 | +// the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
339 | +// and/or sell copies of the Software, and to permit persons to whom the | ||
340 | +// Software is furnished to do so, subject to the following conditions: | ||
341 | +// | ||
342 | +// Redistributions of source code must retain the above copyright notice, | ||
343 | +// this list of conditions and the following disclaimers. | ||
344 | +// Redistributions in binary form must reproduce the above copyright notice, | ||
345 | +// this list of conditions and the following disclaimers in the documentation | ||
346 | +// and/or other materials provided with the distribution. | ||
347 | +// Neither the names of Intel Corporation, nor the names of its | ||
348 | +// contributors may be used to endorse or promote products derived from this | ||
349 | +// Software without specific prior written permission. | ||
350 | +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
351 | +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
352 | +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
353 | +// CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
354 | +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
355 | +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH | ||
356 | +// THE SOFTWARE. | ||
357 | +// | ||
358 | +//===----------------------------------------------------------------------===// | ||
359 | +// | ||
360 | +// SPIR-V specification doesn't allow function pointers, so SPIR-V translator | ||
361 | +// is designed to fail if a value with function type (except calls) is occured. | ||
362 | +// Currently there is only two cases, when function pointers are generating in | ||
363 | +// LLVM IR in OpenCL - block calls and device side enqueue built-in calls. | ||
364 | +// | ||
365 | +// In both cases values with function type used as intermediate representation | ||
366 | +// for block literal structure. | ||
367 | +// | ||
368 | +// In LLVM IR produced by clang, blocks are represented with the following | ||
369 | +// structure: | ||
370 | +// %struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* } | ||
371 | +// Pointers to block invoke functions are stored in the third field. Clang | ||
372 | +// replaces inderect function calls in all cases except if block is passed as a | ||
373 | +// function argument. Note that it is somewhat unclear if the OpenCL C spec | ||
374 | +// should allow passing blocks as function argumernts. This pass is not supposed | ||
375 | +// to work correctly with such functions. | ||
376 | +// Clang though has to store function pointers to this structure. Purpose of | ||
377 | +// this pass is to replace store of function pointers(not allowed in SPIR-V) | ||
378 | +// with null pointers. | ||
379 | +// | ||
380 | +//===----------------------------------------------------------------------===// | ||
381 | +#define DEBUG_TYPE "spv-lower-ocl-blocks" | ||
382 | + | ||
383 | +#include "SPIRVInternal.h" | ||
384 | + | ||
385 | +#include "llvm/IR/Module.h" | ||
386 | +#include "llvm/Pass.h" | ||
387 | +#include "llvm/Support/Regex.h" | ||
388 | + | ||
389 | +using namespace llvm; | ||
390 | + | ||
391 | +namespace { | ||
392 | + | ||
393 | +static bool isBlockInvoke(Function &F) { | ||
394 | + static Regex BlockInvokeRegex("_block_invoke_?[0-9]*$"); | ||
395 | + return BlockInvokeRegex.match(F.getName()); | ||
396 | +} | ||
397 | + | ||
398 | +class SPIRVLowerOCLBlocks : public ModulePass { | ||
399 | + | ||
400 | +public: | ||
401 | + SPIRVLowerOCLBlocks() : ModulePass(ID) {} | ||
402 | + | ||
403 | + bool runOnModule(Module &M) { | ||
404 | + bool Changed = false; | ||
405 | + for (Function &F : M) { | ||
406 | + if (!isBlockInvoke(F)) | ||
407 | + continue; | ||
408 | + for (User *U : F.users()) { | ||
409 | + if (!isa<Constant>(U)) | ||
410 | + continue; | ||
411 | + Constant *Null = Constant::getNullValue(U->getType()); | ||
412 | + if (U != Null) { | ||
413 | + U->replaceAllUsesWith(Null); | ||
414 | + Changed = true; | ||
415 | + } | ||
416 | + } | ||
417 | + } | ||
418 | + return Changed; | ||
419 | + } | ||
420 | + | ||
421 | + static char ID; | ||
422 | +}; | ||
423 | + | ||
424 | +char SPIRVLowerOCLBlocks::ID = 0; | ||
425 | + | ||
426 | +} // namespace | ||
427 | + | ||
428 | +INITIALIZE_PASS( | ||
429 | + SPIRVLowerOCLBlocks, "spv-lower-ocl-blocks", | ||
430 | + "Remove function pointers occured in case of using OpenCL blocks", false, | ||
431 | + false) | ||
432 | + | ||
433 | +llvm::ModulePass *llvm::createSPIRVLowerOCLBlocks() { | ||
434 | + return new SPIRVLowerOCLBlocks(); | ||
435 | +} | ||
436 | diff --git a/test/global_block.ll b/test/global_block.ll | ||
437 | index a9267d8..efb4cf3 100644 | ||
438 | --- a/test/global_block.ll | ||
439 | +++ b/test/global_block.ll | ||
440 | @@ -16,7 +16,7 @@ | ||
441 | ; RUN: llvm-spirv %t.bc -o %t.spv | ||
442 | ; RUN: llvm-spirv -r %t.spv -o - | llvm-dis | FileCheck %s --check-prefix=CHECK-LLVM | ||
443 | |||
444 | -target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024-n8:16:32:64" | ||
445 | +target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" | ||
446 | target triple = "spir-unknown-unknown" | ||
447 | |||
448 | ; CHECK-SPIRV: Name [[block_invoke:[0-9]+]] "_block_invoke" | ||
449 | @@ -26,71 +26,56 @@ target triple = "spir-unknown-unknown" | ||
450 | ; CHECK-SPIRV: TypePointer [[int8Ptr:[0-9]+]] 8 [[int8]] | ||
451 | ; CHECK-SPIRV: TypeFunction [[block_invoke_type:[0-9]+]] [[int]] [[int8Ptr]] [[int]] | ||
452 | |||
453 | -;; This variable is not needed in SPIRV | ||
454 | -; CHECK-SPIRV-NOT: Name {{[0-9]+}} block_kernel.b1 | ||
455 | -; CHECK-LLVM-NOT: @block_kernel.b1 | ||
456 | -@block_kernel.b1 = internal addrspace(2) constant i32 (i32) addrspace(4)* addrspacecast (i32 (i32) addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i32 (i32) addrspace(1)*) to i32 (i32) addrspace(4)*), align 8 | ||
457 | +%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* } | ||
458 | |||
459 | -@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4 | ||
460 | +@block_kernel.b1 = internal addrspace(2) constant %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), align 4 | ||
461 | +@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (i32 (i8 addrspace(4)*, i32)* @_block_invoke to i8*) to i8 addrspace(4)*) }, align 4 | ||
462 | |||
463 | -; Function Attrs: convergent nounwind | ||
464 | -define spir_kernel void @block_kernel(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 !kernel_arg_base_type !6 !kernel_arg_type_qual !7 { | ||
465 | +; Function Attrs: convergent noinline nounwind optnone | ||
466 | +define spir_kernel void @block_kernel(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !3 !kernel_arg_access_qual !4 !kernel_arg_type !5 !kernel_arg_base_type !5 !kernel_arg_type_qual !6 { | ||
467 | entry: | ||
468 | - %res.addr = alloca i32 addrspace(1)*, align 8 | ||
469 | - store i32 addrspace(1)* %res, i32 addrspace(1)** %res.addr, align 8, !tbaa !10 | ||
470 | - | ||
471 | + %res.addr = alloca i32 addrspace(1)*, align 4 | ||
472 | + store i32 addrspace(1)* %res, i32 addrspace(1)** %res.addr, align 4 | ||
473 | ; CHECK-SPIRV: FunctionCall [[int]] {{[0-9]+}} [[block_invoke]] {{[0-9]+}} [[five]] | ||
474 | ; CHECK-LLVM: %call = call spir_func i32 @_block_invoke(i8 addrspace(4)* {{.*}}, i32 5) | ||
475 | - %call = call spir_func i32 @_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 5) #2 | ||
476 | - | ||
477 | - %0 = load i32 addrspace(1)*, i32 addrspace(1)** %res.addr, align 8, !tbaa !10 | ||
478 | - store i32 %call, i32 addrspace(1)* %0, align 4, !tbaa !14 | ||
479 | + %call = call spir_func i32 @_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 5) #2 | ||
480 | + %0 = load i32 addrspace(1)*, i32 addrspace(1)** %res.addr, align 4 | ||
481 | + store i32 %call, i32 addrspace(1)* %0, align 4 | ||
482 | ret void | ||
483 | } | ||
484 | |||
485 | -; CHECK-SPIRV: 5 Function [[int]] [[block_invoke]] 0 [[block_invoke_type]] | ||
486 | +; CHECK-SPIRV: 5 Function [[int]] [[block_invoke]] 2 [[block_invoke_type]] | ||
487 | ; CHECK-SPIRV-NEXT: 3 FunctionParameter [[int8Ptr]] {{[0-9]+}} | ||
488 | ; CHECK-SPIRV-NEXT: 3 FunctionParameter [[int]] {{[0-9]+}} | ||
489 | ; CHECK-LLVM: define internal spir_func i32 @_block_invoke(i8 addrspace(4)* {{.*}}, i32 %{{.*}}) | ||
490 | -; Function Attrs: convergent nounwind | ||
491 | +; Function Attrs: convergent noinline nounwind optnone | ||
492 | define internal spir_func i32 @_block_invoke(i8 addrspace(4)* %.block_descriptor, i32 %i) #1 { | ||
493 | entry: | ||
494 | - %.block_descriptor.addr = alloca i8 addrspace(4)*, align 8 | ||
495 | + %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4 | ||
496 | %i.addr = alloca i32, align 4 | ||
497 | - store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 8 | ||
498 | - %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)* | ||
499 | - store i32 %i, i32* %i.addr, align 4, !tbaa !14 | ||
500 | - %0 = load i32, i32* %i.addr, align 4, !tbaa !14 | ||
501 | + %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4 | ||
502 | + store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4 | ||
503 | + %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* | ||
504 | + store i32 %i, i32* %i.addr, align 4 | ||
505 | + store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4 | ||
506 | + %0 = load i32, i32* %i.addr, align 4 | ||
507 | %add = add nsw i32 %0, 1 | ||
508 | ret i32 %add | ||
509 | } | ||
510 | |||
511 | -attributes #0 = { convergent nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
512 | -attributes #1 = { convergent nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
513 | +attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
514 | +attributes #1 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
515 | attributes #2 = { convergent } | ||
516 | |||
517 | !llvm.module.flags = !{!0} | ||
518 | -!opencl.enable.FP_CONTRACT = !{} | ||
519 | !opencl.ocl.version = !{!1} | ||
520 | !opencl.spir.version = !{!1} | ||
521 | -!opencl.used.extensions = !{!2} | ||
522 | -!opencl.used.optional.core.features = !{!2} | ||
523 | -!opencl.compiler.options = !{!2} | ||
524 | -!llvm.ident = !{!3} | ||
525 | +!llvm.ident = !{!2} | ||
526 | |||
527 | !0 = !{i32 1, !"wchar_size", i32 4} | ||
528 | !1 = !{i32 2, i32 0} | ||
529 | -!2 = !{} | ||
530 | -!3 = !{!"clang version 7.0.0"} | ||
531 | -!4 = !{i32 1} | ||
532 | -!5 = !{!"none"} | ||
533 | -!6 = !{!"int*"} | ||
534 | -!7 = !{!""} | ||
535 | -!8 = !{i1 false} | ||
536 | -!9 = !{i32 0} | ||
537 | -!10 = !{!11, !11, i64 0} | ||
538 | -!11 = !{!"any pointer", !12, i64 0} | ||
539 | -!12 = !{!"omnipotent char", !13, i64 0} | ||
540 | -!13 = !{!"Simple C/C++ TBAA"} | ||
541 | -!14 = !{!15, !15, i64 0} | ||
542 | -!15 = !{!"int", !12, i64 0} | ||
543 | +!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"} | ||
544 | +!3 = !{i32 1} | ||
545 | +!4 = !{!"none"} | ||
546 | +!5 = !{!"int*"} | ||
547 | +!6 = !{!""} | ||
548 | diff --git a/test/literal-struct.ll b/test/literal-struct.ll | ||
549 | index c52170a..52a731a 100644 | ||
550 | --- a/test/literal-struct.ll | ||
551 | +++ b/test/literal-struct.ll | ||
552 | @@ -2,7 +2,7 @@ | ||
553 | ; structs, i.e. structs whose type has no name. Typicaly clang generate such | ||
554 | ; structs if the kernel contains OpenCL 2.0 blocks. The IR was produced with | ||
555 | ; the following command: | ||
556 | -; clang -cc1 -triple spir -cl-std=cl2.0 -O0 -finclude-default-header literal-struct.cl -emit-llvm -o test/literal-struct.ll | ||
557 | +; clang -cc1 -triple spir -cl-std=cl2.0 -O0 literal-struct.cl -emit-llvm -o test/literal-struct.ll | ||
558 | |||
559 | ; literal-struct.cl: | ||
560 | ; void foo() | ||
561 | @@ -14,25 +14,28 @@ | ||
562 | ; RUN: llvm-as < %s | llvm-spirv -spirv-text -o %t | ||
563 | ; RUN: FileCheck < %t %s | ||
564 | |||
565 | -; CHECK-DAG: TypeInt [[Int:[0-9]+]] 32 0 | ||
566 | -; CHECK-DAG: TypeStruct [[StructType:[0-9]+]] [[Int]] [[Int]] {{$}} | ||
567 | +; CHECK: TypeInt [[Int:[0-9]+]] 32 0 | ||
568 | +; CHECK: TypeInt [[Int8:[0-9]+]] 8 0 | ||
569 | +; CHECK: TypePointer [[Int8Ptr:[0-9]+]] 8 [[Int8]] | ||
570 | +; CHECK: TypeStruct [[StructType:[0-9]+]] [[Int]] [[Int]] [[Int8Ptr]] | ||
571 | |||
572 | target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" | ||
573 | target triple = "spir" | ||
574 | |||
575 | -@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4 | ||
576 | +%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* } | ||
577 | + | ||
578 | +@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__foo_block_invoke to i8*) to i8 addrspace(4)*) }, align 4 | ||
579 | ; CHECK: ConstantComposite [[StructType]] | ||
580 | |||
581 | -; This is artificial case is added to cover ConstantNull instrucitions with TypeStruct. | ||
582 | -@__block_literal_global.1 = internal addrspace(1) constant { i32, i32 } zeroinitializer, align 4 | ||
583 | +@__block_literal_global.1 = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } zeroinitializer, align 4 | ||
584 | ; CHECK: ConstantNull [[StructType]] | ||
585 | |||
586 | ; Function Attrs: convergent noinline nounwind optnone | ||
587 | define spir_func void @foo() #0 { | ||
588 | entry: | ||
589 | - %myBlock = alloca void () addrspace(4)*, align 4 | ||
590 | - store void () addrspace(4)* addrspacecast (void () addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to void () addrspace(1)*) to void () addrspace(4)*), void () addrspace(4)** %myBlock, align 4 | ||
591 | - call spir_func void @__foo_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*)) #1 | ||
592 | + %myBlock = alloca %struct.__opencl_block_literal_generic addrspace(4)*, align 4 | ||
593 | + store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %myBlock, align 4 | ||
594 | + call spir_func void @__foo_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*)) #1 | ||
595 | ret void | ||
596 | } | ||
597 | |||
598 | @@ -40,14 +43,14 @@ entry: | ||
599 | define internal spir_func void @__foo_block_invoke(i8 addrspace(4)* %.block_descriptor) #0 { | ||
600 | entry: | ||
601 | %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4 | ||
602 | - %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 4 | ||
603 | + %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4 | ||
604 | store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4 | ||
605 | - %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)* | ||
606 | - store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 4 | ||
607 | + %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* | ||
608 | + store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4 | ||
609 | ret void | ||
610 | } | ||
611 | |||
612 | -attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
613 | +attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
614 | attributes #1 = { convergent } | ||
615 | |||
616 | !llvm.module.flags = !{!0} | ||
617 | @@ -57,4 +60,4 @@ attributes #1 = { convergent } | ||
618 | |||
619 | !0 = !{i32 1, !"wchar_size", i32 4} | ||
620 | !1 = !{i32 2, i32 0} | ||
621 | -!2 = !{!"clang version 8.0.0 "} | ||
622 | +!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"} | ||
623 | diff --git a/test/transcoding/block_w_struct_return.ll b/test/transcoding/block_w_struct_return.ll | ||
624 | index 76e29f0..df89b13 100644 | ||
625 | --- a/test/transcoding/block_w_struct_return.ll | ||
626 | +++ b/test/transcoding/block_w_struct_return.ll | ||
627 | @@ -16,6 +16,8 @@ | ||
628 | ; res[tid] = kernelBlock(aa).a - 6; | ||
629 | ; } | ||
630 | |||
631 | +; clang -cc1 -triple spir -cl-std=cl2.0 -disable-llvm-passes -finclude-default-header block_w_struct_return.cl -emit-llvm -o test/transcoding/block_w_struct_return.ll | ||
632 | + | ||
633 | ; RUN: llvm-as %s -o %t.bc | ||
634 | ; RUN: llvm-spirv %t.bc -spirv-text -o %t.spv.txt | ||
635 | ; RUN: FileCheck < %t.spv.txt %s --check-prefix=CHECK-SPIRV | ||
636 | @@ -27,12 +29,14 @@ | ||
637 | ; CHECK-SPIRV: Name [[BlockInv:[0-9]+]] "__block_ret_struct_block_invoke" | ||
638 | |||
639 | ; CHECK-SPIRV: 4 TypeInt [[IntTy:[0-9]+]] 32 | ||
640 | +; CHECK-SPIRV: 4 TypeInt [[Int8Ty:[0-9]+]] 8 | ||
641 | +; CHECK-SPIRV: 4 TypePointer [[Int8Ptr:[0-9]+]] 8 [[Int8Ty]] | ||
642 | ; CHECK-SPIRV: 3 TypeStruct [[StructTy:[0-9]+]] [[IntTy]] | ||
643 | ; CHECK-SPIRV: 4 TypePointer [[StructPtrTy:[0-9]+]] 7 [[StructTy]] | ||
644 | |||
645 | ; CHECK-SPIRV: 4 Variable [[StructPtrTy]] [[StructArg:[0-9]+]] 7 | ||
646 | ; CHECK-SPIRV: 4 Variable [[StructPtrTy]] [[StructRet:[0-9]+]] 7 | ||
647 | -; CHECK-SPIRV: 4 PtrCastToGeneric {{[0-9]+}} [[BlockLit:[0-9]+]] {{[0-9]+}} | ||
648 | +; CHECK-SPIRV: 4 PtrCastToGeneric [[Int8Ptr]] [[BlockLit:[0-9]+]] {{[0-9]+}} | ||
649 | ; CHECK-SPIRV: 7 FunctionCall {{[0-9]+}} {{[0-9]+}} [[BlockInv]] [[StructRet]] [[BlockLit]] [[StructArg]] | ||
650 | |||
651 | ; CHECK-LLVM: %[[StructA:.*]] = type { i32 } | ||
652 | @@ -41,20 +45,21 @@ | ||
653 | target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" | ||
654 | target triple = "spir64-unknown-unknown" | ||
655 | |||
656 | +%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* } | ||
657 | %struct.A = type { i32 } | ||
658 | |||
659 | -@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4 | ||
660 | +@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 16, i32 8, i8 addrspace(4)* addrspacecast (i8* bitcast (void (%struct.A*, i8 addrspace(4)*, %struct.A*)* @__block_ret_struct_block_invoke to i8*) to i8 addrspace(4)*) }, align 8 | ||
661 | |||
662 | ; Function Attrs: convergent noinline nounwind optnone | ||
663 | -define spir_kernel void @block_ret_struct(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 !kernel_arg_base_type !6 !kernel_arg_type_qual !7 !kernel_arg_host_accessible !8 !kernel_arg_pipe_depth !9 !kernel_arg_pipe_io !7 !kernel_arg_buffer_location !7 { | ||
664 | +define spir_kernel void @block_ret_struct(i32 addrspace(1)* %res) #0 !kernel_arg_addr_space !3 !kernel_arg_access_qual !4 !kernel_arg_type !5 !kernel_arg_base_type !5 !kernel_arg_type_qual !6 { | ||
665 | entry: | ||
666 | %res.addr = alloca i32 addrspace(1)*, align 8 | ||
667 | - %kernelBlock = alloca void (%struct.A*, %struct.A*) addrspace(4)*, align 8 | ||
668 | + %kernelBlock = alloca %struct.__opencl_block_literal_generic addrspace(4)*, align 8 | ||
669 | %tid = alloca i64, align 8 | ||
670 | %aa = alloca %struct.A, align 4 | ||
671 | %tmp = alloca %struct.A, align 4 | ||
672 | store i32 addrspace(1)* %res, i32 addrspace(1)** %res.addr, align 8 | ||
673 | - store void (%struct.A*, %struct.A*) addrspace(4)* addrspacecast (void (%struct.A*, %struct.A*) addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to void (%struct.A*, %struct.A*) addrspace(1)*) to void (%struct.A*, %struct.A*) addrspace(4)*), void (%struct.A*, %struct.A*) addrspace(4)** %kernelBlock, align 8 | ||
674 | + store %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), %struct.__opencl_block_literal_generic addrspace(4)** %kernelBlock, align 8 | ||
675 | %call = call spir_func i64 @_Z13get_global_idj(i32 0) #4 | ||
676 | store i64 %call, i64* %tid, align 8 | ||
677 | %0 = load i32 addrspace(1)*, i32 addrspace(1)** %res.addr, align 8 | ||
678 | @@ -63,7 +68,7 @@ entry: | ||
679 | store i32 -1, i32 addrspace(1)* %arrayidx, align 4 | ||
680 | %a = getelementptr inbounds %struct.A, %struct.A* %aa, i32 0, i32 0 | ||
681 | store i32 5, i32* %a, align 4 | ||
682 | - call spir_func void @__block_ret_struct_block_invoke(%struct.A* sret %tmp, i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), %struct.A* byval align 4 %aa) #5 | ||
683 | + call spir_func void @__block_ret_struct_block_invoke(%struct.A* sret %tmp, i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), %struct.A* byval align 4 %aa) #5 | ||
684 | %a1 = getelementptr inbounds %struct.A, %struct.A* %tmp, i32 0, i32 0 | ||
685 | %2 = load i32, i32* %a1, align 4 | ||
686 | %sub = sub nsw i32 %2, 6 | ||
687 | @@ -78,10 +83,10 @@ entry: | ||
688 | define internal spir_func void @__block_ret_struct_block_invoke(%struct.A* noalias sret %agg.result, i8 addrspace(4)* %.block_descriptor, %struct.A* byval align 4 %a) #1 { | ||
689 | entry: | ||
690 | %.block_descriptor.addr = alloca i8 addrspace(4)*, align 8 | ||
691 | - %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 8 | ||
692 | + %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 8 | ||
693 | store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 8 | ||
694 | - %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)* | ||
695 | - store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 8 | ||
696 | + %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* | ||
697 | + store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 8 | ||
698 | %a1 = getelementptr inbounds %struct.A, %struct.A* %a, i32 0, i32 0 | ||
699 | store i32 6, i32* %a1, align 4 | ||
700 | %0 = bitcast %struct.A* %agg.result to i8* | ||
701 | @@ -96,30 +101,22 @@ declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture r | ||
702 | ; Function Attrs: convergent nounwind readnone | ||
703 | declare spir_func i64 @_Z13get_global_idj(i32) #3 | ||
704 | |||
705 | -attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
706 | -attributes #1 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
707 | +attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
708 | +attributes #1 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
709 | attributes #2 = { argmemonly nounwind } | ||
710 | attributes #3 = { convergent nounwind readnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
711 | attributes #4 = { convergent nounwind readnone } | ||
712 | attributes #5 = { convergent } | ||
713 | |||
714 | !llvm.module.flags = !{!0} | ||
715 | -!opencl.enable.FP_CONTRACT = !{} | ||
716 | !opencl.ocl.version = !{!1} | ||
717 | !opencl.spir.version = !{!1} | ||
718 | -!opencl.used.extensions = !{!2} | ||
719 | -!opencl.used.optional.core.features = !{!2} | ||
720 | -!opencl.compiler.options = !{!2} | ||
721 | -!llvm.ident = !{!3} | ||
722 | +!llvm.ident = !{!2} | ||
723 | |||
724 | !0 = !{i32 1, !"wchar_size", i32 4} | ||
725 | !1 = !{i32 2, i32 0} | ||
726 | -!2 = !{} | ||
727 | -!3 = !{!"clang version 7.0.0"} | ||
728 | -!4 = !{i32 1} | ||
729 | -!5 = !{!"none"} | ||
730 | -!6 = !{!"int*"} | ||
731 | -!7 = !{!""} | ||
732 | -!8 = !{i1 false} | ||
733 | -!9 = !{i32 0} | ||
734 | - | ||
735 | +!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"} | ||
736 | +!3 = !{i32 1} | ||
737 | +!4 = !{!"none"} | ||
738 | +!5 = !{!"int*"} | ||
739 | +!6 = !{!""} | ||
740 | diff --git a/test/transcoding/enqueue_kernel.ll b/test/transcoding/enqueue_kernel.ll | ||
741 | index 0d29c71..435871d 100644 | ||
742 | --- a/test/transcoding/enqueue_kernel.ll | ||
743 | +++ b/test/transcoding/enqueue_kernel.ll | ||
744 | @@ -51,11 +51,12 @@ | ||
745 | ; ModuleID = 'enqueue_kernel.cl' | ||
746 | source_filename = "enqueue_kernel.cl" | ||
747 | target datalayout = "e-p:32:32-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024" | ||
748 | -target triple = "spir-unknown-unknown" | ||
749 | +target triple = "spir" | ||
750 | |||
751 | %opencl.queue_t = type opaque | ||
752 | %struct.ndrange_t = type { i32 } | ||
753 | %opencl.clk_event_t = type opaque | ||
754 | +%struct.__opencl_block_literal_generic = type { i32, i32, i8 addrspace(4)* } | ||
755 | |||
756 | ; CHECK-SPIRV: EntryPoint {{[0-9]+}} [[BlockKer1:[0-9]+]] "__device_side_enqueue_block_invoke_kernel" | ||
757 | ; CHECK-SPIRV: EntryPoint {{[0-9]+}} [[BlockKer2:[0-9]+]] "__device_side_enqueue_block_invoke_2_kernel" | ||
758 | @@ -66,89 +67,123 @@ target triple = "spir-unknown-unknown" | ||
759 | |||
760 | ; CHECK-SPIRV: TypeInt [[Int32Ty:[0-9]+]] 32 | ||
761 | ; CHECK-SPIRV: TypeInt [[Int8Ty:[0-9]+]] 8 | ||
762 | -; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt8:[0-9]+]] 8 | ||
763 | ; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt0:[0-9]+]] 0 | ||
764 | -; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt17:[0-9]+]] 17 | ||
765 | +; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt17:[0-9]+]] 21 | ||
766 | ; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt2:[0-9]+]] 2 | ||
767 | -; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt20:[0-9]+]] 20 | ||
768 | -; CHECK-SPIRV: TypeVoid [[VoidTy:[0-9]+]] | ||
769 | +; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt8:[0-9]+]] 8 | ||
770 | +; CHECK-SPIRV: Constant [[Int32Ty]] [[ConstInt20:[0-9]+]] 24 | ||
771 | |||
772 | ; CHECK-SPIRV: TypePointer {{[0-9]+}} 7 {{[0-9]+}} | ||
773 | +; CHECK-SPIRV: TypePointer [[Int8PtrGenTy:[0-9]+]] 8 [[Int8Ty]] | ||
774 | +; CHECK-SPIRV: TypeVoid [[VoidTy:[0-9]+]] | ||
775 | ; CHECK-SPIRV: TypePointer [[Int32LocPtrTy:[0-9]+]] 7 [[Int32Ty]] | ||
776 | ; CHECK-SPIRV: TypeDeviceEvent [[EventTy:[0-9]+]] | ||
777 | -; CHECK-SPIRV: TypePointer [[Int8PtrGenTy:[0-9]+]] 8 [[Int8Ty]] | ||
778 | ; CHECK-SPIRV: TypePointer [[EventPtrTy:[0-9]+]] 8 [[EventTy]] | ||
779 | ; CHECK-SPIRV: TypeFunction [[BlockTy1:[0-9]+]] [[VoidTy]] [[Int8PtrGenTy]] | ||
780 | ; CHECK-SPIRV: TypeFunction [[BlockTy2:[0-9]+]] [[VoidTy]] [[Int8PtrGenTy]] | ||
781 | ; CHECK-SPIRV: TypeFunction [[BlockTy3:[0-9]+]] [[VoidTy]] [[Int8PtrGenTy]] | ||
782 | ; CHECK-SPIRV: ConstantNull [[EventPtrTy]] [[EventNull:[0-9]+]] | ||
783 | |||
784 | -; CHECK-LLVM: [[BlockTy1:%[0-9]+]] = type { i32, i32 } | ||
785 | -; CHECK-LLVM: [[BlockTy2:%[0-9]+]] = type <{ i32, i32, i32 addrspace(1)*, i32, i8 }> | ||
786 | -; CHECK-LLVM: [[BlockTy3:%[0-9]+]] = type <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> | ||
787 | -; CHECK-LLVM: [[BlockTy4:%[0-9]+]] = type <{ i32, i32 }> | ||
788 | +; CHECK-LLVM: [[BlockTy1:%[0-9]+]] = type { i32, i32, i8 addrspace(4)* } | ||
789 | +; CHECK-LLVM: [[BlockTy2:%[0-9]+]] = type <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> | ||
790 | +; CHECK-LLVM: [[BlockTy3:%[0-9]+]] = type <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> | ||
791 | +; CHECK-LLVM: [[BlockTy4:%[0-9]+]] = type <{ i32, i32, i8 addrspace(4)* }> | ||
792 | |||
793 | -; CHECK-LLVM: @__block_literal_global = internal addrspace(1) constant [[BlockTy1]] { i32 8, i32 4 }, align 4 | ||
794 | -; CHECK-LLVM: @__block_literal_global.1 = internal addrspace(1) constant [[BlockTy1]] { i32 8, i32 4 }, align 4 | ||
795 | +; CHECK-LLVM: @__block_literal_global = internal addrspace(1) constant [[BlockTy1]] { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* null to i8 addrspace(4)*) }, align 4 | ||
796 | +; CHECK-LLVM: @__block_literal_global.1 = internal addrspace(1) constant [[BlockTy1]] { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* null to i8 addrspace(4)*) }, align 4 | ||
797 | |||
798 | -@__block_literal_global = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4 | ||
799 | -@__block_literal_global.1 = internal addrspace(1) constant { i32, i32 } { i32 8, i32 4 }, align 4 | ||
800 | +@__block_literal_global = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3 to i8*) to i8 addrspace(4)*) }, align 4 | ||
801 | +@__block_literal_global.1 = internal addrspace(1) constant { i32, i32, i8 addrspace(4)* } { i32 12, i32 4, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4 to i8*) to i8 addrspace(4)*) }, align 4 | ||
802 | |||
803 | ; Function Attrs: convergent noinline nounwind optnone | ||
804 | -define spir_kernel void @device_side_enqueue(i32 addrspace(1)* %a, i32 addrspace(1)* %b, i32 %i, i8 signext %c0) #0 !kernel_arg_addr_space !4 !kernel_arg_access_qual !5 !kernel_arg_type !6 !kernel_arg_base_type !6 !kernel_arg_type_qual !7 { | ||
805 | +define spir_kernel void @device_side_enqueue(i32 addrspace(1)* %a, i32 addrspace(1)* %b, i32 %i, i8 signext %c0) #0 !kernel_arg_addr_space !3 !kernel_arg_access_qual !4 !kernel_arg_type !5 !kernel_arg_base_type !5 !kernel_arg_type_qual !6 { | ||
806 | entry: | ||
807 | + %a.addr = alloca i32 addrspace(1)*, align 4 | ||
808 | + %b.addr = alloca i32 addrspace(1)*, align 4 | ||
809 | + %i.addr = alloca i32, align 4 | ||
810 | + %c0.addr = alloca i8, align 1 | ||
811 | %default_queue = alloca %opencl.queue_t*, align 4 | ||
812 | %flags = alloca i32, align 4 | ||
813 | %ndrange = alloca %struct.ndrange_t, align 4 | ||
814 | %clk_event = alloca %opencl.clk_event_t*, align 4 | ||
815 | %event_wait_list = alloca %opencl.clk_event_t*, align 4 | ||
816 | %event_wait_list2 = alloca [1 x %opencl.clk_event_t*], align 4 | ||
817 | - %block = alloca <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, align 4 | ||
818 | - %block3 = alloca <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, align 4 | ||
819 | + %block = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, align 4 | ||
820 | + %tmp = alloca %struct.ndrange_t, align 4 | ||
821 | + %block3 = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, align 4 | ||
822 | + %tmp4 = alloca %struct.ndrange_t, align 4 | ||
823 | %c = alloca i8, align 1 | ||
824 | + %tmp11 = alloca %struct.ndrange_t, align 4 | ||
825 | + %block_sizes = alloca [1 x i32], align 4 | ||
826 | + %tmp12 = alloca %struct.ndrange_t, align 4 | ||
827 | + %block_sizes13 = alloca [3 x i32], align 4 | ||
828 | + store i32 addrspace(1)* %a, i32 addrspace(1)** %a.addr, align 4 | ||
829 | + store i32 addrspace(1)* %b, i32 addrspace(1)** %b.addr, align 4 | ||
830 | + store i32 %i, i32* %i.addr, align 4 | ||
831 | + store i8 %c0, i8* %c0.addr, align 1 | ||
832 | store i32 0, i32* %flags, align 4 | ||
833 | %arrayinit.begin = getelementptr inbounds [1 x %opencl.clk_event_t*], [1 x %opencl.clk_event_t*]* %event_wait_list2, i32 0, i32 0 | ||
834 | %0 = load %opencl.clk_event_t*, %opencl.clk_event_t** %clk_event, align 4 | ||
835 | store %opencl.clk_event_t* %0, %opencl.clk_event_t** %arrayinit.begin, align 4 | ||
836 | %1 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4 | ||
837 | %2 = load i32, i32* %flags, align 4 | ||
838 | - %block.size = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 0 | ||
839 | - store i32 17, i32* %block.size, align 4 | ||
840 | - %block.align = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 1 | ||
841 | + %3 = bitcast %struct.ndrange_t* %tmp to i8* | ||
842 | + %4 = bitcast %struct.ndrange_t* %ndrange to i8* | ||
843 | + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %3, i8* align 4 %4, i32 4, i1 false) | ||
844 | + %block.size = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 0 | ||
845 | + store i32 21, i32* %block.size, align 4 | ||
846 | + %block.align = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 1 | ||
847 | store i32 4, i32* %block.align, align 4 | ||
848 | - %block.captured = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 2 | ||
849 | - store i32 addrspace(1)* %a, i32 addrspace(1)** %block.captured, align 4 | ||
850 | - %block.captured1 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 3 | ||
851 | - store i32 %i, i32* %block.captured1, align 4 | ||
852 | - %block.captured2 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 4 | ||
853 | - store i8 %c0, i8* %block.captured2, align 4 | ||
854 | - %3 = bitcast <{ i32, i32, i32 addrspace(1)*, i32, i8 }>* %block to void ()* | ||
855 | - %4 = addrspacecast void ()* %3 to i8 addrspace(4)* | ||
856 | + %block.invoke = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 2 | ||
857 | + store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke, align 4 | ||
858 | + %block.captured = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 3 | ||
859 | + %5 = load i32 addrspace(1)*, i32 addrspace(1)** %a.addr, align 4 | ||
860 | + store i32 addrspace(1)* %5, i32 addrspace(1)** %block.captured, align 4 | ||
861 | + %block.captured1 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 4 | ||
862 | + %6 = load i32, i32* %i.addr, align 4 | ||
863 | + store i32 %6, i32* %block.captured1, align 4 | ||
864 | + %block.captured2 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block, i32 0, i32 5 | ||
865 | + %7 = load i8, i8* %c0.addr, align 1 | ||
866 | + store i8 %7, i8* %block.captured2, align 4 | ||
867 | + %8 = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>* %block to %struct.__opencl_block_literal_generic* | ||
868 | + %9 = addrspacecast %struct.__opencl_block_literal_generic* %8 to i8 addrspace(4)* | ||
869 | |||
870 | ; CHECK-SPIRV: PtrCastToGeneric [[Int8PtrGenTy]] [[BlockLit1:[0-9]+]] | ||
871 | ; CHECK-SPIRV: EnqueueKernel [[Int32Ty]] {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} {{[0-9]+}} | ||
872 | ; [[ConstInt0]] [[EventNull]] [[EventNull]] | ||
873 | ; [[BlockKer1]] [[BlockLit1]] [[ConstInt17]] [[ConstInt8]] | ||
874 | |||
875 | -; CHECK-LLVM: [[Block2:%[0-9]+]] = addrspacecast [[BlockTy2]]* %block to i8 addrspace(4)* | ||
876 | +; CHECK-LLVM: [[Block2:%[0-9]+]] = bitcast [[BlockTy2]]* %block to %struct.__opencl_block_literal_generic* | ||
877 | +; CHECK-LLVM: [[Block2Ptr:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[Block2]] to i8 addrspace(4)* | ||
878 | ; CHECK-LLVM: [[BlockInv2:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_kernel to i8 addrspace(4)* | ||
879 | -; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 0, %opencl.clk_event_t* addrspace(4)* null, %opencl.clk_event_t* addrspace(4)* null, i8 addrspace(4)* [[BlockInv2]], i8 addrspace(4)* [[Block2]]) | ||
880 | - | ||
881 | - %5 = call i32 @__enqueue_kernel_basic(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* byval %ndrange, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %4) | ||
882 | - %6 = addrspacecast %opencl.clk_event_t** %event_wait_list to %opencl.clk_event_t* addrspace(4)* | ||
883 | - %7 = addrspacecast %opencl.clk_event_t** %clk_event to %opencl.clk_event_t* addrspace(4)* | ||
884 | - %block.size5 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 0 | ||
885 | - store i32 20, i32* %block.size5, align 4 | ||
886 | - %block.align6 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 1 | ||
887 | +; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 0, %opencl.clk_event_t* addrspace(4)* null, %opencl.clk_event_t* addrspace(4)* null, i8 addrspace(4)* [[BlockInv2]], i8 addrspace(4)* [[Block2Ptr]]) | ||
888 | + | ||
889 | + %10 = call i32 @__enqueue_kernel_basic(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* byval %tmp, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %9) | ||
890 | + %11 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4 | ||
891 | + %12 = load i32, i32* %flags, align 4 | ||
892 | + %13 = bitcast %struct.ndrange_t* %tmp4 to i8* | ||
893 | + %14 = bitcast %struct.ndrange_t* %ndrange to i8* | ||
894 | + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %13, i8* align 4 %14, i32 4, i1 false) | ||
895 | + %15 = addrspacecast %opencl.clk_event_t** %event_wait_list to %opencl.clk_event_t* addrspace(4)* | ||
896 | + %16 = addrspacecast %opencl.clk_event_t** %clk_event to %opencl.clk_event_t* addrspace(4)* | ||
897 | + %block.size5 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 0 | ||
898 | + store i32 24, i32* %block.size5, align 4 | ||
899 | + %block.align6 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 1 | ||
900 | store i32 4, i32* %block.align6, align 4 | ||
901 | - %block.captured7 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 2 | ||
902 | - store i32 addrspace(1)* %a, i32 addrspace(1)** %block.captured7, align 4 | ||
903 | - %block.captured8 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 3 | ||
904 | - store i32 %i, i32* %block.captured8, align 4 | ||
905 | - %block.captured9 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 4 | ||
906 | - store i32 addrspace(1)* %b, i32 addrspace(1)** %block.captured9, align 4 | ||
907 | - %8 = bitcast <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3 to void ()* | ||
908 | - %9 = addrspacecast void ()* %8 to i8 addrspace(4)* | ||
909 | + %block.invoke7 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 2 | ||
910 | + store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2 to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke7, align 4 | ||
911 | + %block.captured8 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 3 | ||
912 | + %17 = load i32 addrspace(1)*, i32 addrspace(1)** %a.addr, align 4 | ||
913 | + store i32 addrspace(1)* %17, i32 addrspace(1)** %block.captured8, align 4 | ||
914 | + %block.captured9 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 4 | ||
915 | + %18 = load i32, i32* %i.addr, align 4 | ||
916 | + store i32 %18, i32* %block.captured9, align 4 | ||
917 | + %block.captured10 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3, i32 0, i32 5 | ||
918 | + %19 = load i32 addrspace(1)*, i32 addrspace(1)** %b.addr, align 4 | ||
919 | + store i32 addrspace(1)* %19, i32 addrspace(1)** %block.captured10, align 4 | ||
920 | + %20 = bitcast <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>* %block3 to %struct.__opencl_block_literal_generic* | ||
921 | + %21 = addrspacecast %struct.__opencl_block_literal_generic* %20 to i8 addrspace(4)* | ||
922 | + | ||
923 | |||
924 | ; CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event1:[0-9]+]] | ||
925 | ; CHECK-SPIRV: PtrCastToGeneric [[EventPtrTy]] [[Event2:[0-9]+]] | ||
926 | @@ -158,16 +193,24 @@ entry: | ||
927 | ; [[ConstInt2]] [[Event1]] [[Event2]] | ||
928 | ; [[BlockKer2]] [[BlockLit2]] [[ConstInt20]] [[ConstInt8]] | ||
929 | |||
930 | -; CHECK-LLVM: [[Block3:%[0-9]+]] = addrspacecast [[BlockTy3]]* %block3 to i8 addrspace(4)* | ||
931 | +; CHECK-LLVM: [[Block3:%[0-9]+]] = bitcast [[BlockTy3]]* %block3 to %struct.__opencl_block_literal_generic* | ||
932 | +; CHECK-LLVM: [[Block3Ptr:%[0-9]+]] = addrspacecast %struct.__opencl_block_literal_generic* [[Block3]] to i8 addrspace(4) | ||
933 | ; CHECK-LLVM: [[BlockInv3:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2_kernel to i8 addrspace(4)* | ||
934 | -; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t* addrspace(4)* {{.*}}, %opencl.clk_event_t* addrspace(4)* {{.*}}, i8 addrspace(4)* [[BlockInv3]], i8 addrspace(4)* [[Block3]]) | ||
935 | - | ||
936 | - %10 = call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* %ndrange, i32 2, %opencl.clk_event_t* addrspace(4)* %6, %opencl.clk_event_t* addrspace(4)* %7, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %9) | ||
937 | - %11 = alloca [1 x i32] | ||
938 | - %12 = getelementptr [1 x i32], [1 x i32]* %11, i32 0, i32 0 | ||
939 | - %13 = load i8, i8* %c, align 1 | ||
940 | - %14 = zext i8 %13 to i32 | ||
941 | - store i32 %14, i32* %12, align 4 | ||
942 | +; CHECK-LLVM: call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t* addrspace(4)* {{.*}}, %opencl.clk_event_t* addrspace(4)* {{.*}}, i8 addrspace(4)* [[BlockInv3]], i8 addrspace(4)* [[Block3Ptr]]) | ||
943 | + | ||
944 | + %22 = call i32 @__enqueue_kernel_basic_events(%opencl.queue_t* %11, i32 %12, %struct.ndrange_t* %tmp4, i32 2, %opencl.clk_event_t* addrspace(4)* %15, %opencl.clk_event_t* addrspace(4)* %16, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* @__device_side_enqueue_block_invoke_2_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* %21) | ||
945 | + %23 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4 | ||
946 | + %24 = load i32, i32* %flags, align 4 | ||
947 | + %25 = bitcast %struct.ndrange_t* %tmp11 to i8* | ||
948 | + %26 = bitcast %struct.ndrange_t* %ndrange to i8* | ||
949 | + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %25, i8* align 4 %26, i32 4, i1 false) | ||
950 | + %arraydecay = getelementptr inbounds [1 x %opencl.clk_event_t*], [1 x %opencl.clk_event_t*]* %event_wait_list2, i32 0, i32 0 | ||
951 | + %27 = addrspacecast %opencl.clk_event_t** %arraydecay to %opencl.clk_event_t* addrspace(4)* | ||
952 | + %28 = addrspacecast %opencl.clk_event_t** %clk_event to %opencl.clk_event_t* addrspace(4)* | ||
953 | + %29 = getelementptr [1 x i32], [1 x i32]* %block_sizes, i32 0, i32 0 | ||
954 | + %30 = load i8, i8* %c, align 1 | ||
955 | + %31 = zext i8 %30 to i32 | ||
956 | + store i32 %31, i32* %29, align 4 | ||
957 | |||
958 | ; CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf31:[0-9]+]] | ||
959 | ; CHECK-SPIRV: Bitcast {{[0-9]+}} [[BlockLit3Tmp:[0-9]+]] [[BlockGlb1:[0-9]+]] | ||
960 | @@ -182,14 +225,18 @@ entry: | ||
961 | ; CHECK-LLVM: [[BlockInv0:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3_kernel to i8 addrspace(4)* | ||
962 | ; CHECK-LLVM: call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 2, %opencl.clk_event_t* addrspace(4)* {{.*}}, %opencl.clk_event_t* addrspace(4)* {{.*}}, i8 addrspace(4)* [[BlockInv0]], i8 addrspace(4)* [[Block0]], i32 1, i32* {{.*}}) | ||
963 | |||
964 | - %15 = call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* %ndrange, i32 2, %opencl.clk_event_t* addrspace(4)* %6, %opencl.clk_event_t* addrspace(4)* %7, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 1, i32* %12) | ||
965 | - %16 = alloca [3 x i32] | ||
966 | - %17 = getelementptr [3 x i32], [3 x i32]* %16, i32 0, i32 0 | ||
967 | - store i32 1, i32* %17, align 4 | ||
968 | - %18 = getelementptr [3 x i32], [3 x i32]* %16, i32 0, i32 1 | ||
969 | - store i32 2, i32* %18, align 4 | ||
970 | - %19 = getelementptr [3 x i32], [3 x i32]* %16, i32 0, i32 2 | ||
971 | - store i32 4, i32* %19, align 4 | ||
972 | + %32 = call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* %23, i32 %24, %struct.ndrange_t* %tmp11, i32 2, %opencl.clk_event_t* addrspace(4)* %27, %opencl.clk_event_t* addrspace(4)* %28, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_3_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global to i8 addrspace(1)*) to i8 addrspace(4)*), i32 1, i32* %29) | ||
973 | + %33 = load %opencl.queue_t*, %opencl.queue_t** %default_queue, align 4 | ||
974 | + %34 = load i32, i32* %flags, align 4 | ||
975 | + %35 = bitcast %struct.ndrange_t* %tmp12 to i8* | ||
976 | + %36 = bitcast %struct.ndrange_t* %ndrange to i8* | ||
977 | + call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %35, i8* align 4 %36, i32 4, i1 false) | ||
978 | + %37 = getelementptr [3 x i32], [3 x i32]* %block_sizes13, i32 0, i32 0 | ||
979 | + store i32 1, i32* %37, align 4 | ||
980 | + %38 = getelementptr [3 x i32], [3 x i32]* %block_sizes13, i32 0, i32 1 | ||
981 | + store i32 2, i32* %38, align 4 | ||
982 | + %39 = getelementptr [3 x i32], [3 x i32]* %block_sizes13, i32 0, i32 2 | ||
983 | + store i32 4, i32* %39, align 4 | ||
984 | |||
985 | ; CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf41:[0-9]+]] | ||
986 | ; CHECK-SPIRV: PtrAccessChain [[Int32LocPtrTy]] [[LocalBuf42:[0-9]+]] | ||
987 | @@ -206,24 +253,27 @@ entry: | ||
988 | ; CHECK-LLVM: [[BlockInv1:%[0-9]+]] = addrspacecast void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4_kernel to i8 addrspace(4)* | ||
989 | ; CHECK-LLVM: call i32 @__enqueue_kernel_events_varargs(%opencl.queue_t* {{.*}}, i32 {{.*}}, %struct.ndrange_t* {{.*}}, i32 0, %opencl.clk_event_t* addrspace(4)* null, %opencl.clk_event_t* addrspace(4)* null, i8 addrspace(4)* [[BlockInv1]], i8 addrspace(4)* [[Block1]], i32 3, i32* {{.*}}) | ||
990 | |||
991 | - %20 = call i32 @__enqueue_kernel_varargs(%opencl.queue_t* %1, i32 %2, %struct.ndrange_t* %ndrange, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32 } addrspace(1)* @__block_literal_global.1 to i8 addrspace(1)*) to i8 addrspace(4)*), i32 3, i32* %17) | ||
992 | + %40 = call i32 @__enqueue_kernel_varargs(%opencl.queue_t* %33, i32 %34, %struct.ndrange_t* %tmp12, i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*)* @__device_side_enqueue_block_invoke_4_kernel to i8*) to i8 addrspace(4)*), i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* @__block_literal_global.1 to i8 addrspace(1)*) to i8 addrspace(4)*), i32 3, i32* %37) | ||
993 | ret void | ||
994 | } | ||
995 | |||
996 | +; Function Attrs: argmemonly nounwind | ||
997 | +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture writeonly, i8* nocapture readonly, i32, i1) #1 | ||
998 | + | ||
999 | ; Function Attrs: convergent noinline nounwind optnone | ||
1000 | define internal spir_func void @__device_side_enqueue_block_invoke(i8 addrspace(4)* %.block_descriptor) #2 { | ||
1001 | entry: | ||
1002 | %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4 | ||
1003 | - %block.addr = alloca <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)*, align 4 | ||
1004 | + %block.addr = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)*, align 4 | ||
1005 | store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4 | ||
1006 | - %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* | ||
1007 | - store <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)** %block.addr, align 4 | ||
1008 | - %block.capture.addr = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 4 | ||
1009 | + %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* | ||
1010 | + store <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)** %block.addr, align 4 | ||
1011 | + %block.capture.addr = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 5 | ||
1012 | %0 = load i8, i8 addrspace(4)* %block.capture.addr, align 4 | ||
1013 | %conv = sext i8 %0 to i32 | ||
1014 | - %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 2 | ||
1015 | + %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 3 | ||
1016 | %1 = load i32 addrspace(1)*, i32 addrspace(1)* addrspace(4)* %block.capture.addr1, align 4 | ||
1017 | - %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 3 | ||
1018 | + %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i8 }> addrspace(4)* %block, i32 0, i32 4 | ||
1019 | %2 = load i32, i32 addrspace(4)* %block.capture.addr2, align 4 | ||
1020 | %arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %1, i32 %2 | ||
1021 | store i32 %conv, i32 addrspace(1)* %arrayidx, align 4 | ||
1022 | @@ -243,19 +293,19 @@ declare i32 @__enqueue_kernel_basic(%opencl.queue_t*, i32, %struct.ndrange_t*, i | ||
1023 | define internal spir_func void @__device_side_enqueue_block_invoke_2(i8 addrspace(4)* %.block_descriptor) #2 { | ||
1024 | entry: | ||
1025 | %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4 | ||
1026 | - %block.addr = alloca <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)*, align 4 | ||
1027 | + %block.addr = alloca <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)*, align 4 | ||
1028 | store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4 | ||
1029 | - %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* | ||
1030 | - store <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)** %block.addr, align 4 | ||
1031 | - %block.capture.addr = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 4 | ||
1032 | + %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* | ||
1033 | + store <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)** %block.addr, align 4 | ||
1034 | + %block.capture.addr = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 5 | ||
1035 | %0 = load i32 addrspace(1)*, i32 addrspace(1)* addrspace(4)* %block.capture.addr, align 4 | ||
1036 | - %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 3 | ||
1037 | + %block.capture.addr1 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 4 | ||
1038 | %1 = load i32, i32 addrspace(4)* %block.capture.addr1, align 4 | ||
1039 | %arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %0, i32 %1 | ||
1040 | %2 = load i32, i32 addrspace(1)* %arrayidx, align 4 | ||
1041 | - %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 2 | ||
1042 | + %block.capture.addr2 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 3 | ||
1043 | %3 = load i32 addrspace(1)*, i32 addrspace(1)* addrspace(4)* %block.capture.addr2, align 4 | ||
1044 | - %block.capture.addr3 = getelementptr inbounds <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 3 | ||
1045 | + %block.capture.addr3 = getelementptr inbounds <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }>, <{ i32, i32, i8 addrspace(4)*, i32 addrspace(1)*, i32, i32 addrspace(1)* }> addrspace(4)* %block, i32 0, i32 4 | ||
1046 | %4 = load i32, i32 addrspace(4)* %block.capture.addr3, align 4 | ||
1047 | %arrayidx4 = getelementptr inbounds i32, i32 addrspace(1)* %3, i32 %4 | ||
1048 | store i32 %2, i32 addrspace(1)* %arrayidx4, align 4 | ||
1049 | @@ -276,11 +326,11 @@ define internal spir_func void @__device_side_enqueue_block_invoke_3(i8 addrspac | ||
1050 | entry: | ||
1051 | %.block_descriptor.addr = alloca i8 addrspace(4)*, align 4 | ||
1052 | %p.addr = alloca i8 addrspace(3)*, align 4 | ||
1053 | - %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 4 | ||
1054 | + %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4 | ||
1055 | store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4 | ||
1056 | - %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)* | ||
1057 | + %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* | ||
1058 | store i8 addrspace(3)* %p, i8 addrspace(3)** %p.addr, align 4 | ||
1059 | - store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 4 | ||
1060 | + store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4 | ||
1061 | ret void | ||
1062 | } | ||
1063 | |||
1064 | @@ -300,13 +350,13 @@ entry: | ||
1065 | %p1.addr = alloca i8 addrspace(3)*, align 4 | ||
1066 | %p2.addr = alloca i8 addrspace(3)*, align 4 | ||
1067 | %p3.addr = alloca i8 addrspace(3)*, align 4 | ||
1068 | - %block.addr = alloca <{ i32, i32 }> addrspace(4)*, align 4 | ||
1069 | + %block.addr = alloca <{ i32, i32, i8 addrspace(4)* }> addrspace(4)*, align 4 | ||
1070 | store i8 addrspace(4)* %.block_descriptor, i8 addrspace(4)** %.block_descriptor.addr, align 4 | ||
1071 | - %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32 }> addrspace(4)* | ||
1072 | + %block = bitcast i8 addrspace(4)* %.block_descriptor to <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* | ||
1073 | store i8 addrspace(3)* %p1, i8 addrspace(3)** %p1.addr, align 4 | ||
1074 | store i8 addrspace(3)* %p2, i8 addrspace(3)** %p2.addr, align 4 | ||
1075 | store i8 addrspace(3)* %p3, i8 addrspace(3)** %p3.addr, align 4 | ||
1076 | - store <{ i32, i32 }> addrspace(4)* %block, <{ i32, i32 }> addrspace(4)** %block.addr, align 4 | ||
1077 | + store <{ i32, i32, i8 addrspace(4)* }> addrspace(4)* %block, <{ i32, i32, i8 addrspace(4)* }> addrspace(4)** %block.addr, align 4 | ||
1078 | ret void | ||
1079 | } | ||
1080 | |||
1081 | @@ -329,27 +379,20 @@ declare i32 @__enqueue_kernel_varargs(%opencl.queue_t*, i32, %struct.ndrange_t*, | ||
1082 | ; CHECK-LLVM-DAG: define spir_kernel void @__device_side_enqueue_block_invoke_3_kernel(i8 addrspace(4)*, i8 addrspace(3)*) | ||
1083 | ; CHECK-LLVM-DAG: define spir_kernel void @__device_side_enqueue_block_invoke_4_kernel(i8 addrspace(4)*, i8 addrspace(3)*, i8 addrspace(3)*, i8 addrspace(3)*) | ||
1084 | |||
1085 | -attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
1086 | +attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
1087 | attributes #1 = { argmemonly nounwind } | ||
1088 | -attributes #2 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
1089 | +attributes #2 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "denorms-are-zero"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } | ||
1090 | attributes #3 = { nounwind } | ||
1091 | |||
1092 | !llvm.module.flags = !{!0} | ||
1093 | -!opencl.enable.FP_CONTRACT = !{} | ||
1094 | !opencl.ocl.version = !{!1} | ||
1095 | !opencl.spir.version = !{!1} | ||
1096 | -!opencl.used.extensions = !{!2} | ||
1097 | -!opencl.used.optional.core.features = !{!2} | ||
1098 | -!opencl.compiler.options = !{!2} | ||
1099 | -!llvm.ident = !{!3} | ||
1100 | +!llvm.ident = !{!2} | ||
1101 | |||
1102 | !0 = !{i32 1, !"wchar_size", i32 4} | ||
1103 | !1 = !{i32 2, i32 0} | ||
1104 | -!2 = !{} | ||
1105 | -!3 = !{!"clang version 7.0.0"} | ||
1106 | -!4 = !{i32 1, i32 1, i32 0, i32 0} | ||
1107 | -!5 = !{!"none", !"none", !"none", !"none"} | ||
1108 | -!6 = !{!"int*", !"int*", !"int", !"char"} | ||
1109 | -!7 = !{!"", !"", !"", !""} | ||
1110 | -!8 = !{i1 false, i1 false, i1 false, i1 false} | ||
1111 | -!9 = !{i32 0, i32 0, i32 0, i32 0} | ||
1112 | +!2 = !{!"clang version 9.0.0 (https://llvm.org/git/clang 04fb8964a801a5c5d7baa5a22272243a7d183896) (https://llvm.org/git/llvm 384f64397f6ad95a361b72d62c07d7bac9f24163)"} | ||
1113 | +!3 = !{i32 1, i32 1, i32 0, i32 0} | ||
1114 | +!4 = !{!"none", !"none", !"none", !"none"} | ||
1115 | +!5 = !{!"int*", !"int*", !"int", !"char"} | ||
1116 | +!6 = !{!"", !"", !"", !""} | ||
1117 | -- | ||
1118 | 1.8.3.1 | ||
1119 | |||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch deleted file mode 100644 index 9d25bbad..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-dont-export-targets-for-binaries.patch +++ /dev/null | |||
@@ -1,66 +0,0 @@ | |||
1 | From 7bbd0058362ac3bb5edd7a82d43e1785810776b3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Fri, 29 Mar 2019 08:56:53 +0800 | ||
4 | Subject: [PATCH] dont export targets for binaries | ||
5 | |||
6 | The projects using LLVM cmake modules look for target binaries in | ||
7 | sysroot as a result which isn't desirable in this case and isn't needed | ||
8 | either. | ||
9 | |||
10 | Upstream-Status: Inappropriate [cross-compile specific] | ||
11 | |||
12 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
13 | --- | ||
14 | llvm/cmake/modules/AddLLVM.cmake | 9 --------- | ||
15 | llvm/cmake/modules/TableGen.cmake | 6 ------ | ||
16 | 2 files changed, 15 deletions(-) | ||
17 | |||
18 | diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake | ||
19 | index 0df6845..b79f4fa 100644 | ||
20 | --- a/llvm/cmake/modules/AddLLVM.cmake | ||
21 | +++ b/llvm/cmake/modules/AddLLVM.cmake | ||
22 | @@ -866,12 +866,6 @@ macro(add_llvm_tool name) | ||
23 | |||
24 | if ( ${name} IN_LIST LLVM_TOOLCHAIN_TOOLS OR NOT LLVM_INSTALL_TOOLCHAIN_ONLY) | ||
25 | if( LLVM_BUILD_TOOLS ) | ||
26 | - if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR | ||
27 | - NOT LLVM_DISTRIBUTION_COMPONENTS) | ||
28 | - set(export_to_llvmexports EXPORT LLVMExports) | ||
29 | - set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True) | ||
30 | - endif() | ||
31 | - | ||
32 | install(TARGETS ${name} | ||
33 | ${export_to_llvmexports} | ||
34 | RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR} | ||
35 | @@ -884,9 +878,6 @@ macro(add_llvm_tool name) | ||
36 | endif() | ||
37 | endif() | ||
38 | endif() | ||
39 | - if( LLVM_BUILD_TOOLS ) | ||
40 | - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) | ||
41 | - endif() | ||
42 | set_target_properties(${name} PROPERTIES FOLDER "Tools") | ||
43 | endmacro(add_llvm_tool name) | ||
44 | |||
45 | diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake | ||
46 | index 3c84ae7..141219f 100644 | ||
47 | --- a/llvm/cmake/modules/TableGen.cmake | ||
48 | +++ b/llvm/cmake/modules/TableGen.cmake | ||
49 | @@ -164,14 +164,8 @@ macro(add_tablegen target project) | ||
50 | endif() | ||
51 | |||
52 | if (${project} STREQUAL LLVM AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY) | ||
53 | - if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR | ||
54 | - NOT LLVM_DISTRIBUTION_COMPONENTS) | ||
55 | - set(export_to_llvmexports EXPORT LLVMExports) | ||
56 | - endif() | ||
57 | - | ||
58 | install(TARGETS ${target} | ||
59 | ${export_to_llvmexports} | ||
60 | RUNTIME DESTINATION ${LLVM_TOOLS_INSTALL_DIR}) | ||
61 | endif() | ||
62 | - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target}) | ||
63 | endmacro() | ||
64 | -- | ||
65 | 2.7.4 | ||
66 | |||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-point-to-correct-clang.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-point-to-correct-clang.patch deleted file mode 100644 index 0dfc537b..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0001-point-to-correct-clang.patch +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
1 | From 6c33fb58869ffb17106047c45ab8d3856966eaf7 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Tue, 26 Mar 2019 14:11:29 +0800 | ||
4 | Subject: [PATCH] point to correct clang project and tblgen | ||
5 | |||
6 | Point to correct path for clang project as per the way we unpack. Also | ||
7 | let llvm-tblgen path be passed from recipe itself. | ||
8 | |||
9 | Also since we're going to do the patching ourselves, no need to look for | ||
10 | git through cmake. | ||
11 | |||
12 | Upstream-Status: Inappropriate [OE specific] | ||
13 | --- | ||
14 | CMakeLists.txt | 8 ++++---- | ||
15 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
16 | |||
17 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
18 | index 174133b..c769f08 100644 | ||
19 | --- a/CMakeLists.txt | ||
20 | +++ b/CMakeLists.txt | ||
21 | @@ -53,7 +53,7 @@ endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) | ||
22 | include(AddLLVM) | ||
23 | include(TableGen) | ||
24 | |||
25 | -find_package(Git REQUIRED) | ||
26 | +#find_package(Git REQUIRED) | ||
27 | |||
28 | if (NOT WIN32) | ||
29 | add_subdirectory( linux_linker ) | ||
30 | @@ -80,7 +80,7 @@ set(TARGET_NAME ${COMMON_CLANG_LIBRARY_NAME}${BUILD_PLATFORM} ) | ||
31 | |||
32 | if(NOT USE_PREBUILT_LLVM) | ||
33 | set(TARGET_BRANCH "ocl-open-80") | ||
34 | - set(CLANG_SOURCE_DIR ${LLVM_SOURCE_DIR}/tools/clang) | ||
35 | + set(CLANG_SOURCE_DIR ${LLVM_SOURCE_DIR}/../clang) | ||
36 | set(CLANG_BASE_REVISION a03da8be08a208122e292016cb6cea1f30229677) | ||
37 | |||
38 | set(SPIRV_SOURCE_DIR ${LLVM_SOURCE_DIR}/projects/llvm-spirv) | ||
39 | @@ -102,7 +102,7 @@ endif(NOT USE_PREBUILT_LLVM) | ||
40 | set (COMPILE_OPTIONS_TD opencl_clang_options.td) | ||
41 | set (COMPILE_OPTIONS_INC opencl_clang_options.inc) | ||
42 | |||
43 | -set(LLVM_TABLEGEN_EXE "llvm-tblgen") | ||
44 | +#set(LLVM_TABLEGEN_EXE "llvm-tblgen") | ||
45 | set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD}) | ||
46 | if(USE_PREBUILT_LLVM) | ||
47 | set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS}) | ||
48 | @@ -153,7 +153,7 @@ endif() | ||
49 | |||
50 | if(NOT USE_PREBUILT_LLVM) | ||
51 | set(CLANG_BINARY_DIR ${LLVM_BINARY_DIR}/tools/clang/) | ||
52 | - set(CLANG_SOURCE_DIR ${LLVM_MAIN_SRC_DIR}/tools/clang/) | ||
53 | + set(CLANG_SOURCE_DIR ${LLVM_MAIN_SRC_DIR}/../clang/) | ||
54 | include_directories( | ||
55 | ${CLANG_BINARY_DIR}/include # for tablegened includes | ||
56 | ${CLANG_SOURCE_DIR}/include # for basic headers | ||
57 | -- | ||
58 | 2.19.1 | ||
59 | |||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch deleted file mode 100644 index 2e935a13..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch +++ /dev/null | |||
@@ -1,294 +0,0 @@ | |||
1 | From c94ec28600255098ffb9d73d1b386a7c8a535590 Mon Sep 17 00:00:00 2001 | ||
2 | From: Andrew Savonichev <andrew.savonichev@intel.com> | ||
3 | Date: Thu, 21 Feb 2019 11:02:10 +0000 | ||
4 | Subject: [PATCH 2/2] [OpenCL] Simplify LLVM IR generated for OpenCL blocks | ||
5 | |||
6 | Summary: | ||
7 | Emit direct call of block invoke functions when possible, i.e. in case the | ||
8 | block is not passed as a function argument. | ||
9 | Also doing some refactoring of `CodeGenFunction::EmitBlockCallExpr()` | ||
10 | |||
11 | Reviewers: Anastasia, yaxunl, svenvh | ||
12 | |||
13 | Reviewed By: Anastasia | ||
14 | |||
15 | Subscribers: cfe-commits | ||
16 | |||
17 | Tags: #clang | ||
18 | |||
19 | Differential Revision: https://reviews.llvm.org/D58388 | ||
20 | |||
21 | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354568 91177308-0d34-0410-b5e6-96231b3b80d8 | ||
22 | |||
23 | Upstream-Status: Backport | ||
24 | [https://github.com/llvm-mirror/clang/commit/eae71f8d05ce550c4e2595c9b7082cc2c7882c58] | ||
25 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
26 | --- | ||
27 | lib/CodeGen/CGBlocks.cpp | 77 +++++++++++++------------- | ||
28 | lib/CodeGen/CGOpenCLRuntime.cpp | 30 +++++++--- | ||
29 | lib/CodeGen/CGOpenCLRuntime.h | 4 ++ | ||
30 | test/CodeGenOpenCL/blocks.cl | 10 +--- | ||
31 | test/CodeGenOpenCL/cl20-device-side-enqueue.cl | 34 +++++++++--- | ||
32 | 5 files changed, 91 insertions(+), 64 deletions(-) | ||
33 | |||
34 | diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp | ||
35 | index fa3c3ee..10a0238 100644 | ||
36 | --- a/lib/CodeGen/CGBlocks.cpp | ||
37 | +++ b/lib/CodeGen/CGBlocks.cpp | ||
38 | @@ -1261,52 +1261,49 @@ RValue CodeGenFunction::EmitBlockCallExpr(const CallExpr *E, | ||
39 | ReturnValueSlot ReturnValue) { | ||
40 | const BlockPointerType *BPT = | ||
41 | E->getCallee()->getType()->getAs<BlockPointerType>(); | ||
42 | - | ||
43 | llvm::Value *BlockPtr = EmitScalarExpr(E->getCallee()); | ||
44 | - | ||
45 | - // Get a pointer to the generic block literal. | ||
46 | - // For OpenCL we generate generic AS void ptr to be able to reuse the same | ||
47 | - // block definition for blocks with captures generated as private AS local | ||
48 | - // variables and without captures generated as global AS program scope | ||
49 | - // variables. | ||
50 | - unsigned AddrSpace = 0; | ||
51 | - if (getLangOpts().OpenCL) | ||
52 | - AddrSpace = getContext().getTargetAddressSpace(LangAS::opencl_generic); | ||
53 | - | ||
54 | - llvm::Type *BlockLiteralTy = | ||
55 | - llvm::PointerType::get(CGM.getGenericBlockLiteralType(), AddrSpace); | ||
56 | - | ||
57 | - // Bitcast the callee to a block literal. | ||
58 | - BlockPtr = | ||
59 | - Builder.CreatePointerCast(BlockPtr, BlockLiteralTy, "block.literal"); | ||
60 | - | ||
61 | - // Get the function pointer from the literal. | ||
62 | - llvm::Value *FuncPtr = | ||
63 | - Builder.CreateStructGEP(CGM.getGenericBlockLiteralType(), BlockPtr, | ||
64 | - CGM.getLangOpts().OpenCL ? 2 : 3); | ||
65 | - | ||
66 | - // Add the block literal. | ||
67 | + llvm::Type *GenBlockTy = CGM.getGenericBlockLiteralType(); | ||
68 | + llvm::Value *Func = nullptr; | ||
69 | + QualType FnType = BPT->getPointeeType(); | ||
70 | + ASTContext &Ctx = getContext(); | ||
71 | CallArgList Args; | ||
72 | |||
73 | - QualType VoidPtrQualTy = getContext().VoidPtrTy; | ||
74 | - llvm::Type *GenericVoidPtrTy = VoidPtrTy; | ||
75 | if (getLangOpts().OpenCL) { | ||
76 | - GenericVoidPtrTy = CGM.getOpenCLRuntime().getGenericVoidPointerType(); | ||
77 | - VoidPtrQualTy = | ||
78 | - getContext().getPointerType(getContext().getAddrSpaceQualType( | ||
79 | - getContext().VoidTy, LangAS::opencl_generic)); | ||
80 | - } | ||
81 | - | ||
82 | - BlockPtr = Builder.CreatePointerCast(BlockPtr, GenericVoidPtrTy); | ||
83 | - Args.add(RValue::get(BlockPtr), VoidPtrQualTy); | ||
84 | - | ||
85 | - QualType FnType = BPT->getPointeeType(); | ||
86 | + // For OpenCL, BlockPtr is already casted to generic block literal. | ||
87 | + | ||
88 | + // First argument of a block call is a generic block literal casted to | ||
89 | + // generic void pointer, i.e. i8 addrspace(4)* | ||
90 | + llvm::Value *BlockDescriptor = Builder.CreatePointerCast( | ||
91 | + BlockPtr, CGM.getOpenCLRuntime().getGenericVoidPointerType()); | ||
92 | + QualType VoidPtrQualTy = Ctx.getPointerType( | ||
93 | + Ctx.getAddrSpaceQualType(Ctx.VoidTy, LangAS::opencl_generic)); | ||
94 | + Args.add(RValue::get(BlockDescriptor), VoidPtrQualTy); | ||
95 | + // And the rest of the arguments. | ||
96 | + EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments()); | ||
97 | + | ||
98 | + // We *can* call the block directly unless it is a function argument. | ||
99 | + if (!isa<ParmVarDecl>(E->getCalleeDecl())) | ||
100 | + Func = CGM.getOpenCLRuntime().getInvokeFunction(E->getCallee()); | ||
101 | + else { | ||
102 | + llvm::Value *FuncPtr = Builder.CreateStructGEP(GenBlockTy, BlockPtr, 2); | ||
103 | + Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign()); | ||
104 | + } | ||
105 | + } else { | ||
106 | + // Bitcast the block literal to a generic block literal. | ||
107 | + BlockPtr = Builder.CreatePointerCast( | ||
108 | + BlockPtr, llvm::PointerType::get(GenBlockTy, 0), "block.literal"); | ||
109 | + // Get pointer to the block invoke function | ||
110 | + llvm::Value *FuncPtr = Builder.CreateStructGEP(GenBlockTy, BlockPtr, 3); | ||
111 | |||
112 | - // And the rest of the arguments. | ||
113 | - EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments()); | ||
114 | + // First argument is a block literal casted to a void pointer | ||
115 | + BlockPtr = Builder.CreatePointerCast(BlockPtr, VoidPtrTy); | ||
116 | + Args.add(RValue::get(BlockPtr), Ctx.VoidPtrTy); | ||
117 | + // And the rest of the arguments. | ||
118 | + EmitCallArgs(Args, FnType->getAs<FunctionProtoType>(), E->arguments()); | ||
119 | |||
120 | - // Load the function. | ||
121 | - llvm::Value *Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign()); | ||
122 | + // Load the function. | ||
123 | + Func = Builder.CreateAlignedLoad(FuncPtr, getPointerAlign()); | ||
124 | + } | ||
125 | |||
126 | const FunctionType *FuncTy = FnType->castAs<FunctionType>(); | ||
127 | const CGFunctionInfo &FnInfo = | ||
128 | diff --git a/lib/CodeGen/CGOpenCLRuntime.cpp b/lib/CodeGen/CGOpenCLRuntime.cpp | ||
129 | index 7f6f595..75003e5 100644 | ||
130 | --- a/lib/CodeGen/CGOpenCLRuntime.cpp | ||
131 | +++ b/lib/CodeGen/CGOpenCLRuntime.cpp | ||
132 | @@ -123,6 +123,23 @@ llvm::PointerType *CGOpenCLRuntime::getGenericVoidPointerType() { | ||
133 | CGM.getContext().getTargetAddressSpace(LangAS::opencl_generic)); | ||
134 | } | ||
135 | |||
136 | +// Get the block literal from an expression derived from the block expression. | ||
137 | +// OpenCL v2.0 s6.12.5: | ||
138 | +// Block variable declarations are implicitly qualified with const. Therefore | ||
139 | +// all block variables must be initialized at declaration time and may not be | ||
140 | +// reassigned. | ||
141 | +static const BlockExpr *getBlockExpr(const Expr *E) { | ||
142 | + const Expr *Prev = nullptr; // to make sure we do not stuck in infinite loop. | ||
143 | + while(!isa<BlockExpr>(E) && E != Prev) { | ||
144 | + Prev = E; | ||
145 | + E = E->IgnoreCasts(); | ||
146 | + if (auto DR = dyn_cast<DeclRefExpr>(E)) { | ||
147 | + E = cast<VarDecl>(DR->getDecl())->getInit(); | ||
148 | + } | ||
149 | + } | ||
150 | + return cast<BlockExpr>(E); | ||
151 | +} | ||
152 | + | ||
153 | /// Record emitted llvm invoke function and llvm block literal for the | ||
154 | /// corresponding block expression. | ||
155 | void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E, | ||
156 | @@ -137,20 +154,17 @@ void CGOpenCLRuntime::recordBlockInfo(const BlockExpr *E, | ||
157 | EnqueuedBlockMap[E].Kernel = nullptr; | ||
158 | } | ||
159 | |||
160 | +llvm::Function *CGOpenCLRuntime::getInvokeFunction(const Expr *E) { | ||
161 | + return EnqueuedBlockMap[getBlockExpr(E)].InvokeFunc; | ||
162 | +} | ||
163 | + | ||
164 | CGOpenCLRuntime::EnqueuedBlockInfo | ||
165 | CGOpenCLRuntime::emitOpenCLEnqueuedBlock(CodeGenFunction &CGF, const Expr *E) { | ||
166 | CGF.EmitScalarExpr(E); | ||
167 | |||
168 | // The block literal may be assigned to a const variable. Chasing down | ||
169 | // to get the block literal. | ||
170 | - if (auto DR = dyn_cast<DeclRefExpr>(E)) { | ||
171 | - E = cast<VarDecl>(DR->getDecl())->getInit(); | ||
172 | - } | ||
173 | - E = E->IgnoreImplicit(); | ||
174 | - if (auto Cast = dyn_cast<CastExpr>(E)) { | ||
175 | - E = Cast->getSubExpr(); | ||
176 | - } | ||
177 | - auto *Block = cast<BlockExpr>(E); | ||
178 | + const BlockExpr *Block = getBlockExpr(E); | ||
179 | |||
180 | assert(EnqueuedBlockMap.find(Block) != EnqueuedBlockMap.end() && | ||
181 | "Block expression not emitted"); | ||
182 | diff --git a/lib/CodeGen/CGOpenCLRuntime.h b/lib/CodeGen/CGOpenCLRuntime.h | ||
183 | index 750721f..4effc7e 100644 | ||
184 | --- a/lib/CodeGen/CGOpenCLRuntime.h | ||
185 | +++ b/lib/CodeGen/CGOpenCLRuntime.h | ||
186 | @@ -92,6 +92,10 @@ public: | ||
187 | /// \param Block block literal emitted for the block expression. | ||
188 | void recordBlockInfo(const BlockExpr *E, llvm::Function *InvokeF, | ||
189 | llvm::Value *Block); | ||
190 | + | ||
191 | + /// \return LLVM block invoke function emitted for an expression derived from | ||
192 | + /// the block expression. | ||
193 | + llvm::Function *getInvokeFunction(const Expr *E); | ||
194 | }; | ||
195 | |||
196 | } | ||
197 | diff --git a/test/CodeGenOpenCL/blocks.cl b/test/CodeGenOpenCL/blocks.cl | ||
198 | index 19aacc3..ab5a2c6 100644 | ||
199 | --- a/test/CodeGenOpenCL/blocks.cl | ||
200 | +++ b/test/CodeGenOpenCL/blocks.cl | ||
201 | @@ -39,11 +39,8 @@ void foo(){ | ||
202 | // SPIR: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic* %[[blk_ptr]] to %struct.__opencl_block_literal_generic addrspace(4)* | ||
203 | // SPIR: store %struct.__opencl_block_literal_generic addrspace(4)* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B:.*]], | ||
204 | // SPIR: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic addrspace(4)*, %struct.__opencl_block_literal_generic addrspace(4)** %[[block_B]] | ||
205 | - // SPIR: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]], i32 0, i32 2 | ||
206 | // SPIR: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic addrspace(4)* %[[block_literal]] to i8 addrspace(4)* | ||
207 | - // SPIR: %[[invoke_func_ptr:.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* %[[invoke_addr]] | ||
208 | - // SPIR: %[[invoke_func:.*]] = addrspacecast i8 addrspace(4)* %[[invoke_func_ptr]] to i32 (i8 addrspace(4)*)* | ||
209 | - // SPIR: call {{.*}}i32 %[[invoke_func]](i8 addrspace(4)* %[[blk_gen_ptr]]) | ||
210 | + // SPIR: call {{.*}}i32 @__foo_block_invoke(i8 addrspace(4)* %[[blk_gen_ptr]]) | ||
211 | // AMDGCN: %[[block_invoke:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block:.*]], i32 0, i32 2 | ||
212 | // AMDGCN: store i8* bitcast (i32 (i8*)* @__foo_block_invoke to i8*), i8* addrspace(5)* %[[block_invoke]] | ||
213 | // AMDGCN: %[[block_captured:.*]] = getelementptr inbounds <{ i32, i32, i8*, i32 }>, <{ i32, i32, i8*, i32 }> addrspace(5)* %[[block]], i32 0, i32 3 | ||
214 | @@ -53,11 +50,8 @@ void foo(){ | ||
215 | // AMDGCN: %[[blk_gen_ptr:.*]] = addrspacecast %struct.__opencl_block_literal_generic addrspace(5)* %[[blk_ptr]] to %struct.__opencl_block_literal_generic* | ||
216 | // AMDGCN: store %struct.__opencl_block_literal_generic* %[[blk_gen_ptr]], %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B:.*]], | ||
217 | // AMDGCN: %[[block_literal:.*]] = load %struct.__opencl_block_literal_generic*, %struct.__opencl_block_literal_generic* addrspace(5)* %[[block_B]] | ||
218 | - // AMDGCN: %[[invoke_addr:.*]] = getelementptr inbounds %struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic* %[[block_literal]], i32 0, i32 2 | ||
219 | // AMDGCN: %[[blk_gen_ptr:.*]] = bitcast %struct.__opencl_block_literal_generic* %[[block_literal]] to i8* | ||
220 | - // AMDGCN: %[[invoke_func_ptr:.*]] = load i8*, i8** %[[invoke_addr]] | ||
221 | - // AMDGCN: %[[invoke_func:.*]] = bitcast i8* %[[invoke_func_ptr]] to i32 (i8*)* | ||
222 | - // AMDGCN: call {{.*}}i32 %[[invoke_func]](i8* %[[blk_gen_ptr]]) | ||
223 | + // AMDGCN: call {{.*}}i32 @__foo_block_invoke(i8* %[[blk_gen_ptr]]) | ||
224 | |||
225 | int (^ block_B)(void) = ^{ | ||
226 | return i; | ||
227 | diff --git a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl | ||
228 | index 8445016..1566912 100644 | ||
229 | --- a/test/CodeGenOpenCL/cl20-device-side-enqueue.cl | ||
230 | +++ b/test/CodeGenOpenCL/cl20-device-side-enqueue.cl | ||
231 | @@ -312,9 +312,7 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) { | ||
232 | }; | ||
233 | |||
234 | // Uses global block literal [[BLG8]] and invoke function [[INVG8]]. | ||
235 | - // COMMON: [[r1:%.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* getelementptr inbounds (%struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), i32 0, i32 2) | ||
236 | - // COMMON: [[r2:%.*]] = addrspacecast i8 addrspace(4)* [[r1]] to void (i8 addrspace(4)*)* | ||
237 | - // COMMON: call spir_func void [[r2]](i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*)) | ||
238 | + // COMMON: call spir_func void @__device_side_enqueue_block_invoke_11(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*)) | ||
239 | block_A(); | ||
240 | |||
241 | // Emits global block literal [[BLG8]] and block kernel [[INVGK8]]. [[INVGK8]] calls [[INVG8]]. | ||
242 | @@ -333,15 +331,35 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) { | ||
243 | unsigned size = get_kernel_work_group_size(block_A); | ||
244 | |||
245 | // Uses global block literal [[BLG8]] and invoke function [[INVG8]]. Make sure no redundant block literal and invoke functions are emitted. | ||
246 | - // COMMON: [[r1:%.*]] = load i8 addrspace(4)*, i8 addrspace(4)* addrspace(4)* getelementptr inbounds (%struct.__opencl_block_literal_generic, %struct.__opencl_block_literal_generic addrspace(4)* addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to %struct.__opencl_block_literal_generic addrspace(1)*) to %struct.__opencl_block_literal_generic addrspace(4)*), i32 0, i32 2) | ||
247 | - // COMMON: [[r2:%.*]] = addrspacecast i8 addrspace(4)* [[r1]] to void (i8 addrspace(4)*)* | ||
248 | - // COMMON: call spir_func void [[r2]](i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*)) | ||
249 | + // COMMON: call spir_func void @__device_side_enqueue_block_invoke_11(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BLG8]] to i8 addrspace(1)*) to i8 addrspace(4)*)) | ||
250 | block_A(); | ||
251 | |||
252 | + // Make sure that block invoke function is resolved correctly after sequence of assignements. | ||
253 | + // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* | ||
254 | + // COMMON-SAME: addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* | ||
255 | + // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*) | ||
256 | + // COMMON-SAME: to %struct.__opencl_block_literal_generic addrspace(4)*), | ||
257 | + // COMMON-SAME: %struct.__opencl_block_literal_generic addrspace(4)** %b1, | ||
258 | + bl_t b1 = block_G; | ||
259 | + // COMMON: store %struct.__opencl_block_literal_generic addrspace(4)* | ||
260 | + // COMMON-SAME: addrspacecast (%struct.__opencl_block_literal_generic addrspace(1)* | ||
261 | + // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to %struct.__opencl_block_literal_generic addrspace(1)*) | ||
262 | + // COMMON-SAME: to %struct.__opencl_block_literal_generic addrspace(4)*), | ||
263 | + // COMMON-SAME: %struct.__opencl_block_literal_generic addrspace(4)** %b2, | ||
264 | + bl_t b2 = b1; | ||
265 | + // COMMON: call spir_func void @block_G_block_invoke(i8 addrspace(4)* addrspacecast (i8 addrspace(1)* | ||
266 | + // COMMON-SAME: bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to i8 addrspace(1)*) | ||
267 | + // COOMON-SAME: to i8 addrspace(4)*), i8 addrspace(3)* null) | ||
268 | + b2(0); | ||
269 | + // Uses global block literal [[BL_GLOBAL]] and block kernel [[INV_G_K]]. [[INV_G_K]] calls [[INV_G]]. | ||
270 | + // COMMON: call i32 @__get_kernel_preferred_work_group_size_multiple_impl( | ||
271 | + // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8* bitcast ({{.*}} [[INV_G_K:[^ ]+_kernel]] to i8*) to i8 addrspace(4)*), | ||
272 | + // COMMON-SAME: i8 addrspace(4)* addrspacecast (i8 addrspace(1)* bitcast ({ i32, i32, i8 addrspace(4)* } addrspace(1)* [[BL_GLOBAL]] to i8 addrspace(1)*) to i8 addrspace(4)*)) | ||
273 | + size = get_kernel_preferred_work_group_size_multiple(b2); | ||
274 | + | ||
275 | void (^block_C)(void) = ^{ | ||
276 | callee(i, a); | ||
277 | }; | ||
278 | - | ||
279 | // Emits block literal on stack and block kernel [[INVLK3]]. | ||
280 | // COMMON: store i8 addrspace(4)* addrspacecast (i8* bitcast (void (i8 addrspace(4)*)* [[INVL3:@__device_side_enqueue_block_invoke[^ ]*]] to i8*) to i8 addrspace(4)*), i8 addrspace(4)** %block.invoke | ||
281 | // COMMON: [[DEF_Q:%[0-9]+]] = load %opencl.queue_t{{.*}}*, %opencl.queue_t{{.*}}** %default_queue | ||
282 | @@ -404,8 +422,8 @@ kernel void device_side_enqueue(global int *a, global int *b, int i) { | ||
283 | // COMMON: define internal spir_func void [[INVG8]](i8 addrspace(4)*{{.*}}) | ||
284 | // COMMON: define internal spir_func void [[INVG9]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)* %{{.*}}) | ||
285 | // COMMON: define internal spir_kernel void [[INVGK8]](i8 addrspace(4)*{{.*}}) | ||
286 | +// COMMON: define internal spir_kernel void [[INV_G_K]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}}) | ||
287 | // COMMON: define internal spir_kernel void [[INVLK3]](i8 addrspace(4)*{{.*}}) | ||
288 | // COMMON: define internal spir_kernel void [[INVGK9]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}}) | ||
289 | -// COMMON: define internal spir_kernel void [[INV_G_K]](i8 addrspace(4)*{{.*}}, i8 addrspace(3)*{{.*}}) | ||
290 | // COMMON: define internal spir_kernel void [[INVGK10]](i8 addrspace(4)*{{.*}}) | ||
291 | // COMMON: define internal spir_kernel void [[INVGK11]](i8 addrspace(4)*{{.*}}) | ||
292 | -- | ||
293 | 1.8.3.1 | ||
294 | |||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0003-OpenCL-Fix-assertion-due-to-blocks.patch b/dynamic-layers/clang-layer/recipes-devtools/clang/files/0003-OpenCL-Fix-assertion-due-to-blocks.patch deleted file mode 100644 index 510c7c6e..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/files/0003-OpenCL-Fix-assertion-due-to-blocks.patch +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | From 29e2813a2ab7d5569860bb07892dfef7b5374d96 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yaxun Liu <Yaxun.Liu@amd.com> | ||
3 | Date: Tue, 26 Feb 2019 16:20:41 +0000 | ||
4 | Subject: [PATCH] [OpenCL] Fix assertion due to blocks | ||
5 | |||
6 | A recent change caused assertion in CodeGenFunction::EmitBlockCallExpr when a block is called. | ||
7 | |||
8 | There is code | ||
9 | |||
10 | Func = CGM.getOpenCLRuntime().getInvokeFunction(E->getCallee()); | ||
11 | getCalleeDecl calls Expr::getReferencedDeclOfCallee, which does not handle | ||
12 | BlockExpr and returns nullptr, which causes isa to assert. | ||
13 | |||
14 | This patch fixes that. | ||
15 | |||
16 | Differential Revision: https://reviews.llvm.org/D58658 | ||
17 | |||
18 | |||
19 | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@354893 91177308-0d34-0410-b5e6-96231b3b80d8 | ||
20 | |||
21 | Upstream-Status: Backport | ||
22 | [https://github.com/llvm-mirror/clang/commit/29e2813a2ab7d5569860bb07892dfef7b5374d96] | ||
23 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
24 | --- | ||
25 | lib/AST/Expr.cpp | 2 ++ | ||
26 | test/CodeGenOpenCL/blocks.cl | 6 ++++++ | ||
27 | 2 files changed, 8 insertions(+) | ||
28 | |||
29 | diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp | ||
30 | index aef1eab..85690c7 100644 | ||
31 | --- a/lib/AST/Expr.cpp | ||
32 | +++ b/lib/AST/Expr.cpp | ||
33 | @@ -1358,6 +1358,8 @@ Decl *Expr::getReferencedDeclOfCallee() { | ||
34 | return DRE->getDecl(); | ||
35 | if (MemberExpr *ME = dyn_cast<MemberExpr>(CEE)) | ||
36 | return ME->getMemberDecl(); | ||
37 | + if (auto *BE = dyn_cast<BlockExpr>(CEE)) | ||
38 | + return BE->getBlockDecl(); | ||
39 | |||
40 | return nullptr; | ||
41 | } | ||
42 | diff --git a/test/CodeGenOpenCL/blocks.cl b/test/CodeGenOpenCL/blocks.cl | ||
43 | index ab5a2c6..c3e2685 100644 | ||
44 | --- a/test/CodeGenOpenCL/blocks.cl | ||
45 | +++ b/test/CodeGenOpenCL/blocks.cl | ||
46 | @@ -90,6 +90,12 @@ int get42() { | ||
47 | return blockArgFunc(^{return 42;}); | ||
48 | } | ||
49 | |||
50 | +// COMMON-LABEL: define {{.*}}@call_block | ||
51 | +// call {{.*}}@__call_block_block_invoke | ||
52 | +int call_block() { | ||
53 | + return ^int(int num) { return num; } (11); | ||
54 | +} | ||
55 | + | ||
56 | // CHECK-DEBUG: !DIDerivedType(tag: DW_TAG_member, name: "__size" | ||
57 | // CHECK-DEBUG: !DIDerivedType(tag: DW_TAG_member, name: "__align" | ||
58 | |||
59 | -- | ||
60 | 1.8.3.1 | ||
61 | |||
diff --git a/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend b/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend deleted file mode 100644 index f536f0f2..00000000 --- a/dynamic-layers/clang-layer/recipes-devtools/clang/llvm-project-source.bbappend +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:" | ||
2 | |||
3 | SRC_URI_append_intel-x86-common = " \ | ||
4 | git://github.com/intel/opencl-clang.git;protocol=https;branch=ocl-open-80;destsuffix=git/llvm/projects/opencl-clang;name=opencl-clang \ | ||
5 | git://github.com/KhronosGroup/SPIRV-LLVM-Translator.git;protocol=https;branch=llvm_release_80;destsuffix=git/llvm/projects/llvm-spirv;name=spirv \ | ||
6 | file://0001-point-to-correct-clang.patch;patchdir=llvm/projects/opencl-clang \ | ||
7 | file://0001-OpenCL-Change-type-of-block-pointer-for-OpenCL.patch;patchdir=clang \ | ||
8 | file://0002-OpenCL-Simplify-LLVM-IR-generated-for-OpenCL-blocks.patch;patchdir=clang \ | ||
9 | file://0003-OpenCL-Fix-assertion-due-to-blocks.patch;patchdir=clang \ | ||
10 | file://0001-dont-export-targets-for-binaries.patch \ | ||
11 | file://0001-Update-LowerOpenCL-pass-to-handle-new-blocks-represn.patch;patchdir=llvm/projects/llvm-spirv \ | ||
12 | " | ||
13 | |||
14 | SRCREV_opencl-clang = "daf5e4dd718477ae8cf89a283c653939d9182f15" | ||
15 | SRCREV_spirv = "bd0f28fb92061d49c0f120b4dac3fd8956006745" | ||
16 | |||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch new file mode 100644 index 00000000..45288ce1 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0002-Build-not-able-to-locate-cpp_generation_tool.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From 8c330d0cb5167612296801f0202b0de35e9ca88d Mon Sep 17 00:00:00 2001 | ||
2 | From: Dongwon Kim <dongwon.kim@intel.com> | ||
3 | Date: Sat, 21 Aug 2021 16:09:39 -0700 | ||
4 | Subject: [PATCH 2/5] Build not able to locate cpp_generation_tool. | ||
5 | |||
6 | Upstream-Status: Inappropriate [oe specific] | ||
7 | |||
8 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
9 | Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> | ||
10 | --- | ||
11 | shared/source/built_ins/kernels/CMakeLists.txt | 10 +++++----- | ||
12 | 1 file changed, 5 insertions(+), 5 deletions(-) | ||
13 | |||
14 | Index: git/shared/source/built_ins/kernels/CMakeLists.txt | ||
15 | =================================================================== | ||
16 | --- git.orig/shared/source/built_ins/kernels/CMakeLists.txt | ||
17 | +++ git/shared/source/built_ins/kernels/CMakeLists.txt | ||
18 | @@ -122,9 +122,9 @@ function(compile_builtin core_type platf | ||
19 | endif() | ||
20 | add_custom_command( | ||
21 | OUTPUT ${OUTPUT_FILE_CPP} | ||
22 | - COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME} | ||
23 | + COMMAND cpp_generate_tool --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME} | ||
24 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||
25 | - DEPENDS ${OUTPUT_FILES_BINARIES} $<TARGET_FILE:cpp_generate_tool> | ||
26 | + DEPENDS ${OUTPUT_FILES_BINARIES} cpp_generate_tool | ||
27 | ) | ||
28 | list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}") | ||
29 | else() | ||
30 | @@ -176,9 +176,9 @@ function(generate_cpp_spirv builtin) | ||
31 | endif() | ||
32 | add_custom_command( | ||
33 | OUTPUT ${OUTPUT_FILE_CPP} | ||
34 | - COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} | ||
35 | + COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} | ||
36 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||
37 | - DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool> | ||
38 | + DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool | ||
39 | ) | ||
40 | set(OUTPUT_LIST_CPP_FILES ${OUTPUT_LIST_CPP_FILES} ${OUTPUT_FILE_CPP} PARENT_SCOPE) | ||
41 | else() | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch new file mode 100644 index 00000000..2001d839 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime/0003-external-ocloc.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | From 0006db5f55a9f08bd3452558a53704cd3bbb790f Mon Sep 17 00:00:00 2001 | ||
2 | From: Dongwon Kim <dongwon.kim@intel.com> | ||
3 | Date: Wed, 2 Mar 2022 15:52:45 -0800 | ||
4 | Subject: [PATCH 3/5] external ocloc | ||
5 | |||
6 | Upstream-Status: Inappropriate | ||
7 | |||
8 | Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> | ||
9 | --- | ||
10 | cmake/ocloc_cmd_prefix.cmake | 14 ++++++++------ | ||
11 | 1 file changed, 8 insertions(+), 6 deletions(-) | ||
12 | |||
13 | Index: git/cmake/ocloc_cmd_prefix.cmake | ||
14 | =================================================================== | ||
15 | --- git.orig/cmake/ocloc_cmd_prefix.cmake | ||
16 | +++ git/cmake/ocloc_cmd_prefix.cmake | ||
17 | @@ -4,13 +4,15 @@ | ||
18 | # SPDX-License-Identifier: MIT | ||
19 | # | ||
20 | |||
21 | -if(WIN32) | ||
22 | - set(ocloc_cmd_prefix ocloc) | ||
23 | -else() | ||
24 | - if(DEFINED NEO__IGC_LIBRARY_PATH) | ||
25 | - set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>) | ||
26 | +if(NOT DEFINED ocloc_cmd_prefix) | ||
27 | + if(WIN32) | ||
28 | + set(ocloc_cmd_prefix ocloc) | ||
29 | else() | ||
30 | - set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>) | ||
31 | + if(DEFINED NEO__IGC_LIBRARY_PATH) | ||
32 | + set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>) | ||
33 | + else() | ||
34 | + set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>) | ||
35 | + endif() | ||
36 | endif() | ||
37 | endif() | ||
38 | |||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb new file mode 100644 index 00000000..635e8c2f --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/compute-runtime/intel-compute-runtime_25.13.33276.16.bb | |||
@@ -0,0 +1,63 @@ | |||
1 | SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)" | ||
2 | DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \ | ||
3 | is an open source project to converge Intel's development efforts \ | ||
4 | on OpenCL(TM) compute stacks supporting the GEN graphics hardware \ | ||
5 | architecture." | ||
6 | |||
7 | LICENSE = "MIT & Apache-2.0" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \ | ||
9 | file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
10 | |||
11 | SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https;branch=releases/25.13 \ | ||
12 | file://0002-Build-not-able-to-locate-cpp_generation_tool.patch \ | ||
13 | file://0003-external-ocloc.patch \ | ||
14 | " | ||
15 | |||
16 | SRCREV = "a9961bdfaa07250fd52ff930bf8f31fb4e3b7799" | ||
17 | |||
18 | S = "${WORKDIR}/git" | ||
19 | |||
20 | DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native" | ||
21 | |||
22 | RDEPENDS:${PN} += " intel-graphics-compiler gmmlib" | ||
23 | |||
24 | inherit cmake pkgconfig qemu | ||
25 | |||
26 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
27 | COMPATIBLE_HOST:libc-musl = "null" | ||
28 | |||
29 | EXTRA_OECMAKE = " \ | ||
30 | -DIGC_DIR=${STAGING_INCDIR}/igc \ | ||
31 | -DBUILD_TYPE=Release \ | ||
32 | -DSKIP_UNIT_TESTS=1 \ | ||
33 | -DCCACHE_ALLOWED=FALSE \ | ||
34 | -DNEO_DISABLE_LD_LLD=ON \ | ||
35 | -DNEO_DISABLE_LD_GOLD=ON \ | ||
36 | " | ||
37 | |||
38 | EXTRA_OECMAKE:append:class-target = " \ | ||
39 | -Docloc_cmd_prefix=ocloc \ | ||
40 | -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ | ||
41 | " | ||
42 | |||
43 | PACKAGECONFIG ??= "" | ||
44 | PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero" | ||
45 | |||
46 | do_configure:prepend:class-target () { | ||
47 | # Write out a qemu wrapper that will be used by cmake. | ||
48 | qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${B}/bin'),d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" | ||
49 | cat > ${WORKDIR}/qemuwrapper << EOF | ||
50 | #!/bin/sh | ||
51 | $qemu_binary "\$@" | ||
52 | EOF | ||
53 | chmod +x ${WORKDIR}/qemuwrapper | ||
54 | } | ||
55 | |||
56 | FILES:${PN} += " \ | ||
57 | ${libdir}/intel-opencl/libigdrcl.so \ | ||
58 | ${libdir}/libocloc.so \ | ||
59 | " | ||
60 | |||
61 | FILES:${PN}-dev = "${includedir}" | ||
62 | |||
63 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch new file mode 100644 index 00000000..456a8c65 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From 1b98a931c3bf8daccc48cd618335ff35e3d382da Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Tue, 12 Oct 2021 23:46:42 +0800 | ||
4 | Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS | ||
5 | |||
6 | Otherwise it starts failing with: | ||
7 | |||
8 | | ninja: error: 'IGC/VectorCompiler/lib/BiF/opt', needed by 'IGC/VectorCompiler/lib/BiF/VCBiFPrintfOCL32.opt.bc', missing and no known rule to make it | ||
9 | |||
10 | We don't need to explicitly make sure opt is built when | ||
11 | using prebuilt binaries. | ||
12 | |||
13 | Upstream-Status: Inappropriate | ||
14 | |||
15 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
16 | --- | ||
17 | IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +- | ||
18 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
19 | |||
20 | Index: git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | ||
21 | =================================================================== | ||
22 | --- git.orig/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | ||
23 | +++ git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | ||
24 | @@ -121,7 +121,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_ | ||
25 | COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}" | ||
26 | COMMAND CMCLTranslatorTool ${OPT_OPAQUE_ARG} -o ${BIF_CMCL_BC_PATH} ${BIF_CLANG_BC_PATH_FINAL} | ||
27 | COMMAND ${LLVM_OPT_EXE} ${OPT_OPAQUE_ARG} --O2 -o ${BIF_OPT_BC_PATH} ${BIF_CMCL_BC_PATH} | ||
28 | - DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${OPT_BC_DEPENDS}) | ||
29 | + DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL}) | ||
30 | |||
31 | add_custom_target(${TARGET_NAME} | ||
32 | DEPENDS ${BIF_OPT_BC_PATH} | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch new file mode 100644 index 00000000..87b094aa --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-Build-not-able-to-locate-BiFManager-bin.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From 048512728eea53b3772a3f80ac9743bfc462487e Mon Sep 17 00:00:00 2001 | ||
2 | From: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
3 | Date: Thu, 2 Jan 2025 15:59:27 +0530 | ||
4 | Subject: [PATCH] Build not able to locate BiFManager-bin | ||
5 | |||
6 | Upstream-Status: Inappropriate [oe specific] | ||
7 | |||
8 | Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
9 | --- | ||
10 | IGC/BiFModule/CMakeLists.txt | 4 ++-- | ||
11 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
12 | |||
13 | Index: git/IGC/BiFModule/CMakeLists.txt | ||
14 | =================================================================== | ||
15 | --- git.orig/IGC/BiFModule/CMakeLists.txt | ||
16 | +++ git/IGC/BiFModule/CMakeLists.txt | ||
17 | @@ -655,8 +655,8 @@ set(IGC_BUILD__PROJ__BiFModuleCache_OCL | ||
18 | |||
19 | add_custom_command( | ||
20 | OUTPUT "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc" | ||
21 | - COMMAND $<TARGET_FILE:BiFManager-bin> "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h" | ||
22 | - DEPENDS "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc"$<TARGET_FILE:BiFManager-bin> | ||
23 | + COMMAND BiFManager-bin "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h" | ||
24 | + DEPENDS "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_32.bc" "${IGC_BUILD__BIF_DIR}/IGCsize_t_64.bc" BiFManager-bin | ||
25 | COMMENT "BiF: ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc: Spliting output .bc." | ||
26 | COMMAND_EXPAND_LISTS | ||
27 | ) | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch new file mode 100644 index 00000000..fc66b71d --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch | |||
@@ -0,0 +1,30 @@ | |||
1 | From 251e2854dd206ebf66e5908d3277e4585fe2a63b Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Mon, 9 Jan 2023 11:43:05 +0800 | ||
4 | Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers | ||
5 | |||
6 | We clone the SPIRV headers and tools in a different directory to ensure | ||
7 | file path substitutions take place. | ||
8 | |||
9 | Upstream-Status: Inappropriate | ||
10 | |||
11 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
12 | --- | ||
13 | external/SPIRV-Tools/CMakeLists.txt | 4 ++-- | ||
14 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
15 | |||
16 | Index: git/external/SPIRV-Tools/CMakeLists.txt | ||
17 | =================================================================== | ||
18 | --- git.orig/external/SPIRV-Tools/CMakeLists.txt | ||
19 | +++ git/external/SPIRV-Tools/CMakeLists.txt | ||
20 | @@ -45,8 +45,8 @@ else() #By default use build from source | ||
21 | message(STATUS "[SPIRV-Tools] : Building from source") | ||
22 | message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}") | ||
23 | |||
24 | - set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory | ||
25 | - set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools") | ||
26 | + set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory | ||
27 | + set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools") | ||
28 | |||
29 | set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build") | ||
30 | set(IGC_BUILD__SPIRV-Headers_DIR "${SPIRV-Headers_SOURCE_DIR}") | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch new file mode 100644 index 00000000..3d9ae02f --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0001-fix-tblgen.patch | |||
@@ -0,0 +1,23 @@ | |||
1 | From 1641dc87b2ed6b6b87b2cef824e4d66da65b0b30 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Thu, 19 May 2022 22:50:09 +0800 | ||
4 | Subject: [PATCH] fix tblgen | ||
5 | |||
6 | Upstream-Status: Inappropriate [OE specific] | ||
7 | --- | ||
8 | IGC/cmake/igc_llvm.cmake | 2 +- | ||
9 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
10 | |||
11 | diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake | ||
12 | index b708cc904..fe4668890 100644 | ||
13 | --- a/IGC/cmake/igc_llvm.cmake | ||
14 | +++ b/IGC/cmake/igc_llvm.cmake | ||
15 | @@ -53,7 +53,7 @@ else() | ||
16 | set(LLVM_OPT_EXE "opt" CACHE STRING "") | ||
17 | |||
18 | set(LLVM_TABLEGEN_EXE "llvm-tblgen") | ||
19 | - if(CMAKE_CROSSCOMPILING) | ||
20 | + if(TRUE) | ||
21 | if(DEFINED LLVM_TABLEGEN) | ||
22 | set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN}) | ||
23 | else() | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch new file mode 100644 index 00000000..4269fadf --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/files/0003-Improve-Reproducibility-for-src-package.patch | |||
@@ -0,0 +1,33 @@ | |||
1 | From ca136c04d4ac60e3febc8ea2b9c4d4736365a424 Mon Sep 17 00:00:00 2001 | ||
2 | From: Lee Chee Yang <chee.yang.lee@intel.com> | ||
3 | Date: Wed, 2 Sep 2020 08:28:35 +0800 | ||
4 | Subject: [PATCH] Improve Reproducibility for src package | ||
5 | |||
6 | Improve reproducibility for intel-graphics-compiler-src package. | ||
7 | needs to pass build path as environment variable to the build. | ||
8 | this only works on bison 3.7 onward, hence check for bison version | ||
9 | before adding the flags. | ||
10 | Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream] | ||
11 | Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> | ||
12 | --- | ||
13 | visa/CMakeLists.txt | 7 +++++-- | ||
14 | 1 file changed, 5 insertions(+), 2 deletions(-) | ||
15 | |||
16 | Index: git/visa/CMakeLists.txt | ||
17 | =================================================================== | ||
18 | --- git.orig/visa/CMakeLists.txt | ||
19 | +++ git/visa/CMakeLists.txt | ||
20 | @@ -135,8 +135,11 @@ endif() | ||
21 | set(bison_output_file ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp) | ||
22 | set(flex_output_file ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp) | ||
23 | |||
24 | -BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-vt -p CISA") | ||
25 | -FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}") | ||
26 | +if(BISON_VERSION VERSION_GREATER_EQUAL "3.7.0") | ||
27 | + set(BISON_EXTRA_FLAGS " --file-prefix-map=$ENV{B}=/igc/ ") | ||
28 | +endif() | ||
29 | +BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-l -vt -p CISA ${BISON_EXTRA_FLAGS} ") | ||
30 | +FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA -L ${WIN_FLEX_FLAG} ") | ||
31 | ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser) | ||
32 | set(CISAScanner_dependencies) | ||
33 | |||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb new file mode 100644 index 00000000..b6d8ddeb --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/igc/intel-graphics-compiler_2.10.10.bb | |||
@@ -0,0 +1,79 @@ | |||
1 | SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)" | ||
2 | DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \ | ||
3 | llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \ | ||
4 | hardware architecture." | ||
5 | |||
6 | LICENSE = "MIT & Apache-2.0" | ||
7 | LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \ | ||
8 | file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \ | ||
9 | file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880" | ||
10 | |||
11 | SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/2.10.x \ | ||
12 | git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \ | ||
13 | git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/SPIRV-Tools;name=spirv-tools;branch=main \ | ||
14 | git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/SPIRV-Headers;name=spirv-headers;branch=main \ | ||
15 | file://0003-Improve-Reproducibility-for-src-package.patch \ | ||
16 | file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \ | ||
17 | file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \ | ||
18 | file://0001-Build-not-able-to-locate-BiFManager-bin.patch \ | ||
19 | " | ||
20 | |||
21 | SRC_URI:append:class-native = " file://0001-fix-tblgen.patch" | ||
22 | |||
23 | SRCREV_igc = "83925314d4fc32b017fcbfcd73e0667ba833fb8f" | ||
24 | SRCREV_vc = "9d255266e1df8f1dc5d11e1fbb03213acfaa4fc7" | ||
25 | SRCREV_spirv-tools = "f289d047f49fb60488301ec62bafab85573668cc" | ||
26 | SRCREV_spirv-headers = "0e710677989b4326ac974fd80c5308191ed80965" | ||
27 | |||
28 | SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers" | ||
29 | |||
30 | # Used to replace with relative path in reproducibility patch | ||
31 | export B | ||
32 | |||
33 | S = "${WORKDIR}/git" | ||
34 | |||
35 | inherit cmake pkgconfig qemu python3native | ||
36 | |||
37 | CXXFLAGS:append = " -Wno-error=nonnull" | ||
38 | |||
39 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
40 | COMPATIBLE_HOST:libc-musl = "null" | ||
41 | |||
42 | DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native \ | ||
43 | python3-pyyaml-native \ | ||
44 | " | ||
45 | |||
46 | RDEPENDS:${PN} += "opencl-clang" | ||
47 | |||
48 | PACKAGECONFIG ??= "vc" | ||
49 | PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds,-DIGC_BUILD__VC_ENABLED=OFF," | ||
50 | |||
51 | EXTRA_OECMAKE = " \ | ||
52 | -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \ | ||
53 | -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \ | ||
54 | -DIGC_OPTION__LLVM_MODE=Prebuilds \ | ||
55 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | ||
56 | -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \ | ||
57 | -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \ | ||
58 | -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ | ||
59 | " | ||
60 | |||
61 | do_configure:prepend:class-target () { | ||
62 | # Write out a qemu wrapper that will be used by cmake. | ||
63 | qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" | ||
64 | cat > ${WORKDIR}/qemuwrapper << EOF | ||
65 | #!/bin/sh | ||
66 | $qemu_binary "\$@" | ||
67 | EOF | ||
68 | chmod +x ${WORKDIR}/qemuwrapper | ||
69 | } | ||
70 | |||
71 | |||
72 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$" | ||
73 | |||
74 | FILES:${PN} += " \ | ||
75 | ${libdir}/igc2/NOTICES.txt \ | ||
76 | " | ||
77 | |||
78 | # libigc.so contains buildpaths | ||
79 | INSANE_SKIP:${PN} += "buildpaths" | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch new file mode 100644 index 00000000..031a77c7 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch | |||
@@ -0,0 +1,49 @@ | |||
1 | From 5aea653e611b59c70e529a1bd71885a509831557 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Tue, 1 Aug 2023 11:15:31 +0800 | ||
4 | Subject: [PATCH] cl_headers/CMakeLists.txt: use clang from native sysroot | ||
5 | |||
6 | Allow clang to be found in target sysroot for target builds and dont try | ||
7 | to compile cross binaries, we do that ourselves. | ||
8 | |||
9 | Upstream-Status: Inappropriate [oe-specific] | ||
10 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
11 | --- | ||
12 | CMakeLists.txt | 8 ++++---- | ||
13 | cl_headers/CMakeLists.txt | 2 +- | ||
14 | 2 files changed, 5 insertions(+), 5 deletions(-) | ||
15 | |||
16 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
17 | index 5864009..60ba39e 100644 | ||
18 | --- a/CMakeLists.txt | ||
19 | +++ b/CMakeLists.txt | ||
20 | @@ -35,10 +35,10 @@ set(CMAKE_MODULE_PATH | ||
21 | |||
22 | include(CMakeFunctions) | ||
23 | |||
24 | -if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL) | ||
25 | - include(CrossCompile) | ||
26 | - llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release) | ||
27 | -endif() | ||
28 | +#if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL) | ||
29 | +# include(CrossCompile) | ||
30 | +# llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release) | ||
31 | +#endif() | ||
32 | |||
33 | if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) | ||
34 | set(USE_PREBUILT_LLVM ON) | ||
35 | diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt | ||
36 | index 16cabb7..4423536 100644 | ||
37 | --- a/cl_headers/CMakeLists.txt | ||
38 | +++ b/cl_headers/CMakeLists.txt | ||
39 | @@ -1,6 +1,6 @@ | ||
40 | set(CL_HEADERS_LIB cl_headers) | ||
41 | if(USE_PREBUILT_LLVM) | ||
42 | - find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH) | ||
43 | + find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR}) | ||
44 | else() | ||
45 | set(CLANG_COMMAND $<TARGET_FILE:clang>) | ||
46 | endif() | ||
47 | -- | ||
48 | 2.37.3 | ||
49 | |||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch new file mode 100644 index 00000000..2f1814f8 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/files/0002-Request-native-clang-only-when-cross-compiling-464.patch | |||
@@ -0,0 +1,60 @@ | |||
1 | From 43c806ef321b1f677a49d28c89fb7ffecf539c2d Mon Sep 17 00:00:00 2001 | ||
2 | From: Tim Creech <timothy.m.creech@intel.com> | ||
3 | Date: Wed, 28 Jun 2023 03:45:51 -0400 | ||
4 | Subject: [PATCH 2/2] Request native clang only when cross-compiling (#464) | ||
5 | |||
6 | * Request native clang only when cross-compiling | ||
7 | |||
8 | LLVM_USE_HOST_TOOLS may be set if LLVM is configured with | ||
9 | LLVM_OPTIMIZED_TABLEGEN, which does not necessarily indicate | ||
10 | cross-compilation or that clang will only execute on the target. | ||
11 | |||
12 | By checking that CMAKE_CROSSCOMPILING is set, we ensure that we only | ||
13 | build/use clang again if necessary for host execution. | ||
14 | |||
15 | * fixup: CMAKE_CROSSCOMPILING implies LLVM_USE_HOST_TOOLS | ||
16 | |||
17 | Co-authored-by: Wenju He <wenju.he@intel.com> | ||
18 | |||
19 | * fixup: also use CMAKE_CROSSCOMPILING in top-level CMakeLists.txt | ||
20 | |||
21 | --------- | ||
22 | |||
23 | Co-authored-by: Wenju He <wenju.he@intel.com> | ||
24 | |||
25 | Upstream-Status: Backport [https://github.com/intel/opencl-clang/commit/53843eee13cfb2357919ee02714a43bef1af0f86] | ||
26 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
27 | --- | ||
28 | CMakeLists.txt | 2 +- | ||
29 | cl_headers/CMakeLists.txt | 2 +- | ||
30 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
31 | |||
32 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
33 | index e772de9..5864009 100644 | ||
34 | --- a/CMakeLists.txt | ||
35 | +++ b/CMakeLists.txt | ||
36 | @@ -35,7 +35,7 @@ set(CMAKE_MODULE_PATH | ||
37 | |||
38 | include(CMakeFunctions) | ||
39 | |||
40 | -if(LLVM_USE_HOST_TOOLS AND OPENCL_CLANG_BUILD_EXTERNAL) | ||
41 | +if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL) | ||
42 | include(CrossCompile) | ||
43 | llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release) | ||
44 | endif() | ||
45 | diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt | ||
46 | index 18296c2..16cabb7 100644 | ||
47 | --- a/cl_headers/CMakeLists.txt | ||
48 | +++ b/cl_headers/CMakeLists.txt | ||
49 | @@ -4,7 +4,7 @@ if(USE_PREBUILT_LLVM) | ||
50 | else() | ||
51 | set(CLANG_COMMAND $<TARGET_FILE:clang>) | ||
52 | endif() | ||
53 | -if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL) | ||
54 | +if(CMAKE_CROSSCOMPILING AND NOT OPENCL_CLANG_BUILD_EXTERNAL) | ||
55 | build_native_tool(clang CLANG_COMMAND) | ||
56 | endif() | ||
57 | |||
58 | -- | ||
59 | 2.37.3 | ||
60 | |||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc new file mode 100644 index 00000000..31a3fb21 --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang.inc | |||
@@ -0,0 +1,34 @@ | |||
1 | SUMMARY = "Common clang is a thin wrapper library around clang" | ||
2 | DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \ | ||
3 | to compile OpenCL C kernels to SPIR-V modules." | ||
4 | |||
5 | LICENSE = "NCSA" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" | ||
7 | |||
8 | SRC_URI = "git://github.com/intel/opencl-clang.git;branch=${BRANCH};protocol=https \ | ||
9 | file://0002-Request-native-clang-only-when-cross-compiling-464.patch \ | ||
10 | file://0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch \ | ||
11 | " | ||
12 | S = "${WORKDIR}/git" | ||
13 | |||
14 | inherit cmake | ||
15 | DEPENDS += "clang" | ||
16 | DEPENDS:append:class-target = " opencl-clang-native" | ||
17 | |||
18 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
19 | COMPATIBLE_HOST:libc-musl = "null" | ||
20 | |||
21 | DEPENDS += " spirv-llvm-translator" | ||
22 | |||
23 | EXTRA_OECMAKE += "\ | ||
24 | -DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | ||
25 | -DCMAKE_SKIP_RPATH=TRUE \ | ||
26 | -DPREFERRED_LLVM_VERSION=${LLVMVERSION} \ | ||
27 | " | ||
28 | |||
29 | do_install:append:class-native() { | ||
30 | install -d ${D}${bindir} | ||
31 | install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/ | ||
32 | } | ||
33 | |||
34 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb new file mode 100644 index 00000000..e946c31c --- /dev/null +++ b/dynamic-layers/clang-layer/recipes-opencl/opencl-clang/opencl-clang_15.0.0.bb | |||
@@ -0,0 +1,5 @@ | |||
1 | require opencl-clang.inc | ||
2 | |||
3 | SRCREV = "60fd799cc58755c16d951f9ebfde6d0f9b8554dd" | ||
4 | |||
5 | BRANCH = "ocl-open-150" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/0001-LMS-fix-build-issue-with-gcc-15.patch b/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/0001-LMS-fix-build-issue-with-gcc-15.patch new file mode 100644 index 00000000..751c7973 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/0001-LMS-fix-build-issue-with-gcc-15.patch | |||
@@ -0,0 +1,32 @@ | |||
1 | From 439af27f7641185933d7810b6c4eb17086438df3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
3 | Date: Mon, 19 May 2025 17:50:40 +0530 | ||
4 | Subject: [PATCH] LMS : fix build issue with gcc 15 | ||
5 | |||
6 | include cstdint header to resolve the below error with gcc 15 | ||
7 | |||
8 | | In file included from /lms/2406.0.0.0/git/MEIClient/src/MEICommand.cpp:11: | ||
9 | | /lms/2406.0.0.0/git/MEIClient/Include/MEICommand.h:40:54: error: 'uint8_t' was not declared in this scope | ||
10 | |||
11 | Upstream-Status: Submitted [https://github.com/intel/lms/pull/23] | ||
12 | |||
13 | Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
14 | --- | ||
15 | MEIClient/Include/MEICommand.h | 1 + | ||
16 | 1 file changed, 1 insertion(+) | ||
17 | |||
18 | diff --git a/MEIClient/Include/MEICommand.h b/MEIClient/Include/MEICommand.h | ||
19 | index 6192d26..5332e44 100644 | ||
20 | --- a/MEIClient/Include/MEICommand.h | ||
21 | +++ b/MEIClient/Include/MEICommand.h | ||
22 | @@ -12,6 +12,7 @@ | ||
23 | #define __MEI_COMMAND_H__ | ||
24 | #include "heci.h" | ||
25 | #include "MEIClientException.h" | ||
26 | +#include <cstdint> | ||
27 | #include <memory> | ||
28 | #include <vector> | ||
29 | |||
30 | -- | ||
31 | 2.43.0 | ||
32 | |||
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/lms_drop_rpath_1921.0.0.0.diff b/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/lms_drop_rpath_1921.0.0.0.diff deleted file mode 100644 index b68924a5..00000000 --- a/dynamic-layers/openembedded-layer/recipes-bsp/amt/files/lms_drop_rpath_1921.0.0.0.diff +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From b92a5bda8015454a570990a3d9c4fba87010f1af Mon Sep 17 00:00:00 2001 | ||
2 | From: Alexander Usyskin <alexander.usyskin@intel.com> | ||
3 | Date: Mon, 17 Jun 2019 13:27:33 +0300 | ||
4 | Subject: [PATCH] lms: drop rpath definitions | ||
5 | |||
6 | Yocto fail to compile with this definitions. | ||
7 | |||
8 | Upstream-Status: Inappropriate [configuration] | ||
9 | Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com> | ||
10 | --- | ||
11 | CMakeLists.txt | 4 ---- | ||
12 | 1 file changed, 4 deletions(-) | ||
13 | |||
14 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
15 | index 04257fb..85d0445 100644 | ||
16 | --- a/CMakeLists.txt | ||
17 | +++ b/CMakeLists.txt | ||
18 | @@ -107,10 +107,6 @@ install (DIRECTORY Docs/Licenses | ||
19 | FILES_MATCHING PATTERN "LICENSE.*" | ||
20 | ) | ||
21 | |||
22 | -list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/UNS/GMS_COMMON") | ||
23 | -list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/WsmanClient") | ||
24 | -list (APPEND CMAKE_INSTALL_RPATH "${PROJECT_BINARY_DIR}/UNS/StatusEventHandler") | ||
25 | - | ||
26 | if (BUILD_TESTS) | ||
27 | include (gtest.cmake) | ||
28 | endif (BUILD_TESTS) | ||
29 | -- | ||
30 | 2.7.4 | ||
31 | |||
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_1921.0.0.0.bb b/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_1921.0.0.0.bb deleted file mode 100644 index 8ed74486..00000000 --- a/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_1921.0.0.0.bb +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | SUMMARY = "Intel(R) Local Managability Service" | ||
2 | DESCRIPTION = "Intel Local Manageability Service allows applications \ | ||
3 | to access the Intel Active Management Technology (AMT) firmware via \ | ||
4 | the Intel Management Engine Interface (MEI)." | ||
5 | |||
6 | LICENSE = "Apache-2.0" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93" | ||
8 | |||
9 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | ||
10 | |||
11 | inherit cmake systemd | ||
12 | |||
13 | DEPENDS = "metee ace xerces-c libnl libxml2 glib-2.0 glib-2.0-native connman" | ||
14 | |||
15 | EXTRA_OECMAKE += "-DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3" | ||
16 | |||
17 | REQUIRED_DISTRO_FEATURES= "systemd" | ||
18 | |||
19 | FILES_${PN} += "${datadir}/dbus-1/system-services/*.service" | ||
20 | |||
21 | FILES_${PN} += "${libdir}/libLms*.so" | ||
22 | FILES_SOLIBSDEV = "" | ||
23 | INSANE_SKIP_${PN} += "dev-so" | ||
24 | |||
25 | S = "${WORKDIR}/git" | ||
26 | |||
27 | SYSTEMD_SERVICE_${PN} = "lms.service" | ||
28 | |||
29 | SRC_URI = "git://github.com/intel/lms.git" | ||
30 | SRCREV = "f7c374745ae7efb3ed7860fdc3f8abbb52dc9f8f" | ||
31 | |||
32 | SRC_URI_append = " file://lms_drop_rpath_${PV}.diff" | ||
33 | |||
34 | do_install_append() { | ||
35 | install -d ${D}${systemd_system_unitdir} | ||
36 | install -m 0644 ${B}/UNS/lms.service ${D}${systemd_system_unitdir} | ||
37 | } | ||
38 | |||
39 | RDEPENDS_${PN} += "ace" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_2406.0.0.0.bb b/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_2406.0.0.0.bb new file mode 100644 index 00000000..c71ac9ea --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-bsp/amt/lms_2406.0.0.0.bb | |||
@@ -0,0 +1,45 @@ | |||
1 | SUMMARY = "Intel(R) Local Managability Service" | ||
2 | DESCRIPTION = "Intel Local Manageability Service allows applications \ | ||
3 | to access the Intel Active Management Technology (AMT) firmware via \ | ||
4 | the Intel Management Engine Interface (MEI)." | ||
5 | |||
6 | LICENSE = "Apache-2.0" | ||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93" | ||
8 | |||
9 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | ||
10 | |||
11 | COMPATIBLE_HOST:libc-musl = "null" | ||
12 | |||
13 | inherit cmake systemd features_check python3native | ||
14 | |||
15 | DEPENDS = "metee ace xerces-c libnl libxml2 glib-2.0 glib-2.0-native pkgconfig-native python3-packaging-native" | ||
16 | |||
17 | # Enable either connman or networkmanager or none but not both. | ||
18 | PACKAGECONFIG ??= "connman" | ||
19 | PACKAGECONFIG[connman] = "-DNETWORK_CN=ON, -DNETWORK_CN=OFF, connman" | ||
20 | PACKAGECONFIG[networkmanager] = "-DNETWORK_NM=ON, -DNETWORK_NM=OFF, networkmanager" | ||
21 | |||
22 | REQUIRED_DISTRO_FEATURES = "systemd" | ||
23 | |||
24 | FILES:${PN} += "${datadir}/dbus-1/system-services/*.service" | ||
25 | |||
26 | S = "${WORKDIR}/git" | ||
27 | |||
28 | SYSTEMD_SERVICE:${PN} = "lms.service" | ||
29 | |||
30 | SRC_URI = "git://github.com/intel/lms.git;branch=master;protocol=https \ | ||
31 | file://0001-LMS-fix-build-issue-with-gcc-15.patch \ | ||
32 | " | ||
33 | SRCREV = "388f115b2aeb3ea11499971c65f828daefd32c47" | ||
34 | |||
35 | do_install:append() { | ||
36 | install -d ${D}${sysconfdir}/lms | ||
37 | install -d ${D}${systemd_system_unitdir} | ||
38 | install -m 0644 ${B}/UNS/lms.service ${D}${systemd_system_unitdir} | ||
39 | install -d ${D}${sysconfdir}/udev/rules.d | ||
40 | install -m 0644 ${S}/UNS/linux_scripts/70-mei-wdt.rules ${D}${sysconfdir}/udev/rules.d/70-mei-wdt.rules | ||
41 | } | ||
42 | |||
43 | RDEPENDS:${PN} += "ace" | ||
44 | |||
45 | CVE_STATUS[CVE-2018-1000535] = "cpe-incorrect: This CVE is for a different LMS - Lan Management System." | ||
diff --git a/recipes-bsp/thermald/thermald_1.8.bb b/dynamic-layers/openembedded-layer/recipes-bsp/thermald/thermald_2.5.8.bb index f7725f31..fee089de 100644 --- a/recipes-bsp/thermald/thermald_1.8.bb +++ b/dynamic-layers/openembedded-layer/recipes-bsp/thermald/thermald_2.5.8.bb | |||
@@ -6,28 +6,37 @@ compensation using available cooling methods." | |||
6 | 6 | ||
7 | HOMEPAGE = "https://github.com/01org/thermal_daemon" | 7 | HOMEPAGE = "https://github.com/01org/thermal_daemon" |
8 | 8 | ||
9 | DEPENDS = "dbus dbus-glib dbus-glib-native libxml2 glib-2.0 glib-2.0-native" | 9 | DEPENDS = "dbus dbus-glib dbus-glib-native libxml2 glib-2.0 glib-2.0-native upower libevdev" |
10 | DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" | 10 | DEPENDS += "autoconf-archive-native" |
11 | DEPENDS_append_libc-musl = " argp-standalone" | 11 | |
12 | DEPENDS_append_toolchain-clang = " openmp" | 12 | LICENSE = "GPL-2.0-only" |
13 | LICENSE = "GPLv2" | ||
14 | LIC_FILES_CHKSUM = "file://COPYING;md5=ea8831610e926e2e469075b52bf08848" | 13 | LIC_FILES_CHKSUM = "file://COPYING;md5=ea8831610e926e2e469075b52bf08848" |
15 | 14 | ||
16 | SRC_URI = "git://github.com/intel/thermal_daemon/ \ | 15 | SRC_URI = "git://github.com/intel/thermal_daemon/;branch=master;protocol=https \ |
17 | file://0001-Use-correct-format-specifier-for-size_t.patch \ | ||
18 | " | 16 | " |
19 | SRCREV = "517c0e5f92d49aeeef3a22b04caf40d588216827" | 17 | |
18 | SRCREV = "df3b9ab0ffe780c4fbad7750987eff76f659cfd5" | ||
20 | S = "${WORKDIR}/git" | 19 | S = "${WORKDIR}/git" |
21 | 20 | ||
22 | inherit pkgconfig autotools systemd | 21 | inherit pkgconfig autotools systemd gtk-doc |
22 | |||
23 | # gtkdocsize runs before autotools do_configure and it copies gtk-doc.m4 and fails | ||
24 | # to copy becuase there is no m4 dir yet. | ||
25 | do_configure:prepend () { | ||
26 | mkdir -p ${S}/m4 | ||
27 | } | ||
28 | |||
29 | EXTRA_OECONF = " \ | ||
30 | --with-systemdsystemunitdir=${systemd_system_unitdir} \ | ||
31 | " | ||
23 | 32 | ||
24 | FILES_${PN} += "${datadir}/dbus-1/system-services/*.service" | 33 | FILES:${PN} += "${datadir}/dbus-1" |
25 | 34 | ||
26 | SYSTEMD_SERVICE_${PN} = "thermald.service" | 35 | SYSTEMD_SERVICE:${PN} = "thermald.service" |
27 | 36 | ||
28 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | 37 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' |
29 | 38 | ||
30 | CONFFILES_${PN} = " \ | 39 | CONFFILES:${PN} = " \ |
31 | ${sysconfdir}/thermald/thermal-conf.xml \ | 40 | ${sysconfdir}/thermald/thermal-conf.xml \ |
32 | ${sysconfdir}/thermald/thermal-cpu-cdev-order.xml \ | 41 | ${sysconfdir}/thermald/thermal-cpu-cdev-order.xml \ |
33 | " | 42 | " |
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch new file mode 100644 index 00000000..4d583657 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Add-print-function-to-print-test-run-status-in-ptest.patch | |||
@@ -0,0 +1,53 @@ | |||
1 | From deccc0c69c2c8759c52885be8bdda54d3cee481c Mon Sep 17 00:00:00 2001 | ||
2 | From: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
3 | Date: Sun, 11 Dec 2022 22:34:15 +0800 | ||
4 | Subject: [PATCH] Add print function to print test run status in ptest format | ||
5 | |||
6 | Upstream-Status: Inappropriate [OE ptest specific] | ||
7 | |||
8 | Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
9 | --- | ||
10 | run_tests.py | 16 ++++++++++++++++ | ||
11 | 1 file changed, 16 insertions(+) | ||
12 | |||
13 | diff --git a/run_tests.py b/run_tests.py | ||
14 | index 1cd796dd..e3ffd1ab 100755 | ||
15 | --- a/run_tests.py | ||
16 | +++ b/run_tests.py | ||
17 | @@ -327,6 +327,9 @@ def run_test(testname, host, target): | ||
18 | else: | ||
19 | ispc_exe_rel = add_prefix(host.ispc_cmd, host, target) | ||
20 | |||
21 | + # to reslove the error '.rodata' can not be used when making a PIE object | ||
22 | + ispc_exe_rel = ispc_exe_rel + " --pic" | ||
23 | + | ||
24 | # is this a test to make sure an error is issued? | ||
25 | want_error = (filename.find("tests_errors") != -1) | ||
26 | if want_error == True: | ||
27 | @@ -795,6 +798,17 @@ def check_compiler_exists(compiler_exe): | ||
28 | return | ||
29 | error("missing the required compiler: %s \n" % compiler_exe, 1) | ||
30 | |||
31 | +def print_test_run_status(results): | ||
32 | + for fstatus in results: | ||
33 | + if (fstatus[1] == Status.Success): | ||
34 | + print( "%s: %s" % ("PASS", fstatus[0])) | ||
35 | + elif (fstatus[1] == Status.Compfail): | ||
36 | + print( "%s: %s" % ("FAIL", fstatus[0])) | ||
37 | + elif (fstatus[1] == Status.Runfail): | ||
38 | + print( "%s: %s" % ("FAIL", fstatus[0])) | ||
39 | + elif (fstatus[1] == Status.Skip): | ||
40 | + print( "%s: %s" % ("SKIP", fstatus[0])) | ||
41 | + | ||
42 | def print_result(status, results, s, run_tests_log, csv): | ||
43 | title = StatusStr[status] | ||
44 | file_list = [fname for fname, fstatus in results if status == fstatus] | ||
45 | @@ -938,6 +952,8 @@ def run_tests(options1, args, print_version): | ||
46 | pass_rate = -1 | ||
47 | print_debug("PASSRATE (%d/%d) = %d%% \n\n" % (len(run_succeed_files), total_tests_executed, pass_rate), s, run_tests_log) | ||
48 | |||
49 | + print_test_run_status(results) | ||
50 | + | ||
51 | for status in Status: | ||
52 | print_result(status, results, s, run_tests_log, options.csv) | ||
53 | fails = [status != Status.Compfail and status != Status.Runfail for _, status in results] | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Fix-QA-Issues.patch b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Fix-QA-Issues.patch new file mode 100644 index 00000000..b0a76ff9 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0001-Fix-QA-Issues.patch | |||
@@ -0,0 +1,36 @@ | |||
1 | From 7beff95c11071170eb27b6fa7d0cc77588caee8e Mon Sep 17 00:00:00 2001 | ||
2 | From: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
3 | Date: Tue, 26 Jul 2022 15:25:10 +0800 | ||
4 | Subject: [PATCH] Fix QA Issues | ||
5 | |||
6 | Stop ispc from inserting host file path in generated headers which leads to reproducibility problems. | ||
7 | |||
8 | Upstream-Status: Inappropriate [OE build specific] | ||
9 | |||
10 | Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
11 | --- | ||
12 | src/module.cpp | 4 ++-- | ||
13 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
14 | |||
15 | diff --git a/src/module.cpp b/src/module.cpp | ||
16 | index e2084d2e..e2626865 100644 | ||
17 | --- a/src/module.cpp | ||
18 | +++ b/src/module.cpp | ||
19 | @@ -2555,7 +2555,7 @@ bool Module::writeHeader(const char *fn) { | ||
20 | perror("fopen"); | ||
21 | return false; | ||
22 | } | ||
23 | - fprintf(f, "//\n// %s\n// (Header automatically generated by the ispc compiler.)\n", fn); | ||
24 | + fprintf(f, "//\n// \n// (Header automatically generated by the ispc compiler.)\n"); | ||
25 | fprintf(f, "// DO NOT EDIT THIS FILE.\n//\n\n"); | ||
26 | |||
27 | // Create a nice guard string from the filename, turning any | ||
28 | @@ -2677,7 +2677,7 @@ bool Module::writeDispatchHeader(DispatchHeaderInfo *DHI) { | ||
29 | FILE *f = DHI->file; | ||
30 | |||
31 | if (DHI->EmitFrontMatter) { | ||
32 | - fprintf(f, "//\n// %s\n// (Header automatically generated by the ispc compiler.)\n", DHI->fn); | ||
33 | + fprintf(f, "//\n// \n// (Header automatically generated by the ispc compiler.)\n"); | ||
34 | fprintf(f, "// DO NOT EDIT THIS FILE.\n//\n\n"); | ||
35 | } | ||
36 | // Create a nice guard string from the filename, turning any | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0002-cmake-don-t-build-for-32-bit-targets.patch b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0002-cmake-don-t-build-for-32-bit-targets.patch new file mode 100644 index 00000000..f452dc50 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/0002-cmake-don-t-build-for-32-bit-targets.patch | |||
@@ -0,0 +1,52 @@ | |||
1 | From 16a2c22339287122d2c25d8bb33a5a51b4e6ee51 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Thu, 24 Feb 2022 20:01:11 +0530 | ||
4 | Subject: [PATCH] cmake: don't build for 32-bit targets | ||
5 | |||
6 | Error log: | ||
7 | | tmp/work/corei7-64-poky-linux/ispc/1.16.0-r0/recipe-sysroot/usr/include/bits/long-double.h:23:10: fatal error: 'bits/long-double-32.h' file not found | ||
8 | | #include <bits/long-double-32.h> | ||
9 | | ^~~~~~~~~~~~~~~~~~~~~~~ | ||
10 | | 1 error generated. | ||
11 | |||
12 | Remove SYSTEM include search path and set -isysroot dir path | ||
13 | for root dir for cross compilation. | ||
14 | |||
15 | Upstream-Status: Inappropriate | ||
16 | |||
17 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
18 | --- | ||
19 | cmake/GenerateBuiltins.cmake | 6 +++--- | ||
20 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
21 | |||
22 | diff --git a/cmake/GenerateBuiltins.cmake b/cmake/GenerateBuiltins.cmake | ||
23 | index f84494ed..d90cb1ec 100644 | ||
24 | --- a/cmake/GenerateBuiltins.cmake | ||
25 | +++ b/cmake/GenerateBuiltins.cmake | ||
26 | @@ -253,7 +253,7 @@ function(builtin_to_cpp bit os_name arch supported_archs supported_oses resultFi | ||
27 | # In this case headers will be installed in /usr/arm-linux-gnueabihf/include and will not be picked up | ||
28 | # by clang by default. So the following line adds such path explicitly. If this path doesn't exist and | ||
29 | # the headers can be found in other locations, this should not be a problem. | ||
30 | - set(includePath -isystem/usr/${debian_triple}/include) | ||
31 | + set(includePath -isysroot${SYSROOT_DIR}) | ||
32 | endif() | ||
33 | endif() | ||
34 | |||
35 | @@ -339,7 +339,7 @@ function (generate_target_builtins resultList) | ||
36 | set(regular_targets ${ARGN}) | ||
37 | list(FILTER regular_targets EXCLUDE REGEX wasm) | ||
38 | foreach (ispc_target ${regular_targets}) | ||
39 | - foreach (bit 32 64) | ||
40 | + foreach (bit 64) | ||
41 | foreach (os_name ${TARGET_OS_LIST_FOR_LL}) | ||
42 | target_ll_to_cpp(target-${ispc_target} ${bit} ${os_name} output${os_name}${bit}) | ||
43 | list(APPEND tmpList ${output${os_name}${bit}}) | ||
44 | @@ -405,7 +405,7 @@ function (generate_common_builtins resultList) | ||
45 | endif() | ||
46 | |||
47 | message (STATUS "ISPC will be built with support of ${supported_oses} for ${supported_archs}") | ||
48 | - foreach (bit 32 64) | ||
49 | + foreach (bit 64) | ||
50 | foreach (os_name "windows" "linux" "freebsd" "macos" "android" "ios" "ps4" "web") | ||
51 | foreach (arch "x86" "arm" "wasm") | ||
52 | builtin_to_cpp(${bit} ${os_name} ${arch} "${supported_archs}" "${supported_oses}" res${bit}${os_name}${arch}) | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/run-ptest b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/run-ptest new file mode 100644 index 00000000..77d13bb4 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc/run-ptest | |||
@@ -0,0 +1,2 @@ | |||
1 | #!/bin/sh | ||
2 | python3 run_tests.py | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc_1.24.0.bb b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc_1.24.0.bb new file mode 100644 index 00000000..77797041 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/ispc/ispc_1.24.0.bb | |||
@@ -0,0 +1,64 @@ | |||
1 | SUMMARY = "Intel(R) Implicit SPMD Program Compiler" | ||
2 | DESCRIPTION = "ispc is a compiler for a variant of the C programming language, \ | ||
3 | with extensions for single program, multiple data programming." | ||
4 | HOMEPAGE = "https://github.com/ispc/ispc" | ||
5 | |||
6 | LICENSE = "BSD-3-Clause & Apache-2.0-with-LLVM-exception" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=da5ecffdd210b3cf776b32b41c182e87 \ | ||
8 | file://third-party-programs.txt;md5=2061218c7be521556719c8b504bf9ddd" | ||
9 | |||
10 | inherit cmake python3native ptest | ||
11 | |||
12 | S = "${WORKDIR}/git" | ||
13 | |||
14 | SRC_URI = "git://github.com/ispc/ispc.git;protocol=https;branch=main \ | ||
15 | file://0002-cmake-don-t-build-for-32-bit-targets.patch \ | ||
16 | file://0001-Fix-QA-Issues.patch \ | ||
17 | file://0001-Add-print-function-to-print-test-run-status-in-ptest.patch \ | ||
18 | file://run-ptest \ | ||
19 | " | ||
20 | |||
21 | SRCREV = "d394222aef59e4759b06e39ec160e4aba6ee5f40" | ||
22 | |||
23 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
24 | |||
25 | DEPENDS += " clang-native bison-native flex-native" | ||
26 | DEPENDS:append:class-target = " clang" | ||
27 | RDEPENDS:${PN}-ptest += " python3-multiprocessing" | ||
28 | |||
29 | PACKAGECONFIG ??= "tbb" | ||
30 | PACKAGECONFIG[tbb] = "-DISPCRT_BUILD_TASK_MODEL=TBB, -DISPCRT_BUILD_TASK_MODEL=OpenMP, tbb" | ||
31 | |||
32 | YFLAGS = '-d -t -v -y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' | ||
33 | |||
34 | do_configure:prepend() { | ||
35 | sed -i -e 's#\${BISON_EXECUTABLE}.*#\${BISON_EXECUTABLE} ${YFLAGS} #g' ${S}/CMakeLists.txt | ||
36 | sed -i -e 's#\${FLEX_EXECUTABLE}.*#\${FLEX_EXECUTABLE} \-L #g' ${S}/CMakeLists.txt | ||
37 | } | ||
38 | |||
39 | do_install_ptest() { | ||
40 | cp -rf ${S}/run_tests.py ${D}${PTEST_PATH} | ||
41 | cp -rf ${S}/common.py ${D}${PTEST_PATH} | ||
42 | cp -rf ${S}/tests ${D}${PTEST_PATH} | ||
43 | cp -rf ${S}/test_static.isph ${D}${PTEST_PATH} | ||
44 | cp -rf ${S}/fail_db.txt ${D}${PTEST_PATH} | ||
45 | cp -rf ${S}/test_static.cpp ${D}${PTEST_PATH} | ||
46 | } | ||
47 | |||
48 | EXTRA_OECMAKE += " \ | ||
49 | -DISPC_INCLUDE_TESTS=OFF \ | ||
50 | -DISPC_INCLUDE_EXAMPLES=OFF \ | ||
51 | -DARM_ENABLED=OFF \ | ||
52 | -DISPC_CROSS=ON \ | ||
53 | -DISPC_ANDROID_TARGET=OFF \ | ||
54 | -DISPC_FREEBSD_TARGET=OFF \ | ||
55 | -DISPC_WINDOWS_TARGET=OFF \ | ||
56 | -DISPC_IOS_TARGET=OFF \ | ||
57 | -DISPC_PS_TARGET=OFF \ | ||
58 | -DSYSROOT_DIR=${STAGING_DIR} \ | ||
59 | -DCLANG_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang \ | ||
60 | -DCLANGPP_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang++ \ | ||
61 | -DLLVM_AS_EXECUTABLE=${STAGING_BINDIR_NATIVE}/llvm-as \ | ||
62 | " | ||
63 | |||
64 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/levelzero/level-zero_1.21.1.bb b/dynamic-layers/openembedded-layer/recipes-core/levelzero/level-zero_1.21.1.bb new file mode 100644 index 00000000..2e022f4a --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/levelzero/level-zero_1.21.1.bb | |||
@@ -0,0 +1,33 @@ | |||
1 | SUMMARY = "oneAPI Level Zero Specification Headers and Loader" | ||
2 | HOMEPAGE = "https://github.com/oneapi-src/level-zero" | ||
3 | LICENSE = "MIT" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=97957beb2f7808ffa247e5d93e6442cc" | ||
5 | |||
6 | SRC_URI = "git://github.com/oneapi-src/level-zero.git;protocol=https;branch=master" | ||
7 | SRCREV = "9536683855b17a21508e5b54ba358225d6a976da" | ||
8 | S = "${WORKDIR}/git" | ||
9 | |||
10 | inherit cmake | ||
11 | DEPENDS += "opencl-headers" | ||
12 | |||
13 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" | ||
14 | |||
15 | PACKAGES =+ "${PN}-headers ${PN}-samples ${PN}-loader" | ||
16 | |||
17 | do_install:append () { | ||
18 | install -d ${D}${bindir} ${D}${libdir} | ||
19 | install -m 755 ${B}/bin/zello* ${D}${bindir} | ||
20 | |||
21 | oe_libinstall -C lib libze_null ${D}${libdir} | ||
22 | } | ||
23 | |||
24 | |||
25 | FILES:${PN}-headers = "${includedir}" | ||
26 | FILES:${PN}-samples = "${bindir} ${libdir}/libze_null* ${libdir}/libze_validation*" | ||
27 | FILES:${PN}-loader = "${libdir}" | ||
28 | |||
29 | # PN-loader (non -dev/-dbg/nativesdk- package) contains symlink .so | ||
30 | INSANE_SKIP:${PN}-loader = "dev-so" | ||
31 | INSANE_SKIP:${PN}-samples = "dev-so" | ||
32 | ALLOW_EMPTY:${PN} = "1" | ||
33 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-Fix-the-compilation-warning-when-using-gcc-13-25.patch b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-Fix-the-compilation-warning-when-using-gcc-13-25.patch new file mode 100644 index 00000000..2748d7ab --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-Fix-the-compilation-warning-when-using-gcc-13-25.patch | |||
@@ -0,0 +1,99 @@ | |||
1 | From b57297c14d94dac9bdef7570b7b33d70b10171f3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jozef Wludzik <jozef.wludzik@intel.com> | ||
3 | Date: Tue, 26 Mar 2024 14:43:29 +0100 | ||
4 | Subject: [PATCH 1/2] Fix the compilation warning when using gcc-13 (#25) | ||
5 | |||
6 | Added missing headers. Fixed compilation error about casting from | ||
7 | unsigned to signed int. | ||
8 | |||
9 | Upstream-Status: Backport [https://github.com/intel/linux-npu-driver/commit/4bcbf2abe94eb4d9c083bd616b58e309a82d008a] | ||
10 | |||
11 | Signed-off-by: Jozef Wludzik <jozef.wludzik@intel.com> | ||
12 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
13 | --- | ||
14 | umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp | 7 ++++--- | ||
15 | umd/vpu_driver/include/umd_common.hpp | 1 + | ||
16 | validation/umd-test/umd_prime_buffers.h | 9 +++++++-- | ||
17 | validation/umd-test/utilities/data_handle.h | 1 + | ||
18 | 4 files changed, 13 insertions(+), 5 deletions(-) | ||
19 | |||
20 | diff --git a/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp b/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp | ||
21 | index f206ebe..682e5b4 100644 | ||
22 | --- a/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp | ||
23 | +++ b/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp | ||
24 | @@ -5,12 +5,13 @@ | ||
25 | * | ||
26 | */ | ||
27 | |||
28 | -#include <dlfcn.h> | ||
29 | -#include <memory> | ||
30 | - | ||
31 | #include "vpux_driver_compiler.h" | ||
32 | #include "vpu_driver/source/utilities/log.hpp" | ||
33 | |||
34 | +#include <array> | ||
35 | +#include <dlfcn.h> | ||
36 | +#include <memory> | ||
37 | + | ||
38 | class Vcl { | ||
39 | public: | ||
40 | static Vcl &sym() { | ||
41 | diff --git a/umd/vpu_driver/include/umd_common.hpp b/umd/vpu_driver/include/umd_common.hpp | ||
42 | index 0c874a3..5ad9be2 100644 | ||
43 | --- a/umd/vpu_driver/include/umd_common.hpp | ||
44 | +++ b/umd/vpu_driver/include/umd_common.hpp | ||
45 | @@ -7,6 +7,7 @@ | ||
46 | |||
47 | #pragma once | ||
48 | |||
49 | +#include <cstdint> | ||
50 | #include <limits> | ||
51 | #include <linux/kernel.h> | ||
52 | #include <stdexcept> | ||
53 | diff --git a/validation/umd-test/umd_prime_buffers.h b/validation/umd-test/umd_prime_buffers.h | ||
54 | index 6f7c7de..ab4814c 100644 | ||
55 | --- a/validation/umd-test/umd_prime_buffers.h | ||
56 | +++ b/validation/umd-test/umd_prime_buffers.h | ||
57 | @@ -6,12 +6,17 @@ | ||
58 | */ | ||
59 | |||
60 | #pragma once | ||
61 | + | ||
62 | +#include "umd_test.h" | ||
63 | + | ||
64 | #include <fcntl.h> | ||
65 | -#include <linux/kernel.h> | ||
66 | #include <linux/dma-buf.h> | ||
67 | #include <linux/dma-heap.h> | ||
68 | +#include <linux/kernel.h> | ||
69 | +#include <stdint.h> | ||
70 | #include <sys/ioctl.h> | ||
71 | #include <sys/mman.h> | ||
72 | +#include <unistd.h> | ||
73 | |||
74 | #define ALLIGN_TO_PAGE(x) __ALIGN_KERNEL((x), (UmdTest::PAGE_SIZE)) | ||
75 | |||
76 | @@ -60,7 +65,7 @@ class PrimeBufferHelper { | ||
77 | return false; | ||
78 | |||
79 | bufferFd = heapAlloc.fd; | ||
80 | - buffers.insert({heapAlloc.fd, {size, nullptr}}); | ||
81 | + buffers.insert({static_cast<int>(heapAlloc.fd), {size, nullptr}}); | ||
82 | return true; | ||
83 | } | ||
84 | |||
85 | diff --git a/validation/umd-test/utilities/data_handle.h b/validation/umd-test/utilities/data_handle.h | ||
86 | index d6e0ec0..5d937b2 100644 | ||
87 | --- a/validation/umd-test/utilities/data_handle.h | ||
88 | +++ b/validation/umd-test/utilities/data_handle.h | ||
89 | @@ -6,6 +6,7 @@ | ||
90 | */ | ||
91 | |||
92 | #include <linux/kernel.h> | ||
93 | +#include <stdint.h> | ||
94 | #include <string> | ||
95 | #include <vector> | ||
96 | |||
97 | -- | ||
98 | 2.43.0 | ||
99 | |||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-linux-npu-driver-fix-multilib-install-issue.patch b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-linux-npu-driver-fix-multilib-install-issue.patch new file mode 100644 index 00000000..71a60b20 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0001-linux-npu-driver-fix-multilib-install-issue.patch | |||
@@ -0,0 +1,28 @@ | |||
1 | From 561e3b5edc0ec3d8835aaf8ef8e5c9e8f9b53061 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
3 | Date: Wed, 28 May 2025 13:35:18 +0800 | ||
4 | Subject: [PATCH] linux-npu-driver : fix multilib install issue | ||
5 | |||
6 | Upstream-Status: Inappropriate [oe specific] | ||
7 | |||
8 | Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
9 | --- | ||
10 | firmware/CMakeLists.txt | 2 +- | ||
11 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/firmware/CMakeLists.txt b/firmware/CMakeLists.txt | ||
14 | index 0c093ca..ba346a0 100644 | ||
15 | --- a/firmware/CMakeLists.txt | ||
16 | +++ b/firmware/CMakeLists.txt | ||
17 | @@ -12,7 +12,7 @@ target_include_directories(${PROJECT_NAME} INTERFACE include) | ||
18 | file(GLOB FIRMWARE_BINARIES ${CMAKE_CURRENT_SOURCE_DIR}/bin/*.bin) | ||
19 | if (FIRMWARE_BINARIES) | ||
20 | install(FILES ${FIRMWARE_BINARIES} | ||
21 | - DESTINATION /lib/firmware/updates/intel/vpu/ | ||
22 | + DESTINATION ${CMAKE_INSTALL_FIRMWARE_DIR}/firmware/updates/intel/vpu/ | ||
23 | PERMISSIONS OWNER_READ | ||
24 | COMPONENT fw-npu) | ||
25 | endif() | ||
26 | -- | ||
27 | 2.37.3 | ||
28 | |||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0002-Fix-compilation-failure-with-GCC-14.patch b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0002-Fix-compilation-failure-with-GCC-14.patch new file mode 100644 index 00000000..9fb97354 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver/0002-Fix-compilation-failure-with-GCC-14.patch | |||
@@ -0,0 +1,110 @@ | |||
1 | From a9f51fd88effb7d324609e692ca7da576d6dad2e Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Tue, 28 May 2024 10:23:42 +0800 | ||
4 | Subject: [PATCH 2/2] Fix compilation failure with GCC-14 | ||
5 | |||
6 | umd/level_zero_driver/core/source/event/event.cpp:65:31: error: 'remove_if' is not a member of 'std'; did you mean 'remove_cv'? | ||
7 | | 65 | associatedJobs.erase(std::remove_if(associatedJobs.begin(), | ||
8 | | | ^~~~~~~~~ | ||
9 | | | remove_cv | ||
10 | |||
11 | | umd/vpu_driver/source/command/vpu_command.cpp: In member function 'void VPU::VPUCommand::appendAssociateBufferObject(VPU::VPUBufferObject*)': | ||
12 | | umd/vpu_driver/source/command/vpu_command.cpp:126:20: error: 'find' is not a member of 'std'; did you mean 'bind'? | ||
13 | | 126 | auto it = std::find(bufferObjects.begin(), bufferObjects.end(), bo); | ||
14 | | | ^~~~ | ||
15 | | | bind | ||
16 | |||
17 | | umd/vpu_driver/source/command/vpu_command_buffer.cpp: In member function 'bool VPU::VPUCommandBuffer::addCommand(VPU::VPUCommand*, uint64_t&, uint64_t&)': | ||
18 | | umd/vpu_driver/source/command/vpu_command_buffer.cpp:185:24: error: 'find' is not a member of 'std'; did you mean 'bind'? | ||
19 | | 185 | auto it = std::find(bufferHandles.begin(), bufferHandles.end(), bo->getHandle()); | ||
20 | | | ^~~~ | ||
21 | | | bind | ||
22 | |||
23 | | umd/level_zero_driver/ext/source/graph/elf_parser.cpp:301:32: error: 'max_element' is not a member of 'std'; did you mean 'tuple_element'? | ||
24 | | 301 | std::max_element(stride_begin + TENSOR_5D_STRIDE_C, stride_end)); | ||
25 | | | ^~~~~~~~~~~ | ||
26 | | | tuple_element | ||
27 | | umd/level_zero_driver/ext/source/graph/elf_parser.cpp:315:37: error: 'max_element' is not a member of 'std'; did you mean 'tuple_element'? | ||
28 | | 315 | auto max_stride_val = *std::max_element(stride_begin + TENSOR_4D_STRIDE_C, stride_end); | ||
29 | | | ^~~~~~~~~~~ | ||
30 | |||
31 | | umd/level_zero_driver/tools/source/metrics/metric.cpp: In member function 'void L0::MetricContext::deactivateMetricGroups(int)': | ||
32 | | umd/level_zero_driver/tools/source/metrics/metric.cpp:275:38: error: 'remove_if' is not a member of 'std'; did you mean 'remove_cv'? | ||
33 | | 275 | activatedMetricGroups.erase(std::remove_if(activatedMetricGroups.begin(), | ||
34 | | | ^~~~~~~~~ | ||
35 | | | remove_cv | ||
36 | |||
37 | Upstream-Status: Submitted [https://github.com/intel/linux-npu-driver/pull/30] | ||
38 | |||
39 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
40 | --- | ||
41 | umd/level_zero_driver/core/source/event/event.cpp | 1 + | ||
42 | umd/level_zero_driver/ext/source/graph/elf_parser.cpp | 1 + | ||
43 | umd/level_zero_driver/tools/source/metrics/metric.cpp | 1 + | ||
44 | umd/vpu_driver/source/command/vpu_command.cpp | 1 + | ||
45 | umd/vpu_driver/source/command/vpu_command_buffer.cpp | 1 + | ||
46 | 5 files changed, 5 insertions(+) | ||
47 | |||
48 | diff --git a/umd/level_zero_driver/core/source/event/event.cpp b/umd/level_zero_driver/core/source/event/event.cpp | ||
49 | index a92248f..196d176 100644 | ||
50 | --- a/umd/level_zero_driver/core/source/event/event.cpp | ||
51 | +++ b/umd/level_zero_driver/core/source/event/event.cpp | ||
52 | @@ -14,6 +14,7 @@ | ||
53 | |||
54 | #include <level_zero/ze_api.h> | ||
55 | #include <thread> | ||
56 | +#include <algorithm> | ||
57 | |||
58 | namespace L0 { | ||
59 | |||
60 | diff --git a/umd/level_zero_driver/ext/source/graph/elf_parser.cpp b/umd/level_zero_driver/ext/source/graph/elf_parser.cpp | ||
61 | index a1c8e14..dfbd61d 100644 | ||
62 | --- a/umd/level_zero_driver/ext/source/graph/elf_parser.cpp | ||
63 | +++ b/umd/level_zero_driver/ext/source/graph/elf_parser.cpp | ||
64 | @@ -21,6 +21,7 @@ | ||
65 | #include <vpux_headers/metadata.hpp> | ||
66 | #include <vpux_elf/types/vpu_extensions.hpp> | ||
67 | #include <vpux_elf/utils/error.hpp> | ||
68 | +#include <algorithm> | ||
69 | |||
70 | namespace L0 { | ||
71 | |||
72 | diff --git a/umd/level_zero_driver/tools/source/metrics/metric.cpp b/umd/level_zero_driver/tools/source/metrics/metric.cpp | ||
73 | index b67750f..9497311 100644 | ||
74 | --- a/umd/level_zero_driver/tools/source/metrics/metric.cpp | ||
75 | +++ b/umd/level_zero_driver/tools/source/metrics/metric.cpp | ||
76 | @@ -7,6 +7,7 @@ | ||
77 | |||
78 | #include "level_zero_driver/tools/source/metrics/metric.hpp" | ||
79 | #include "vpu_driver/source/utilities/log.hpp" | ||
80 | +#include <algorithm> | ||
81 | |||
82 | namespace L0 { | ||
83 | |||
84 | diff --git a/umd/vpu_driver/source/command/vpu_command.cpp b/umd/vpu_driver/source/command/vpu_command.cpp | ||
85 | index f4ca23f..75331d9 100644 | ||
86 | --- a/umd/vpu_driver/source/command/vpu_command.cpp | ||
87 | +++ b/umd/vpu_driver/source/command/vpu_command.cpp | ||
88 | @@ -14,6 +14,7 @@ | ||
89 | #include <cstdint> | ||
90 | #include <vector> | ||
91 | #include <map> | ||
92 | +#include <algorithm> | ||
93 | |||
94 | namespace VPU { | ||
95 | |||
96 | diff --git a/umd/vpu_driver/source/command/vpu_command_buffer.cpp b/umd/vpu_driver/source/command/vpu_command_buffer.cpp | ||
97 | index c4ad052..bbb80ec 100644 | ||
98 | --- a/umd/vpu_driver/source/command/vpu_command_buffer.cpp | ||
99 | +++ b/umd/vpu_driver/source/command/vpu_command_buffer.cpp | ||
100 | @@ -11,6 +11,7 @@ | ||
101 | #include "vpu_driver/source/command/vpu_command_buffer.hpp" | ||
102 | #include "vpu_driver/source/command/vpu_copy_command.hpp" | ||
103 | #include "vpu_driver/source/utilities/log.hpp" | ||
104 | +#include <algorithm> | ||
105 | |||
106 | namespace VPU { | ||
107 | |||
108 | -- | ||
109 | 2.43.0 | ||
110 | |||
diff --git a/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver_1.17.0.bb b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver_1.17.0.bb new file mode 100644 index 00000000..2014e448 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-core/linux-npu-driver/linux-npu-driver_1.17.0.bb | |||
@@ -0,0 +1,45 @@ | |||
1 | SUMMARY = "User Mode Driver for Intel® NPU device" | ||
2 | HOMEPAGE = "https://github.com/intel/linux-npu-driver" | ||
3 | LICENSE = "MIT & Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7b256470048be42466f7d10e1d6482e6 \ | ||
5 | file://third-party-programs.txt;md5=0ae40d7f1ef3bbd509197e427fdd7e70 \ | ||
6 | file://third_party/vpux_elf/LICENSE;md5=a7a2dfa2b52a22cf2257893ee87ba11c" | ||
7 | |||
8 | SRC_URI = "git://github.com/intel/linux-npu-driver.git;protocol=https;name=linux-npu-driver;branch=main;lfs=1 \ | ||
9 | git://github.com/openvinotoolkit/npu_plugin_elf.git;protocol=https;destsuffix=git/third_party/vpux_elf;name=vpux-elf;nobranch=1 \ | ||
10 | git://github.com/jbeder/yaml-cpp.git;protocol=https;destsuffix=git/third_party/yaml-cpp;name=yaml-cpp;nobranch=1 \ | ||
11 | git://github.com/intel/level-zero-npu-extensions.git;protocol=https;destsuffix=git/third_party/level-zero-npu-extensions;name=lzvext;nobranch=1 \ | ||
12 | git://github.com/google/googletest.git;protocol=https;destsuffix=git/third_party/googletest;name=googletest;nobranch=1 \ | ||
13 | file://0001-linux-npu-driver-fix-multilib-install-issue.patch \ | ||
14 | " | ||
15 | |||
16 | SRCREV_linux-npu-driver = "0fe92dd0720448fb571f0ac4e5e64ef9f2ec3bd7" | ||
17 | SRCREV_vpux-elf = "50f2b13dbb6dd435c3e2ef6f8abb7393633bfcdd" | ||
18 | SRCREV_yaml-cpp = "f7320141120f720aecc4c32be25586e7da9eb978" | ||
19 | SRCREV_lzvext = "c7d8f849d6a8195c1db38cbaca8d431cbabf3a6e" | ||
20 | SRCREV_googletest = "b514bdc898e2951020cbdca1304b75f5950d1f59" | ||
21 | SRCREV_FORMAT = "linux-npu-driver_vpux-elf_yaml-cpp_lzvext_googletest" | ||
22 | |||
23 | S = "${WORKDIR}/git" | ||
24 | |||
25 | inherit cmake | ||
26 | |||
27 | |||
28 | # Fix warning _FORTIFY_SOURCE requires compiling with optimization (-O) | ||
29 | EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release " | ||
30 | EXTRA_OECMAKE += " -DCMAKE_CXX_FLAGS_RELEASE=-O2 " | ||
31 | |||
32 | EXTRA_OECMAKE += " -DCMAKE_CXX_FLAGS='-I${RECIPE_SYSROOT}/usr/include/level_zero'" | ||
33 | EXTRA_OECMAKE += " -DCMAKE_INSTALL_FIRMWARE_DIR=${nonarch_base_libdir}" | ||
34 | |||
35 | DEPENDS = "level-zero dpkg-native pkgconfig-native" | ||
36 | |||
37 | PACKAGES =+ "${PN}-firmware ${PN}-tests" | ||
38 | |||
39 | FILES:${PN}-firmware = "${nonarch_base_libdir}/firmware/updates/intel/vpu/*" | ||
40 | FILES:${PN}-tests = "${bindir}" | ||
41 | |||
42 | INSANE_SKIP:${PN} += "buildpaths" | ||
43 | INSANE_SKIP:${PN}-dbg += "buildpaths" | ||
44 | INSANE_SKIP:${PN}-tests += "buildpaths" | ||
45 | INSANE_SKIP:${PN}-firmware += "buildpaths" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb new file mode 100644 index 00000000..d881610f --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb | |||
@@ -0,0 +1,54 @@ | |||
1 | SUMMARY = "Intel® oneAPI DPC++/C++ Compiler runtime files" | ||
2 | DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \ | ||
3 | that help your applications run faster on Intel® 64 architectures with support \ | ||
4 | for the latest C, C++, and SYCL language standards. This compiler produces \ | ||
5 | optimized code that can run significantly faster by taking advantage of the \ | ||
6 | ever-increasing core count and vector register width in Intel® Xeon® processors \ | ||
7 | and compatible processors." | ||
8 | |||
9 | HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html" | ||
10 | |||
11 | LICENSE = "EULA" | ||
12 | |||
13 | COMPILERMAINVER = "2024.0" | ||
14 | |||
15 | LIC_FILES_CHKSUM = " \ | ||
16 | file://opt/intel/oneapi/licensing/${COMPILERMAINVER}/licensing/${COMPILERMAINVER}/license.htm;md5=5ff64c6ff3ef98089ed69360e7a84c39 \ | ||
17 | " | ||
18 | COMPILERDOTVER = "2024.0.0-49406" | ||
19 | DEVUTILITVERSION = "2024.0-2024.0.0-49320" | ||
20 | SRC_URI = " \ | ||
21 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=dpcpp-runtime \ | ||
22 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=dpcpp-common \ | ||
23 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-shared-runtime \ | ||
24 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-vars-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=common-vars \ | ||
25 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=openmp \ | ||
26 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=openmp-common \ | ||
27 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-licensing-${COMPILERMAINVER}-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=license \ | ||
28 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dev-utilities-${DEVUTILITVERSION}_amd64.deb;subdir=${BPN};name=dev-utils \ | ||
29 | " | ||
30 | |||
31 | SRC_URI[dpcpp-runtime.sha256sum] = "e24f0ba69daf3f66ceaf23d5e632f183cdb90bac69f65407fdb4407fc9034f33" | ||
32 | SRC_URI[dpcpp-common.sha256sum] = "f5a3db6a725598224edf1099260955aee3e36beadcaed2af5b8b453e873a82fa" | ||
33 | SRC_URI[compiler-shared-runtime.sha256sum] = "bce010cbe076259ddd3feb8e69792869e22fccd5b4e2c9af9e815826f2c1a394" | ||
34 | SRC_URI[common-vars.sha256sum] = "368553c99db1b52060b8225355336778be0b00e5991d0f769c42f891c6328750" | ||
35 | SRC_URI[openmp.sha256sum] = "154ff1e81adfdc872ba1d47bd860de70d62188417c7128422435dfd0ceca62fe" | ||
36 | SRC_URI[openmp-common.sha256sum] = "8217001d78311cbef97dd139e684c6767932b532309c3843ba57d7894d15c07d" | ||
37 | SRC_URI[license.sha256sum] = "9f9c8a12fc0bc82ab5b71e118e66745eff23f42224eba304068225b366cd74b6" | ||
38 | SRC_URI[dev-utils.sha256sum] = "c675d960a5abca361cead9217d6e74adee499ee0a095c4e44092bd710b304d50" | ||
39 | |||
40 | S = "${WORKDIR}/${BPN}" | ||
41 | |||
42 | inherit bin_package | ||
43 | |||
44 | RDEPENDS:${PN} += "virtual-opencl-icd zlib tbb level-zero-loader bash tcsh" | ||
45 | SKIP_FILEDEPS:${PN} = '1' | ||
46 | |||
47 | INHIBIT_PACKAGE_STRIP = "1" | ||
48 | INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | ||
49 | |||
50 | # doesn't have GNU_HASH (didn't pass LDFLAGS?) | ||
51 | INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped staticdev rpaths arch useless-rpaths file-rdeps" | ||
52 | |||
53 | FILES_SOLIBSDEV = "" | ||
54 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb new file mode 100644 index 00000000..74af3f93 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/dpcpp-compiler/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb | |||
@@ -0,0 +1,45 @@ | |||
1 | SUMMARY = "Intel® oneAPI DPC++/C++ Compiler" | ||
2 | DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \ | ||
3 | that help your applications run faster on Intel® 64 architectures with support \ | ||
4 | for the latest C, C++, and SYCL language standards. This compiler produces \ | ||
5 | optimized code that can run significantly faster by taking advantage of the \ | ||
6 | ever-increasing core count and vector register width in Intel® Xeon® processors \ | ||
7 | and compatible processors." | ||
8 | |||
9 | HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html" | ||
10 | |||
11 | LICENSE = "EULA" | ||
12 | |||
13 | COMPILERMAINVER = "2024.0" | ||
14 | |||
15 | LIC_FILES_CHKSUM = " \ | ||
16 | file://opt/intel/oneapi/compiler/${COMPILERMAINVER}/share/doc/compiler/credist.txt;md5=b41f55af9f479b9570fc35b955d5ba1a \ | ||
17 | " | ||
18 | |||
19 | SRC_URI = " \ | ||
20 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dpcpp-cpp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=icx-compiler \ | ||
21 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-linker \ | ||
22 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=shared-common \ | ||
23 | " | ||
24 | |||
25 | SRC_URI[icx-compiler.sha256sum] = "0dcbac766d5a1519d4cf393f5a85e71d19024fef65f77638f3f849796b62cd82" | ||
26 | SRC_URI[compiler-linker.sha256sum] = "e00faea6d797934d62143e4aa70b727ce30f80fdf30769d22122b3051140c236" | ||
27 | SRC_URI[shared-common.sha256sum] = "cf490a4a790f349da79e618359598d3b32312ca3b2639e5d4c84e1cfa2745558" | ||
28 | |||
29 | S = "${WORKDIR}/${BPN}" | ||
30 | |||
31 | inherit bin_package | ||
32 | |||
33 | RDEPENDS:${PN} += "intel-oneapi-dpcpp-cpp-runtime" | ||
34 | SKIP_FILEDEPS:${PN} = '1' | ||
35 | |||
36 | INHIBIT_PACKAGE_STRIP = "1" | ||
37 | INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | ||
38 | |||
39 | # doesn't have GNU_HASH (didn't pass LDFLAGS?) | ||
40 | INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped file-rdeps staticdev rpaths arch useless-rpaths" | ||
41 | |||
42 | FILES_SOLIBSDEV = "" | ||
43 | |||
44 | EXCLUDE_FROM_SHLIBS = "1" | ||
45 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/embree/embree_4.3.3.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/embree/embree_4.3.3.bb new file mode 100644 index 00000000..416deec1 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/embree/embree_4.3.3.bb | |||
@@ -0,0 +1,32 @@ | |||
1 | SUMMARY = "Collection of high-performance ray tracing kernels" | ||
2 | DESCRIPTION = "A collection of high-performance ray tracing kernels \ | ||
3 | intended to graphics application engineers that want to improve the \ | ||
4 | performance of their application." | ||
5 | HOMEPAGE = "https://github.com/embree/embree" | ||
6 | |||
7 | LICENSE = "Apache-2.0 & BSD-3-Clause" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \ | ||
9 | file://third-party-programs.txt;md5=f989f5b74cfff0d45d3ccf0e1366cbdc \ | ||
10 | file://common/math/transcendental.h;beginline=6;endline=8;md5=73380bb2ab6613b30b8464f114bd0ca8" | ||
11 | |||
12 | inherit pkgconfig cmake | ||
13 | |||
14 | S = "${WORKDIR}/git" | ||
15 | |||
16 | SRC_URI = "git://github.com/embree/embree.git;protocol=https;branch=master" | ||
17 | SRCREV = "5730b150471602d6dc02d9b7d8a4a6ce9ceffe16" | ||
18 | |||
19 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
20 | COMPATIBLE_HOST:libc-musl = "null" | ||
21 | |||
22 | DEPENDS = "tbb jpeg libpng glfw ispc-native" | ||
23 | |||
24 | EXTRA_OECMAKE += " \ | ||
25 | -DEMBREE_IGNORE_CMAKE_CXX_FLAGS=OFF \ | ||
26 | -DEMBREE_MAX_ISA=DEFAULT \ | ||
27 | -DEMBREE_TUTORIALS=OFF \ | ||
28 | -DEMBREE_ISPC_SUPPORT=ON \ | ||
29 | -DEMBREE_ZIP_MODE=OFF \ | ||
30 | " | ||
31 | |||
32 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/ipp/intel-oneapi-ipp_2021.10.0-653.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/ipp/intel-oneapi-ipp_2021.10.0-653.bb new file mode 100644 index 00000000..1841253e --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/ipp/intel-oneapi-ipp_2021.10.0-653.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | DESCRIPTION = "Intel® Integrated Performance Primitives are production-ready \ | ||
2 | building blocks for cross-platform performance. Develop high-performance vision, \ | ||
3 | signal, security, and storage applications with this multithreaded software library." | ||
4 | HOMEPAGE = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html" | ||
5 | |||
6 | LICENSE = "ISSL" | ||
7 | |||
8 | MAXVER = "2021.10" | ||
9 | |||
10 | LIC_FILES_CHKSUM = " \ | ||
11 | file://opt/intel/oneapi/ipp/${MAXVER}/share/doc/ipp/licensing/license.txt;md5=d7cdc92ed6c4de1263da879599ddc3e2 \ | ||
12 | file://opt/intel/oneapi/ipp/${MAXVER}/share/doc/ipp/licensing/third-party-programs.txt;md5=22bd13987911dcf790907041b43081f3 \ | ||
13 | " | ||
14 | SRC_URI = " \ | ||
15 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-${MAXVER}-${PV}_amd64.deb;subdir=${BPN};name=ipp \ | ||
16 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-common-devel-${MAXVER}-${PV}_all.deb;subdir=${BPN};name=headers \ | ||
17 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-common-${MAXVER}-${PV}_all.deb;subdir=${BPN};name=env \ | ||
18 | " | ||
19 | |||
20 | SRC_URI[ipp.sha256sum] = "b51e45c6e691aa46c7136b0ab61f5abe346388433e017a30cf53fd23e92bea07" | ||
21 | SRC_URI[headers.sha256sum] = "342f37ab2f82bc9f4498435f848ee660591c2488b44d988bf6ee96b2a71fd005" | ||
22 | SRC_URI[env.sha256sum] = "731e8c28a3b8b757730cd874d0941de2eb744856128f24ade59d36c12b415bf6" | ||
23 | |||
24 | S = "${WORKDIR}/${BPN}" | ||
25 | |||
26 | COMPATIBLE_HOST:libc-musl = "null" | ||
27 | |||
28 | inherit bin_package | ||
29 | |||
30 | INHIBIT_PACKAGE_STRIP = "1" | ||
31 | INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | ||
32 | INHIBIT_DEFAULT_DEPS = "" | ||
33 | |||
34 | RDEPENDS:${PN} += "tbb setup-intel-oneapi-env" | ||
35 | INSANE_SKIP:${PN} += "ldflags dev-so" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/mkl/intel-oneapi-mkl_2024.0.0-49656.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/mkl/intel-oneapi-mkl_2024.0.0-49656.bb new file mode 100644 index 00000000..e3e93028 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/mkl/intel-oneapi-mkl_2024.0.0-49656.bb | |||
@@ -0,0 +1,74 @@ | |||
1 | SUMMARY = "Intel® oneAPI Math Kernel Library (oneMKL)" | ||
2 | DESCRIPTION = "The Intel® oneAPI Math Kernel Library (oneMKL) is a computing \ | ||
3 | math library of highly optimized and extensively parallelized routines \ | ||
4 | for applications that require maximum performance. oneMKL contains \ | ||
5 | the high-performance optimizations from the full Intel® Math Kernel Library \ | ||
6 | for CPU architectures (with C/Fortran programming language interfaces)\ | ||
7 | and adds to them a set of DPC++ programming language interfaces for \ | ||
8 | achieving performance on various CPU architectures \ | ||
9 | and Intel Graphics Technology for certain key functionalities." | ||
10 | HOMEPAGE = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html" | ||
11 | |||
12 | LICENSE = "ISSL" | ||
13 | |||
14 | MKLMAINVER = "2024.0" | ||
15 | |||
16 | LIC_FILES_CHKSUM = " \ | ||
17 | file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/license.txt;md5=8510d21bf355a76e378c3216c3929ccd \ | ||
18 | file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-benchmarks.txt;md5=cb98e1a1f14c05ea85a979ea8982e7a4 \ | ||
19 | file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-ipp.txt;md5=a4b2bf15e38f5c1267cdafed18bc0b09 \ | ||
20 | file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-openmp.txt;md5=6b3c1aa2a11393060074c0346ce21e49 \ | ||
21 | file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-safestring.txt;md5=c3aeee91c6d35a0f0753aed6c2633b82 \ | ||
22 | file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs.txt;md5=27de873e4084d62530fe828406b33ca9 \ | ||
23 | " | ||
24 | |||
25 | SRC_URI = " \ | ||
26 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=runtime \ | ||
27 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-devel-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-devel \ | ||
28 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-devel-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=devel \ | ||
29 | https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-vars \ | ||
30 | " | ||
31 | |||
32 | SRC_URI[runtime.sha256sum] = "10a86e24051d6ef4a80fd839c570e629190638a3c0ac9bcca99ab855f534b959" | ||
33 | SRC_URI[common-devel.sha256sum] = "adbf0ea946f63946d29b7f9c750c38a42ea7a65d8c81655b268aa2c7bb908192" | ||
34 | SRC_URI[devel.sha256sum] = "fab2a6f15e18bfd9b4d425f2703e4e98928c57f52c4feebc9ed886f097062e84" | ||
35 | SRC_URI[common-vars.sha256sum] = "ec2b67813739fa4a2895f63479a41acba2174afe2d0cb8a0c1c9119d1317d8ef" | ||
36 | |||
37 | S = "${WORKDIR}/${BPN}" | ||
38 | |||
39 | inherit bin_package | ||
40 | |||
41 | do_install:append () { | ||
42 | install -d ${D}${bindir} | ||
43 | (cd ${D}${bindir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/bin/* .) | ||
44 | install -d ${D}${libdir} | ||
45 | (cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.so* .) | ||
46 | (cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.a* .) | ||
47 | install -d ${D}${libdir}/pkgconfig | ||
48 | (cd ${D}${libdir}/pkgconfig ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/pkgconfig/* .) | ||
49 | install -d ${D}${libdir}/cmake | ||
50 | (cd ${D}${libdir}/cmake ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/cmake/* .) | ||
51 | |||
52 | install -d ${D}${includedir} | ||
53 | find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read srcdir; do | ||
54 | install -d ${D}${includedir}/$srcdir | ||
55 | (cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcdir/* ./$srcdir/) | ||
56 | done | ||
57 | |||
58 | find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type f -printf '%f\n' | while read srcfile; do | ||
59 | (cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcfile .) | ||
60 | done | ||
61 | } | ||
62 | |||
63 | AUTO_LIBNAME_PKGS = "" | ||
64 | INHIBIT_PACKAGE_STRIP = "1" | ||
65 | INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | ||
66 | |||
67 | RDEPENDS:${PN} += "bash tbb intel-oneapi-dpcpp-cpp-runtime setup-intel-oneapi-env virtual-opencl-icd" | ||
68 | INSANE_SKIP:${PN} = "ldflags textrel dev-so staticdev arch already-stripped" | ||
69 | |||
70 | FILES:${PN}-staticdev += "/opt/intel/oneapi/mkl/${MKLMAINVER}/lib/*.a*" | ||
71 | |||
72 | SKIP_FILEDEPS:${PN} = '1' | ||
73 | |||
74 | SYSROOT_DIRS += "/opt" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/oidn/oidn_2.1.0.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/oidn/oidn_2.1.0.bb new file mode 100644 index 00000000..8005f544 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/oidn/oidn_2.1.0.bb | |||
@@ -0,0 +1,27 @@ | |||
1 | SUMMARY = "Intel® Open Image Denoise" | ||
2 | DESCRIPTION = "Intel Open Image Denoise is an open source library of \ | ||
3 | high-performance, high-quality denoising filters for images \ | ||
4 | rendered with ray tracing. Intel Open Image Denoise is part \ | ||
5 | of the Intel® oneAPI Rendering Toolkit" | ||
6 | HOMEPAGE = "https://www.openimagedenoise.org/" | ||
7 | |||
8 | LICENSE = "Apache-2.0 & BSD-3-Clause" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \ | ||
10 | file://external/mkl-dnn/LICENSE;md5=b48e3de3bfd47c27882a0d85b20823f5 \ | ||
11 | file://external/mkl-dnn/src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \ | ||
12 | file://external/mkl-dnn/src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \ | ||
13 | file://weights/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
14 | |||
15 | SRC_URI = "https://github.com/OpenImageDenoise/${BPN}/releases/download/v${PV}/${BP}.src.tar.gz\ | ||
16 | " | ||
17 | SRC_URI[sha256sum] = "ce144ba582ff36563d9442ee07fa2a4d249bc85aa93e5b25fc527ff4ee755ed6" | ||
18 | |||
19 | inherit cmake | ||
20 | |||
21 | DEPENDS += "tbb ispc-native" | ||
22 | |||
23 | do_install:append() { | ||
24 | chrpath -d ${D}${bindir}/* ${D}${libdir}/*${SOLIBS} | ||
25 | } | ||
26 | |||
27 | UPSTREAM_CHECK_URI = "https://github.com/OpenImageDenoise/oidn/releases" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/openvkl/openvkl_2.0.1.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/openvkl/openvkl_2.0.1.bb new file mode 100644 index 00000000..a2d709a1 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/openvkl/openvkl_2.0.1.bb | |||
@@ -0,0 +1,42 @@ | |||
1 | SUMMARY = "Intel(R) Open Volume Kernel Library" | ||
2 | DESCRIPTION = "Intel(R) Open Volume Kernel Library (Intel(R) Open VKL) is a \ | ||
3 | collection of high-performance volume computation kernels. The target users \ | ||
4 | of Open VKL are graphics application engineers who want to improve the \ | ||
5 | performance of their volume rendering applications by leveraging Open VKL’s \ | ||
6 | performance-optimized kernels, which include volume traversal and sampling \ | ||
7 | functionality for a variety of volumetric data formats. The kernels are optimized \ | ||
8 | for the latest Intel(R) processors with support for SSE, AVX, AVX2, and AVX-512 \ | ||
9 | instructions." | ||
10 | HOMEPAGE = "https://www.openvkl.org/" | ||
11 | |||
12 | LICENSE = "Apache-2.0 & BSD-3-Clause & MIT & Zlib" | ||
13 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \ | ||
14 | file://third-party-programs.txt;md5=69ec7caf49616c471161b921f53d5ec0 \ | ||
15 | file://testing/external/half.hpp;beginline=1;endline=17;md5=4b60058493630c3bd0ef145470f04a7b" | ||
16 | |||
17 | inherit pkgconfig cmake | ||
18 | |||
19 | S = "${WORKDIR}/git" | ||
20 | |||
21 | SRC_URI = "git://github.com/openvkl/openvkl.git;protocol=https;branch=master \ | ||
22 | " | ||
23 | SRCREV = "8c6ba526813b871a624cb9d73d4cbb689ac7f4ce" | ||
24 | |||
25 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
26 | COMPATIBLE_HOST:libc-musl = "null" | ||
27 | |||
28 | DEPENDS = "ispc ispc-native rkcommon embree" | ||
29 | |||
30 | EXTRA_OECMAKE += " \ | ||
31 | -DISPC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/ispc \ | ||
32 | " | ||
33 | EXTRA_OECMAKE:intel-corei7-64 += " \ | ||
34 | -DOPENVKL_ISA_AVX=OFF \ | ||
35 | -DOPENVKL_ISA_AVX2=OFF \ | ||
36 | -DOPENVKL_ISA_AVX512SKX=OFF \ | ||
37 | " | ||
38 | |||
39 | PACKAGES =+ "${PN}-examples" | ||
40 | FILES:${PN}-examples = "\ | ||
41 | ${bindir} \ | ||
42 | " | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray/0001-Fix-GCC11-Compile-Error-in-benchmark_register.h.patch b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray/0001-Fix-GCC11-Compile-Error-in-benchmark_register.h.patch new file mode 100644 index 00000000..c2136321 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray/0001-Fix-GCC11-Compile-Error-in-benchmark_register.h.patch | |||
@@ -0,0 +1,28 @@ | |||
1 | From 09e6b6615d9a16e9555eff9d569356e32bd26aa4 Mon Sep 17 00:00:00 2001 | ||
2 | From: benradel <86351445+benradel@users.noreply.github.com> | ||
3 | Date: Wed, 23 Jun 2021 11:56:03 +0200 | ||
4 | Subject: [PATCH] Fix GCC11 Compile Error in benchmark_register.h | ||
5 | |||
6 | Fix GCC11 compilation error due to missing header "limits" in benchmark_register.h | ||
7 | |||
8 | Upstream-Status: Submitted [https://github.com/ospray/ospray/pull/484/files] | ||
9 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
10 | --- | ||
11 | apps/common/external/benchmark/src/benchmark_register.h | 1 + | ||
12 | 1 file changed, 1 insertion(+) | ||
13 | |||
14 | diff --git a/apps/common/external/benchmark/src/benchmark_register.h b/apps/common/external/benchmark/src/benchmark_register.h | ||
15 | index 61377d742..8f1bb7795 100644 | ||
16 | --- a/apps/common/external/benchmark/src/benchmark_register.h | ||
17 | +++ b/apps/common/external/benchmark/src/benchmark_register.h | ||
18 | @@ -2,6 +2,7 @@ | ||
19 | #define BENCHMARK_REGISTER_H | ||
20 | |||
21 | #include <vector> | ||
22 | +#include <limits> | ||
23 | |||
24 | #include "check.h" | ||
25 | |||
26 | -- | ||
27 | 2.32.0 | ||
28 | |||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray_3.2.0.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray_3.2.0.bb new file mode 100644 index 00000000..d3a23653 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/ospray/ospray_3.2.0.bb | |||
@@ -0,0 +1,37 @@ | |||
1 | SUMMARY = "Intel OSPray, Ray Tracing based Rendering Engine" | ||
2 | DESCRIPTION = "Intel OSPRay is an open source, scalable, and portable ray \ | ||
3 | tracing engine for high-performance, high-fidelity visualization on \ | ||
4 | Intel Architecture CPUs." | ||
5 | HOMEPAGE = "https://www.ospray.org/" | ||
6 | |||
7 | LICENSE = "Apache-2.0 & BSD-3-Clause & MIT & Zlib" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1dece7821bf3fd70fe1309eaa37d52a2 \ | ||
9 | file://third-party-programs.txt;md5=e37b77e3bd997abccc359c710fb1f1db \ | ||
10 | " | ||
11 | |||
12 | inherit pkgconfig cmake | ||
13 | |||
14 | S = "${WORKDIR}/git" | ||
15 | |||
16 | SRC_URI = "git://github.com/ospray/ospray.git;protocol=https;branch=master \ | ||
17 | " | ||
18 | SRCREV = "85af2929937d516997451cbd52d352cf93125ed2" | ||
19 | |||
20 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
21 | COMPATIBLE_HOST:libc-musl = "null" | ||
22 | |||
23 | DEPENDS = "rkcommon ispc ispc-native openvkl embree" | ||
24 | |||
25 | EXTRA_OECMAKE += " \ | ||
26 | -DISPC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/ispc \ | ||
27 | -DOSPRAY_ENABLE_APPS_BENCHMARK=OFF \ | ||
28 | -DOSPRAY_ENABLE_APPS_TESTING=OFF \ | ||
29 | -DOSPRAY_ENABLE_APPS_EXAMPLES=OFF \ | ||
30 | " | ||
31 | |||
32 | PACKAGES =+ "${PN}-apps" | ||
33 | FILES:${PN}-apps = "\ | ||
34 | ${bindir} \ | ||
35 | " | ||
36 | |||
37 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-oneapi/rkcommon/rkcommon_1.14.0.bb b/dynamic-layers/openembedded-layer/recipes-oneapi/rkcommon/rkcommon_1.14.0.bb new file mode 100644 index 00000000..bec36593 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-oneapi/rkcommon/rkcommon_1.14.0.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | SUMMARY = "rkcommon - C++/CMake infrastructure" | ||
2 | DESCRIPTION = "A common set of C++ infrastructure and CMake utilities \ | ||
3 | used by various components of Intel® oneAPI Rendering Toolkit." | ||
4 | HOMEPAGE = "https://github.com/ospray/rkcommon" | ||
5 | |||
6 | LICENSE = "Apache-2.0" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
8 | |||
9 | inherit pkgconfig cmake | ||
10 | |||
11 | S = "${WORKDIR}/git" | ||
12 | |||
13 | SRC_URI = "git://github.com/ospray/rkcommon.git;protocol=https;branch=master \ | ||
14 | " | ||
15 | SRCREV = "4a00047ae5a3ac705b6b33b4a7574588d91e7953" | ||
16 | |||
17 | DEPENDS = "tbb" | ||
18 | |||
19 | EXTRA_OECMAKE += " -DBUILD_TESTING=OFF" | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-CMakeLists-disable-Werror.patch b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-CMakeLists-disable-Werror.patch new file mode 100644 index 00000000..4474aa3c --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-CMakeLists-disable-Werror.patch | |||
@@ -0,0 +1,38 @@ | |||
1 | From ef56be8e6bf2ea273cbeb960f3131164e7b517b6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Wed, 18 May 2022 12:24:03 +0800 | ||
4 | Subject: [PATCH] CMakeLists: disable Werror | ||
5 | |||
6 | gcc12 highlights minor warnings that cause the build to fail. Ignore | ||
7 | those until they aren't fixed upstream. | ||
8 | |||
9 | Upstream-Status: Inappropriate | ||
10 | |||
11 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
12 | --- | ||
13 | CMakeLists.txt | 4 ++-- | ||
14 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
15 | |||
16 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
17 | index 418483f7..c019fea0 100644 | ||
18 | --- a/CMakeLists.txt | ||
19 | +++ b/CMakeLists.txt | ||
20 | @@ -146,7 +146,7 @@ else() | ||
21 | set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -fno-strict-aliasing -D_FORTIFY_SOURCE=2") | ||
22 | if(LNX_BUILD) | ||
23 | #A few warnings yet to resolve under esx | ||
24 | - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror") | ||
25 | + #set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror") | ||
26 | set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Werror") | ||
27 | endif() | ||
28 | set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb") | ||
29 | @@ -791,4 +791,4 @@ if(ESX_BUILD) | ||
30 | include(CMake/esx.cmake) | ||
31 | endif() | ||
32 | |||
33 | -add_subdirectory(src/os/nvm_api_sample) | ||
34 | \ No newline at end of file | ||
35 | +add_subdirectory(src/os/nvm_api_sample) | ||
36 | -- | ||
37 | 2.35.3 | ||
38 | |||
diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch new file mode 100644 index 00000000..8a734ed2 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl/0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch | |||
@@ -0,0 +1,62 @@ | |||
1 | Subject: [PATCH] [PATCH]: ignore static asserts and null define for os and ut | ||
2 | builds | ||
3 | Upstream-Status: Backport | ||
4 | Signed-off-by: Teoh Suh Haw <suh.haw.teoh@intel.com> | ||
5 | --- | ||
6 | MdePkg/Include/Base.h | 12 ++++++++++++ | ||
7 | 1 file changed, 12 insertions(+) | ||
8 | |||
9 | Index: edk2/MdePkg/Include/Base.h | ||
10 | =================================================================== | ||
11 | --- edk2.orig/MdePkg/Include/Base.h | ||
12 | +++ edk2/MdePkg/Include/Base.h | ||
13 | @@ -316,8 +316,12 @@ struct _LIST_ENTRY { | ||
14 | #define NULL __null | ||
15 | #endif | ||
16 | #else | ||
17 | +#ifndef OS_BUILD | ||
18 | +#ifndef UNIT_TEST_UEFI_BUILD | ||
19 | #define NULL ((VOID *) 0) | ||
20 | #endif | ||
21 | +#endif | ||
22 | +#endif | ||
23 | |||
24 | // | ||
25 | // Null character | ||
26 | @@ -813,6 +817,8 @@ typedef UINTN *BASE_LIST; | ||
27 | // Section 2.3.1 of the UEFI 2.3 Specification. | ||
28 | // | ||
29 | |||
30 | +#ifndef OS_BUILD | ||
31 | +#ifndef UNIT_TEST_UEFI_BUILD | ||
32 | STATIC_ASSERT (sizeof (BOOLEAN) == 1, "sizeof (BOOLEAN) does not meet UEFI Specification Data Type requirements"); | ||
33 | STATIC_ASSERT (sizeof (INT8) == 1, "sizeof (INT8) does not meet UEFI Specification Data Type requirements"); | ||
34 | STATIC_ASSERT (sizeof (UINT8) == 1, "sizeof (UINT8) does not meet UEFI Specification Data Type requirements"); | ||
35 | @@ -841,7 +847,8 @@ STATIC_ASSERT (ALIGNOF (CHAR16) == size | ||
36 | STATIC_ASSERT (ALIGNOF (INTN) == sizeof (INTN), "Alignment of INTN does not meet UEFI Specification Data Type requirements"); | ||
37 | STATIC_ASSERT (ALIGNOF (UINTN) == sizeof (UINTN), "Alignment of UINTN does not meet UEFI Specification Data Type requirements"); | ||
38 | STATIC_ASSERT (ALIGNOF (VOID *) == sizeof (VOID *), "Alignment of VOID * does not meet UEFI Specification Data Type requirements"); | ||
39 | - | ||
40 | +#endif | ||
41 | +#endif | ||
42 | // | ||
43 | // The following three enum types are used to verify that the compiler | ||
44 | // configuration for enum types is compliant with Section 2.3.1 of the | ||
45 | @@ -861,6 +868,8 @@ typedef enum { | ||
46 | __VerifyInt32EnumValue = 0x7fffffff | ||
47 | } __VERIFY_INT32_ENUM_SIZE; | ||
48 | |||
49 | +#ifndef OS_BUILD | ||
50 | +#ifndef UNIT_TEST_UEFI_BUILD | ||
51 | STATIC_ASSERT (sizeof (__VERIFY_UINT8_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); | ||
52 | STATIC_ASSERT (sizeof (__VERIFY_UINT16_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); | ||
53 | STATIC_ASSERT (sizeof (__VERIFY_INT32_ENUM_SIZE) == 4, "Size of enum does not meet UEFI Specification Data Type requirements"); | ||
54 | @@ -868,6 +877,8 @@ STATIC_ASSERT (sizeof (__VERIFY_INT32_EN | ||
55 | STATIC_ASSERT (ALIGNOF (__VERIFY_UINT8_ENUM_SIZE) == sizeof (__VERIFY_UINT8_ENUM_SIZE), "Alignment of enum does not meet UEFI Specification Data Type requirements"); | ||
56 | STATIC_ASSERT (ALIGNOF (__VERIFY_UINT16_ENUM_SIZE) == sizeof (__VERIFY_UINT16_ENUM_SIZE), "Alignment of enum does not meet UEFI Specification Data Type requirements"); | ||
57 | STATIC_ASSERT (ALIGNOF (__VERIFY_INT32_ENUM_SIZE) == sizeof (__VERIFY_INT32_ENUM_SIZE), "Alignment of enum does not meet UEFI Specification Data Type requirements"); | ||
58 | +#endif | ||
59 | +#endif | ||
60 | |||
61 | /** | ||
62 | Macro that returns a pointer to the data structure that contains a specified field of | ||
diff --git a/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0499.bb b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0499.bb new file mode 100644 index 00000000..695e29e9 --- /dev/null +++ b/dynamic-layers/openembedded-layer/recipes-support/ipmctl/ipmctl_03.00.00.0499.bb | |||
@@ -0,0 +1,47 @@ | |||
1 | SUMMARY = "Utility for managing Intel Optane DC persistent memory modules" | ||
2 | DESCRIPTION = "Utility for configuring and managing Intel Optane Persistent \ | ||
3 | Memory modules (PMem). It supports functionality to: \ | ||
4 | Discover DCPMMs on the platform. \ | ||
5 | Provision the platform memory configuration. \ | ||
6 | View and update the firmware on DCPMMs. \ | ||
7 | Configure data-at-rest security on DCPMMs. \ | ||
8 | Track health and performance of DCPMMs. \ | ||
9 | Debug and troubleshoot DCPMMs." | ||
10 | |||
11 | HOMEPAGE = "https://github.com/intel/ipmctl" | ||
12 | BUGTRACKER = "https://github.com/intel/ipmctl/issues" | ||
13 | |||
14 | LICENSE = "BSD-3-Clause | BSD-2-Clause" | ||
15 | LIC_FILES_CHKSUM = "file://LICENSE;md5=72b9da60da6219d612ce30b746a0fe71 \ | ||
16 | file://edk2/License.txt;md5=6123e5bf044a66db96c4ce88a36b2d08" | ||
17 | |||
18 | SRC_URI = "git://github.com/intel/ipmctl.git;protocol=https;branch=master_3_0;name=ipmctl; \ | ||
19 | git://github.com/tianocore/edk2.git;protocol=https;name=edk2;destsuffix=git/edk2;branch=master \ | ||
20 | file://0001-Ignore-STATIC_ASSERTs-and-NULL-define-for-os-and-ut-builds.patch;patchdir=edk2 \ | ||
21 | file://0001-CMakeLists-disable-Werror.patch \ | ||
22 | " | ||
23 | |||
24 | SRCREV_ipmctl = "a71f2fb1c90dd07f9862b71c789881132193e8f9" | ||
25 | #tag edk2-stable202408 | ||
26 | SRCREV_edk2 = "b158dad150bf02879668f72ce306445250838201" | ||
27 | SRCREV_FORMAT = "ipmctl_edk2" | ||
28 | |||
29 | S = "${WORKDIR}/git" | ||
30 | |||
31 | inherit cmake dos2unix | ||
32 | |||
33 | DEPENDS = "ndctl pkgconfig-native" | ||
34 | |||
35 | EXTRA_OECMAKE = "-DRELEASE=ON" | ||
36 | |||
37 | do_configure:prepend() { | ||
38 | for dir in BaseTools MdeModulePkg MdePkg ShellPkg ; do | ||
39 | ln -sf edk2/${dir} ${S} | ||
40 | done | ||
41 | } | ||
42 | |||
43 | do_install:append() { | ||
44 | # Remove /var/log/ipmctl as anything created in /var/log will not be | ||
45 | # available when tmpfs is mounted at /var/volatile/log. | ||
46 | rm -rf ${D}${localstatedir}/log | ||
47 | } | ||
diff --git a/lib/oeqa/runtime/cases/cyclictest.py b/lib/oeqa/runtime/cases/cyclictest.py new file mode 100644 index 00000000..8890651a --- /dev/null +++ b/lib/oeqa/runtime/cases/cyclictest.py | |||
@@ -0,0 +1,39 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.core.decorator.depends import OETestDepends | ||
3 | from oeqa.runtime.decorator.package import OEHasPackage | ||
4 | import os | ||
5 | import subprocess | ||
6 | import datetime | ||
7 | |||
8 | class CyclicTest(OERuntimeTestCase): | ||
9 | |||
10 | @OEHasPackage(['rt-tests']) | ||
11 | @OETestDepends(['ssh.SSHTest.test_ssh']) | ||
12 | def test_cyclic(self): | ||
13 | # Cyclictest command and argument based on public setup for Intel(R) Core(TM) i7-6700 | ||
14 | # https://www.osadl.org/Latency-plot-of-system-in-rack-9-slot.qa-latencyplot-r9s5.0.html?shadow=1 | ||
15 | # Command line: cyclictest -l100000000 -m -Sp99 -i200 -h400 -q | ||
16 | status, output = self.target.run('cyclictest -l100000000 -m -Sp99 -i200 -h400') | ||
17 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
18 | test_log_dir = self.td.get('TEST_LOG_DIR', '') | ||
19 | |||
20 | if not test_log_dir: | ||
21 | test_log_dir = os.path.join(self.td.get('WORKDIR', ''), 'testimage') | ||
22 | |||
23 | cyclic_log_dir = os.path.join(test_log_dir, '%s.%s' % ('cyclic_test', datetime.datetime.now().strftime('%Y%m%d%H%M%S'))) | ||
24 | os.makedirs(cyclic_log_dir) | ||
25 | log_path = os.path.join(cyclic_log_dir, 'cyclic_log') | ||
26 | with open(log_path, 'w') as f: | ||
27 | f.write(output) | ||
28 | |||
29 | max_latency = subprocess.check_output(('grep "Max Latencies" %s | tr " " "\n" | sort -n | tail -1 | sed s/^0*//') % log_path, shell=True).strip() | ||
30 | max_latency = int(max_latency) | ||
31 | |||
32 | # Default target latency based on max latency (24us) captured at public execution multiple by 1.2 (20% buffer) | ||
33 | # https://www.osadl.org/Latency-plot-of-system-in-rack-9-slot.qa-latencyplot-r9s5.0.html?shadow=1 | ||
34 | target_latency = 1.2*24 | ||
35 | user_defined_target_latency = self.tc.td.get("RTKERNEL_TARGET_LATENCY") | ||
36 | if user_defined_target_latency: | ||
37 | target_latency = int(user_defined_target_latency) | ||
38 | self.assertTrue(max_latency < target_latency, | ||
39 | msg="Max latency (%sus) is greater than target (%sus)." % (max_latency, target_latency)) | ||
diff --git a/lib/oeqa/runtime/cases/intel_mediasdk.py b/lib/oeqa/runtime/cases/intel_mediasdk.py new file mode 100644 index 00000000..4ae7d580 --- /dev/null +++ b/lib/oeqa/runtime/cases/intel_mediasdk.py | |||
@@ -0,0 +1,34 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.runtime.decorator.package import OEHasPackage | ||
3 | from oeqa.core.decorator.depends import OETestDepends | ||
4 | |||
5 | class MsdkTest(OERuntimeTestCase): | ||
6 | |||
7 | @classmethod | ||
8 | def tearDownClass(cls): | ||
9 | cls.tc.target.run("rm /tmp/mtest_h264.mp4") | ||
10 | |||
11 | @OEHasPackage(['gstreamer1.0-plugins-base']) | ||
12 | @OEHasPackage(['gstreamer1.0-plugins-good']) | ||
13 | @OEHasPackage(['gstreamer1.0-plugins-bad']) | ||
14 | @OEHasPackage(['intel-mediasdk']) | ||
15 | @OEHasPackage(['intel-media-driver', 'libigfxcmrt7']) | ||
16 | def test_gstreamer_can_encode_with_msdk_and_intel_media_driver(self): | ||
17 | (status, output) = self.target.run('gst-inspect-1.0 msdk') | ||
18 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
19 | |||
20 | (status, output) = self.target.run('export LIBVA_DRIVER_NAME=iHD; ' | ||
21 | 'gst-launch-1.0 -ev videotestsrc num-buffers=120 ! timeoverlay ! ' | ||
22 | 'msdkh264enc ! video/x-h264,profile=main ! h264parse ! ' | ||
23 | 'filesink location=/tmp/mtest_h264.mp4') | ||
24 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
25 | |||
26 | @OETestDepends(['intel_mediasdk.MsdkTest.test_gstreamer_can_encode_with_msdk_and_intel_media_driver']) | ||
27 | def test_gstreamer_can_decode_with_msdk_and_intel_media_driver(self): | ||
28 | (status, output) = self.target.run('export LIBVA_DRIVER_NAME=iHD; ' | ||
29 | 'gst-launch-1.0 filesrc location=/tmp/mtest_h264.mp4 ! ' | ||
30 | 'h264parse ! msdkh264dec ! ' | ||
31 | 'msdkh265enc rate-control=cbr bitrate=5000 gop-size=30 b-frames=2 ! ' | ||
32 | 'video/x-h265,profile=main ! h265parse ! fakesink') | ||
33 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
34 | |||
diff --git a/lib/oeqa/runtime/cases/intel_vaapi_driver.py b/lib/oeqa/runtime/cases/intel_vaapi_driver.py new file mode 100644 index 00000000..31e11a81 --- /dev/null +++ b/lib/oeqa/runtime/cases/intel_vaapi_driver.py | |||
@@ -0,0 +1,27 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.runtime.decorator.package import OEHasPackage | ||
3 | from oeqa.core.decorator.depends import OETestDepends | ||
4 | |||
5 | class VaapiDriverTest(OERuntimeTestCase): | ||
6 | |||
7 | @classmethod | ||
8 | def tearDownClass(cls): | ||
9 | cls.tc.target.run("rm /tmp/vtest_h264.mp4") | ||
10 | |||
11 | @OEHasPackage(['gstreamer1.0-plugins-base']) | ||
12 | @OEHasPackage(['gstreamer1.0-plugins-good']) | ||
13 | @OEHasPackage(['gstreamer1.0-vaapi']) | ||
14 | @OEHasPackage(['intel-vaapi-driver']) | ||
15 | def test_gstreamer_can_encode_with_intel_vaapi_driver(self): | ||
16 | (status, output) = self.target.run('gst-inspect-1.0 vaapi') | ||
17 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
18 | |||
19 | (status, output) = self.target.run('gst-launch-1.0 -ev videotestsrc num-buffers=60 ! ' | ||
20 | 'timeoverlay ! vaapih264enc ! h264parse ! mp4mux ! filesink location=/tmp/vtest_h264.mp4') | ||
21 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
22 | |||
23 | @OETestDepends(['intel_vaapi_driver.VaapiDriverTest.test_gstreamer_can_encode_with_intel_vaapi_driver']) | ||
24 | def test_gstreamer_can_decode_with_intel_vaapi_driver(self): | ||
25 | (status, output) = self.target.run('gst-launch-1.0 filesrc location=/tmp/vtest_h264.mp4 ! ' | ||
26 | 'qtdemux ! h264parse ! vaapih264dec ! vaapisink') | ||
27 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
diff --git a/lib/oeqa/runtime/cases/isal.py b/lib/oeqa/runtime/cases/isal.py new file mode 100644 index 00000000..5025f986 --- /dev/null +++ b/lib/oeqa/runtime/cases/isal.py | |||
@@ -0,0 +1,24 @@ | |||
1 | import os | ||
2 | from oeqa.runtime.decorator.package import OEHasPackage | ||
3 | from oeqa.runtime.case import OERuntimeTestCase | ||
4 | from oeqa.core.decorator.depends import OETestDepends | ||
5 | |||
6 | class IsalTest(OERuntimeTestCase): | ||
7 | |||
8 | @OEHasPackage(['isa-l']) | ||
9 | def test_isal_igzip_version(self): | ||
10 | command = 'igzip -V' | ||
11 | (status, output) = self.target.run(command) | ||
12 | self.assertEqual(status, 0, msg="Error messages: %s" % output) | ||
13 | |||
14 | @OETestDepends(['isal.IsalTest.test_isal_igzip_version']) | ||
15 | def test_isal_igzip_can_compress(self): | ||
16 | command = 'echo "hello" > /tmp/igzip_sample' | ||
17 | (status, output) = self.target.run(command) | ||
18 | self.assertEqual(status, 0, msg="Error messages: %s" % output) | ||
19 | command = 'igzip -z /tmp/igzip_sample' | ||
20 | (status, output) = self.target.run(command) | ||
21 | self.assertEqual(status, 0, msg="Error messages: %s" % output) | ||
22 | command = 'rm /tmp/igzip_sample*' | ||
23 | (status, output) = self.target.run(command) | ||
24 | self.assertEqual(status, 0, msg="Error messages: %s" % output) | ||
diff --git a/lib/oeqa/runtime/cases/libipt.py b/lib/oeqa/runtime/cases/libipt.py new file mode 100644 index 00000000..4adb13f0 --- /dev/null +++ b/lib/oeqa/runtime/cases/libipt.py | |||
@@ -0,0 +1,23 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.runtime.decorator.package import OEHasPackage | ||
3 | from oeqa.core.decorator.depends import OETestDepends | ||
4 | |||
5 | class LibiptTest(OERuntimeTestCase): | ||
6 | libipt_bin_dir = '/usr/bin/libipt/' | ||
7 | |||
8 | @classmethod | ||
9 | def tearDownClass(cls): | ||
10 | cls.tc.target.run('rm /tmp/loop-tnt*') | ||
11 | |||
12 | @OEHasPackage(['libipt', 'libipt2']) | ||
13 | @OEHasPackage(['libipt-test']) | ||
14 | @OEHasPackage(['yasm']) | ||
15 | def test_libipt_can_generate_trace_packet(self): | ||
16 | (status, output) = self.target.run('cd /tmp; %spttc %s/tests/loop-tnt.ptt' % | ||
17 | (self.libipt_bin_dir, self.libipt_bin_dir)) | ||
18 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
19 | |||
20 | @OETestDepends(['libipt.LibiptTest.test_libipt_can_generate_trace_packet']) | ||
21 | def test_libipt_can_perform_trace_packet_dump(self): | ||
22 | (status, output) = self.target.run('cd /tmp; %sptdump loop-tnt.pt' % self.libipt_bin_dir) | ||
23 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
diff --git a/lib/oeqa/runtime/cases/libxcam.py b/lib/oeqa/runtime/cases/libxcam.py new file mode 100644 index 00000000..57192f07 --- /dev/null +++ b/lib/oeqa/runtime/cases/libxcam.py | |||
@@ -0,0 +1,37 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.runtime.decorator.package import OEHasPackage | ||
3 | from oeqa.core.decorator.depends import OETestDepends | ||
4 | |||
5 | class LibxcamTest(OERuntimeTestCase): | ||
6 | yuv_file = 'vtest.yuv' | ||
7 | soft_test_app_file = 'test-soft-image' | ||
8 | libxcam_test_app_dir = '/usr/bin/libxcam/' | ||
9 | libxcam_file_dir = '/tmp/' | ||
10 | |||
11 | @classmethod | ||
12 | def tearDownClass(cls): | ||
13 | cls.tc.target.run("rm %s%s" % (cls.libxcam_file_dir, cls.yuv_file)) | ||
14 | |||
15 | @OEHasPackage(['gstreamer1.0-plugins-base']) | ||
16 | @OEHasPackage(['gstreamer1.0-plugins-good']) | ||
17 | @OEHasPackage(['gstreamer1.0-vaapi']) | ||
18 | @OEHasPackage(['intel-vaapi-driver']) | ||
19 | def test_libxcam_can_generate_yuv_file_with_gstreamer(self): | ||
20 | (status, output) = self.target.run('gst-inspect-1.0 vaapi') | ||
21 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
22 | |||
23 | (status, output) = self.target.run('gst-launch-1.0 -ev videotestsrc num-buffers=60 ! ' | ||
24 | 'timeoverlay ! filesink location=%s%s' % | ||
25 | (self.libxcam_file_dir, self.yuv_file)) | ||
26 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
27 | |||
28 | @OEHasPackage(['libxcam']) | ||
29 | @OEHasPackage(['libxcam-test']) | ||
30 | @OETestDepends(['libxcam.LibxcamTest.test_libxcam_can_generate_yuv_file_with_gstreamer']) | ||
31 | def test_libxcam_can_execute_soft_image_sample_app(self): | ||
32 | (status, output) = self.target.run('%s%s --type remap --input0 %s%s --output soft_out.nv12 --save false' % | ||
33 | (self.libxcam_test_app_dir, | ||
34 | self.soft_test_app_file, | ||
35 | self.libxcam_file_dir, | ||
36 | self.yuv_file)) | ||
37 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
diff --git a/lib/oeqa/runtime/cases/microcode.py b/lib/oeqa/runtime/cases/microcode.py new file mode 100644 index 00000000..52c1cdb4 --- /dev/null +++ b/lib/oeqa/runtime/cases/microcode.py | |||
@@ -0,0 +1,31 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.runtime.decorator.package import OEHasPackage | ||
3 | import re | ||
4 | |||
5 | class MicrocodeTest(OERuntimeTestCase): | ||
6 | |||
7 | def get_revision_from_microcode_string_list(self, microcode_string_list, re_pattern): | ||
8 | re_compile = re.compile(re_pattern) | ||
9 | rev_list = [] | ||
10 | for s in microcode_string_list: | ||
11 | matched_revs = re_compile.findall(s) | ||
12 | if matched_revs: | ||
13 | for mr in matched_revs: | ||
14 | rev_list.append(int(mr, 16)) | ||
15 | return rev_list | ||
16 | |||
17 | @OEHasPackage(["iucode-tool"]) | ||
18 | def test_microcode_update(self): | ||
19 | (status, output) = self.target.run('iucode_tool /lib/firmware/intel-ucode/ -tb -l --scan-system=2 | grep rev') | ||
20 | |||
21 | selected_microcodes = output.splitlines() | ||
22 | selected_rev_list = self.get_revision_from_microcode_string_list(selected_microcodes, "rev (\w*)") | ||
23 | |||
24 | (status, output) = self.target.run("dmesg | grep 'microcode updated early'") | ||
25 | |||
26 | updated_microcodes = output.splitlines() | ||
27 | updated_rev_list = self.get_revision_from_microcode_string_list(updated_microcodes, "revision (\w*)") | ||
28 | |||
29 | for ul in updated_rev_list: | ||
30 | self.assertTrue(ul in selected_rev_list, msg="Updated revision, %s, not in selected revision list (%s)" % | ||
31 | (ul, selected_rev_list)) | ||
diff --git a/lib/oeqa/runtime/cases/mkl_dnn.py b/lib/oeqa/runtime/cases/mkl_dnn.py new file mode 100644 index 00000000..8d50df54 --- /dev/null +++ b/lib/oeqa/runtime/cases/mkl_dnn.py | |||
@@ -0,0 +1,67 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.runtime.decorator.package import OEHasPackage | ||
3 | from oeqa.core.decorator.depends import OETestDepends | ||
4 | from oeqa.runtime.miutils.targets.oeqatarget import OEQATarget | ||
5 | from oeqa.runtime.miutils.tests.mkl_dnn_test import MkldnnTest | ||
6 | |||
7 | class MklDnn(OERuntimeTestCase): | ||
8 | |||
9 | @classmethod | ||
10 | def setUpClass(cls): | ||
11 | cls.mkldnntest = MkldnnTest(OEQATarget(cls.tc.target)) | ||
12 | |||
13 | @classmethod | ||
14 | def tearDownClass(cls): | ||
15 | cls.mkldnntest.tear_down() | ||
16 | |||
17 | @OEHasPackage(['onednn', 'libdnnl2']) | ||
18 | @OEHasPackage(['onednn-src', 'libdnnl-src']) | ||
19 | @OEHasPackage(['onednn-dev', 'libdnnl-dev']) | ||
20 | @OEHasPackage(['gcc']) | ||
21 | @OEHasPackage(['gcc-symlinks']) | ||
22 | @OEHasPackage(['libstdc++-dev']) | ||
23 | @OEHasPackage(['binutils']) | ||
24 | def test_mkldnn_can_compile_and_execute(self): | ||
25 | (status, output) = self.mkldnntest.test_mkldnn_can_compile_and_execute() | ||
26 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
27 | |||
28 | @OEHasPackage(['onednn', 'libdnnl2']) | ||
29 | @OEHasPackage(['onednn-test', 'libdnnl-test']) | ||
30 | def test_mkldnn_benchdnn_package_available(self): | ||
31 | (status, output) = self.mkldnntest.test_mkldnn_benchdnn_package_available() | ||
32 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
33 | |||
34 | @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available']) | ||
35 | def test_mkldnn_conv_api(self): | ||
36 | (status, output) = self.mkldnntest.test_mkldnn_conv_api() | ||
37 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
38 | |||
39 | @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available']) | ||
40 | def test_mkldnn_bnorm_api(self): | ||
41 | (status, output) = self.mkldnntest.test_mkldnn_bnorm_api() | ||
42 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
43 | |||
44 | @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available']) | ||
45 | def test_mkldnn_deconv_api(self): | ||
46 | (status, output) = self.mkldnntest.test_mkldnn_deconv_api() | ||
47 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
48 | |||
49 | @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available']) | ||
50 | def test_mkldnn_ip_api(self): | ||
51 | (status, output) = self.mkldnntest.test_mkldnn_ip_api() | ||
52 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
53 | |||
54 | @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available']) | ||
55 | def test_mkldnn_reorder_api(self): | ||
56 | (status, output) = self.mkldnntest.test_mkldnn_reorder_api() | ||
57 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
58 | |||
59 | @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available']) | ||
60 | def test_mkldnn_rnn_api(self): | ||
61 | (status, output) = self.mkldnntest.test_mkldnn_rnn_api() | ||
62 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
63 | |||
64 | @OETestDepends(['mkl_dnn.MklDnn.test_mkldnn_benchdnn_package_available']) | ||
65 | def test_mkldnn_shuffle_api(self): | ||
66 | (status, output) = self.mkldnntest.test_mkldnn_shuffle_api() | ||
67 | self.assertEqual(status, 0, msg='status and output: %s and %s' % (status, output)) | ||
diff --git a/lib/oeqa/runtime/cases/parselogs-ignores-intel-core2-32.txt b/lib/oeqa/runtime/cases/parselogs-ignores-intel-core2-32.txt new file mode 100644 index 00000000..84ce8168 --- /dev/null +++ b/lib/oeqa/runtime/cases/parselogs-ignores-intel-core2-32.txt | |||
@@ -0,0 +1,9 @@ | |||
1 | # These should be reviewed to see if they are still needed | ||
2 | ACPI: No _BQC method, cannot determine initial brightness | ||
3 | [Firmware Bug]: ACPI: No _BQC method, cannot determine initial brightness | ||
4 | (EE) Failed to load module "psb" | ||
5 | (EE) Failed to load module "psbdrv" | ||
6 | (EE) open /dev/fb0: No such file or directory | ||
7 | (EE) AIGLX: reverting to software rendering | ||
8 | dmi: Firmware registration failed. | ||
9 | ioremap error for 0x78 | ||
diff --git a/lib/oeqa/runtime/cases/parselogs-ignores-intel-corei7-64.txt b/lib/oeqa/runtime/cases/parselogs-ignores-intel-corei7-64.txt new file mode 100644 index 00000000..5c9b4bc7 --- /dev/null +++ b/lib/oeqa/runtime/cases/parselogs-ignores-intel-corei7-64.txt | |||
@@ -0,0 +1,14 @@ | |||
1 | # These should be reviewed to see if they are still needed | ||
2 | can't set Max Payload Size to 256 | ||
3 | intel_punit_ipc: can't request region for resource | ||
4 | [drm] parse error at position 4 in video mode 'efifb' | ||
5 | ACPI Error: Could not enable RealTimeClock event | ||
6 | ACPI Warning: Could not enable fixed event - RealTimeClock | ||
7 | hci_intel INT33E1:00: Unable to retrieve gpio | ||
8 | hci_intel: probe of INT33E1:00 failed | ||
9 | can't derive routing for PCI INT A | ||
10 | failed to read out thermal zone | ||
11 | Bluetooth: hci0: Setting Intel event mask failed | ||
12 | ttyS2 - failed to request DMA | ||
13 | Bluetooth: hci0: Failed to send firmware data (-38) | ||
14 | atkbd serio0: Failed to enable keyboard on isa0060/serio0 | ||
diff --git a/lib/oeqa/runtime/cases/thermald.py b/lib/oeqa/runtime/cases/thermald.py new file mode 100644 index 00000000..a0b6a92b --- /dev/null +++ b/lib/oeqa/runtime/cases/thermald.py | |||
@@ -0,0 +1,47 @@ | |||
1 | from oeqa.runtime.case import OERuntimeTestCase | ||
2 | from oeqa.core.decorator.depends import OETestDepends | ||
3 | from oeqa.runtime.decorator.package import OEHasPackage | ||
4 | import threading | ||
5 | import time | ||
6 | import re | ||
7 | |||
8 | class ThermaldTest(OERuntimeTestCase): | ||
9 | def get_thermal_zone_with_target_type(self, target_type): | ||
10 | i = 0 | ||
11 | while True: | ||
12 | status, output = self.target.run('cat /sys/class/thermal/thermal_zone%s/type' % i) | ||
13 | if status: | ||
14 | return -1 | ||
15 | if output == target_type: | ||
16 | return i | ||
17 | i = i + 1 | ||
18 | |||
19 | def run_thermald_emulation_to_exceed_setpoint_then_end_thermald_process(self, run_args): | ||
20 | time.sleep(2) | ||
21 | self.target.run('echo 106000 > /sys/class/thermal/thermal_zone%s/emul_temp' % run_args) | ||
22 | time.sleep(5) | ||
23 | __, output = self.target.run('pidof thermald') | ||
24 | self.target.run('kill -9 %s' % output) | ||
25 | |||
26 | def test_thermald_emulation_mode(self): | ||
27 | # Thermald test depend on thermal emulation, where CONFIG_THERMAL_EMULATION=y was required | ||
28 | # To enable thermal emulation, refer to https://github.com/intel/thermal_daemon/blob/master/test/readme_test.txt | ||
29 | (status, output) = self.target.run('gzip -dc /proc/config.gz | grep CONFIG_THERMAL_EMULATION=y') | ||
30 | if status: | ||
31 | self.skipTest("CONFIG_THERMAL_EMULATION is not set") | ||
32 | |||
33 | @OEHasPackage(['thermald']) | ||
34 | @OETestDepends(['thermald.ThermaldTest.test_thermald_emulation_mode']) | ||
35 | def test_thermald_can_track_thermal_exceed_setpoint(self): | ||
36 | x86_thermal_zone_index = self.get_thermal_zone_with_target_type('x86_pkg_temp') | ||
37 | if x86_thermal_zone_index < 0: | ||
38 | self.skipTest('Could not get the thermal zone index for target type (%s)' % 'x86_pkg_temp') | ||
39 | td_thread = threading.Thread(target=self.run_thermald_emulation_to_exceed_setpoint_then_end_thermald_process, | ||
40 | args=(x86_thermal_zone_index,)) | ||
41 | td_thread.start() | ||
42 | td_thread.join() | ||
43 | status, output = self.target.run('timeout 3s thermald --no-daemon --loglevel=info') | ||
44 | regex_search = ".*thd_cdev_set_state.*106000" | ||
45 | regex_comp = re.compile(regex_search) | ||
46 | m = regex_comp.search(output) | ||
47 | self.assertTrue(m, msg='status and output: %s and %s' % (status, output)) | ||
diff --git a/lib/oeqa/runtime/miutils/targets/oeqatarget.py b/lib/oeqa/runtime/miutils/targets/oeqatarget.py new file mode 100644 index 00000000..a9f7f1b4 --- /dev/null +++ b/lib/oeqa/runtime/miutils/targets/oeqatarget.py | |||
@@ -0,0 +1,11 @@ | |||
1 | |||
2 | class OEQATarget(object): | ||
3 | |||
4 | def __init__(self, target): | ||
5 | self.target = target | ||
6 | |||
7 | def run(self, cmd): | ||
8 | return self.target.run(cmd) | ||
9 | |||
10 | def copy_to(self, source, destination_dir): | ||
11 | self.target.copyTo(source, destination_dir) | ||
diff --git a/lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py b/lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py new file mode 100644 index 00000000..869a4cbe --- /dev/null +++ b/lib/oeqa/runtime/miutils/tests/mkl_dnn_test.py | |||
@@ -0,0 +1,55 @@ | |||
1 | |||
2 | class MkldnnTest(object): | ||
3 | mkldnn_target_test_filename = 'mkl-dnn-c' | ||
4 | |||
5 | def __init__(self, target): | ||
6 | self.target = target | ||
7 | |||
8 | def tear_down(self): | ||
9 | self.target.run('rm /tmp/%s' % self.mkldnn_target_test_filename) | ||
10 | |||
11 | def test_mkldnn_can_compile_and_execute(self): | ||
12 | mkldnn_src_dir = '/usr/src/debug/onednn/' | ||
13 | mkldnn_src_test_filename = 'api.c' | ||
14 | mkldnn_src_test_file = '' | ||
15 | |||
16 | (__, output) = self.target.run('cd %s; find -name %s' % (mkldnn_src_dir, mkldnn_src_test_filename)) | ||
17 | if 'No such file or directory' in output: | ||
18 | return -1, output | ||
19 | |||
20 | mkldnn_src_test_file = os.path.join(mkldnn_src_dir, output) | ||
21 | (status, output) = self.target.run('gcc %s -o /tmp/%s -ldnnl' % (mkldnn_src_test_file, self.mkldnn_target_test_filename)) | ||
22 | if status: | ||
23 | return status, output | ||
24 | |||
25 | (status, output) = self.target.run('cd /tmp; ./%s' % self.mkldnn_target_test_filename) | ||
26 | return status, output | ||
27 | |||
28 | def test_mkldnn_benchdnn_package_available(self): | ||
29 | (status, output) = self.target.run('ls /usr/bin/mkl-dnn/tests/benchdnn') | ||
30 | return status, output | ||
31 | |||
32 | def _run_mkldnn_benchdnn_test(self, cmd): | ||
33 | (status, output) = self.target.run('cd /usr/bin/mkl-dnn/tests/benchdnn; %s' % cmd) | ||
34 | return status, output | ||
35 | |||
36 | def test_mkldnn_conv_api(self): | ||
37 | return self._run_mkldnn_benchdnn_test('./benchdnn --conv --batch=inputs/conv/test_conv_3d') | ||
38 | |||
39 | def test_mkldnn_bnorm_api(self): | ||
40 | return self._run_mkldnn_benchdnn_test('./benchdnn --bnorm --batch=inputs/bnorm/test_bnorm_regressions') | ||
41 | |||
42 | def test_mkldnn_deconv_api(self): | ||
43 | return self._run_mkldnn_benchdnn_test('./benchdnn --deconv --batch=inputs/deconv/test_deconv_bfloat16') | ||
44 | |||
45 | def test_mkldnn_ip_api(self): | ||
46 | return self._run_mkldnn_benchdnn_test('./benchdnn --ip --batch=inputs/ip/test_ip_bfloat16') | ||
47 | |||
48 | def test_mkldnn_reorder_api(self): | ||
49 | return self._run_mkldnn_benchdnn_test('./benchdnn --reorder --batch=inputs/reorder/test_reorder_bfloat16') | ||
50 | |||
51 | def test_mkldnn_rnn_api(self): | ||
52 | return self._run_mkldnn_benchdnn_test('./benchdnn --rnn --batch=inputs/rnn/test_rnn_all') | ||
53 | |||
54 | def test_mkldnn_shuffle_api(self): | ||
55 | return self._run_mkldnn_benchdnn_test('./benchdnn --shuffle --batch=inputs/shuffle/test_shuffle_bfloat16') \ No newline at end of file | ||
diff --git a/lib/oeqa/selftest/cases/secureboot.py b/lib/oeqa/selftest/cases/secureboot.py deleted file mode 100644 index 4c059e25..00000000 --- a/lib/oeqa/selftest/cases/secureboot.py +++ /dev/null | |||
@@ -1,176 +0,0 @@ | |||
1 | #!/usr/bin/env python | ||
2 | # ex:ts=4:sw=4:sts=4:et | ||
3 | # -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- | ||
4 | # | ||
5 | # Copyright (c) 2017, Intel Corporation. | ||
6 | # All rights reserved. | ||
7 | # | ||
8 | # This program is free software; you can redistribute it and/or modify | ||
9 | # it under the terms of the GNU General Public License version 2 as | ||
10 | # published by the Free Software Foundation. | ||
11 | # | ||
12 | # This program is distributed in the hope that it will be useful, | ||
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | # GNU General Public License for more details. | ||
16 | # | ||
17 | # You should have received a copy of the GNU General Public License along | ||
18 | # with this program; if not, write to the Free Software Foundation, Inc., | ||
19 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
20 | # | ||
21 | # AUTHORS | ||
22 | # Mikko Ylinen <mikko.ylinen@linux.intel.com> | ||
23 | # | ||
24 | # Based on meta/lib/oeqa/selftest/* and meta-refkit/lib/oeqa/selftest/* | ||
25 | |||
26 | """Test cases for secure boot with QEMU running OVMF.""" | ||
27 | |||
28 | import os | ||
29 | import unittest | ||
30 | import re | ||
31 | import glob | ||
32 | from shutil import rmtree, copy | ||
33 | |||
34 | from oeqa.core.decorator.depends import OETestDepends | ||
35 | from oeqa.selftest.case import OESelftestTestCase | ||
36 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu | ||
37 | |||
38 | class SecureBootTests(OESelftestTestCase): | ||
39 | """Secure Boot test class.""" | ||
40 | |||
41 | ovmf_keys_enrolled = False | ||
42 | ovmf_qemuparams = '' | ||
43 | ovmf_dir = '' | ||
44 | test_image_unsigned = 'secureboot-selftest-image-unsigned' | ||
45 | test_image_signed = 'secureboot-selftest-image-signed' | ||
46 | correct_key = 'refkit-db' | ||
47 | incorrect_key = 'incorrect' | ||
48 | |||
49 | @classmethod | ||
50 | def setUpLocal(self): | ||
51 | |||
52 | if not SecureBootTests.ovmf_keys_enrolled: | ||
53 | bitbake('ovmf ovmf-shell-image-enrollkeys', output_log=self.logger) | ||
54 | |||
55 | bb_vars = get_bb_vars(['TMPDIR', 'DEPLOY_DIR_IMAGE']) | ||
56 | |||
57 | SecureBootTests.ovmf_dir = os.path.join(bb_vars['TMPDIR'], 'oeselftest', 'secureboot', 'ovmf') | ||
58 | bb.utils.mkdirhier(SecureBootTests.ovmf_dir) | ||
59 | |||
60 | # Copy (all) OVMF in a temporary location | ||
61 | for src in glob.glob('%s/ovmf.*' % bb_vars['DEPLOY_DIR_IMAGE']): | ||
62 | copy(src, SecureBootTests.ovmf_dir) | ||
63 | |||
64 | SecureBootTests.ovmf_qemuparams = '-drive if=pflash,format=qcow2,file=%s/ovmf.secboot.qcow2' % SecureBootTests.ovmf_dir | ||
65 | |||
66 | cmd = ("runqemu " | ||
67 | "qemuparams='%s' " | ||
68 | "ovmf-shell-image-enrollkeys wic intel-corei7-64 " | ||
69 | "nographic slirp") % SecureBootTests.ovmf_qemuparams | ||
70 | print('Running "%s"' % cmd) | ||
71 | status = runCmd(cmd) | ||
72 | |||
73 | if not re.search('info: success', status.output, re.M): | ||
74 | self.fail('Failed to enroll keys. EFI shell log:\n%s' % status.output) | ||
75 | else: | ||
76 | # keys enrolled in ovmf.secboot.vars | ||
77 | SecureBootTests.ovmf_keys_enrolled = True | ||
78 | |||
79 | @classmethod | ||
80 | def tearDownLocal(self): | ||
81 | # Seems this is mandatory between the tests (a signed image is booted | ||
82 | # when running test_boot_unsigned_image after test_boot_signed_image). | ||
83 | # bitbake('-c clean %s' % test_image, output_log=self.logger) | ||
84 | # | ||
85 | # Whatever the problem was, it no longer seems to be necessary, so | ||
86 | # we can skip the time-consuming clean + full rebuild (5:04 min instead | ||
87 | # of 6:55min here). | ||
88 | pass | ||
89 | |||
90 | @classmethod | ||
91 | def tearDownClass(self): | ||
92 | bitbake('ovmf-shell-image-enrollkeys:do_cleanall', output_log=self.logger) | ||
93 | rmtree(self.ovmf_dir, ignore_errors=True) | ||
94 | |||
95 | def secureboot_with_image(self, boot_timeout=300, signing_key=None): | ||
96 | """Boot the image with UEFI SecureBoot enabled and see the result. """ | ||
97 | |||
98 | config = "" | ||
99 | |||
100 | if signing_key: | ||
101 | test_image = self.test_image_signed | ||
102 | config += 'SECURE_BOOT_SIGNING_KEY = "${THISDIR}/files/%s.key"\n' % signing_key | ||
103 | config += 'SECURE_BOOT_SIGNING_CERT = "${THISDIR}/files/%s.crt"\n' % signing_key | ||
104 | else: | ||
105 | test_image = self.test_image_unsigned | ||
106 | |||
107 | self.write_config(config) | ||
108 | bitbake(test_image, output_log=self.logger) | ||
109 | self.remove_config(config) | ||
110 | |||
111 | # Some of the cases depend on the timeout to expire. Allow overrides | ||
112 | # so that we don't have to wait 1000s which is the default. | ||
113 | overrides = { | ||
114 | 'TEST_QEMUBOOT_TIMEOUT': boot_timeout, | ||
115 | } | ||
116 | |||
117 | print('Booting %s' % test_image) | ||
118 | |||
119 | try: | ||
120 | with runqemu(test_image, ssh=False, | ||
121 | runqemuparams='nographic slirp', | ||
122 | qemuparams=self.ovmf_qemuparams, | ||
123 | overrides=overrides, | ||
124 | image_fstype='wic') as qemu: | ||
125 | |||
126 | cmd = 'uname -a' | ||
127 | |||
128 | status, output = qemu.run_serial(cmd) | ||
129 | |||
130 | self.assertTrue(status, 'Could not run \'uname -a\' (status=%s):\n%s' % (status, output)) | ||
131 | |||
132 | # if we got this far without a correctly signed image, something went wrong | ||
133 | if signing_key != self.correct_key: | ||
134 | self.fail('The image not give a Security violation when expected. Boot log:\n%s' % output) | ||
135 | |||
136 | |||
137 | except Exception: | ||
138 | |||
139 | # Currently runqemu() fails if 'login:' prompt is not seen and it's | ||
140 | # not possible to login as 'root'. Those conditions aren't met when | ||
141 | # booting to EFI shell (See [YOCTO #11438]). We catch the failure | ||
142 | # and parse the boot log to determine the success. Note: the | ||
143 | # timeout triggers verbose bb.error() but that's normal with some | ||
144 | # of the test cases. | ||
145 | |||
146 | workdir = get_bb_var('WORKDIR', test_image) | ||
147 | bootlog = "%s/testimage/qemu_boot_log" % workdir | ||
148 | |||
149 | with open(bootlog, "r") as log: | ||
150 | |||
151 | # This isn't right but all we can do at this point. The right | ||
152 | # approach would run commands in the EFI shell to determine | ||
153 | # the BIOS rejects unsigned and/or images signed with keys in | ||
154 | # dbx key store but that needs changes in oeqa framework. | ||
155 | |||
156 | output = log.read() | ||
157 | |||
158 | # PASS if we see a security violation on unsigned or incorrectly signed images, otherwise fail | ||
159 | if signing_key == self.correct_key: | ||
160 | self.fail('Correctly signed image failed to boot. Boot log:\n%s' % output) | ||
161 | elif not re.search('Security Violation', output): | ||
162 | self.fail('The image not give a Security violation when expected. Boot log:\n%s' % output) | ||
163 | |||
164 | def test_boot_unsigned_image(self): | ||
165 | """ Boot unsigned image with secureboot enabled in UEFI.""" | ||
166 | self.secureboot_with_image(boot_timeout=120, signing_key=None) | ||
167 | |||
168 | @OETestDepends(['secureboot.SecureBootTests.test_boot_unsigned_image']) | ||
169 | def test_boot_incorrectly_signed_image(self): | ||
170 | """ Boot (correctly) signed image with secureboot enabled in UEFI.""" | ||
171 | self.secureboot_with_image(boot_timeout=120, signing_key=self.incorrect_key) | ||
172 | |||
173 | @OETestDepends(['secureboot.SecureBootTests.test_boot_incorrectly_signed_image']) | ||
174 | def test_boot_correctly_signed_image(self): | ||
175 | """ Boot (correctly) signed image with secureboot enabled in UEFI.""" | ||
176 | self.secureboot_with_image(boot_timeout=150, signing_key=self.correct_key) | ||
diff --git a/recipes-bsp/ace/ace_6.5.3.bb b/recipes-bsp/ace/ace_6.5.3.bb deleted file mode 100644 index 53ec3243..00000000 --- a/recipes-bsp/ace/ace_6.5.3.bb +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | DESCRIPTION = "C++ network programming framework that implements many core \ | ||
2 | patterns for concurrent communication software" | ||
3 | LICENSE = "ACE-TAO-CIAO" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=407a202d1b887b998dc9480442840630" | ||
5 | |||
6 | DEPENDS += "openssl gperf-native" | ||
7 | |||
8 | SRC_URI = "ftp://download.dre.vanderbilt.edu/previous_versions/ACE-${PV}.tar.bz2 \ | ||
9 | file://ace_config.patch \ | ||
10 | " | ||
11 | |||
12 | SRC_URI[md5sum] = "4cc5f109ebd17cd56f0539d1b47d16b3" | ||
13 | SRC_URI[sha256sum] = "b1d6a716394bd15c21bb90037b8a12a4d8034cc9d8878b0ad39b3c467df19b1a" | ||
14 | |||
15 | COMPATIBLE_HOST_libc-musl = "null" | ||
16 | |||
17 | S = "${WORKDIR}/ACE_wrappers" | ||
18 | B = "${WORKDIR}/ACE_wrappers/ace" | ||
19 | export ACE_ROOT="${WORKDIR}/ACE_wrappers" | ||
20 | |||
21 | inherit pkgconfig | ||
22 | |||
23 | CXXFLAGS_append = " -fpermissive -Wnodeprecated-declarations" | ||
24 | |||
25 | do_install() { | ||
26 | export D="${D}" | ||
27 | oe_runmake install | ||
28 | |||
29 | for i in $(find ${D} -name "*.pc") ; do | ||
30 | sed -i -e s:${D}::g \ | ||
31 | -e s:/${TARGET_SYS}::g \ | ||
32 | $i | ||
33 | done | ||
34 | |||
35 | rm -r ${D}/usr/share | ||
36 | } | ||
37 | |||
diff --git a/recipes-bsp/ace/files/ace_config.patch b/recipes-bsp/ace/files/ace_config.patch deleted file mode 100644 index 207b85ab..00000000 --- a/recipes-bsp/ace/files/ace_config.patch +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | diff -ruN ACE_wrappers1/ace/config.h ACE_wrappers/ace/config.h | ||
2 | --- ACE_wrappers1/ace/config.h 1970-01-01 02:00:00.000000000 +0200 | ||
3 | +++ ACE_wrappers/ace/config.h 2019-01-10 13:36:52.698012477 +0200 | ||
4 | @@ -0,0 +1,1 @@ | ||
5 | +#include "ace/config-linux.h" | ||
6 | diff -ruN ACE_wrappers1/include/makeinclude/platform_macros.GNU ACE_wrappers/include/makeinclude/platform_macros.GNU | ||
7 | --- ACE_wrappers1/include/makeinclude/platform_macros.GNU 1970-01-01 02:00:00.000000000 +0200 | ||
8 | +++ ACE_wrappers/include/makeinclude/platform_macros.GNU 2018-10-31 15:11:18.265392460 +0200 | ||
9 | @@ -0,0 +1,3 @@ | ||
10 | +INSTALL_PREFIX = $(D)$(exec_prefix) | ||
11 | +INSTALL_LIB = $(base_libdir) | ||
12 | +include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU | ||
diff --git a/recipes-bsp/formfactor/formfactor_0.0.bbappend b/recipes-bsp/formfactor/formfactor_0.0.bbappend index 6dd422ae..d21c3bee 100644 --- a/recipes-bsp/formfactor/formfactor_0.0.bbappend +++ b/recipes-bsp/formfactor/formfactor_0.0.bbappend | |||
@@ -1 +1 @@ | |||
FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:" | FILESEXTRAPATHS:prepend:intel-x86-common := "${THISDIR}/${PN}:" | ||
diff --git a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.conf b/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.conf deleted file mode 100644 index 74d33c87..00000000 --- a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.conf +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | # Mimic modprobe's install funcitonality with busybox's modprobe | ||
2 | install gma500_gfx dmesg | grep gma500_gfx_checked || { /etc/modprobe.d/gma500-gfx-check.sh || modprobe gma500_gfx; } | ||
diff --git a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.sh b/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.sh deleted file mode 100644 index 75cda99f..00000000 --- a/recipes-bsp/gma500-gfx-check/gma500-gfx-check/gma500-gfx-check.sh +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # Check for devices we wish to avoid gma500_gfx for | ||
4 | DEVICES="0x8119 0x4108" | ||
5 | |||
6 | # Checked flag to avoid infinite modprobe | ||
7 | echo "gma500_gfx_checked" >> /dev/kmsg; | ||
8 | |||
9 | for DEVICE in $DEVICES; do | ||
10 | if udevadm trigger --subsystem-match=pci --verbose --attr-match=device=$DEVICE | grep "pci" >> /dev/null ; then | ||
11 | echo "Found $DEVICE, avoiding gma500_gfx module" >> /dev/kmsg; | ||
12 | exit 0 | ||
13 | fi | ||
14 | done | ||
15 | exit 1 | ||
diff --git a/recipes-bsp/gma500-gfx-check/gma500-gfx-check_1.0.bb b/recipes-bsp/gma500-gfx-check/gma500-gfx-check_1.0.bb deleted file mode 100644 index 7b08064b..00000000 --- a/recipes-bsp/gma500-gfx-check/gma500-gfx-check_1.0.bb +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | SUMMARY = "Intel gma500_gfx fix for certain hardware" | ||
2 | DESCRIPTION = "Avoid inserting gma500_gfx module for certain hardware devices." | ||
3 | LICENSE="GPLv2" | ||
4 | LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6" | ||
5 | |||
6 | SRC_URI = "file://gma500-gfx-check.conf \ | ||
7 | file://gma500-gfx-check.sh " | ||
8 | |||
9 | do_install(){ | ||
10 | install -d ${D}${sysconfdir}/modprobe.d/ | ||
11 | install -m 755 ${WORKDIR}/gma500-gfx-check.sh ${D}${sysconfdir}/modprobe.d/gma500-gfx-check.sh | ||
12 | install -m 644 ${WORKDIR}/gma500-gfx-check.conf ${D}${sysconfdir}/modprobe.d/gma500-gfx-check.conf | ||
13 | } | ||
14 | |||
15 | FILES_${PN}="${sysconfdir}/modprobe.d/gma500-gfx-check.conf \ | ||
16 | ${sysconfdir}/modprobe.d/gma500-gfx-check.sh" | ||
17 | |||
18 | COMPATIBLE_MACHINE = "intel-core2-32" | ||
diff --git a/recipes-bsp/intel-cmt-cat/intel-cmt-cat_25.04.bb b/recipes-bsp/intel-cmt-cat/intel-cmt-cat_25.04.bb new file mode 100644 index 00000000..a0e8d214 --- /dev/null +++ b/recipes-bsp/intel-cmt-cat/intel-cmt-cat_25.04.bb | |||
@@ -0,0 +1,29 @@ | |||
1 | SUMMARY = "intel-cmt-cat" | ||
2 | DESCRIPTION = "Software package which provides basic support for Intel(R) \ | ||
3 | Resource Director Technology (Intel(R) RDT)" | ||
4 | HOMEPAGE = "https://github.com/intel/intel-cmt-cat" | ||
5 | |||
6 | LICENSE = "BSD-3-Clause" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE;md5=4b63c65942e1c16fd897f8cd20abebf8" | ||
8 | |||
9 | SRC_URI = "git://github.com/intel/intel-cmt-cat;protocol=https;branch=master" | ||
10 | SRCREV = "17629d0b726875836af6c7d9cb38b8ed23f32089" | ||
11 | |||
12 | S = "${WORKDIR}/git" | ||
13 | |||
14 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
15 | COMPATIBLE_HOST:libc-musl = "null" | ||
16 | |||
17 | do_install() { | ||
18 | oe_runmake install PREFIX=${D}${prefix} NOLDCONFIG=y | ||
19 | } | ||
20 | |||
21 | FILES:${PN} += "${nonarch_libdir}/libpqos*" | ||
22 | FILES:${PN}-doc = "/usr/man*" | ||
23 | |||
24 | INSANE_SKIP:${PN} += "ldflags" | ||
25 | INSANE_SKIP:${PN} += "dev-so" | ||
26 | INSANE_SKIP:${PN} += "libdir" | ||
27 | INSANE_SKIP:${PN} += "already-stripped" | ||
28 | |||
29 | INHIBIT_PACKAGE_DEBUG_SPLIT = "1" | ||
diff --git a/recipes-bsp/metee/metee_2.1.0.bb b/recipes-bsp/metee/metee_3.2.4.bb index e477f57a..da8220b9 100644 --- a/recipes-bsp/metee/metee_2.1.0.bb +++ b/recipes-bsp/metee/metee_3.2.4.bb | |||
@@ -10,10 +10,9 @@ COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | |||
10 | 10 | ||
11 | inherit cmake | 11 | inherit cmake |
12 | 12 | ||
13 | SRC_URI = "git://github.com/intel/metee.git" | 13 | SRC_URI = "git://github.com/intel/metee.git;branch=master;protocol=https \ |
14 | SRCREV = "642eedfcacc677fc43181f0b7c16d8f90724a9cb" | 14 | " |
15 | 15 | SRCREV = "db45e37e146fd9c06907a15ade55eba06ad1f951" | |
16 | COMPATIBLE_HOST_libc-musl = "null" | ||
17 | 16 | ||
18 | S = "${WORKDIR}/git" | 17 | S = "${WORKDIR}/git" |
19 | 18 | ||
diff --git a/recipes-bsp/systemd-boot/systemd-boot_%.bbappend b/recipes-bsp/systemd-boot/systemd-boot_%.bbappend deleted file mode 100644 index d2e1c16b..00000000 --- a/recipes-bsp/systemd-boot/systemd-boot_%.bbappend +++ /dev/null | |||
@@ -1,9 +0,0 @@ | |||
1 | PACKAGE_ARCH_intel-x86-common = "${INTEL_COMMON_PACKAGE_ARCH}" | ||
2 | |||
3 | do_compile_append_intel-x86-common() { | ||
4 | ninja src/boot/efi/linux${SYSTEMD_BOOT_EFI_ARCH}.efi.stub | ||
5 | } | ||
6 | |||
7 | do_deploy_append_intel-x86-common() { | ||
8 | install ${B}/src/boot/efi/linux*.efi.stub ${DEPLOYDIR} | ||
9 | } | ||
diff --git a/recipes-bsp/thermald/thermald/0001-Use-correct-format-specifier-for-size_t.patch b/recipes-bsp/thermald/thermald/0001-Use-correct-format-specifier-for-size_t.patch deleted file mode 100644 index 6897ffc1..00000000 --- a/recipes-bsp/thermald/thermald/0001-Use-correct-format-specifier-for-size_t.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | From bb7631163c8f3f44d0dc83690765cdb799664fd5 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Wed, 26 Sep 2018 10:34:15 +0800 | ||
4 | Subject: [PATCH] Use correct format specifier for size_t | ||
5 | |||
6 | %zu instead of %lu, otherwise on 32 bit: | ||
7 | |||
8 | | ../git/src/thd_zone.cpp: In member function 'void cthd_zone::sort_and_update_poll_trip()': | ||
9 | | ../git/src/thd_zone.cpp:106:16: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'std::vector<cthd_trip_point>::size_type' {aka 'unsigned int'} [-Werror=format=] | ||
10 | | thd_log_debug("sort_and_update_poll_trip: trip_points_size =%lu\n", | ||
11 | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
12 | | trip_points.size()); | ||
13 | |||
14 | Upstream-Status: Submitted | ||
15 | [https://github.com/intel/thermal_daemon/pull/165] | ||
16 | |||
17 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
18 | --- | ||
19 | src/thd_zone.cpp | 2 +- | ||
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
21 | |||
22 | diff --git a/src/thd_zone.cpp b/src/thd_zone.cpp | ||
23 | index b7edf9e..cb7b8e8 100644 | ||
24 | --- a/src/thd_zone.cpp | ||
25 | +++ b/src/thd_zone.cpp | ||
26 | @@ -103,7 +103,7 @@ int cthd_zone::read_user_set_psv_temp() { | ||
27 | } | ||
28 | |||
29 | void cthd_zone::sort_and_update_poll_trip() { | ||
30 | - thd_log_debug("sort_and_update_poll_trip: trip_points_size =%lu\n", | ||
31 | + thd_log_debug("sort_and_update_poll_trip: trip_points_size =%zu\n", | ||
32 | trip_points.size()); | ||
33 | if (trip_points.size()) { | ||
34 | unsigned int polling_trip = 0; | ||
35 | -- | ||
36 | 2.17.1 | ||
37 | |||
diff --git a/recipes-core/images/core-image-minimal-initramfs.bbappend b/recipes-core/images/core-image-minimal-initramfs.bbappend index 132f15b5..90ac28fd 100644 --- a/recipes-core/images/core-image-minimal-initramfs.bbappend +++ b/recipes-core/images/core-image-minimal-initramfs.bbappend | |||
@@ -1,2 +1,2 @@ | |||
1 | # Add i915 graphics firmware | 1 | # Add i915 graphics firmware |
2 | PACKAGE_INSTALL_append_intel-x86-common = " linux-firmware-i915" | 2 | PACKAGE_INSTALL:append:intel-x86-common = " linux-firmware-i915" |
diff --git a/recipes-core/images/core-image-tiny.bb b/recipes-core/images/core-image-tiny.bb index 6b09b0c2..f521f668 100644 --- a/recipes-core/images/core-image-tiny.bb +++ b/recipes-core/images/core-image-tiny.bb | |||
@@ -32,5 +32,5 @@ python() { | |||
32 | d.appendVarFlag('do_image', 'depends', ' %s:do_image_complete' % initrd_i) | 32 | d.appendVarFlag('do_image', 'depends', ' %s:do_image_complete' % initrd_i) |
33 | } | 33 | } |
34 | 34 | ||
35 | WKS_FILE_intel-corei7-64 = "core-image-tiny.wks.in" | 35 | WKS_FILE:intel-corei7-64 = "core-image-tiny.wks.in" |
36 | WKS_FILE_intel-core2-32 = "core-image-tiny.wks.in" | 36 | WKS_FILE:intel-core2-32 = "core-image-tiny.wks.in" |
diff --git a/recipes-core/libxcam/libxcam/0001-fake_v4l2_device.h-fix-narrowing-warning.patch b/recipes-core/libxcam/libxcam/0001-fake_v4l2_device.h-fix-narrowing-warning.patch new file mode 100644 index 00000000..f15d5cc7 --- /dev/null +++ b/recipes-core/libxcam/libxcam/0001-fake_v4l2_device.h-fix-narrowing-warning.patch | |||
@@ -0,0 +1,94 @@ | |||
1 | From d4c97b50b577ea16b9ff6d9a352ab474a119310e Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Wed, 18 May 2022 15:41:24 +0800 | ||
4 | Subject: [PATCH] fake_v4l2_device.h: fix narrowing warning | ||
5 | |||
6 | Use uint32_t instead of int for IOCTLs commands. | ||
7 | |||
8 | Warning log: | ||
9 | | ../../../git/xcore/fake_v4l2_device.h: In member function 'virtual int XCam::FakeV4l2Device::io_control(int, void*)': | ||
10 | | ../../../git/xcore/fake_v4l2_device.h:42:14: error: narrowing conversion of '3225441794' from 'long unsigned int' to 'int' [-Wnarrowing] | ||
11 | | 42 | case VIDIOC_ENUM_FMT: | ||
12 | | | ^~~~~~~~~~~~~~~ | ||
13 | | make[4]: *** [Makefile:685: libgstxcamsrc_la-gstxcamsrc.lo] Error 1 | ||
14 | |||
15 | Issue: https://github.com/intel/libxcam/issues/801 | ||
16 | Upstream-Status: Submitted [https://github.com/intel/libxcam/pull/802] | ||
17 | |||
18 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
19 | --- | ||
20 | xcore/base/xcam_common.h | 2 +- | ||
21 | xcore/fake_v4l2_device.h | 2 +- | ||
22 | xcore/v4l2_device.cpp | 2 +- | ||
23 | xcore/v4l2_device.h | 2 +- | ||
24 | xcore/xcam_common.cpp | 2 +- | ||
25 | 5 files changed, 5 insertions(+), 5 deletions(-) | ||
26 | |||
27 | diff --git a/xcore/base/xcam_common.h b/xcore/base/xcam_common.h | ||
28 | index 1f16e1e..4aa6cb9 100644 | ||
29 | --- a/xcore/base/xcam_common.h | ||
30 | +++ b/xcore/base/xcam_common.h | ||
31 | @@ -75,7 +75,7 @@ void xcam_free (void *ptr); | ||
32 | * return, 0 successfully | ||
33 | * else, check errno | ||
34 | */ | ||
35 | -int xcam_device_ioctl (int fd, int cmd, void *arg); | ||
36 | +int xcam_device_ioctl (int fd, uint32_t cmd, void *arg); | ||
37 | const char *xcam_fourcc_to_string (uint32_t fourcc); | ||
38 | |||
39 | void xcam_set_log (const char* file_name); | ||
40 | diff --git a/xcore/fake_v4l2_device.h b/xcore/fake_v4l2_device.h | ||
41 | index f679c19..e29787d 100644 | ||
42 | --- a/xcore/fake_v4l2_device.h | ||
43 | +++ b/xcore/fake_v4l2_device.h | ||
44 | @@ -33,7 +33,7 @@ public: | ||
45 | : V4l2Device ("/dev/null") | ||
46 | {} | ||
47 | |||
48 | - int io_control (int cmd, void *arg) | ||
49 | + int io_control (uint32_t cmd, void *arg) | ||
50 | { | ||
51 | XCAM_UNUSED (arg); | ||
52 | |||
53 | diff --git a/xcore/v4l2_device.cpp b/xcore/v4l2_device.cpp | ||
54 | index 395461e..66a8ac6 100644 | ||
55 | --- a/xcore/v4l2_device.cpp | ||
56 | +++ b/xcore/v4l2_device.cpp | ||
57 | @@ -185,7 +185,7 @@ V4l2Device::close () | ||
58 | } | ||
59 | |||
60 | int | ||
61 | -V4l2Device::io_control (int cmd, void *arg) | ||
62 | +V4l2Device::io_control (uint32_t cmd, void *arg) | ||
63 | |||
64 | { | ||
65 | if (_fd <= 0) | ||
66 | diff --git a/xcore/v4l2_device.h b/xcore/v4l2_device.h | ||
67 | index b4ad7ad..2551a92 100644 | ||
68 | --- a/xcore/v4l2_device.h | ||
69 | +++ b/xcore/v4l2_device.h | ||
70 | @@ -104,7 +104,7 @@ public: | ||
71 | XCamReturn queue_buffer (SmartPtr<V4l2Buffer> &buf); | ||
72 | |||
73 | // use as less as possible | ||
74 | - virtual int io_control (int cmd, void *arg); | ||
75 | + virtual int io_control (uint32_t cmd, void *arg); | ||
76 | |||
77 | protected: | ||
78 | |||
79 | diff --git a/xcore/xcam_common.cpp b/xcore/xcam_common.cpp | ||
80 | index 848884d..d4d5093 100644 | ||
81 | --- a/xcore/xcam_common.cpp | ||
82 | +++ b/xcore/xcam_common.cpp | ||
83 | @@ -53,7 +53,7 @@ void xcam_free(void *ptr) | ||
84 | free (ptr); | ||
85 | } | ||
86 | |||
87 | -int xcam_device_ioctl (int fd, int cmd, void *arg) | ||
88 | +int xcam_device_ioctl (int fd, uint32_t cmd, void *arg) | ||
89 | { | ||
90 | int ret = 0; | ||
91 | int tried_time = 0; | ||
92 | -- | ||
93 | 2.25.1 | ||
94 | |||
diff --git a/recipes-core/libxcam/libxcam_1.5.0.bb b/recipes-core/libxcam/libxcam_1.5.0.bb new file mode 100644 index 00000000..df459d72 --- /dev/null +++ b/recipes-core/libxcam/libxcam_1.5.0.bb | |||
@@ -0,0 +1,39 @@ | |||
1 | SUMMARY = "libXCam is a project for extended camera(not limited in camera) \ | ||
2 | features and focus on image quality improvement and video analysis" | ||
3 | LICENSE = "Apache-2.0" | ||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=8c911f084a3e5f46b21582a6cc9973e6" | ||
5 | SECTION = "lib" | ||
6 | |||
7 | inherit autotools pkgconfig | ||
8 | |||
9 | S = "${WORKDIR}/git" | ||
10 | SRCREV = "231a1d5243cd45c7a6b511b667f1ec52178fdda8" | ||
11 | SRC_URI = "git://github.com/intel/libxcam.git;branch=1.5.0;protocol=https \ | ||
12 | file://0001-fake_v4l2_device.h-fix-narrowing-warning.patch \ | ||
13 | " | ||
14 | |||
15 | COMPATIBLE_HOST:libc-musl = "null" | ||
16 | |||
17 | PACKAGECONFIG ??= " gst \ | ||
18 | ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "gles", "", d)} \ | ||
19 | ${@bb.utils.contains("DISTRO_FEATURES", "vulkan", "vulkan", "", d)} \ | ||
20 | " | ||
21 | |||
22 | PACKAGECONFIG[gst] = "--enable-gst, --disable-gst, gstreamer1.0 gstreamer1.0-plugins-base" | ||
23 | PACKAGECONFIG[aiq] = "--enable-aiq, --disable-aiq," | ||
24 | PACKAGECONFIG[libcl] = "--enable-libcl, --disable-libcl," | ||
25 | PACKAGECONFIG[opencv] = "--enable-opencv, --disable-opencv, opencv" | ||
26 | PACKAGECONFIG[render] = "--enable-render, --disable-render," | ||
27 | PACKAGECONFIG[gles] = "--enable-gles, --disable-gles, virtual/mesa" | ||
28 | PACKAGECONFIG[vulkan] = "--enable-vulkan, --disable-vulkan, vulkan-loader virtual/mesa" | ||
29 | PACKAGECONFIG[dnn] = "--enable-dnn, --disable-dnn," | ||
30 | |||
31 | do_install:append () { | ||
32 | install -d ${D}${bindir}/libxcam | ||
33 | cp -r ${B}/tests/.libs/* ${D}${bindir}/libxcam/ | ||
34 | } | ||
35 | |||
36 | FILES:${PN} += "${libdir}/gstreamer-*/*.so" | ||
37 | FILES:${PN}-test = "${bindir}/libxcam/*" | ||
38 | PACKAGES =+ "${PN}-test" | ||
39 | RDEPENDS:${PN}-test =+ "bash" | ||
diff --git a/recipes-core/meta/icx-environment.inc b/recipes-core/meta/icx-environment.inc new file mode 100644 index 00000000..65322a91 --- /dev/null +++ b/recipes-core/meta/icx-environment.inc | |||
@@ -0,0 +1,15 @@ | |||
1 | export ICX_LDFLAGS_OPTION = " -Wl,-dynamic-linker,/lib/ld-linux-x86-64.so.2" | ||
2 | export ICXSDK_PREFIX_OPTION = "-B ${TARGET_PREFIX}" | ||
3 | export ICXQSDK_PREFIX_OPTION = "-qgnu-prefix=${TARGET_PREFIX}" | ||
4 | |||
5 | create_sdk_files:append() { | ||
6 | script=${SDK_OUTPUT}/${SDKPATH}/environment-setup-${REAL_MULTIMACH_TARGET_SYS} | ||
7 | if ${@bb.utils.contains('ICXSDK', '1', 'true', 'false', d)}; then | ||
8 | echo 'export ICX="icx ${ICXSDK_PREFIX_OPTION} --target=${TARGET_SYS} ${TARGET_CC_ARCH} --sysroot=$SDKTARGETSYSROOT ${ICX_LDFLAGS_OPTION}"' >> $script | ||
9 | echo 'export ICXCXX="icpx ${ICXSDK_PREFIX_OPTION} --target=${TARGET_SYS} ${TARGET_CC_ARCH} --sysroot=$SDKTARGETSYSROOT ${ICX_LDFLAGS_OPTION}"' >> $script | ||
10 | echo 'export ICXCPP="icx ${ICXSDK_PREFIX_OPTION} -E --target=${TARGET_SYS} ${TARGET_CC_ARCH} --sysroot=$SDKTARGETSYSROOT ${ICX_LDFLAGS_OPTION}"' >> $script | ||
11 | echo 'export ICXLD="xild --sysroot=$SDKTARGETSYSROOT "' >> $script | ||
12 | echo 'export ICXCCLD="icx ${ICXSDK_PREFIX_OPTION} --sysroot=$SDKTARGETSYSROOT"' >> $script | ||
13 | echo 'export ICXAR="xiar ${ICXQSDK_PREFIX_OPTION}"' >> $script | ||
14 | fi | ||
15 | } | ||
diff --git a/recipes-core/meta/meta-environment-extsdk.bbappend b/recipes-core/meta/meta-environment-extsdk.bbappend new file mode 100644 index 00000000..2cff6fc4 --- /dev/null +++ b/recipes-core/meta/meta-environment-extsdk.bbappend | |||
@@ -0,0 +1,3 @@ | |||
1 | FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" | ||
2 | |||
3 | require ${@bb.utils.contains('ICXSDK', '1', 'icx-environment.inc', '', d)} | ||
diff --git a/recipes-core/meta/meta-environment.bbappend b/recipes-core/meta/meta-environment.bbappend new file mode 100644 index 00000000..2cff6fc4 --- /dev/null +++ b/recipes-core/meta/meta-environment.bbappend | |||
@@ -0,0 +1,3 @@ | |||
1 | FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" | ||
2 | |||
3 | require ${@bb.utils.contains('ICXSDK', '1', 'icx-environment.inc', '', d)} | ||
diff --git a/recipes-core/microcode/intel-microcode_20190618.bb b/recipes-core/microcode/intel-microcode_20250512.bb index 2edf947e..de011fda 100644 --- a/recipes-core/microcode/intel-microcode_20190618.bb +++ b/recipes-core/microcode/intel-microcode_20250512.bb | |||
@@ -11,12 +11,12 @@ DESCRIPTION = "The microcode data file contains the latest microcode\ | |||
11 | if the file is placed in the /etc/firmware directory of the Linux system." | 11 | if the file is placed in the /etc/firmware directory of the Linux system." |
12 | 12 | ||
13 | LICENSE = "Intel-Microcode-License" | 13 | LICENSE = "Intel-Microcode-License" |
14 | LIC_FILES_CHKSUM = "file://license;md5=99b296eb12723fd1eeb52e24971eed84" | 14 | LIC_FILES_CHKSUM = "file://license;md5=d8405101ec6e90c1d84b082b0c40c721" |
15 | 15 | ||
16 | SRC_URI = "git://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git;protocol=https \ | 16 | SRC_URI = "git://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git;protocol=https;branch=main \ |
17 | " | 17 | " |
18 | 18 | ||
19 | SRCREV = "940d904b7272edd689a5f0eef9dee09c13746748" | 19 | SRCREV = "eeb93b7a818bb27cb6b7a2be0454f8a0a75f1bd6" |
20 | 20 | ||
21 | DEPENDS = "iucode-tool-native" | 21 | DEPENDS = "iucode-tool-native" |
22 | S = "${WORKDIR}/git" | 22 | S = "${WORKDIR}/git" |
@@ -34,21 +34,16 @@ do_compile() { | |||
34 | ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \ | 34 | ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \ |
35 | ${UCODE_FILTER_PARAMETERS} \ | 35 | ${UCODE_FILTER_PARAMETERS} \ |
36 | --overwrite \ | 36 | --overwrite \ |
37 | --write-to=${WORKDIR}/microcode_${PV}.bin \ | ||
38 | ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/* | ||
39 | |||
40 | ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \ | ||
41 | ${UCODE_FILTER_PARAMETERS} \ | ||
42 | --overwrite \ | ||
43 | --write-earlyfw=${WORKDIR}/microcode_${PV}.cpio \ | 37 | --write-earlyfw=${WORKDIR}/microcode_${PV}.cpio \ |
44 | ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/* | 38 | ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/* |
45 | } | 39 | } |
46 | 40 | ||
47 | do_install() { | 41 | do_install() { |
48 | install -d ${D}${base_libdir}/firmware/intel-ucode/ | 42 | install -d ${D}${nonarch_base_libdir}/firmware/intel-ucode/ |
49 | install ${WORKDIR}/microcode_${PV}.bin ${D}${base_libdir}/firmware/intel-ucode/ | 43 | ${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \ |
50 | cd ${D}${base_libdir}/firmware/intel-ucode/ | 44 | ${UCODE_FILTER_PARAMETERS} \ |
51 | ln -sf microcode_${PV}.bin microcode.bin | 45 | --write-firmware=${D}${nonarch_base_libdir}/firmware/intel-ucode \ |
46 | ${S}/intel-ucode/* ${S}/intel-ucode-with-caveats/* | ||
52 | } | 47 | } |
53 | 48 | ||
54 | do_deploy() { | 49 | do_deploy() { |
@@ -63,6 +58,6 @@ addtask deploy before do_build after do_compile | |||
63 | 58 | ||
64 | PACKAGES = "${PN}" | 59 | PACKAGES = "${PN}" |
65 | 60 | ||
66 | FILES_${PN} = "${base_libdir}" | 61 | FILES:${PN} = "${nonarch_base_libdir}" |
67 | 62 | ||
68 | UPSTREAM_CHECK_GITTAGREGEX = "^microcode-(?P<pver>(\d+)[a-z])$" | 63 | UPSTREAM_CHECK_GITTAGREGEX = "^microcode-(?P<pver>(\d+)[a-z]*)$" |
diff --git a/recipes-core/microcode/iucode-tool_2.3.1.bb b/recipes-core/microcode/iucode-tool_2.3.1.bb index df74a8e9..19417b7c 100644 --- a/recipes-core/microcode/iucode-tool_2.3.1.bb +++ b/recipes-core/microcode/iucode-tool_2.3.1.bb | |||
@@ -12,14 +12,14 @@ DESCRIPTION = "iucode_tool is a program to manipulate Intel i686 and X86-64\ | |||
12 | HOMEPAGE = "https://gitlab.com/iucode-tool/" | 12 | HOMEPAGE = "https://gitlab.com/iucode-tool/" |
13 | BUGTRACKER = "https://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=iucode-tool;repeatmerged=0" | 13 | BUGTRACKER = "https://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=0;src=iucode-tool;repeatmerged=0" |
14 | 14 | ||
15 | LICENSE = "GPLv2+" | 15 | LICENSE = "GPL-2.0-or-later" |
16 | LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ | 16 | LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \ |
17 | file://iucode_tool.c;beginline=1;endline=15;md5=71eeab3190360ff0267101b570874756" | 17 | file://iucode_tool.c;beginline=1;endline=15;md5=71eeab3190360ff0267101b570874756" |
18 | 18 | ||
19 | DEPENDS_append_libc-musl = " argp-standalone" | 19 | DEPENDS:append:libc-musl = " argp-standalone" |
20 | 20 | ||
21 | SRC_URI = "https://gitlab.com/iucode-tool/releases/raw/master/iucode-tool_${PV}.tar.xz" | 21 | SRC_URI = "https://gitlab.com/iucode-tool/releases/raw/master/iucode-tool_${PV}.tar.xz" |
22 | SRC_URI_append_libc-musl = " file://0001-Makefile.am-Add-arg-parse-library-for-MUSL-support.patch" | 22 | SRC_URI:append:libc-musl = " file://0001-Makefile.am-Add-arg-parse-library-for-MUSL-support.patch" |
23 | 23 | ||
24 | SRC_URI[md5sum] = "63b33cc0ea1f8c73b443412abbf39d6f" | 24 | SRC_URI[md5sum] = "63b33cc0ea1f8c73b443412abbf39d6f" |
25 | SRC_URI[sha256sum] = "12b88efa4d0d95af08db05a50b3dcb217c0eb2bfc67b483779e33d498ddb2f95" | 25 | SRC_URI[sha256sum] = "12b88efa4d0d95af08db05a50b3dcb217c0eb2bfc67b483779e33d498ddb2f95" |
diff --git a/recipes-core/mkl-dnn/mkl-dnn_git.bb b/recipes-core/mkl-dnn/mkl-dnn_git.bb deleted file mode 100644 index 14f4cec4..00000000 --- a/recipes-core/mkl-dnn/mkl-dnn_git.bb +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | SUMMARY = "Intel Math Kernel Library for Deep Neural Networks" | ||
2 | DESCRIPTION = "This software is a user mode library that accelerates\ | ||
3 | deep-learning applications and frameworks on Intel architecture." | ||
4 | LICENSE = "Apache-2.0 & BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=afa44a3d001cc203032135324f9636b7 \ | ||
6 | file://tests/gtests/gtest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \ | ||
7 | file://src/cpu/xbyak/COPYRIGHT;md5=03532861dad9003cc2c17f14fc7a4efa" | ||
8 | SECTION = "lib" | ||
9 | |||
10 | inherit pkgconfig cmake | ||
11 | |||
12 | S = "${WORKDIR}/git" | ||
13 | SRCREV = "027de7603662a569366e15132ac80298902b96b8" | ||
14 | SRC_URI = "git://github.com/intel/mkl-dnn.git;branch=rls-v0.19" | ||
15 | PV = "0.19+git${SRCPV}" | ||
16 | |||
17 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" | ||
18 | |||
19 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
20 | COMPATIBLE_HOST_libc-musl = 'null' | ||
21 | |||
22 | EXTRA_OECMAKE += "-DMKLDNN_LIBRARY_TYPE=SHARED" | ||
23 | EXTRA_OECMAKE += "-DMKLDNN_THREADING=OMP" | ||
24 | EXTRA_OECMAKE += "-DWITH_EXAMPLE=ON" | ||
25 | EXTRA_OECMAKE += "-DWITH_TEST=ON" | ||
diff --git a/recipes-core/ovmf/files/0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch b/recipes-core/ovmf/files/0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch deleted file mode 100644 index 62db0633..00000000 --- a/recipes-core/ovmf/files/0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch +++ /dev/null | |||
@@ -1,105 +0,0 @@ | |||
1 | From 48e511481d83c1614cd00a5a2edcf6b5d746b9c4 Mon Sep 17 00:00:00 2001 | ||
2 | From: Mikko Ylinen <mikko.ylinen@linux.intel.com> | ||
3 | Date: Fri, 7 Apr 2017 12:06:14 +0300 | ||
4 | Subject: [PATCH] ovmf: RefkitTestCA: TEST UEFI SecureBoot | ||
5 | |||
6 | This patch adds refkit-db.cer (via xxd -i) in OVMF's db | ||
7 | signature database when used with EnrollDefaultKeys EFI | ||
8 | application. It's used for testing purposes only. | ||
9 | |||
10 | Images signed with refkit-db keys are allowed to boot. | ||
11 | |||
12 | Signed-off-by: Mikko Ylinen <mikko.ylinen@linux.intel.com> | ||
13 | --- | ||
14 | OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c | 68 +++++++++++++++++++++++++++ | ||
15 | 1 file changed, 68 insertions(+) | ||
16 | |||
17 | diff --git a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c | ||
18 | index 24ab977..a3c12ba 100644 | ||
19 | --- a/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c | ||
20 | +++ b/OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.c | ||
21 | @@ -516,6 +516,73 @@ STATIC CONST UINT8 MicrosoftUefiCA[] = { | ||
22 | 0x07, 0x92, 0x9b, 0xf5, 0xa6, 0xbc, 0x59, 0x83, 0x58 | ||
23 | }; | ||
24 | |||
25 | +STATIC CONST UINT8 RefkitTestCA[] = { | ||
26 | + 0x30, 0x82, 0x02, 0xfb, 0x30, 0x82, 0x01, 0xe3, 0xa0, 0x03, 0x02, 0x01, | ||
27 | + 0x02, 0x02, 0x09, 0x00, 0xd4, 0xf6, 0x48, 0xc2, 0x68, 0x19, 0x91, 0xac, | ||
28 | + 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, | ||
29 | + 0x0b, 0x05, 0x00, 0x30, 0x14, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, | ||
30 | + 0x04, 0x03, 0x0c, 0x09, 0x72, 0x65, 0x66, 0x6b, 0x69, 0x74, 0x2d, 0x64, | ||
31 | + 0x62, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x34, 0x32, 0x30, 0x31, | ||
32 | + 0x32, 0x30, 0x36, 0x33, 0x32, 0x5a, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x34, | ||
33 | + 0x32, 0x30, 0x31, 0x32, 0x30, 0x36, 0x33, 0x32, 0x5a, 0x30, 0x14, 0x31, | ||
34 | + 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x09, 0x72, 0x65, | ||
35 | + 0x66, 0x6b, 0x69, 0x74, 0x2d, 0x64, 0x62, 0x30, 0x82, 0x01, 0x22, 0x30, | ||
36 | + 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, | ||
37 | + 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, | ||
38 | + 0x82, 0x01, 0x01, 0x00, 0xb4, 0x1c, 0x22, 0xa6, 0x22, 0x01, 0x57, 0xcd, | ||
39 | + 0xf1, 0x4f, 0xaf, 0x72, 0xe3, 0xd9, 0x01, 0x80, 0x50, 0x55, 0xef, 0x02, | ||
40 | + 0x5e, 0xeb, 0x99, 0x35, 0xcb, 0x7f, 0x2a, 0x79, 0xff, 0xb5, 0x3e, 0xec, | ||
41 | + 0x5d, 0x92, 0x06, 0x30, 0x20, 0xe7, 0x95, 0xad, 0xa4, 0x84, 0x2e, 0x3f, | ||
42 | + 0xfa, 0xd7, 0x46, 0xdd, 0x49, 0xa8, 0xe8, 0xe3, 0x79, 0x49, 0xf6, 0x8f, | ||
43 | + 0x0b, 0x1d, 0xfe, 0x63, 0xa8, 0xd1, 0x63, 0xa3, 0xd6, 0x0d, 0x4e, 0x6c, | ||
44 | + 0x66, 0x5c, 0xd6, 0x66, 0x26, 0xd1, 0x26, 0x98, 0xd4, 0x4f, 0x76, 0xc9, | ||
45 | + 0x65, 0x48, 0x58, 0x13, 0x08, 0x31, 0xbc, 0xe5, 0x47, 0x25, 0x65, 0x95, | ||
46 | + 0x39, 0x89, 0x5f, 0x02, 0xf1, 0xc5, 0x06, 0x17, 0x58, 0xca, 0x09, 0xfd, | ||
47 | + 0xf6, 0x1e, 0xc5, 0x97, 0xda, 0xa3, 0x4e, 0x1a, 0x48, 0xbe, 0xcf, 0x96, | ||
48 | + 0x27, 0x04, 0x4b, 0xb7, 0x6d, 0x67, 0xb6, 0x50, 0x18, 0x04, 0x73, 0x51, | ||
49 | + 0xd2, 0x6a, 0x2d, 0xdf, 0x3b, 0xab, 0xf2, 0x2d, 0x95, 0xd7, 0xa8, 0xb8, | ||
50 | + 0xa8, 0x30, 0xa1, 0xab, 0x8b, 0x92, 0x2b, 0x60, 0x3e, 0x3a, 0xe5, 0x86, | ||
51 | + 0x40, 0x71, 0xc1, 0x3f, 0x2d, 0x2e, 0x90, 0xe7, 0xd6, 0xec, 0xcc, 0xc2, | ||
52 | + 0x0b, 0x79, 0x83, 0x71, 0x6d, 0xf6, 0xa3, 0xa9, 0x4c, 0xcd, 0x46, 0x81, | ||
53 | + 0xdc, 0xef, 0xec, 0x51, 0xbe, 0x81, 0x2a, 0xf1, 0x78, 0x73, 0x41, 0xdb, | ||
54 | + 0x54, 0xce, 0x7c, 0xce, 0xa2, 0xe3, 0x90, 0x4f, 0x45, 0x1a, 0xf9, 0x3d, | ||
55 | + 0x88, 0xfc, 0x0e, 0xed, 0xd3, 0x69, 0x22, 0x4c, 0xfa, 0x0a, 0x69, 0xd1, | ||
56 | + 0x48, 0xc0, 0xaa, 0xa9, 0x3a, 0xb3, 0x8f, 0x10, 0x3a, 0x76, 0xa8, 0x0c, | ||
57 | + 0x7a, 0x3d, 0xd8, 0x79, 0xce, 0x1c, 0x96, 0x62, 0xf4, 0x06, 0xee, 0x47, | ||
58 | + 0xe8, 0xe0, 0x69, 0x91, 0xae, 0xea, 0x34, 0xcf, 0xda, 0xa8, 0xb4, 0x39, | ||
59 | + 0x5e, 0xf3, 0x7a, 0xd0, 0x88, 0x48, 0x47, 0x69, 0x02, 0x03, 0x01, 0x00, | ||
60 | + 0x01, 0xa3, 0x50, 0x30, 0x4e, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, | ||
61 | + 0x04, 0x16, 0x04, 0x14, 0x68, 0x60, 0x11, 0x25, 0x85, 0x14, 0x78, 0x1b, | ||
62 | + 0x1a, 0x9f, 0x46, 0x12, 0xe6, 0x21, 0xe4, 0xef, 0xfb, 0x3b, 0xaa, 0xdd, | ||
63 | + 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, | ||
64 | + 0x14, 0x68, 0x60, 0x11, 0x25, 0x85, 0x14, 0x78, 0x1b, 0x1a, 0x9f, 0x46, | ||
65 | + 0x12, 0xe6, 0x21, 0xe4, 0xef, 0xfb, 0x3b, 0xaa, 0xdd, 0x30, 0x0c, 0x06, | ||
66 | + 0x03, 0x55, 0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, | ||
67 | + 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, | ||
68 | + 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x8f, 0xd2, 0x84, 0x7c, 0x43, | ||
69 | + 0x47, 0xca, 0x6b, 0xfd, 0x87, 0x83, 0xd0, 0xef, 0x75, 0xd3, 0x20, 0x52, | ||
70 | + 0x73, 0x18, 0xaa, 0x32, 0x71, 0xfb, 0xa5, 0xf4, 0xc9, 0x11, 0xa3, 0x68, | ||
71 | + 0x4d, 0xb7, 0x9d, 0xe6, 0xd9, 0x46, 0x24, 0xdc, 0xc7, 0xc2, 0x3b, 0xf9, | ||
72 | + 0xb0, 0x98, 0xfc, 0xee, 0x34, 0x6e, 0x10, 0x9b, 0x3d, 0x44, 0x6e, 0x33, | ||
73 | + 0x09, 0x11, 0xb8, 0x29, 0xd6, 0x2d, 0x06, 0xcf, 0x67, 0x8f, 0x96, 0x85, | ||
74 | + 0x9d, 0x63, 0x72, 0xbf, 0x64, 0x5f, 0x0d, 0xe3, 0xc9, 0x63, 0x19, 0x71, | ||
75 | + 0xd4, 0x7d, 0x4c, 0x9c, 0x77, 0x46, 0xda, 0x20, 0x97, 0x6d, 0xbc, 0xdd, | ||
76 | + 0xc2, 0x1f, 0xf3, 0x40, 0x38, 0x1e, 0xe7, 0xcc, 0x55, 0x05, 0x72, 0xba, | ||
77 | + 0x24, 0x4f, 0xb3, 0x8a, 0x93, 0x0c, 0x30, 0x60, 0xda, 0x9f, 0x6f, 0x35, | ||
78 | + 0xf6, 0xfb, 0xb0, 0x1f, 0xb3, 0x00, 0xdd, 0xc4, 0xa6, 0xbc, 0xe2, 0x37, | ||
79 | + 0xc1, 0xa3, 0xef, 0xd9, 0xa1, 0x86, 0xf9, 0xeb, 0xa4, 0xa5, 0x45, 0x38, | ||
80 | + 0xff, 0x4e, 0x87, 0x4a, 0x41, 0xcf, 0x6e, 0x69, 0x7e, 0x97, 0xbe, 0x2d, | ||
81 | + 0x22, 0xbc, 0x8d, 0xa0, 0x1a, 0x21, 0x8f, 0x4b, 0x72, 0x90, 0x01, 0x5c, | ||
82 | + 0xba, 0xa5, 0x9c, 0x2d, 0xd7, 0x25, 0x24, 0xfc, 0xff, 0x5c, 0x58, 0x14, | ||
83 | + 0x46, 0x30, 0x09, 0x7c, 0x55, 0x64, 0x83, 0x0b, 0xb9, 0xdf, 0xcf, 0x25, | ||
84 | + 0xee, 0xec, 0xf7, 0xcb, 0xdb, 0xd1, 0x5b, 0x93, 0x93, 0xc8, 0x8a, 0x10, | ||
85 | + 0x46, 0xb8, 0xb0, 0x35, 0x1c, 0x6c, 0x0d, 0x8f, 0x03, 0x6a, 0x8f, 0x1b, | ||
86 | + 0x36, 0x68, 0xf3, 0x53, 0x89, 0x36, 0x5b, 0x21, 0x80, 0xde, 0xe3, 0x92, | ||
87 | + 0x52, 0x94, 0x97, 0x9d, 0x49, 0x89, 0x7d, 0x3e, 0xde, 0x29, 0x51, 0xba, | ||
88 | + 0x11, 0xf7, 0xba, 0x01, 0xf7, 0xab, 0xea, 0xc1, 0xa7, 0x2e, 0xa3, 0x4d, | ||
89 | + 0x65, 0xfd, 0x40, 0x71, 0xf1, 0xe2, 0x3f, 0x6c, 0x28, 0xcb, 0xd3 | ||
90 | +}; | ||
91 | + | ||
92 | // | ||
93 | // The most important thing about the variable payload is that it is a list of | ||
94 | // lists, where the element size of any given *inner* list is constant. | ||
95 | @@ -908,6 +975,7 @@ ShellAppMain ( | ||
96 | &gEfiImageSecurityDatabaseGuid, | ||
97 | MicrosoftPCA, sizeof MicrosoftPCA, &gEfiCallerIdGuid, | ||
98 | MicrosoftUefiCA, sizeof MicrosoftUefiCA, &gEfiCallerIdGuid, | ||
99 | + RefkitTestCA, sizeof RefkitTestCA, &gEfiCallerIdGuid, | ||
100 | NULL); | ||
101 | if (EFI_ERROR (Status)) { | ||
102 | return 1; | ||
103 | -- | ||
104 | 2.1.4 | ||
105 | |||
diff --git a/recipes-core/ovmf/ovmf-shell-image-enrollkeys.bb b/recipes-core/ovmf/ovmf-shell-image-enrollkeys.bb deleted file mode 100644 index b20f6e58..00000000 --- a/recipes-core/ovmf/ovmf-shell-image-enrollkeys.bb +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | require recipes-core/ovmf/ovmf-shell-image.bb | ||
2 | |||
3 | WKS_SEARCH_PATH_append = ":${COREBASE}/meta/recipes-core/ovmf" | ||
4 | |||
5 | QB_DRIVE_TYPE = "/dev/vd" | ||
6 | |||
7 | do_image_append() { | ||
8 | cat > ${IMAGE_ROOTFS}/startup.nsh << EOF | ||
9 | EnrollDefaultKeys | ||
10 | reset | ||
11 | EOF | ||
12 | |||
13 | } | ||
diff --git a/recipes-core/ovmf/ovmf_%.bbappend b/recipes-core/ovmf/ovmf_%.bbappend deleted file mode 100644 index bbf5fa32..00000000 --- a/recipes-core/ovmf/ovmf_%.bbappend +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:" | ||
2 | |||
3 | SRC_URI_append_intel-x86-common = " \ | ||
4 | file://0001-ovmf-RefkitTestCA-TEST-UEFI-SecureBoot.patch \ | ||
5 | " | ||
6 | PACKAGECONFIG_append_intel-x86-common = " secureboot" | ||
diff --git a/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend new file mode 100644 index 00000000..b5a5fdd4 --- /dev/null +++ b/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bbappend | |||
@@ -0,0 +1 @@ | |||
RDEPENDS:${PN} += "${@bb.utils.contains('ICXSDK', '1', ' intel-oneapi-dpcpp-cpp intel-oneapi-dpcpp-cpp-dev intel-oneapi-dpcpp-cpp-runtime intel-oneapi-dpcpp-cpp-runtime-dev ', '', d)}" | |||
diff --git a/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend new file mode 100644 index 00000000..608ea3d3 --- /dev/null +++ b/recipes-core/packagegroups/packagegroup-core-standalone-sdk-target.bbappend | |||
@@ -0,0 +1 @@ | |||
RRECOMMENDS:${PN}:append:intel-x86-common = "${@bb.utils.contains('ICXSDK', '1', ' intel-oneapi-dpcpp-cpp intel-oneapi-dpcpp-cpp-dev intel-oneapi-dpcpp-cpp-runtime intel-oneapi-dpcpp-cpp-runtime-dev ', '', d)}" | |||
diff --git a/recipes-core/zlib/zlib-intel_1.2.11.1_jtkv6.3.bb b/recipes-core/zlib/zlib-intel_1.2.11.1_jtkv6.3.bb deleted file mode 100644 index 02b75156..00000000 --- a/recipes-core/zlib/zlib-intel_1.2.11.1_jtkv6.3.bb +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | require recipes-core/zlib/zlib_1.2.11.bb | ||
2 | |||
3 | FILESEXTRAPATHS_append = ":${COREBASE}/meta/recipes-core/zlib/zlib" | ||
4 | |||
5 | SUMMARY = "Zlib Compression Library (Intel-tuned)" | ||
6 | |||
7 | PROVIDES = "zlib" | ||
8 | |||
9 | SRC_URI_remove = "${SOURCEFORGE_MIRROR}/libpng/${BPN}/${PV}/${BPN}-${PV}.tar.xz" | ||
10 | SRC_URI_prepend = "git://github.com/jtkukunas/zlib.git;protocol=git " | ||
11 | |||
12 | SRCREV = "a43a247bfa16ec5368747b5b64f11ea5ca033010" | ||
13 | S = "${WORKDIR}/git" | ||
14 | |||
15 | RPROVIDES_${PN} += "zlib" | ||
16 | RPROVIDES_${PN}-ptest += "zlib-ptest" | ||
diff --git a/recipes-devtools/opencl/opencl-clang-native_8.0.0.bb b/recipes-devtools/opencl/opencl-clang-native_8.0.0.bb deleted file mode 100644 index cfba8d97..00000000 --- a/recipes-devtools/opencl/opencl-clang-native_8.0.0.bb +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
1 | SUMMARY = "Common clang is a thin wrapper library around clang" | ||
2 | DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \ | ||
3 | to compile OpenCL C kernels to SPIR-V modules." | ||
4 | |||
5 | LICENSE = "NCSA" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c" | ||
7 | |||
8 | SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-80;protocol=https" | ||
9 | |||
10 | SRCREV = "daf5e4dd718477ae8cf89a283c653939d9182f15" | ||
11 | |||
12 | S = "${WORKDIR}/git" | ||
13 | |||
14 | inherit native | ||
15 | |||
16 | do_configure[noexec] = "1" | ||
17 | |||
18 | do_compile() { | ||
19 | ${CC} linux_linker/linux_resource_linker.cpp -o linux_resource_linker | ||
20 | } | ||
21 | |||
22 | do_install() { | ||
23 | install -d ${D}${bindir} | ||
24 | install -m 0755 linux_resource_linker ${D}${bindir}/ | ||
25 | } | ||
diff --git a/recipes-devtools/slimboot/slimboot-tools_git.bb b/recipes-devtools/slimboot/slimboot-tools_git.bb new file mode 100644 index 00000000..72b3ffe8 --- /dev/null +++ b/recipes-devtools/slimboot/slimboot-tools_git.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | SUMMARY = "Slim Bootloader Host Tools" | ||
2 | DESCRIPTION = "Native host tools to generate the container images in a \ | ||
3 | binary file format understood by Slim Bootloader to load and initialize\ | ||
4 | Operating Systems or Hypervisors." | ||
5 | HOMEPAGE = "https://slimbootloader.github.io/tools/index.html" | ||
6 | |||
7 | SRC_URI = "git://github.com/slimbootloader/slimbootloader;protocol=https;branch=master" | ||
8 | SRCREV = "a63818df94d3c9d8c04cdca5869ba7cde9fb5a38" | ||
9 | PV = "0.0.0+git${SRCPV}" | ||
10 | LICENSE = "BSD-2-Clause-Patent" | ||
11 | LIC_FILES_CHKSUM = "file://LICENSE;md5=ef7fba7be2819ac13aaf5d0f842ce5d9" | ||
12 | S = "${WORKDIR}/git" | ||
13 | |||
14 | inherit python3native | ||
15 | BBCLASSEXTEND = "native" | ||
16 | |||
17 | do_configure[noexec] = "1" | ||
18 | do_compile[noexec] = "1" | ||
19 | do_install() { | ||
20 | install -m 755 -d ${D}${libexecdir}/slimboot/Tools | ||
21 | install -m 755 ${S}/BootloaderCorePkg/Tools/*.py ${D}${libexecdir}/slimboot/Tools | ||
22 | } | ||
diff --git a/recipes-graphics/gmmlib/gmmlib_19.1.2.bb b/recipes-graphics/gmmlib/gmmlib_22.7.1.bb index f47174da..590141f1 100644 --- a/recipes-graphics/gmmlib/gmmlib_19.1.2.bb +++ b/recipes-graphics/gmmlib/gmmlib_22.7.1.bb | |||
@@ -4,18 +4,22 @@ device specific and buffer management for the Intel(R) Graphics \ | |||
4 | Compute Runtime for OpenCL(TM) and the Intel(R) Media Driver for VAAPI." | 4 | Compute Runtime for OpenCL(TM) and the Intel(R) Media Driver for VAAPI." |
5 | 5 | ||
6 | LICENSE = "MIT" | 6 | LICENSE = "MIT" |
7 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=d9a6e772cd4c362ee4c8ef87c5aad843" | 7 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=465fe90caea3edd6a2cecb3f0c28a654" |
8 | 8 | ||
9 | SRC_URI = " \ | 9 | SRC_URI = " \ |
10 | git://github.com/intel/gmmlib.git;protocol=https \ | 10 | git://github.com/intel/gmmlib.git;protocol=https;branch=master \ |
11 | " | 11 | " |
12 | 12 | ||
13 | SRCREV = "50707fb182bc8fc8f9711d2c0da96f6ded1b8ef4" | 13 | SRCREV = "aa4e5d6c8f1d798b78ffd7ea85296fdd3a3946b2" |
14 | 14 | ||
15 | S = "${WORKDIR}/git" | 15 | S = "${WORKDIR}/git" |
16 | 16 | ||
17 | COMPATIBLE_HOST:x86-x32 = "null" | ||
18 | |||
17 | UPSTREAM_CHECK_GITTAGREGEX = "^intel-gmmlib-(?P<pver>(\d+(\.\d+)+))$" | 19 | UPSTREAM_CHECK_GITTAGREGEX = "^intel-gmmlib-(?P<pver>(\d+(\.\d+)+))$" |
18 | 20 | ||
19 | inherit pkgconfig cmake | 21 | inherit pkgconfig cmake |
20 | 22 | ||
21 | EXTRA_OECMAKE += "-DRUN_TEST_SUITE=OFF" | 23 | EXTRA_OECMAKE += "-DRUN_TEST_SUITE=OFF" |
24 | |||
25 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/recipes-graphics/hdcp/hdcp/0001-main-fix-hdcpd-service-failure.patch b/recipes-graphics/hdcp/hdcp/0001-main-fix-hdcpd-service-failure.patch new file mode 100644 index 00000000..6d32da43 --- /dev/null +++ b/recipes-graphics/hdcp/hdcp/0001-main-fix-hdcpd-service-failure.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | From 5cbcecff0bb7fa1c617d3082e7ad94c22e5f4eb1 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Wed, 3 Jul 2019 17:13:15 +0800 | ||
4 | Subject: [PATCH] main: fix hdcpd service failure | ||
5 | |||
6 | Child process not able to finish before parent process | ||
7 | exits, which causing hdcpd service failure. | ||
8 | |||
9 | Added wait function to block parent process | ||
10 | until child process exits. | ||
11 | |||
12 | Upstream-Status: Submitted [https://github.com/intel/hdcp/pull/17] | ||
13 | |||
14 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
15 | --- | ||
16 | daemon/main.cpp | 3 +++ | ||
17 | 1 file changed, 3 insertions(+) | ||
18 | |||
19 | diff --git a/daemon/main.cpp b/daemon/main.cpp | ||
20 | index 9a028d7..ef1e047 100644 | ||
21 | --- a/daemon/main.cpp | ||
22 | +++ b/daemon/main.cpp | ||
23 | @@ -36,6 +36,7 @@ | ||
24 | #include <sys/ioctl.h> | ||
25 | #include <fcntl.h> | ||
26 | #include <iostream> | ||
27 | +#include <sys/wait.h> | ||
28 | |||
29 | #include "hdcpdef.h" | ||
30 | #include "srm.h" | ||
31 | @@ -93,6 +94,8 @@ int32_t daemon_init(void) | ||
32 | } | ||
33 | else if (pid != 0) | ||
34 | { | ||
35 | + int status; | ||
36 | + wait(&status); | ||
37 | exit(SUCCESS); // parent exit | ||
38 | } | ||
39 | |||
40 | -- | ||
41 | 2.17.1 | ||
42 | |||
diff --git a/recipes-graphics/hdcp/hdcp_21.2.0.bb b/recipes-graphics/hdcp/hdcp_21.2.0.bb new file mode 100644 index 00000000..8529b5ab --- /dev/null +++ b/recipes-graphics/hdcp/hdcp_21.2.0.bb | |||
@@ -0,0 +1,26 @@ | |||
1 | SUMMARY = "Intel(R) unified HDCP SDK" | ||
2 | DESCRIPTION = "This is a user space implementation to prevent copying of \ | ||
3 | digital audio & video content across digital display interfaces. It provides \ | ||
4 | Linux user space implementation to enable the HDCP1.4 and HDCP2.2 protection \ | ||
5 | for external digital display interface" | ||
6 | LICENSE = "BSD-3-Clause" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c50969be4feb8b99c6baa3795ede4dce" | ||
8 | SECTION = "lib" | ||
9 | |||
10 | inherit pkgconfig cmake useradd systemd features_check | ||
11 | |||
12 | SRC_URI = "git://github.com/intel/hdcp.git;branch=master;protocol=https \ | ||
13 | file://0001-main-fix-hdcpd-service-failure.patch \ | ||
14 | " | ||
15 | SRCREV = "cacc352159c5bdaf1c21846cecdd1eb7b031e1d3" | ||
16 | S = "${WORKDIR}/git" | ||
17 | |||
18 | REQUIRED_DISTRO_FEATURES = "systemd" | ||
19 | |||
20 | DEPENDS = "libdrm virtual/mesa systemd" | ||
21 | |||
22 | USERADD_PACKAGES = "${PN}" | ||
23 | USERADD_PARAM:${PN} = "--system --no-create-home --shell /bin/false --gid nogroup media" | ||
24 | |||
25 | SYSTEMD_SERVICE:${PN} = "hdcpd.service" | ||
26 | SYSTEMD_AUTO_ENABLE = "disable" | ||
diff --git a/recipes-graphics/igt-gpu-tools/files/0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch b/recipes-graphics/igt-gpu-tools/files/0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch deleted file mode 100644 index 46b2eef5..00000000 --- a/recipes-graphics/igt-gpu-tools/files/0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch +++ /dev/null | |||
@@ -1,40 +0,0 @@ | |||
1 | From f01796214bbde31e37b0593e547ad9436fdd02ba Mon Sep 17 00:00:00 2001 | ||
2 | From: Petri Latvala <petri.latvala@intel.com> | ||
3 | Date: Wed, 9 Jan 2019 14:28:29 +0200 | ||
4 | Subject: [PATCH] lib/fb: Fix rgb24 to nv12 conversion | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | A typo fix in 1x2 pixel block conversion code, revealed by GCC 9 | ||
10 | |||
11 | Fixes: 1c7ef3890045 ("lib: Use igt_matrix for ycbcr<->rgb conversion") | ||
12 | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109257 | ||
13 | Reported-by: Martin Liska <mliska@suse.cz> | ||
14 | Signed-off-by: Petri Latvala <petri.latvala@intel.com> | ||
15 | Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> | ||
16 | Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | ||
17 | Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | ||
18 | |||
19 | Upstream-Status: Backport | ||
20 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
21 | --- | ||
22 | lib/igt_fb.c | 2 +- | ||
23 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
24 | |||
25 | diff --git a/lib/igt_fb.c b/lib/igt_fb.c | ||
26 | index 8244e517..5cd1829a 100644 | ||
27 | --- a/lib/igt_fb.c | ||
28 | +++ b/lib/igt_fb.c | ||
29 | @@ -1779,7 +1779,7 @@ static void convert_rgb24_to_nv12(struct fb_convert *cvt) | ||
30 | struct igt_vec4 yuv[2]; | ||
31 | |||
32 | read_rgb(&rgb[0], &rgb24[j * 8 + 0]); | ||
33 | - read_rgb(&rgb[2], &rgb24[j * 8 + 0 + rgb24_stride]); | ||
34 | + read_rgb(&rgb[1], &rgb24[j * 8 + 0 + rgb24_stride]); | ||
35 | |||
36 | yuv[0] = igt_matrix_transform(&m, &rgb[0]); | ||
37 | yuv[1] = igt_matrix_transform(&m, &rgb[1]); | ||
38 | -- | ||
39 | 2.20.1 | ||
40 | |||
diff --git a/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.23.bb b/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.23.bb deleted file mode 100644 index 33c04e77..00000000 --- a/recipes-graphics/igt-gpu-tools/igt-gpu-tools_1.23.bb +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | require ${COREBASE}/meta/recipes-graphics/xorg-app/xorg-app-common.inc | ||
2 | |||
3 | SUMMARY = "Intel GPU tools" | ||
4 | DESCRIPTION = "Variety of small tools for testing intel graphics." | ||
5 | |||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=e4b3dd344780e0400593b21b115a6947" | ||
7 | |||
8 | LICENSE_append = " & ISC" | ||
9 | |||
10 | inherit autotools gtk-doc | ||
11 | |||
12 | SRC_URI = "${XORG_MIRROR}/individual/app/${BP}.tar.xz \ | ||
13 | file://0001-lib-fb-Fix-rgb24-to-nv12-conversion.patch \ | ||
14 | " | ||
15 | |||
16 | DEPENDS += "libdrm libpciaccess cairo udev glib-2.0 libxv libx11 libxext libxrandr procps libunwind kmod openssl" | ||
17 | RDEPENDS_${PN} += "bash" | ||
18 | RDEPENDS_${PN}-tests += "bash" | ||
19 | |||
20 | PACKAGE_BEFORE_PN = "${PN}-benchmarks ${PN}-tests" | ||
21 | |||
22 | SRC_URI[md5sum] = "04c1f10d6fd85e079271540b0ea786e9" | ||
23 | SRC_URI[sha256sum] = "4d4b086c513bace5c23d0889de3f42ac3ebd3d968c64dedae6e28e006a499ad0" | ||
24 | |||
25 | EXTRA_OECONF = "--disable-nouveau --disable-shader-debugger" | ||
26 | COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux" | ||
27 | COMPATIBLE_HOST_libc-musl_class-target = "null" | ||
28 | |||
29 | PACKAGECONFIG ??= "" | ||
30 | PACKAGECONFIG[audio] = "--enable-audio,--disable-audio,alsa-lib gsl" | ||
31 | |||
32 | gputools_sysroot_preprocess() { | ||
33 | rm -f ${SYSROOT_DESTDIR}${libdir}/pkgconfig/intel-gen4asm.pc | ||
34 | } | ||
35 | SYSROOT_PREPROCESS_FUNCS += "gputools_sysroot_preprocess" | ||
36 | |||
37 | FILES_${PN} += "${libdir}/intel_aubdump.so" | ||
38 | FILES_${PN}-benchmarks += "${libexecdir}/${BPN}/benchmarks" | ||
39 | FILES_${PN}-tests += "\ | ||
40 | ${libexecdir}/${BPN}/*\ | ||
41 | ${datadir}/${BPN}/1080p-right.png\ | ||
42 | ${datadir}/${BPN}/1080p-left.png\ | ||
43 | ${datadir}/${BPN}/pass.png\ | ||
44 | ${datadir}/${BPN}/test-list.txt" | ||
diff --git a/recipes-graphics/libva/libva-intel-utils_2.22.0.bb b/recipes-graphics/libva/libva-intel-utils_2.22.0.bb new file mode 100644 index 00000000..4ad97eed --- /dev/null +++ b/recipes-graphics/libva/libva-intel-utils_2.22.0.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | SUMMARY = "libva-utils is a collection of utilities from libva project" | ||
2 | |||
3 | DESCRIPTION = "libva-utils is a collection of utilities \ | ||
4 | and examples to exercise VA-API in accordance with the libva \ | ||
5 | project.VA-API is an open-source library and API specification, \ | ||
6 | which provides access to graphics hardware acceleration capabilities \ | ||
7 | for video processing. It consists of a main library and driver-specific \ | ||
8 | acceleration backends for each supported hardware vendor" | ||
9 | |||
10 | HOMEPAGE = "https://01.org/linuxmedia/vaapi" | ||
11 | BUGTRACKER = "https://github.com/intel/libva-utils/issues" | ||
12 | |||
13 | SECTION = "x11" | ||
14 | LICENSE = "MIT" | ||
15 | LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e" | ||
16 | |||
17 | SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.22-branch;protocol=https" | ||
18 | SRCREV = "1a13ae13382b7b548f3a7e8035e1d7df66662c0a" | ||
19 | S = "${WORKDIR}/git" | ||
20 | |||
21 | UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))" | ||
22 | |||
23 | DEPENDS = "libva" | ||
24 | |||
25 | inherit meson pkgconfig features_check | ||
26 | |||
27 | # depends on libva which requires opengl | ||
28 | REQUIRED_DISTRO_FEATURES = "opengl" | ||
29 | |||
30 | PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}" | ||
31 | PACKAGECONFIG[x11] = "-Dx11=true, -Dx11=false,virtual/libx11 libxext libxfixes" | ||
32 | PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false,wayland-native wayland" | ||
33 | |||
34 | PROVIDES = "libva-utils" | ||
35 | RPROVIDES:${PN} += "libva-utils" | ||
diff --git a/recipes-graphics/libva/libva-intel_2.22.0.bb b/recipes-graphics/libva/libva-intel_2.22.0.bb new file mode 100644 index 00000000..2405f440 --- /dev/null +++ b/recipes-graphics/libva/libva-intel_2.22.0.bb | |||
@@ -0,0 +1,56 @@ | |||
1 | SUMMARY = "Video Acceleration (VA) API for Linux" | ||
2 | DESCRIPTION = "Video Acceleration API (VA API) is a library (libVA) \ | ||
3 | and API specification which enables and provides access to graphics \ | ||
4 | hardware (GPU) acceleration for video processing on Linux and UNIX \ | ||
5 | based operating systems. Accelerated processing includes video \ | ||
6 | decoding, video encoding, subpicture blending and rendering. The \ | ||
7 | specification was originally designed by Intel for its GMA (Graphics \ | ||
8 | Media Accelerator) series of GPU hardware, the API is however not \ | ||
9 | limited to GPUs or Intel specific hardware, as other hardware and \ | ||
10 | manufacturers can also freely use this API for hardware accelerated \ | ||
11 | video decoding." | ||
12 | |||
13 | HOMEPAGE = "https://01.org/linuxmedia/vaapi" | ||
14 | BUGTRACKER = "https://github.com/intel/libva/issues" | ||
15 | |||
16 | SECTION = "x11" | ||
17 | LICENSE = "MIT" | ||
18 | LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f" | ||
19 | |||
20 | SRC_URI = "git://github.com/intel/libva.git;protocol=https;branch=v2.22-branch \ | ||
21 | " | ||
22 | |||
23 | SRCREV = "217da1c28336d6a7e9c0c4cb8f1c303968a675f1" | ||
24 | |||
25 | S = "${WORKDIR}/git" | ||
26 | |||
27 | UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases" | ||
28 | |||
29 | DEPENDS = "libdrm" | ||
30 | |||
31 | inherit meson pkgconfig | ||
32 | |||
33 | PACKAGECONFIG ??= " \ | ||
34 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \ | ||
35 | ${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} \ | ||
36 | " | ||
37 | |||
38 | PACKAGECONFIG[x11] = "-Dwith_x11=yes,-Dwith_x11=no,virtual/libx11 libxext libxfixes" | ||
39 | PACKAGECONFIG[glx] = "-Dwith_glx=yes,-Dwith_glx=no,virtual/mesa" | ||
40 | |||
41 | PACKAGECONFIG[wayland] = "-Dwith_wayland=yes,-Dwith_wayland=no,wayland-native wayland" | ||
42 | |||
43 | PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland" | ||
44 | |||
45 | RDEPENDS:${PN}-x11 =+ "${PN}" | ||
46 | RDEPENDS:${PN}-glx =+ "${PN}-x11" | ||
47 | |||
48 | FILES:${PN}-x11 =+ "${libdir}/libva-x11*${SOLIBS}" | ||
49 | FILES:${PN}-glx =+ "${libdir}/libva-glx*${SOLIBS}" | ||
50 | FILES:${PN}-wayland =+ "${libdir}/libva-wayland*${SOLIBS}" | ||
51 | |||
52 | PROVIDES += "libva" | ||
53 | RPROVIDES:${PN} += "libva" | ||
54 | RPROVIDES:${PN}-x11 += "libva-x11" | ||
55 | RPROVIDES:${PN}-glx += "libva-glx" | ||
56 | RPROVIDES:${PN}-wayland += "libva-wayland" | ||
diff --git a/recipes-graphics/metrics-discovery/metrics-discovery_1.5.102.bb b/recipes-graphics/metrics-discovery/metrics-discovery_1.13.178.bb index 14dda35b..dbc17c1d 100644 --- a/recipes-graphics/metrics-discovery/metrics-discovery_1.5.102.bb +++ b/recipes-graphics/metrics-discovery/metrics-discovery_1.13.178.bb | |||
@@ -2,14 +2,15 @@ SUMMARY = "Intel Metrics Discovery Application Programming Interface" | |||
2 | DESCRIPTION = "This software is a user mode library that provides access to \ | 2 | DESCRIPTION = "This software is a user mode library that provides access to \ |
3 | GPU performance data." | 3 | GPU performance data." |
4 | LICENSE = "MIT" | 4 | LICENSE = "MIT" |
5 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5ac9e51fb25f5d5b10a1bea412a4b74c" | 5 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=195912d57508b573e068231099eba64c" |
6 | SECTION = "lib" | 6 | SECTION = "lib" |
7 | 7 | ||
8 | inherit pkgconfig cmake | 8 | inherit pkgconfig cmake |
9 | 9 | ||
10 | S = "${WORKDIR}/git" | 10 | S = "${WORKDIR}/git" |
11 | SRCREV = "ac8d17cfd7f33aefea353dfc4eda65f6beb0a9ae" | 11 | SRCREV = "65ffef89cf79d704f618768bcd3d95f4dd6d875b" |
12 | SRC_URI = "git://github.com/intel/metrics-discovery.git" | 12 | SRC_URI = "git://github.com/intel/metrics-discovery.git;branch=master;protocol=https \ |
13 | " | ||
13 | 14 | ||
14 | EXTRA_OECMAKE += "-DMD_PLATFORM=linux" | 15 | EXTRA_OECMAKE += "-DMD_PLATFORM=linux" |
15 | EXTRA_OECMAKE += "-DMD_LIBDRM_SRC=${STAGING_INCDIR}" | 16 | EXTRA_OECMAKE += "-DMD_LIBDRM_SRC=${STAGING_INCDIR}" |
diff --git a/recipes-graphics/xorg-driver/xf86-video-ast_1.1.5.bb b/recipes-graphics/xorg-driver/xf86-video-ast_1.1.6.bb index 090efd62..d7e4eab4 100644 --- a/recipes-graphics/xorg-driver/xf86-video-ast_1.1.5.bb +++ b/recipes-graphics/xorg-driver/xf86-video-ast_1.1.6.bb | |||
@@ -7,6 +7,6 @@ DESCRIPTION = "ast is an Xorg driver for ASpeed Technologies video cards" | |||
7 | LIC_FILES_CHKSUM = "file://COPYING;md5=0b8c242f0218eea5caa949b7910a774b" | 7 | LIC_FILES_CHKSUM = "file://COPYING;md5=0b8c242f0218eea5caa949b7910a774b" |
8 | 8 | ||
9 | DEPENDS += "libpciaccess" | 9 | DEPENDS += "libpciaccess" |
10 | XORG_DRIVER_COMPRESSOR = ".tar.gz" | ||
10 | 11 | ||
11 | SRC_URI[md5sum] = "4f85febe48d51e53624550a96fc9e9ee" | 12 | SRC_URI[sha256sum] = "eeff52178ce2916a0e07b531bb23c8b105826b6e6e6c5f7c90e33f757827a7c7" |
12 | SRC_URI[sha256sum] = "1edbbc55d47d3fd71dec99b15c2483e22738c642623a0fb86ef4a81a9067a2de" | ||
diff --git a/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch b/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch deleted file mode 100644 index 0041af57..00000000 --- a/recipes-kernel/intel-ethernet/ixgbe/0001-ixgbe-skip-host-depmod.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From 5f87ef7ed60bc9762467184ed0a6d000b80713d9 Mon Sep 17 00:00:00 2001 | ||
2 | From: sweeaun <swee.aun.khor@intel.com> | ||
3 | Date: Sun, 8 Apr 2018 17:21:52 +0800 | ||
4 | Subject: [PATCH] ixgbe: skip host depmod | ||
5 | |||
6 | Upstream-Status: Inappropriate [Cross-Compile] | ||
7 | |||
8 | Depmod during do_install is irrelevant when cross-compiling. | ||
9 | Remove the depmod steps during do_install. | ||
10 | |||
11 | Signed-off-by: sweeaun <swee.aun.khor@intel.com> | ||
12 | --- | ||
13 | Makefile | 2 -- | ||
14 | 1 file changed, 2 deletions(-) | ||
15 | |||
16 | diff --git a/Makefile b/Makefile | ||
17 | index 545489a..07e422f 100644 | ||
18 | --- a/Makefile | ||
19 | +++ b/Makefile | ||
20 | @@ -141,8 +141,6 @@ install: default manfile | ||
21 | @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz | ||
22 | @echo "Installing modules..." | ||
23 | @+$(call devkernelbuild,modules_install) | ||
24 | - @echo "Running depmod..." | ||
25 | - @$(call cmd_depmod) | ||
26 | |||
27 | uninstall: | ||
28 | rm -f ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko; | ||
29 | -- | ||
30 | 2.7.4 | ||
31 | |||
diff --git a/recipes-kernel/intel-ethernet/ixgbe_5.5.5.bb b/recipes-kernel/intel-ethernet/ixgbe_5.20.10.bb index a788b61c..696c5c26 100644 --- a/recipes-kernel/intel-ethernet/ixgbe_5.5.5.bb +++ b/recipes-kernel/intel-ethernet/ixgbe_5.20.10.bb | |||
@@ -1,33 +1,32 @@ | |||
1 | SUMMARY="ixgbe kernel driver for Intel Magnolia Park 10GbE" | 1 | SUMMARY = "ixgbe kernel driver for Intel Magnolia Park 10GbE" |
2 | DESCRIPTION="The ixgbe driver supports 82598- and 82599-based \ | 2 | DESCRIPTION = "The ixgbe driver supports 82598- and 82599-based \ |
3 | PCI Express* 10 Gigabit Network Connections." | 3 | PCI Express* 10 Gigabit Network Connections." |
4 | 4 | ||
5 | HOMEPAGE = "https://sourceforge.net/projects/e1000/" | 5 | HOMEPAGE = "https://sourceforge.net/projects/e1000/" |
6 | SECTION = "kernel/network" | 6 | SECTION = "kernel/network" |
7 | LICENSE = "GPLv2" | 7 | LICENSE = "GPL-2.0-only" |
8 | LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417" | 8 | LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417" |
9 | 9 | ||
10 | SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/${PV}/${BP}.tar.gz \ | 10 | SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/${PV}/${BP}.tar.gz \ |
11 | file://0001-ixgbe-skip-host-depmod.patch \ | ||
12 | " | 11 | " |
13 | 12 | ||
14 | SRC_URI[md5sum] = "f0c72a5c5d8ae48742b1108c1f9d94cd" | 13 | SRC_URI[sha256sum] = "da7e7b62ffb85a820d7541623fbef5c4abef8d1df7ac0af3f1acc3b3d76c9822" |
15 | SRC_URI[sha256sum] = "cb15614cd06df7bad313ab54b466297fac6346f1999a5a87bb1cc2f0b66e7fb1" | ||
16 | 14 | ||
17 | UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/" | 15 | UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbe%20stable/" |
18 | UPSTREAM_CHECK_REGEX = "ixgbe%20stable/(?P<pver>\d+(\.\d+)+)/" | 16 | UPSTREAM_CHECK_REGEX = "ixgbe%20stable/(?P<pver>\d+(\.\d+)+)/" |
19 | 17 | ||
18 | CVE_PRODUCT = "linux:linux_kernel_ixgbe" | ||
19 | |||
20 | S = "${WORKDIR}/${BP}/src" | 20 | S = "${WORKDIR}/${BP}/src" |
21 | MODULES_INSTALL_TARGET = "install" | ||
22 | 21 | ||
23 | EXTRA_OEMAKE='KSRC="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"' | 22 | EXTRA_OEMAKE = ' KSRC="${STAGING_KERNEL_DIR}" KOBJ="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"' |
24 | 23 | ||
25 | KERNEL_MODULE_AUTOLOAD_append_intel-core2-32 = " ixgbe" | 24 | KERNEL_MODULE_AUTOLOAD:append:intel-core2-32 = " ixgbe" |
26 | KERNEL_MODULE_AUTOLOAD_append_intel-corei7-64 = " ixgbe" | 25 | KERNEL_MODULE_AUTOLOAD:append:intel-corei7-64 = " ixgbe" |
27 | 26 | ||
28 | inherit module | 27 | inherit module |
29 | 28 | ||
30 | do_install_append () { | 29 | do_install:append () { |
31 | # Install scripts/set_irq_affinity | 30 | # Install scripts/set_irq_affinity |
32 | install -d ${D}${sysconfdir}/network | 31 | install -d ${D}${sysconfdir}/network |
33 | install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network | 32 | install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network |
@@ -37,4 +36,8 @@ do_install_append () { | |||
37 | 36 | ||
38 | PACKAGES += "${PN}-script" | 37 | PACKAGES += "${PN}-script" |
39 | 38 | ||
40 | FILES_${PN}-script += "${sysconfdir}/network/set_irq_affinity" | 39 | FILES:${PN}-script += "${sysconfdir}/network/set_irq_affinity" |
40 | |||
41 | EXCLUDE_FROM_WORLD = "1" | ||
42 | |||
43 | CVE_STATUS[CVE-2015-1142857] = "fixed-version: Fixed from version 4.4-rc1" | ||
diff --git a/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch b/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch deleted file mode 100644 index 656a897d..00000000 --- a/recipes-kernel/intel-ethernet/ixgbevf/0001-ixgbevf-skip-host-depmod.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From 9677d09f5c3984997ac8e7d90b5d4b11fb9ce277 Mon Sep 17 00:00:00 2001 | ||
2 | From: sweeaun <swee.aun.khor@intel.com> | ||
3 | Date: Sat, 7 Oct 2017 20:56:35 -0700 | ||
4 | Subject: [PATCH] ixgbevf: skip host depmod | ||
5 | |||
6 | Upstream-Status: Inappropriate [Cross-Compile] | ||
7 | |||
8 | Depmod during do_install is irrelevant when cross-compiling. | ||
9 | Remove the depmod steps during do_install. | ||
10 | |||
11 | Signed-off-by: sweeaun <swee.aun.khor@intel.com> | ||
12 | --- | ||
13 | Makefile | 2 -- | ||
14 | 1 file changed, 2 deletions(-) | ||
15 | |||
16 | diff --git a/Makefile b/Makefile | ||
17 | index 91df705..1dcf350 100644 | ||
18 | --- a/Makefile | ||
19 | +++ b/Makefile | ||
20 | @@ -104,8 +104,6 @@ modules_install: default manfile | ||
21 | @install -D -m 644 ${DRIVER}.${MANSECTION}.gz ${INSTALL_MOD_PATH}${MANDIR}/man${MANSECTION}/${DRIVER}.${MANSECTION}.gz | ||
22 | @echo "Installing modules..." | ||
23 | @+$(call kernelbuild,modules_install) | ||
24 | - @echo "Running depmod..." | ||
25 | - @$(call cmd_depmod) | ||
26 | |||
27 | uninstall: | ||
28 | rm -f ${INSTALL_MOD_PATH}/lib/modules/${KVER}/${INSTALL_MOD_DIR}/${DRIVER}.ko; | ||
29 | -- | ||
30 | 2.7.4 | ||
31 | |||
diff --git a/recipes-kernel/intel-ethernet/ixgbevf_4.5.3.bb b/recipes-kernel/intel-ethernet/ixgbevf_4.19.10.bb index fe8c252d..92e25739 100644 --- a/recipes-kernel/intel-ethernet/ixgbevf_4.5.3.bb +++ b/recipes-kernel/intel-ethernet/ixgbevf_4.19.10.bb | |||
@@ -1,5 +1,5 @@ | |||
1 | SUMMARY="ixgbevf kernel driver for Intel Magnolia Park 10GbE" | 1 | SUMMARY = "ixgbevf kernel driver for Intel Magnolia Park 10GbE" |
2 | DESCRIPTION="This virtual function driver supports kernel versions 2.6.x and newer \ | 2 | DESCRIPTION = "This virtual function driver supports kernel versions 2.6.x and newer \ |
3 | This driver supports 82599, X540, X550, and X552-based virtual function devices \ | 3 | This driver supports 82599, X540, X550, and X552-based virtual function devices \ |
4 | that can only be activated on kernels that support SR-IOV. \ | 4 | that can only be activated on kernels that support SR-IOV. \ |
5 | SR-IOV requires the correct platform and OS support. \ | 5 | SR-IOV requires the correct platform and OS support. \ |
@@ -7,30 +7,29 @@ The guest OS loading this driver must support MSI-X interrupts." | |||
7 | 7 | ||
8 | HOMEPAGE = "https://sourceforge.net/projects/e1000/" | 8 | HOMEPAGE = "https://sourceforge.net/projects/e1000/" |
9 | SECTION = "kernel/network" | 9 | SECTION = "kernel/network" |
10 | LICENSE = "GPLv2" | 10 | LICENSE = "GPL-2.0-only" |
11 | LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417" | 11 | LIC_FILES_CHKSUM = "file://${WORKDIR}/${BP}/COPYING;md5=a216b4192dc6b777b6f0db560e9a8417" |
12 | 12 | ||
13 | SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/${PV}/${BP}.tar.gz \ | 13 | SRC_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/${PV}/${BP}.tar.gz \ |
14 | file://0001-ixgbevf-skip-host-depmod.patch \ | ||
15 | " | 14 | " |
16 | 15 | ||
17 | SRC_URI[md5sum] = "f3be87f000161ef6c956ab3b41b7e9f8" | 16 | SRC_URI[sha256sum] = "73c6a27be324a48b069dbda0d1d07212a2214c71f54df57bca7177fc92b04881" |
18 | SRC_URI[sha256sum] = "623ec55f2e225a4353f02222e6694a47836f67be21a45a68794961c74a5557fa" | ||
19 | 17 | ||
20 | UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/" | 18 | UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/" |
21 | UPSTREAM_CHECK_REGEX = "ixgbevf%20stable/(?P<pver>\d+(\.\d+)+)/" | 19 | UPSTREAM_CHECK_REGEX = "ixgbevf%20stable/(?P<pver>\d+(\.\d+)+)/" |
22 | 20 | ||
21 | CVE_PRODUCT = "linux:linux_kernel_ixgbe" | ||
22 | |||
23 | S = "${WORKDIR}/${BP}/src" | 23 | S = "${WORKDIR}/${BP}/src" |
24 | MODULES_INSTALL_TARGET = "install" | ||
25 | 24 | ||
26 | EXTRA_OEMAKE='KSRC="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"' | 25 | EXTRA_OEMAKE = 'KSRC="${STAGING_KERNEL_DIR}" KOBJ="${STAGING_KERNEL_BUILDDIR}" KVER="${KERNEL_VERSION}" INSTALL_MOD_PATH="${D}"' |
27 | 26 | ||
28 | KERNEL_MODULE_AUTOLOAD_append_intel-core2-32 = " ixgbevf" | 27 | KERNEL_MODULE_AUTOLOAD:append:intel-core2-32 = " ixgbevf" |
29 | KERNEL_MODULE_AUTOLOAD_append_intel-corei7-64 = " ixgbevf" | 28 | KERNEL_MODULE_AUTOLOAD:append:intel-corei7-64 = " ixgbevf" |
30 | 29 | ||
31 | inherit module | 30 | inherit module |
32 | 31 | ||
33 | do_install_append () { | 32 | do_install:append () { |
34 | # Install scripts/set_irq_affinity | 33 | # Install scripts/set_irq_affinity |
35 | install -d ${D}${sysconfdir}/network | 34 | install -d ${D}${sysconfdir}/network |
36 | install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network | 35 | install -m 0755 ${S}/../scripts/set_irq_affinity ${D}${sysconfdir}/network |
@@ -40,4 +39,8 @@ do_install_append () { | |||
40 | 39 | ||
41 | PACKAGES += "${PN}-script" | 40 | PACKAGES += "${PN}-script" |
42 | 41 | ||
43 | FILES_${PN}-script += "${sysconfdir}/network/set_irq_affinity" | 42 | FILES:${PN}-script += "${sysconfdir}/network/set_irq_affinity" |
43 | |||
44 | CVE_STATUS[CVE-2015-1142857] = "fixed-version: Fixed from version 4.4-rc1" | ||
45 | |||
46 | EXCLUDE_FROM_WORLD = "1" | ||
diff --git a/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb index 71837318..7aaf22c2 100644 --- a/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb +++ b/recipes-kernel/iwlwifi/backport-iwlwifi_git.bb | |||
@@ -1,13 +1,13 @@ | |||
1 | SUMMARY = "Intel Wireless LinuxCore kernel driver" | 1 | SUMMARY = "Intel Wireless LinuxCore kernel driver" |
2 | DESCRIPTION = "Intel Wireless LinuxCore kernel driver" | 2 | DESCRIPTION = "Intel Wireless LinuxCore kernel driver" |
3 | SECTION = "kernel" | 3 | SECTION = "kernel" |
4 | LICENSE = "GPLv2" | 4 | LICENSE = "GPL-2.0-only" |
5 | 5 | ||
6 | REQUIRED_DISTRO_FEATURES = "wifi" | 6 | REQUIRED_DISTRO_FEATURES = "wifi" |
7 | 7 | ||
8 | LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" | 8 | LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" |
9 | 9 | ||
10 | inherit module | 10 | inherit module features_check |
11 | 11 | ||
12 | # For some iwfwifi LinuxCore supported wireless chips, the best/latest | 12 | # For some iwfwifi LinuxCore supported wireless chips, the best/latest |
13 | # firmware blobs are found in the iwlwifi's linux-firmware.git fork. | 13 | # firmware blobs are found in the iwlwifi's linux-firmware.git fork. |
@@ -17,11 +17,11 @@ inherit module | |||
17 | # When updating this recipe, ensure that the proper firmware is included from | 17 | # When updating this recipe, ensure that the proper firmware is included from |
18 | # either the linux-firmware or iwlwifi-firmware repos. | 18 | # either the linux-firmware or iwlwifi-firmware repos. |
19 | 19 | ||
20 | PV = "30" | 20 | PV = "79" |
21 | SRCREV = "b31221a99488021300e7f89d2ecf9bdd2bc52dd2" | 21 | SRCREV = "574631d89d736fd2c76b0e2ea489270c50903e52" |
22 | 22 | ||
23 | SRC_URI = " \ | 23 | SRC_URI = " \ |
24 | git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi;branch=release/LinuxCore${PV} \ | 24 | git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi;branch=release/core${PV} \ |
25 | file://0001-Makefile.real-skip-host-install-scripts.patch \ | 25 | file://0001-Makefile.real-skip-host-install-scripts.patch \ |
26 | file://iwlwifi.conf \ | 26 | file://iwlwifi.conf \ |
27 | " | 27 | " |
@@ -34,18 +34,20 @@ do_configure() { | |||
34 | CC=gcc CFLAGS= LDFLAGS= make defconfig-iwlwifi-public KLIB_BUILD=${KBUILD_OUTPUT} | 34 | CC=gcc CFLAGS= LDFLAGS= make defconfig-iwlwifi-public KLIB_BUILD=${KBUILD_OUTPUT} |
35 | } | 35 | } |
36 | 36 | ||
37 | MODULES_INSTALL_TARGET="install" | 37 | MODULES_INSTALL_TARGET = "install" |
38 | 38 | ||
39 | do_install_append() { | 39 | do_install:append() { |
40 | ## install configs and service scripts | 40 | ## install configs and service scripts |
41 | install -d ${D}${sysconfdir}/modprobe.d | 41 | install -d ${D}${sysconfdir}/modprobe.d |
42 | install -m 0644 ${WORKDIR}/iwlwifi.conf ${D}${sysconfdir}/modprobe.d | 42 | install -m 0644 ${WORKDIR}/iwlwifi.conf ${D}${sysconfdir}/modprobe.d |
43 | } | 43 | } |
44 | 44 | ||
45 | RDEPENDS_${PN} = "linux-firmware-iwlwifi" | 45 | RDEPENDS:${PN} = "linux-firmware-iwlwifi" |
46 | 46 | ||
47 | KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi" | 47 | FILES:${PN} += "${sysconfdir}/modprobe.d/iwlwifi.conf" |
48 | KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi" | 48 | |
49 | KERNEL_MODULE_AUTOLOAD:append:core2-32-intel-common = " iwlwifi" | ||
50 | KERNEL_MODULE_AUTOLOAD:append:corei7-64-intel-common = " iwlwifi" | ||
49 | 51 | ||
50 | KERNEL_MODULE_PACKAGE_PREFIX = "backport-iwlwifi" | 52 | KERNEL_MODULE_PACKAGE_PREFIX = "backport-iwlwifi" |
51 | 53 | ||
diff --git a/recipes-kernel/linux/linux-intel-dev.bb b/recipes-kernel/linux/linux-intel-dev.bb deleted file mode 100644 index 316baa50..00000000 --- a/recipes-kernel/linux/linux-intel-dev.bb +++ /dev/null | |||
@@ -1,35 +0,0 @@ | |||
1 | require recipes-kernel/linux/linux-yocto.inc | ||
2 | require recipes-kernel/linux/meta-intel-compat-kernel.inc | ||
3 | |||
4 | FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:" | ||
5 | |||
6 | SRC_URI = " \ | ||
7 | git://github.com/intel/mainline-tracking.git;protocol=https;name=machine;branch=${KBRANCH}; \ | ||
8 | git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=${KMETA} \ | ||
9 | file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch \ | ||
10 | " | ||
11 | SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg" | ||
12 | |||
13 | KMETA = "kernel-meta" | ||
14 | KCONF_BSP_AUDIT_LEVEL = "2" | ||
15 | |||
16 | KBRANCH = "base" | ||
17 | KMETA_BRANCH = "master" | ||
18 | |||
19 | LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" | ||
20 | |||
21 | DEPENDS += "elfutils-native openssl-native util-linux-native" | ||
22 | |||
23 | LINUX_VERSION ?= "5.1.0" | ||
24 | SRCREV_machine ?= "abcfe412cc5140d20a592965744c050fd3cc3d19" | ||
25 | SRCREV_meta ?= "b8bce20786a4063e5f053036e5236d82c8fc3d91" | ||
26 | |||
27 | LINUX_VERSION_EXTENSION ?= "-mainline-tracking-${LINUX_KERNEL_TYPE}" | ||
28 | PV = "${LINUX_VERSION}+git${SRCPV}" | ||
29 | |||
30 | COMPATIBLE_MACHINE ?= "(intel-corei7-64|intel-core2-32)" | ||
31 | |||
32 | # Functionality flags | ||
33 | KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" | ||
34 | KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" | ||
35 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc" | ||
diff --git a/recipes-kernel/linux/linux-intel-rt_4.14.bb b/recipes-kernel/linux/linux-intel-rt_4.14.bb deleted file mode 100644 index cae40019..00000000 --- a/recipes-kernel/linux/linux-intel-rt_4.14.bb +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | require linux-intel.inc | ||
2 | |||
3 | # Skip processing of this recipe if it is not explicitly specified as the | ||
4 | # PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying | ||
5 | # to build multiple virtual/kernel providers, e.g. as dependency of | ||
6 | # core-image-rt-sdk, core-image-rt. | ||
7 | python () { | ||
8 | if d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-intel-rt": | ||
9 | raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-intel-rt to enable it") | ||
10 | } | ||
11 | |||
12 | KBRANCH = "4.14/preempt-rt" | ||
13 | KMETA_BRANCH = "yocto-4.14" | ||
14 | |||
15 | # Fix for 32-bit perf issue. Remove when patch is backported to 4.14. | ||
16 | SRC_URI_append = " file://0001-perf-x86-32-explicitly-include-errno.h.patch" | ||
17 | |||
18 | DEPENDS += "elfutils-native openssl-native util-linux-native" | ||
19 | |||
20 | LINUX_VERSION ?= "4.14.115" | ||
21 | SRCREV_machine ?= "ab4155a2f9a055b4004d7c8608ef1937dfff093a" | ||
22 | SRCREV_meta ?= "bc35d5bd224ab031440a69f9806d839db382f05c" | ||
23 | |||
24 | LINUX_KERNEL_TYPE = "preempt-rt" | ||
diff --git a/recipes-kernel/linux/linux-intel-rt_4.19.bb b/recipes-kernel/linux/linux-intel-rt_4.19.bb deleted file mode 100644 index 0fd47585..00000000 --- a/recipes-kernel/linux/linux-intel-rt_4.19.bb +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | require linux-intel.inc | ||
2 | |||
3 | # Skip processing of this recipe if it is not explicitly specified as the | ||
4 | # PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying | ||
5 | # to build multiple virtual/kernel providers, e.g. as dependency of | ||
6 | # core-image-rt-sdk, core-image-rt. | ||
7 | python () { | ||
8 | if d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-intel-rt": | ||
9 | raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-intel-rt to enable it") | ||
10 | } | ||
11 | |||
12 | LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" | ||
13 | SRC_URI_append = " file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch" | ||
14 | |||
15 | KBRANCH = "4.19/preempt-rt" | ||
16 | KMETA_BRANCH = "yocto-4.19" | ||
17 | |||
18 | DEPENDS += "elfutils-native openssl-native util-linux-native" | ||
19 | |||
20 | LINUX_VERSION ?= "4.19.31" | ||
21 | SRCREV_machine ?= "8b4bc03e27be3bd3b23249205d11185b2ed21ec6" | ||
22 | SRCREV_meta ?= "d85f07e03c980eca5ffd5ba058985d6ed3a83801" | ||
23 | |||
24 | LINUX_KERNEL_TYPE = "preempt-rt" | ||
diff --git a/recipes-kernel/linux/linux-intel-rt_6.12.bb b/recipes-kernel/linux/linux-intel-rt_6.12.bb new file mode 100644 index 00000000..13b495d1 --- /dev/null +++ b/recipes-kernel/linux/linux-intel-rt_6.12.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | require linux-intel.inc | ||
2 | |||
3 | SRC_URI:prepend = "git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \ | ||
4 | " | ||
5 | SRC_URI:append = " file://0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch \ | ||
6 | " | ||
7 | |||
8 | # Skip processing of this recipe if it is not explicitly specified as the | ||
9 | # PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying | ||
10 | # to build multiple virtual/kernel providers, e.g. as dependency of | ||
11 | # core-image-rt-sdk, core-image-rt. | ||
12 | python () { | ||
13 | if d.getVar("KERNEL_PACKAGE_NAME", True) == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-intel-rt": | ||
14 | raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-intel-rt to enable it") | ||
15 | } | ||
16 | |||
17 | KBRANCH = "6.12/linux" | ||
18 | KMETA_BRANCH = "yocto-6.12" | ||
19 | |||
20 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" | ||
21 | |||
22 | DEPENDS += "elfutils-native openssl-native util-linux-native" | ||
23 | |||
24 | LINUX_VERSION_EXTENSION ??= "-intel-pk-${LINUX_KERNEL_TYPE}" | ||
25 | |||
26 | LINUX_VERSION ?= "6.12.27" | ||
27 | SRCREV_machine ?= "9e2f92c31c6353101755c83670232c94e0c07ddc" | ||
28 | SRCREV_meta ?= "da71eb19ceab34a7a6ff4284f1580e043c870168" | ||
29 | |||
30 | LINUX_KERNEL_TYPE = "preempt-rt" | ||
31 | |||
32 | # Functionality flags | ||
33 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc" | ||
34 | |||
35 | UPSTREAM_CHECK_GITTAGREGEX = "^lts-(?P<pver>v6.12.(\d+)-linux-(\d+)T(\d+)Z)$" | ||
diff --git a/recipes-kernel/linux/linux-intel.inc b/recipes-kernel/linux/linux-intel.inc index f2ba0d13..c698ae28 100644 --- a/recipes-kernel/linux/linux-intel.inc +++ b/recipes-kernel/linux/linux-intel.inc | |||
@@ -1,25 +1,22 @@ | |||
1 | require recipes-kernel/linux/linux-yocto.inc | 1 | require recipes-kernel/linux/linux-yocto.inc |
2 | require recipes-kernel/linux/meta-intel-compat-kernel.inc | 2 | require recipes-kernel/linux/meta-intel-compat-kernel.inc |
3 | 3 | ||
4 | FILESEXTRAPATHS_prepend := "${THISDIR}/linux-intel:" | 4 | FILESEXTRAPATHS:prepend := "${THISDIR}/linux-intel:" |
5 | 5 | ||
6 | KERNEL_CONFIG_URI ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=${KMETA}" | 6 | KERNEL_CONFIG_URI ?= "git://git.yoctoproject.org/yocto-kernel-cache;protocol=https;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=${KMETA}" |
7 | 7 | ||
8 | SRC_URI = " \ | 8 | SRC_URI = " \ |
9 | git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \ | ||
10 | ${KERNEL_CONFIG_URI} \ | 9 | ${KERNEL_CONFIG_URI} \ |
10 | file://fix-perf-reproducibility.patch \ | ||
11 | file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch \ | ||
12 | file://0002-mconf-fix-output-of-cflags-and-libraries.patch \ | ||
11 | " | 13 | " |
12 | 14 | ||
13 | SRC_URI_append_core2-32-intel-common = " file://disable_skylake_sound.cfg" | ||
14 | |||
15 | LINUX_VERSION_EXTENSION ?= "-intel-pk-${LINUX_KERNEL_TYPE}" | ||
16 | |||
17 | PV = "${LINUX_VERSION}+git${SRCPV}" | 15 | PV = "${LINUX_VERSION}+git${SRCPV}" |
18 | 16 | ||
19 | KMETA = "kernel-meta" | 17 | KMETA = "kernel-meta" |
20 | KCONF_BSP_AUDIT_LEVEL = "2" | 18 | KCONF_BSP_AUDIT_LEVEL = "0" |
21 | 19 | ||
22 | COMPATIBLE_MACHINE ?= "(intel-corei7-64|intel-core2-32)" | 20 | COMPATIBLE_MACHINE ?= "(intel-corei7-64)" |
23 | 21 | ||
24 | KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" | 22 | KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}" |
25 | KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}" | ||
diff --git a/recipes-kernel/linux/linux-intel/0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch b/recipes-kernel/linux/linux-intel/0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch new file mode 100644 index 00000000..df2a4139 --- /dev/null +++ b/recipes-kernel/linux/linux-intel/0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch | |||
@@ -0,0 +1,48 @@ | |||
1 | From 4881d0f985aab70c685bd63b56a2d6ad5e790abc Mon Sep 17 00:00:00 2001 | ||
2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
3 | Date: Sun, 10 Jul 2022 22:56:53 -0400 | ||
4 | Subject: [PATCH] lib/build_OID_registry: fix reproducibility issues | ||
5 | |||
6 | The script build_OID_registry captures the full path of itself | ||
7 | in the generated data. This causes reproduciblity issues as the | ||
8 | path is captured and packaged. | ||
9 | |||
10 | We use the basename of the script instead, and that allows us | ||
11 | to be reprodicible, with slightly less information captured in | ||
12 | the output data (but the generating script can still easily | ||
13 | be found). | ||
14 | |||
15 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
16 | Upstream-Status: Inappropriate | ||
17 | |||
18 | Taken from linux-yocto, v5.15/standard/base. | ||
19 | |||
20 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
21 | --- | ||
22 | lib/build_OID_registry | 3 ++- | ||
23 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
24 | |||
25 | diff --git a/lib/build_OID_registry b/lib/build_OID_registry | ||
26 | index 8267e8d71338..755dd33a8b04 100755 | ||
27 | --- a/lib/build_OID_registry | ||
28 | +++ b/lib/build_OID_registry | ||
29 | @@ -9,6 +9,7 @@ | ||
30 | |||
31 | use strict; | ||
32 | use Cwd qw(abs_path); | ||
33 | +use File::Basename; | ||
34 | |||
35 | my @names = (); | ||
36 | my @oids = (); | ||
37 | @@ -40,7 +41,7 @@ open C_FILE, ">$ARGV[1]" or die; | ||
38 | print C_FILE "/*\n"; | ||
39 | my $scriptname = $0; | ||
40 | $scriptname =~ s#^\Q$abs_srctree/\E##; | ||
41 | -print C_FILE " * Automatically generated by ", $scriptname, ". Do not edit\n"; | ||
42 | +print C_FILE " * Automatically generated by ", basename $0, ". Do not edit\n"; | ||
43 | print C_FILE " */\n"; | ||
44 | |||
45 | # | ||
46 | -- | ||
47 | 2.34.1 | ||
48 | |||
diff --git a/recipes-kernel/linux/linux-intel/0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch b/recipes-kernel/linux/linux-intel/0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch deleted file mode 100644 index a9e9213b..00000000 --- a/recipes-kernel/linux/linux-intel/0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | From e6ebc8e654bba53f28af5229a1069fc74fa58b7b Mon Sep 17 00:00:00 2001 | ||
2 | From: Jason Wessel <jason.wessel@windriver.com> | ||
3 | Date: Thu, 25 Sep 2014 11:26:49 -0700 | ||
4 | Subject: [PATCH] menuconfig,check-lxdiaglog.sh: Allow specification of ncurses | ||
5 | location | ||
6 | |||
7 | In some cross build environments such as the Yocto Project build | ||
8 | environment it provides an ncurses library that is compiled | ||
9 | differently than the host's version. This causes display corruption | ||
10 | problems when the host's curses includes are used instead of the | ||
11 | includes from the provided compiler are overridden. There is a second | ||
12 | case where there is no curses libraries at all on the host system and | ||
13 | menuconfig will just fail entirely. | ||
14 | |||
15 | The solution is simply to allow an override variable in | ||
16 | check-lxdialog.sh for environments such as the Yocto Project. Adding | ||
17 | a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing | ||
18 | compiling and linking against the right headers and libraries. | ||
19 | |||
20 | Upstream-Status: submitted [https://lkml.org/lkml/2013/3/3/103] | ||
21 | |||
22 | Signed-off-by: Jason Wessel <jason.wessel@windriver.com> | ||
23 | cc: Michal Marek <mmarek@suse.cz> | ||
24 | cc: linux-kbuild@vger.kernel.org | ||
25 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
26 | Signed-off-by: California Sullivan <california.l.sullivan@intel.com> | ||
27 | --- | ||
28 | scripts/kconfig/lxdialog/check-lxdialog.sh | 8 ++++++++ | ||
29 | 1 file changed, 8 insertions(+) | ||
30 | mode change 100755 => 100644 scripts/kconfig/lxdialog/check-lxdialog.sh | ||
31 | |||
32 | diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh | ||
33 | old mode 100755 | ||
34 | new mode 100644 | ||
35 | index 5075ebf2d3b9..ba9242101190 | ||
36 | --- a/scripts/kconfig/lxdialog/check-lxdialog.sh | ||
37 | +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh | ||
38 | @@ -4,6 +4,10 @@ | ||
39 | # What library to link | ||
40 | ldflags() | ||
41 | { | ||
42 | + if [ "$CROSS_CURSES_LIB" != "" ]; then | ||
43 | + echo "$CROSS_CURSES_LIB" | ||
44 | + exit | ||
45 | + fi | ||
46 | pkg-config --libs ncursesw 2>/dev/null && exit | ||
47 | pkg-config --libs ncurses 2>/dev/null && exit | ||
48 | for ext in so a dll.a dylib ; do | ||
49 | @@ -21,6 +25,10 @@ ldflags() | ||
50 | # Where is ncurses.h? | ||
51 | ccflags() | ||
52 | { | ||
53 | + if [ x"$CROSS_CURSES_INC" != x ]; then | ||
54 | + echo "$CROSS_CURSES_INC" | ||
55 | + exit | ||
56 | + fi | ||
57 | if pkg-config --cflags ncursesw 2>/dev/null; then | ||
58 | echo '-DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1' | ||
59 | elif pkg-config --cflags ncurses 2>/dev/null; then | ||
60 | -- | ||
61 | 2.14.3 | ||
62 | |||
diff --git a/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch b/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch index 3dc71ff2..a601e783 100644 --- a/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch +++ b/recipes-kernel/linux/linux-intel/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch | |||
@@ -1,7 +1,8 @@ | |||
1 | From bebd63730a433ba62549a80114a9851328aa8897 Mon Sep 17 00:00:00 2001 | 1 | From 1811da09f42ca5e82282970e8ad014707bc94c82 Mon Sep 17 00:00:00 2001 |
2 | From: Bruce Ashfield <bruce.ashfield@windriver.com> | 2 | From: Bruce Ashfield <bruce.ashfield@windriver.com> |
3 | Date: Mon, 2 Jul 2018 23:10:28 -0400 | 3 | Date: Mon, 2 Jul 2018 23:10:28 -0400 |
4 | Subject: [PATCH] menuconfig,mconf-cfg: Allow specification of ncurses location | 4 | Subject: [PATCH 1/2] menuconfig,mconf-cfg: Allow specification of ncurses |
5 | location | ||
5 | 6 | ||
6 | In some cross build environments such as the Yocto Project build | 7 | In some cross build environments such as the Yocto Project build |
7 | environment it provides an ncurses library that is compiled | 8 | environment it provides an ncurses library that is compiled |
@@ -16,33 +17,36 @@ check-lxdialog.sh for environments such as the Yocto Project. Adding | |||
16 | a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing | 17 | a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing |
17 | compiling and linking against the right headers and libraries. | 18 | compiling and linking against the right headers and libraries. |
18 | 19 | ||
20 | Upstream-Status: Submitted | ||
21 | |||
19 | Signed-off-by: Jason Wessel <jason.wessel@windriver.com> | 22 | Signed-off-by: Jason Wessel <jason.wessel@windriver.com> |
20 | cc: Michal Marek <mmarek@suse.cz> | 23 | cc: Michal Marek <mmarek@suse.cz> |
21 | cc: linux-kbuild@vger.kernel.org | 24 | cc: linux-kbuild@vger.kernel.org |
22 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | 25 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> |
26 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
23 | --- | 27 | --- |
24 | scripts/kconfig/mconf-cfg.sh | 8 ++++++++ | 28 | scripts/kconfig/mconf-cfg.sh | 8 ++++++++ |
25 | 1 file changed, 8 insertions(+) | 29 | 1 file changed, 8 insertions(+) |
26 | 30 | ||
27 | diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh | 31 | diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh |
28 | index c812872d7f9d..42d20819025c 100755 | 32 | index 1e61f50a5905..38cf8304bb31 100755 |
29 | --- a/scripts/kconfig/mconf-cfg.sh | 33 | --- a/scripts/kconfig/mconf-cfg.sh |
30 | +++ b/scripts/kconfig/mconf-cfg.sh | 34 | +++ b/scripts/kconfig/mconf-cfg.sh |
31 | @@ -4,6 +4,14 @@ | 35 | @@ -7,6 +7,14 @@ libs=$2 |
32 | PKG="ncursesw" | 36 | PKG="ncursesw" |
33 | PKG2="ncurses" | 37 | PKG2="ncurses" |
34 | 38 | ||
35 | +if [ "$CROSS_CURSES_LIB" != "" ]; then | 39 | +if [ "$CROSS_CURSES_LIB" != "" ]; then |
36 | + echo libs=\'$CROSS_CURSES_LIB\' | 40 | + echo libs=\'$CROSS_CURSES_LIB\' |
37 | + if [ x"$CROSS_CURSES_INC" != x ]; then | 41 | + if [ x"$CROSS_CURSES_INC" != x ]; then |
38 | + echo cflags=\'$CROSS_CURSES_INC\' | 42 | + echo cflags=\'$CROSS_CURSES_INC\' |
39 | + fi | 43 | + fi |
40 | + exit 0 | 44 | + exit 0 |
41 | +fi | 45 | +fi |
42 | + | 46 | + |
43 | if [ -n "$(command -v pkg-config)" ]; then | 47 | if [ -n "$(command -v ${HOSTPKG_CONFIG})" ]; then |
44 | if pkg-config --exists $PKG; then | 48 | if ${HOSTPKG_CONFIG} --exists $PKG; then |
45 | echo cflags=\"$(pkg-config --cflags $PKG)\" | 49 | ${HOSTPKG_CONFIG} --cflags ${PKG} > ${cflags} |
46 | -- | 50 | -- |
47 | 2.17.1 | 51 | 2.34.1 |
48 | 52 | ||
diff --git a/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch b/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch deleted file mode 100644 index 5c8b27c7..00000000 --- a/recipes-kernel/linux/linux-intel/0001-perf-x86-32-explicitly-include-errno.h.patch +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | From 57af599929263e7bb6f2f369c9e4bc1e440528a9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
3 | Date: Mon, 21 Aug 2017 13:52:53 -0400 | ||
4 | Subject: [PATCH 1/1] perf: x86-32: explicitly include <errno.h> | ||
5 | |||
6 | Upstream-Status: submitted | ||
7 | |||
8 | The 32bit x86 perf build does not find the system definitions of error | ||
9 | return values, hence we end up with: | ||
10 | |||
11 | | In file included from util/libunwind/x86_32.c:32:0: | ||
12 | | util/libunwind/../../arch/x86/util/unwind-libunwind.c: In function 'libunwind__x86_reg_id': | ||
13 | | util/libunwind/../../arch/x86/util/unwind-libunwind.c:109:11: error: 'EINVAL' undeclared (first use in this function); did you mean 'UNW_EINVAL'? | ||
14 | | return -EINVAL; | ||
15 | | ^~~~~~ | ||
16 | | UNW_EINVAL | ||
17 | |||
18 | By explicitly including errno.h, we can fix this build without impacting | ||
19 | other architectures. | ||
20 | |||
21 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
22 | --- | ||
23 | |||
24 | tools/perf/util/libunwind/x86_32.c | 1 + | ||
25 | 1 file changed, 1 insertion(+) | ||
26 | |||
27 | diff --git a/tools/perf/util/libunwind/x86_32.c b/tools/perf/util/libunwind/x86_32.c | ||
28 | index 957ffff72428..d781f7bdeb88 100644 | ||
29 | --- a/tools/perf/util/libunwind/x86_32.c | ||
30 | +++ b/tools/perf/util/libunwind/x86_32.c | ||
31 | @@ -20,6 +20,7 @@ | ||
32 | #define LIBUNWIND__ARCH_REG_IP PERF_REG_X86_IP | ||
33 | #define LIBUNWIND__ARCH_REG_SP PERF_REG_X86_SP | ||
34 | |||
35 | +#include <errno.h> | ||
36 | #include "unwind.h" | ||
37 | #include "debug.h" | ||
38 | #include "libunwind-x86.h" | ||
39 | -- | ||
40 | 2.14.3 | ||
41 | |||
diff --git a/recipes-kernel/linux/linux-intel/0002-mconf-fix-output-of-cflags-and-libraries.patch b/recipes-kernel/linux/linux-intel/0002-mconf-fix-output-of-cflags-and-libraries.patch new file mode 100644 index 00000000..a96b68d9 --- /dev/null +++ b/recipes-kernel/linux/linux-intel/0002-mconf-fix-output-of-cflags-and-libraries.patch | |||
@@ -0,0 +1,40 @@ | |||
1 | From 1b53d82a8152843afcddd7f16b0c43b6b4f22895 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
3 | Date: Mon, 17 Jul 2023 17:17:55 -0400 | ||
4 | Subject: [PATCH 2/2] mconf: fix output of cflags and libraries | ||
5 | |||
6 | commit 3122c84409d578a5df8bcb1 [kconfig: refactor Makefile to reduce | ||
7 | process forks] changes the way that flags are detected. They are | ||
8 | no longer just echo'd and captured, they are written to a file and | ||
9 | later read. | ||
10 | |||
11 | We adjust our CROSS ncurses patch accordingly. | ||
12 | |||
13 | We'll eventually be able to drop this patch, but not quite yet. | ||
14 | |||
15 | Upstream-Status: Inappropriate [OE-Specific] | ||
16 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
17 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
18 | --- | ||
19 | scripts/kconfig/mconf-cfg.sh | 4 ++-- | ||
20 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
21 | |||
22 | diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh | ||
23 | index 38cf8304bb31..a5ae56e08b07 100755 | ||
24 | --- a/scripts/kconfig/mconf-cfg.sh | ||
25 | +++ b/scripts/kconfig/mconf-cfg.sh | ||
26 | @@ -8,9 +8,9 @@ PKG="ncursesw" | ||
27 | PKG2="ncurses" | ||
28 | |||
29 | if [ "$CROSS_CURSES_LIB" != "" ]; then | ||
30 | - echo libs=\'$CROSS_CURSES_LIB\' | ||
31 | + echo $CROSS_CURSES_LIB > ${libs} | ||
32 | if [ x"$CROSS_CURSES_INC" != x ]; then | ||
33 | - echo cflags=\'$CROSS_CURSES_INC\' | ||
34 | + echo $CROSS_CURSES_INC > ${cflags} | ||
35 | fi | ||
36 | exit 0 | ||
37 | fi | ||
38 | -- | ||
39 | 2.34.1 | ||
40 | |||
diff --git a/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg b/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg deleted file mode 100644 index b38cf6c2..00000000 --- a/recipes-kernel/linux/linux-intel/disable_skylake_sound.cfg +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | # CONFIG_SND_SOC_INTEL_SKYLAKE is not set | ||
2 | # CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set | ||
3 | # CONFIG_SND_SOC_INTEL_BXT_RT298_MACH is not set | ||
4 | # CONFIG_SND_SOC_INTEL_BXT_TDF8532_MACH is not set | ||
5 | # CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH is not set | ||
6 | # CONFIG_SND_SOC_INTEL_SKL_RT286_MACH is not set | ||
7 | # CONFIG_SND_SOC_INTEL_CNL_RT274_MACH is not set | ||
8 | # CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH is not set | ||
9 | # CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH is not set | ||
10 | # CONFIG_SND_SOC_INTEL_CNL_CS42L42_MACH is not set | ||
11 | # CONFIG_SND_SOC_INTEL_CNL_RT700_MACH is not set | ||
12 | # CONFIG_SND_SOC_INTEL_CNL_SVFPGA_MACH is not set | ||
diff --git a/recipes-kernel/linux/linux-intel/fix-perf-reproducibility.patch b/recipes-kernel/linux/linux-intel/fix-perf-reproducibility.patch new file mode 100644 index 00000000..1a98b1db --- /dev/null +++ b/recipes-kernel/linux/linux-intel/fix-perf-reproducibility.patch | |||
@@ -0,0 +1,39 @@ | |||
1 | From b8cd0e429bf75b673c438a8277d4bc74327df992 Mon Sep 17 00:00:00 2001 | ||
2 | From: Tom Zanussi <tom.zanussi@intel.com> | ||
3 | Date: Tue, 3 Jul 2012 13:07:23 -0500 | ||
4 | Subject: perf: change --root to --prefix for python install | ||
5 | |||
6 | Otherwise we get the sysroot path appended to the build path, not what | ||
7 | we want. | ||
8 | |||
9 | Signed-off-by: Tom Zanussi <tom.zanussi@intel.com> | ||
10 | |||
11 | Upstream-Status: Inappropriate | ||
12 | |||
13 | Taken from linux-yocto, v5.15/standard/base | ||
14 | https://git.yoctoproject.org/linux-yocto/commit?id=b8cd0e429bf75b673c438a8277d4bc74327df992&h=v5.15%2Fstandard%2Fbase | ||
15 | |||
16 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
17 | --- | ||
18 | tools/perf/Makefile.perf | 2 +- | ||
19 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
20 | |||
21 | (limited to 'tools/perf/Makefile.perf') | ||
22 | |||
23 | diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf | ||
24 | index 8f738e11356d..ee945d8e3996 100644 | ||
25 | --- a/tools/perf/Makefile.perf | ||
26 | +++ b/tools/perf/Makefile.perf | ||
27 | @@ -1022,7 +1022,7 @@ install-bin: install-tools install-tests install-traceevent-plugins | ||
28 | install: install-bin try-install-man | ||
29 | |||
30 | install-python_ext: | ||
31 | - $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' | ||
32 | + $(PYTHON_WORD) util/setup.py --quiet install --prefix='$(DESTDIR_SQ)/usr' | ||
33 | |||
34 | # 'make install-doc' should call 'make -C Documentation install' | ||
35 | $(INSTALL_DOC_TARGETS): | ||
36 | -- | ||
37 | cgit | ||
38 | |||
39 | |||
diff --git a/recipes-kernel/linux/linux-intel_4.14.bb b/recipes-kernel/linux/linux-intel_4.14.bb deleted file mode 100644 index f38af5e2..00000000 --- a/recipes-kernel/linux/linux-intel_4.14.bb +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | require linux-intel.inc | ||
2 | |||
3 | KBRANCH = "4.14/base" | ||
4 | KMETA_BRANCH = "yocto-4.14" | ||
5 | |||
6 | # Fix for 32-bit perf issue. Remove when patch is backported to 4.14. | ||
7 | SRC_URI_append = " file://0001-perf-x86-32-explicitly-include-errno.h.patch \ | ||
8 | file://0001-menuconfig-check-lxdiaglog.sh-Allow-specification-of.patch \ | ||
9 | " | ||
10 | |||
11 | DEPENDS += "elfutils-native openssl-native util-linux-native" | ||
12 | |||
13 | LINUX_VERSION ?= "4.14.123" | ||
14 | SRCREV_machine ?= "6aab3d561d738f3ceb9230a828b3f0b1ed5e98a3" | ||
15 | SRCREV_meta ?= "bc35d5bd224ab031440a69f9806d839db382f05c" | ||
16 | |||
17 | # For Crystalforest and Romley | ||
18 | KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio" | ||
19 | KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio" | ||
20 | |||
21 | # Functionality flags | ||
22 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc" | ||
diff --git a/recipes-kernel/linux/linux-intel_4.19.bb b/recipes-kernel/linux/linux-intel_4.19.bb deleted file mode 100644 index c073851a..00000000 --- a/recipes-kernel/linux/linux-intel_4.19.bb +++ /dev/null | |||
@@ -1,21 +0,0 @@ | |||
1 | require linux-intel.inc | ||
2 | |||
3 | KBRANCH = "4.19/base" | ||
4 | KMETA_BRANCH = "yocto-4.19" | ||
5 | |||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" | ||
7 | |||
8 | SRC_URI_append = " file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-.patch" | ||
9 | |||
10 | DEPENDS += "elfutils-native openssl-native util-linux-native" | ||
11 | |||
12 | LINUX_VERSION ?= "4.19.50" | ||
13 | SRCREV_machine ?= "78a3f5c9f69658f9d590fcf93015055aa7283513" | ||
14 | SRCREV_meta ?= "ad235db461bf4595c668700ca8a909c322009cc1" | ||
15 | |||
16 | # For Crystalforest and Romley | ||
17 | KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio" | ||
18 | KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio" | ||
19 | |||
20 | # Functionality flags | ||
21 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/security/security.scc" | ||
diff --git a/recipes-kernel/linux/linux-intel_6.12.bb b/recipes-kernel/linux/linux-intel_6.12.bb new file mode 100644 index 00000000..32b0b2e4 --- /dev/null +++ b/recipes-kernel/linux/linux-intel_6.12.bb | |||
@@ -0,0 +1,25 @@ | |||
1 | require linux-intel.inc | ||
2 | |||
3 | SRC_URI:prepend = "git://github.com/intel/linux-intel-lts.git;protocol=https;name=machine;branch=${KBRANCH}; \ | ||
4 | " | ||
5 | SRC_URI:append = " file://0001-6.12-lib-build_OID_registry-fix-reproducibility-issues.patch \ | ||
6 | " | ||
7 | KBRANCH = "6.12/linux" | ||
8 | KMETA_BRANCH = "yocto-6.12" | ||
9 | |||
10 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" | ||
11 | |||
12 | DEPENDS += "elfutils-native openssl-native util-linux-native" | ||
13 | |||
14 | LINUX_VERSION_EXTENSION ??= "-intel-pk-${LINUX_KERNEL_TYPE}" | ||
15 | |||
16 | LINUX_VERSION ?= "6.12.27" | ||
17 | SRCREV_machine ?= "9e2f92c31c6353101755c83670232c94e0c07ddc" | ||
18 | SRCREV_meta ?= "da71eb19ceab34a7a6ff4284f1580e043c870168" | ||
19 | |||
20 | # Functionality flags | ||
21 | KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc \ | ||
22 | features/security/security.scc \ | ||
23 | features/intel-npu/intel-npu.scc" | ||
24 | |||
25 | UPSTREAM_CHECK_GITTAGREGEX = "^lts-(?P<pver>v6.12.(\d+)-linux-(\d+)T(\d+)Z)$" | ||
diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend index 6173148c..deb19940 100644 --- a/recipes-kernel/linux/linux-yocto-dev.bbappend +++ b/recipes-kernel/linux/linux-yocto-dev.bbappend | |||
@@ -1,21 +1,21 @@ | |||
1 | FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/${PN}:" | 1 | FILESEXTRAPATHS:prepend:intel-x86-common := "${THISDIR}/${PN}:" |
2 | 2 | ||
3 | COMPATIBLE_MACHINE_core2-32-intel-common = "${MACHINE}" | 3 | COMPATIBLE_MACHINE:core2-32-intel-common = "${MACHINE}" |
4 | KMACHINE_core2-32-intel-common = "intel-core2-32" | 4 | KMACHINE:core2-32-intel-common = "intel-core2-32" |
5 | KERNEL_FEATURES_append_core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" | 5 | KERNEL_FEATURES:append:core2-32-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" |
6 | 6 | ||
7 | COMPATIBLE_MACHINE_corei7-64-intel-common = "${MACHINE}" | 7 | COMPATIBLE_MACHINE:corei7-64-intel-common = "${MACHINE}" |
8 | KMACHINE_corei7-64-intel-common = "intel-corei7-64" | 8 | KMACHINE:corei7-64-intel-common = "intel-corei7-64" |
9 | KERNEL_FEATURES_append_corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" | 9 | KERNEL_FEATURES:append:corei7-64-intel-common = "${KERNEL_FEATURES_INTEL_COMMON}" |
10 | 10 | ||
11 | # NOTE: We do not set SRCREVs here as -dev is intended to be built with AUTOREV | 11 | # NOTE: We do not set SRCREVs here as -dev is intended to be built with AUTOREV |
12 | # and setting them here breaks the default mechanism to use AUTOREV if the | 12 | # and setting them here breaks the default mechanism to use AUTOREV if the |
13 | # default SRCREV is set and linux-yocto-dev is the preferred provider. | 13 | # default SRCREV is set and linux-yocto-dev is the preferred provider. |
14 | 14 | ||
15 | # For Crystalforest and Romley | 15 | # For Crystalforest and Romley |
16 | KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " uio" | 16 | KERNEL_MODULE_AUTOLOAD:append:core2-32-intel-common = " uio" |
17 | KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " uio" | 17 | KERNEL_MODULE_AUTOLOAD:append:corei7-64-intel-common = " uio" |
18 | 18 | ||
19 | # For FRI2, NUC | 19 | # For FRI2, NUC |
20 | KERNEL_MODULE_AUTOLOAD_append_core2-32-intel-common = " iwlwifi" | 20 | KERNEL_MODULE_AUTOLOAD:append:core2-32-intel-common = " iwlwifi" |
21 | KERNEL_MODULE_AUTOLOAD_append_corei7-64-intel-common = " iwlwifi" | 21 | KERNEL_MODULE_AUTOLOAD:append:corei7-64-intel-common = " iwlwifi" |
diff --git a/recipes-kernel/linux/linux-yocto-rt_4.19.bbappend b/recipes-kernel/linux/linux-yocto-rt_%.bbappend index daa7dd6b..daa7dd6b 100644 --- a/recipes-kernel/linux/linux-yocto-rt_4.19.bbappend +++ b/recipes-kernel/linux/linux-yocto-rt_%.bbappend | |||
diff --git a/recipes-kernel/linux/linux-yocto-rt_5.0.bbappend b/recipes-kernel/linux/linux-yocto-rt_5.0.bbappend deleted file mode 100644 index daa7dd6b..00000000 --- a/recipes-kernel/linux/linux-yocto-rt_5.0.bbappend +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | require meta-intel-compat-kernel.inc | ||
diff --git a/recipes-kernel/linux/linux-yocto_%.bbappend b/recipes-kernel/linux/linux-yocto_%.bbappend index 7c29be14..9f3d43e3 100644 --- a/recipes-kernel/linux/linux-yocto_%.bbappend +++ b/recipes-kernel/linux/linux-yocto_%.bbappend | |||
@@ -1,4 +1,6 @@ | |||
1 | require meta-intel-compat-kernel.inc | ||
2 | |||
1 | # The kernel build is 64-bit regardless, so include both common overrides. | 3 | # The kernel build is 64-bit regardless, so include both common overrides. |
2 | # Without this, the kernel will be missing vars that make it buildable for the | 4 | # Without this, the kernel will be missing vars that make it buildable for the |
3 | # intel-corei7-64 machine. | 5 | # intel-corei7-64 machine. |
4 | MACHINEOVERRIDES_prepend_corei7-64-x32-intel-common = "corei7-64-intel-common:" | 6 | MACHINEOVERRIDES:prepend:corei7-64-x32-intel-common = "corei7-64-intel-common:" |
diff --git a/recipes-kernel/linux/linux-yocto_4.19.bbappend b/recipes-kernel/linux/linux-yocto_4.19.bbappend deleted file mode 100644 index daa7dd6b..00000000 --- a/recipes-kernel/linux/linux-yocto_4.19.bbappend +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | require meta-intel-compat-kernel.inc | ||
diff --git a/recipes-kernel/linux/linux-yocto_5.0.bbappend b/recipes-kernel/linux/linux-yocto_5.0.bbappend deleted file mode 100644 index daa7dd6b..00000000 --- a/recipes-kernel/linux/linux-yocto_5.0.bbappend +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | require meta-intel-compat-kernel.inc | ||
diff --git a/recipes-kernel/linux/meta-intel-compat-kernel.inc b/recipes-kernel/linux/meta-intel-compat-kernel.inc index be5056c2..0c861e13 100644 --- a/recipes-kernel/linux/meta-intel-compat-kernel.inc +++ b/recipes-kernel/linux/meta-intel-compat-kernel.inc | |||
@@ -3,11 +3,12 @@ | |||
3 | 3 | ||
4 | KERNEL_FEATURES_INTEL_COMMON ?= "" | 4 | KERNEL_FEATURES_INTEL_COMMON ?= "" |
5 | 5 | ||
6 | COMPATIBLE_MACHINE_intel-x86-common = "${MACHINE}" | 6 | COMPATIBLE_MACHINE:intel-x86-common = "${MACHINE}" |
7 | KERNEL_FEATURES_intel-x86-common = "${KERNEL_FEATURES_INTEL_COMMON}" | 7 | KERNEL_FEATURES:intel-x86-common = "${KERNEL_FEATURES_INTEL_COMMON}" |
8 | 8 | ||
9 | KMACHINE_corei7-64-intel-common = "intel-corei7-64" | 9 | KMACHINE:corei7-64-intel-common = "intel-corei7-64" |
10 | KMACHINE_core2-32-intel-common = "intel-core2-32" | 10 | KMACHINE:core2-32-intel-common = "intel-core2-32" |
11 | KMACHINE:x86-64-v3-intel-common = "intel-corei7-64" | ||
11 | 12 | ||
12 | INTEL_COMMON_AUTOLOAD ?= " uio iwlwifi i915" | 13 | INTEL_COMMON_AUTOLOAD ?= " uio iwlwifi i915" |
13 | KERNEL_MODULE_AUTOLOAD_intel-x86-common = " ${INTEL_COMMON_AUTOLOAD}" | 14 | KERNEL_MODULE_AUTOLOAD:intel-x86-common = " ${INTEL_COMMON_AUTOLOAD}" |
diff --git a/recipes-multimedia/itt/itt/0001-CMakeLists.txt-set-output-directory-path.patch b/recipes-multimedia/itt/itt/0001-CMakeLists.txt-set-output-directory-path.patch deleted file mode 100644 index 6009669a..00000000 --- a/recipes-multimedia/itt/itt/0001-CMakeLists.txt-set-output-directory-path.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | From 6bced614fe448ee7fc6216b528e2c5684446f9c6 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Tue, 14 May 2019 16:57:27 +0800 | ||
4 | Subject: [PATCH] CMakeLists.txt: set output directory path | ||
5 | |||
6 | Installer section of CMakeLists.txt expect bin | ||
7 | direcotry should be present at PROJECT_SOURCE_DIR | ||
8 | |||
9 | set(SEA_PROJECT_BIN ${PROJECT_SOURCE_DIR}/bin) | ||
10 | |||
11 | Upstream-Status: Inappropriate | ||
12 | |||
13 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
14 | --- | ||
15 | CMakeLists.txt | 2 +- | ||
16 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
19 | index 479c443..01f0124 100644 | ||
20 | --- a/CMakeLists.txt | ||
21 | +++ b/CMakeLists.txt | ||
22 | @@ -65,7 +65,7 @@ foreach (Flag ${Flags}) | ||
23 | message(STATUS "${Flag} = ${${Flag}}") | ||
24 | endforeach() | ||
25 | |||
26 | -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/../../bin) | ||
27 | +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin) | ||
28 | |||
29 | set(EXECUTABLE_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) | ||
30 | set(LIBRARY_OUTPUT_PATH ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) | ||
31 | -- | ||
32 | 2.17.0 | ||
33 | |||
diff --git a/recipes-multimedia/itt/itt_17.0.bb b/recipes-multimedia/itt/itt_17.0.bb deleted file mode 100644 index a40a2e9b..00000000 --- a/recipes-multimedia/itt/itt_17.0.bb +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | SUMMARY = "Intel® Single Event API" | ||
2 | DESCRIPTION = "Intel® SEAPI is the translator of itt_notify calls into \ | ||
3 | several OS specific and third party tracing formats. \ | ||
4 | You can use it as memory/performance/whatever profiler." | ||
5 | |||
6 | LICENSE = "BSD-3-Clause" | ||
7 | LIC_FILES_CHKSUM = "file://sea_itt_lib/Copyright.txt;md5=7d54dfc8860742fb06b9c5ad28f41fcd" | ||
8 | |||
9 | SRC_URI = "\ | ||
10 | git://github.com/intel/IntelSEAPI.git;protocol=https \ | ||
11 | file://0001-CMakeLists.txt-set-output-directory-path.patch \ | ||
12 | " | ||
13 | SRCREV="36bff07521afffc0c0f7db79252338954ca7e6dd" | ||
14 | S = "${WORKDIR}/git" | ||
15 | |||
16 | inherit pkgconfig cmake | ||
17 | |||
18 | EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release" | ||
19 | EXTRA_OECMAKE += "-DDCO_PILOT=0" | ||
20 | EXTRA_OECMAKE += "${@oe.utils.conditional('TARGET_ARCH','x86_64','','-DFORCE_32=ON',d)}" | ||
21 | |||
22 | COMPATIBLE_HOST_libc-musl_class-target = "null" | ||
23 | |||
24 | do_install() { | ||
25 | install -d -m 755 ${D}${libdir} ${D}${includedir} | ||
26 | install -m 644 ${S}/bin/*.a ${D}${libdir} | ||
27 | install -m 644 ${S}/ittnotify/include/ittnotify.h ${D}${includedir} | ||
28 | } | ||
29 | |||
30 | RDEPENDS_${PN}-dev_remove = "${PN} (= ${EXTENDPKGV})" | ||
diff --git a/recipes-multimedia/itt/itt_3.26.1.bb b/recipes-multimedia/itt/itt_3.26.1.bb new file mode 100644 index 00000000..0043b5de --- /dev/null +++ b/recipes-multimedia/itt/itt_3.26.1.bb | |||
@@ -0,0 +1,33 @@ | |||
1 | SUMMARY = "Intel® Instrumentation and Tracing Technology (ITT) and Just-In-Time (JIT) API" | ||
2 | DESCRIPTION = "The Instrumentation and Tracing Technology (ITT) API enables \ | ||
3 | application to generate and control the collection of trace data during its \ | ||
4 | execution across different Intel tools." | ||
5 | |||
6 | LICENSE = "BSD-3-Clause & GPL-2.0-only" | ||
7 | LIC_FILES_CHKSUM = "file://LICENSES/BSD-3-Clause.txt;md5=c551872bcf41ce707df54c722edeca7b \ | ||
8 | file://LICENSES/GPL-2.0-only.txt;md5=e2d76e7801260c21b90eea3605508ad6 \ | ||
9 | " | ||
10 | |||
11 | SRC_URI = "git://github.com/intel/ittapi.git;protocol=https;branch=master" | ||
12 | SRCREV = "e535d565c88e4407f044719e2e9ec70c0b023d23" | ||
13 | S = "${WORKDIR}/git" | ||
14 | PE = "1" | ||
15 | |||
16 | UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" | ||
17 | |||
18 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | ||
19 | |||
20 | inherit pkgconfig cmake | ||
21 | |||
22 | EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=Release" | ||
23 | EXTRA_OECMAKE += "${@oe.utils.conditional('TARGET_ARCH','x86_64','','-DFORCE_32=ON',d)}" | ||
24 | |||
25 | do_install() { | ||
26 | install -d -m 755 ${D}${libdir} ${D}${includedir}/ittnotify | ||
27 | install -m 644 ${B}/bin/*.a ${D}${libdir} | ||
28 | cp -r ${S}/include/* ${D}${includedir}/ittnotify | ||
29 | cp -r ${S}/src/ittnotify/*.h ${D}${includedir}/ittnotify | ||
30 | rm -r ${D}${includedir}/ittnotify/fortran/win32 | ||
31 | } | ||
32 | |||
33 | RDEPENDS:${PN}-dev:remove = "${PN} (= ${EXTENDPKGV})" | ||
diff --git a/recipes-multimedia/libva/files/0003-Force-ARGB-surface-to-tile4-for-ACM.patch b/recipes-multimedia/libva/files/0003-Force-ARGB-surface-to-tile4-for-ACM.patch new file mode 100644 index 00000000..ffb5b747 --- /dev/null +++ b/recipes-multimedia/libva/files/0003-Force-ARGB-surface-to-tile4-for-ACM.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | From 6132115dd2f1db55a6a5371618247dfaa334a035 Mon Sep 17 00:00:00 2001 | ||
2 | From: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
3 | Date: Wed, 11 Oct 2023 15:36:21 +0800 | ||
4 | Subject: [PATCH 3/7] Force ARGB surface to tile4 for ACM | ||
5 | |||
6 | Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1728] | ||
7 | |||
8 | Signed-off-by: Soon, Thean Siew <thean.siew.soon@intel.com> | ||
9 | Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
10 | --- | ||
11 | media_driver/linux/common/ddi/media_libva_util.cpp | 10 ++++++++++ | ||
12 | 1 file changed, 10 insertions(+) | ||
13 | |||
14 | diff --git a/media_driver/linux/common/ddi/media_libva_util.cpp b/media_driver/linux/common/ddi/media_libva_util.cpp | ||
15 | index a4e12edfa..11634f66e 100755 | ||
16 | --- a/media_driver/linux/common/ddi/media_libva_util.cpp | ||
17 | +++ b/media_driver/linux/common/ddi/media_libva_util.cpp | ||
18 | @@ -521,6 +521,7 @@ VAStatus DdiMediaUtil_AllocateSurface( | ||
19 | gmmCustomParams.Flags.Gpu.UnifiedAuxSurface = 0; | ||
20 | } | ||
21 | } | ||
22 | + | ||
23 | break; | ||
24 | case TILING_X: | ||
25 | gmmCustomParams.Flags.Info.TiledX = true; | ||
26 | @@ -702,6 +703,15 @@ VAStatus DdiMediaUtil_AllocateSurface( | ||
27 | } | ||
28 | } | ||
29 | } | ||
30 | + // There's no VAAPI interface for modifier query yet. As a workaround, always allocate | ||
31 | + // RGB surface as tile4. | ||
32 | + if ((format == Media_Format_A8R8G8B8 || | ||
33 | + format == Media_Format_B10G10R10A2 | | ||
34 | + format == Media_Format_A8B8G8R8 || | ||
35 | + format == Media_Format_X8R8G8B8) && !MEDIA_IS_SKU(&mediaDrvCtx->SkuTable, FtrTileY)) | ||
36 | + { | ||
37 | + gmmParams.Flags.Info.Tile4 = true; | ||
38 | + } | ||
39 | break; | ||
40 | case TILING_X: | ||
41 | gmmParams.Flags.Info.TiledX = true; | ||
42 | -- | ||
43 | 2.43.0 | ||
44 | |||
diff --git a/recipes-multimedia/libva/files/0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch b/recipes-multimedia/libva/files/0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch new file mode 100644 index 00000000..49e3ff13 --- /dev/null +++ b/recipes-multimedia/libva/files/0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch | |||
@@ -0,0 +1,85 @@ | |||
1 | From a32b95e58fd3e34847e799b909e08dbe5c9dc692 Mon Sep 17 00:00:00 2001 | ||
2 | From: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
3 | Date: Fri, 2 Aug 2024 13:25:13 +0800 | ||
4 | Subject: [PATCH 4/7] Fix failed 4k videowalll test case and color corruption | ||
5 | of video composition in Gen12 platform | ||
6 | |||
7 | Fix failed 4k video wall test case from 16CH video only show | ||
8 | 1CH output and corruption observed on certain number of video | ||
9 | composition when doing sample_multi_transcode in legacy path. | ||
10 | |||
11 | platform: TGL/ADL/RPL | ||
12 | |||
13 | Upstream-Status: Submitted [https://github.com/intel/media-driver/pull/1839] | ||
14 | |||
15 | Signed-off-by: xupianch <xu.pian.chan@intel.com> | ||
16 | Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
17 | --- | ||
18 | .../common/vp/hal/vphal_render_composite.cpp | 9 ++++++++- | ||
19 | .../linux/common/vp/ddi/media_libva_vp.c | 18 +++++------------- | ||
20 | 2 files changed, 13 insertions(+), 14 deletions(-) | ||
21 | |||
22 | diff --git a/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp b/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp | ||
23 | index 169030209..cc7c241c1 100644 | ||
24 | --- a/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp | ||
25 | +++ b/media_driver/agnostic/common/vp/hal/vphal_render_composite.cpp | ||
26 | @@ -6784,6 +6784,13 @@ bool CompositeState::BuildFilter( | ||
27 | |||
28 | for (i = 0; (i < (int)pCompParams->uSourceCount) && (iMaxFilterSize > 0); i++) | ||
29 | { | ||
30 | + if (i > 0) | ||
31 | + { | ||
32 | + if (!RECT1_CONTAINS_RECT2(pCompParams->pSource[0]->rcDst, pCompParams->pSource[i]->rcDst)) | ||
33 | + { | ||
34 | + pFilter->forceToTargetColorSpace = true; | ||
35 | + } | ||
36 | + } | ||
37 | pSrc = pCompParams->pSource[i]; | ||
38 | |||
39 | //-------------------------------- | ||
40 | @@ -8154,4 +8161,4 @@ bool CompositeState::IsSamplerIDForY( | ||
41 | return true; | ||
42 | } | ||
43 | return false; | ||
44 | - } | ||
45 | \ No newline at end of file | ||
46 | + } | ||
47 | diff --git a/media_driver/linux/common/vp/ddi/media_libva_vp.c b/media_driver/linux/common/vp/ddi/media_libva_vp.c | ||
48 | index 48a452315..4f0fc2c48 100644 | ||
49 | --- a/media_driver/linux/common/vp/ddi/media_libva_vp.c | ||
50 | +++ b/media_driver/linux/common/vp/ddi/media_libva_vp.c | ||
51 | @@ -1148,7 +1148,7 @@ DdiVp_SetProcPipelineParams( | ||
52 | |||
53 | // Background Colorfill | ||
54 | // According to libva definition, if alpha in output background color is zero, then colorfill is not needed | ||
55 | - if ((pPipelineParam->output_background_color >> 24) != 0 || pVpHalTgtSurf->ColorSpace == CSpace_sRGB) | ||
56 | + if ((pPipelineParam->output_background_color >> 24) != 0) | ||
57 | { | ||
58 | if (pVpHalRenderParams->pColorFillParams == nullptr) | ||
59 | { | ||
60 | @@ -1157,18 +1157,10 @@ DdiVp_SetProcPipelineParams( | ||
61 | |||
62 | DDI_CHK_NULL(pVpHalRenderParams->pColorFillParams, "Null pColorFillParams.", VA_STATUS_ERROR_UNKNOWN); | ||
63 | |||
64 | - if (pVpHalTgtSurf->ColorSpace == CSpace_sRGB && (pPipelineParam->output_background_color >> 24) == 0) | ||
65 | - { | ||
66 | - // set color space for sRGB output | ||
67 | - pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB; | ||
68 | - } | ||
69 | - else | ||
70 | - { | ||
71 | - // set background colorfill option | ||
72 | - pVpHalRenderParams->pColorFillParams->Color = pPipelineParam->output_background_color; | ||
73 | - pVpHalRenderParams->pColorFillParams->bYCbCr = false; | ||
74 | - pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB; | ||
75 | - } | ||
76 | + // set background colorfill option | ||
77 | + pVpHalRenderParams->pColorFillParams->Color = pPipelineParam->output_background_color; | ||
78 | + pVpHalRenderParams->pColorFillParams->bYCbCr = false; | ||
79 | + pVpHalRenderParams->pColorFillParams->CSpace = CSpace_sRGB; | ||
80 | }else | ||
81 | { | ||
82 | MOS_FreeMemAndSetNull(pVpHalRenderParams->pColorFillParams); | ||
83 | -- | ||
84 | 2.43.0 | ||
85 | |||
diff --git a/recipes-multimedia/libva/intel-media-driver/0001-linux-fix-build-when-using-musl.patch b/recipes-multimedia/libva/intel-media-driver/0001-linux-fix-build-when-using-musl.patch deleted file mode 100644 index ea203ca9..00000000 --- a/recipes-multimedia/libva/intel-media-driver/0001-linux-fix-build-when-using-musl.patch +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | From cc96bcbde6556cb412944ddc40f7b6a89fe4ae27 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Fri, 23 Nov 2018 14:22:36 +0800 | ||
4 | Subject: [PATCH] linux: fix build when using musl | ||
5 | |||
6 | Alternative definition for CONCAT which is not defined by musl. | ||
7 | |||
8 | Upstream-Status: Pending | ||
9 | |||
10 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
11 | --- | ||
12 | media_driver/linux/common/os/mos_defs_specific.h | 3 ++- | ||
13 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
14 | |||
15 | diff --git a/media_driver/linux/common/os/mos_defs_specific.h b/media_driver/linux/common/os/mos_defs_specific.h | ||
16 | index 29a8d566..d8244207 100644 | ||
17 | --- a/media_driver/linux/common/os/mos_defs_specific.h | ||
18 | +++ b/media_driver/linux/common/os/mos_defs_specific.h | ||
19 | @@ -81,7 +81,8 @@ typedef struct _TP_CALLBACK_INSTANCE TP_CALLBACK_INSTANCE, *PTP_CALLBACK_INSTANC | ||
20 | /* compile-time ASSERT */ | ||
21 | |||
22 | #ifndef C_ASSERT | ||
23 | - #define __UNIQUENAME( a1, a2 ) __CONCAT( a1, a2 ) | ||
24 | + #define __CONCATING( a1, a2 ) a1 ## a2 | ||
25 | + #define __UNIQUENAME( a1, a2 ) __CONCATING( a1, a2 ) | ||
26 | #define UNIQUENAME( __text ) __UNIQUENAME( __text, __COUNTER__ ) | ||
27 | #define C_ASSERT(e) typedef char UNIQUENAME(STATIC_ASSERT_)[(e)?1:-1] | ||
28 | #endif | ||
diff --git a/recipes-multimedia/libva/intel-media-driver_19.1.0.bb b/recipes-multimedia/libva/intel-media-driver_25.1.4.bb index 18bb2052..b972e230 100644 --- a/recipes-multimedia/libva/intel-media-driver_19.1.0.bb +++ b/recipes-multimedia/libva/intel-media-driver_25.1.4.bb | |||
@@ -11,29 +11,42 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6aab5363823095ce682b155fef0231f0 \ | |||
11 | file://media_driver/media_libvpx.LICENSE;md5=d5b04755015be901744a78cc30d390d4 \ | 11 | file://media_driver/media_libvpx.LICENSE;md5=d5b04755015be901744a78cc30d390d4 \ |
12 | " | 12 | " |
13 | 13 | ||
14 | # Only for 64 bit until this is resolved: https://github.com/intel/media-driver/issues/356 | 14 | COMPATIBLE_HOST = '(i.86|x86_64).*-linux' |
15 | COMPATIBLE_HOST = '(x86_64).*-linux' | 15 | |
16 | inherit features_check | ||
17 | REQUIRED_DISTRO_FEATURES = "opengl" | ||
16 | 18 | ||
17 | DEPENDS += "libva gmmlib" | 19 | DEPENDS += "libva gmmlib" |
18 | 20 | ||
19 | SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;branch=intel-media-19.1 \ | 21 | SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;nobranch=1 \ |
20 | file://0001-linux-fix-build-when-using-musl.patch \ | 22 | file://0003-Force-ARGB-surface-to-tile4-for-ACM.patch \ |
21 | " | 23 | file://0004-Fix-failed-4k-videowalll-test-case-and-color-corrupt.patch \ |
24 | " | ||
22 | 25 | ||
23 | SRCREV = "72d50d2450ee6f642531a5819d317925c7619af9" | 26 | SRCREV = "14e2e7bcf1014186dbf1c099089c7c05cd880ae8" |
24 | S = "${WORKDIR}/git" | 27 | S = "${WORKDIR}/git" |
25 | 28 | ||
29 | COMPATIBLE_HOST:x86-x32 = "null" | ||
30 | |||
26 | UPSTREAM_CHECK_GITTAGREGEX = "^intel-media-(?P<pver>(?!600\..*)\d+(\.\d+)+)$" | 31 | UPSTREAM_CHECK_GITTAGREGEX = "^intel-media-(?P<pver>(?!600\..*)\d+(\.\d+)+)$" |
27 | 32 | ||
28 | inherit cmake pkgconfig | 33 | inherit cmake pkgconfig |
29 | 34 | ||
30 | MEDIA_DRIVER_ARCH_x86 = "32" | 35 | MEDIA_DRIVER_ARCH:x86 = "32" |
31 | MEDIA_DRIVER_ARCH_x86-64 = "64" | 36 | MEDIA_DRIVER_ARCH:x86-64 = "64" |
37 | |||
38 | EXTRA_OECMAKE += " \ | ||
39 | -DMEDIA_RUN_TEST_SUITE=OFF \ | ||
40 | -DARCH=${MEDIA_DRIVER_ARCH} \ | ||
41 | -DMEDIA_BUILD_FATAL_WARNINGS=OFF \ | ||
42 | " | ||
43 | |||
44 | CXXFLAGS:append:x86 = " -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" | ||
32 | 45 | ||
33 | EXTRA_OECMAKE += "-DMEDIA_RUN_TEST_SUITE=OFF -DARCH=${MEDIA_DRIVER_ARCH}" | 46 | do_configure:prepend:toolchain-clang() { |
47 | sed -i -e '/-fno-tree-pre/d' ${S}/media_driver/cmake/linux/media_compile_flags_linux.cmake | ||
48 | } | ||
34 | 49 | ||
35 | # See: https://github.com/intel/media-driver/issues/358 | 50 | FILES:${PN} += " \ |
36 | FILES_${PN} += " \ | ||
37 | ${libdir}/dri/ \ | 51 | ${libdir}/dri/ \ |
38 | ${libdir}/igfxcmrt64.so \ | ||
39 | " | 52 | " |
diff --git a/recipes-multimedia/libva/intel-vaapi-driver_2.3.0.bb b/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb index 6ec1745b..5038d8d7 100644 --- a/recipes-multimedia/libva/intel-vaapi-driver_2.3.0.bb +++ b/recipes-multimedia/libva/intel-vaapi-driver_2.4.1.bb | |||
@@ -13,21 +13,22 @@ COMPATIBLE_HOST = '(i.86|x86_64).*-linux' | |||
13 | 13 | ||
14 | DEPENDS = "libva libdrm" | 14 | DEPENDS = "libva libdrm" |
15 | 15 | ||
16 | SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.bz2" | 16 | SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.bz2 \ |
17 | SRC_URI[md5sum] = "9d835d1a3f7a9ef394f0f4c348cd4b3e" | 17 | " |
18 | SRC_URI[sha256sum] = "5c2e5deab024a0a6ae81dfe77ef455542a88d824eda7bfd07684337407ecdfe3" | 18 | |
19 | SRC_URI[sha256sum] = "0081fce08eb3a83f7d99c3b853c8fdfa0af437b8f5b0fb7c66faeb83bcbe0c19" | ||
19 | 20 | ||
20 | UPSTREAM_CHECK_URI = "https://github.com/intel/intel-vaapi-driver/releases" | 21 | UPSTREAM_CHECK_URI = "https://github.com/intel/intel-vaapi-driver/releases" |
21 | 22 | ||
22 | inherit autotools pkgconfig distro_features_check | 23 | inherit meson pkgconfig features_check |
23 | 24 | ||
24 | REQUIRED_DISTRO_FEATURES = "opengl" | 25 | REQUIRED_DISTRO_FEATURES = "opengl" |
25 | 26 | ||
26 | PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \ | 27 | PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)} \ |
27 | ${@bb.utils.contains("DISTRO_FEATURES", "opengl wayland", "wayland", "", d)}" | 28 | ${@bb.utils.contains("DISTRO_FEATURES", "opengl wayland", "wayland", "", d)}" |
28 | PACKAGECONFIG[x11] = "--enable-x11,--disable-x11" | 29 | PACKAGECONFIG[x11] = "-Dwith_x11=yes, -Dwith_x11=no" |
29 | PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native virtual/egl" | 30 | PACKAGECONFIG[wayland] = "-Dwith_wayland=yes, -Dwith_wayland=no, wayland wayland-native virtual/egl" |
30 | 31 | ||
31 | FILES_${PN} += "${libdir}/dri/*.so" | 32 | FILES:${PN} += "${libdir}/dri/*.so" |
32 | FILES_${PN}-dev += "${libdir}/dri/*.la" | 33 | FILES:${PN}-dev += "${libdir}/dri/*.la" |
33 | FILES_${PN}-dbg += "${libdir}/dri/.debug" | 34 | FILES:${PN}-dbg += "${libdir}/dri/.debug" |
diff --git a/recipes-multimedia/libyami/libyami-utils/0001-Fix-build-with-clang.patch b/recipes-multimedia/libyami/libyami-utils/0001-Fix-build-with-clang.patch deleted file mode 100644 index f7de9d16..00000000 --- a/recipes-multimedia/libyami/libyami-utils/0001-Fix-build-with-clang.patch +++ /dev/null | |||
@@ -1,96 +0,0 @@ | |||
1 | From f2e6d2ecfea635ab952649156e31ca893d4b1a47 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Sat, 12 Aug 2017 08:49:20 -0700 | ||
4 | Subject: [PATCH] Fix build with clang | ||
5 | |||
6 | Fix errors e.g. | ||
7 | error: comparison of constant -1 with expression of type 'char' is always true [-Werror,-Wtautological-constant-out-of-range-compare]error: comparison of constant -1 with expression of type 'char' is always true [-Werror,-Wtautological-constant-out-of-range-compare] | ||
8 | |||
9 | and | ||
10 | |||
11 | psnr.cpp:225:17: error: bool literal returned from 'main' [-Werror,-Wmain] | ||
12 | |||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
14 | Upstream-Status: Pending | ||
15 | |||
16 | --- | ||
17 | tests/decodehelp.cpp | 2 +- | ||
18 | tests/encodehelp.h | 2 +- | ||
19 | tests/vpp.cpp | 2 +- | ||
20 | tests/yamitranscode.cpp | 2 +- | ||
21 | testscripts/psnr.cpp | 4 ++-- | ||
22 | 5 files changed, 6 insertions(+), 6 deletions(-) | ||
23 | |||
24 | diff --git a/tests/decodehelp.cpp b/tests/decodehelp.cpp | ||
25 | index b27b977..62cca63 100644 | ||
26 | --- a/tests/decodehelp.cpp | ||
27 | +++ b/tests/decodehelp.cpp | ||
28 | @@ -81,7 +81,7 @@ bool processCmdLine(int argc, char** argv, DecodeParameter* parameters) | ||
29 | { NULL, no_argument, NULL, 0 } | ||
30 | }; | ||
31 | |||
32 | - char opt; | ||
33 | + int opt; | ||
34 | while ((opt = getopt_long_only(argc, argv, "h:m:n:i:f:o:w:?", long_opts,&option_index)) != -1){ | ||
35 | switch (opt) { | ||
36 | case 'h': | ||
37 | diff --git a/tests/encodehelp.h b/tests/encodehelp.h | ||
38 | index 63580a4..651ec08 100644 | ||
39 | --- a/tests/encodehelp.h | ||
40 | +++ b/tests/encodehelp.h | ||
41 | @@ -109,7 +109,7 @@ static VideoRateControl string_to_rc_mode(char *str) | ||
42 | |||
43 | static bool process_cmdline(int argc, char *argv[]) | ||
44 | { | ||
45 | - char opt; | ||
46 | + int opt; | ||
47 | const struct option long_opts[] = { | ||
48 | { "help", no_argument, NULL, 'h' }, | ||
49 | { "qp", required_argument, NULL, 0 }, | ||
50 | diff --git a/tests/vpp.cpp b/tests/vpp.cpp | ||
51 | index 5a60c0a..52da43b 100644 | ||
52 | --- a/tests/vpp.cpp | ||
53 | +++ b/tests/vpp.cpp | ||
54 | @@ -151,7 +151,7 @@ public: | ||
55 | private: | ||
56 | bool processCmdLine(int argc, char* argv[]) | ||
57 | { | ||
58 | - char opt; | ||
59 | + int opt; | ||
60 | const struct option long_opts[] = { | ||
61 | { "help", no_argument, NULL, 'h' }, | ||
62 | { "sharpening", required_argument, NULL, 's' }, | ||
63 | diff --git a/tests/yamitranscode.cpp b/tests/yamitranscode.cpp | ||
64 | index 6207209..00164ce 100755 | ||
65 | --- a/tests/yamitranscode.cpp | ||
66 | +++ b/tests/yamitranscode.cpp | ||
67 | @@ -100,7 +100,7 @@ static VideoRateControl string_to_rc_mode(char *str) | ||
68 | |||
69 | static bool processCmdLine(int argc, char *argv[], TranscodeParams& para) | ||
70 | { | ||
71 | - char opt; | ||
72 | + int opt; | ||
73 | const struct option long_opts[] = { | ||
74 | { "help", no_argument, NULL, 'h' }, | ||
75 | { "qp", required_argument, NULL, 0 }, | ||
76 | diff --git a/testscripts/psnr.cpp b/testscripts/psnr.cpp | ||
77 | index 5cc24c9..68bd668 100644 | ||
78 | --- a/testscripts/psnr.cpp | ||
79 | +++ b/testscripts/psnr.cpp | ||
80 | @@ -215,14 +215,14 @@ int main(int argc, char *argv[]) | ||
81 | const char* psnrresult = "average_psnr.txt"; | ||
82 | int width=0,height=0; | ||
83 | int standardpsnr = NORMAL_PSNR; | ||
84 | - char opt; | ||
85 | + int opt; | ||
86 | while ((opt = getopt(argc, argv, "h:W:H:i:o:s:?")) != -1) | ||
87 | { | ||
88 | switch (opt) { | ||
89 | case 'h': | ||
90 | case '?': | ||
91 | print_help(argv[0]); | ||
92 | - return false; | ||
93 | + return -1; | ||
94 | case 'i': | ||
95 | filename1 = optarg; | ||
96 | break; | ||
diff --git a/recipes-multimedia/libyami/libyami-utils_1.3.1.bb b/recipes-multimedia/libyami/libyami-utils_1.3.1.bb deleted file mode 100644 index ab1b83aa..00000000 --- a/recipes-multimedia/libyami/libyami-utils_1.3.1.bb +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | SUMMARY = "Applications and Scripts for libyami." | ||
2 | DESCRIPTION = "Applications and Scripts for libyami." | ||
3 | |||
4 | HOMEPAGE = "https://github.com/intel/libyami-utils" | ||
5 | BUGTRACKER = "https://github.com/intel/libyami-utils/issues/new" | ||
6 | |||
7 | LICENSE = "Apache-2.0" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" | ||
9 | |||
10 | SRC_URI = "git://github.com/intel/libyami-utils.git \ | ||
11 | file://0001-Fix-build-with-clang.patch \ | ||
12 | " | ||
13 | SRCREV = "7e801b5cc3066b176c2dccffda0af8d762184650" | ||
14 | S = "${WORKDIR}/git" | ||
15 | |||
16 | DEPENDS = "libva libyami" | ||
17 | |||
18 | inherit autotools pkgconfig distro_features_check | ||
19 | |||
20 | REQUIRED_DISTRO_FEATURES = "opengl" | ||
21 | |||
22 | PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" | ||
23 | |||
24 | # --enable-x11 needs libva-x11 | ||
25 | # gles-tests fail to build without x11: see https://github.com/intel/libyami-utils/issues/91 | ||
26 | PACKAGECONFIG[x11] = "--enable-x11 --enable-egl,--disable-x11 --disable-egl, virtual/libx11" | ||
diff --git a/recipes-multimedia/libyami/libyami/0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch b/recipes-multimedia/libyami/libyami/0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch deleted file mode 100644 index a96c9b85..00000000 --- a/recipes-multimedia/libyami/libyami/0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | From 294874b610a5b8af9b736b3afc938010af58785e Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 17:15:45 -0700 | ||
4 | Subject: [PATCH 1/9] bitWriter.cpp: Delete unused CACHEBYTES | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | --- | ||
8 | Upstream-Status: Pending | ||
9 | |||
10 | codecparsers/bitWriter.cpp | 1 - | ||
11 | 1 file changed, 1 deletion(-) | ||
12 | |||
13 | diff --git a/codecparsers/bitWriter.cpp b/codecparsers/bitWriter.cpp | ||
14 | index 9bcb14d..08469bf 100644 | ||
15 | --- a/codecparsers/bitWriter.cpp | ||
16 | +++ b/codecparsers/bitWriter.cpp | ||
17 | @@ -24,7 +24,6 @@ | ||
18 | |||
19 | namespace YamiParser { | ||
20 | |||
21 | -const uint32_t CACHEBYTES = sizeof(unsigned long int); | ||
22 | const uint32_t CACHEBITS = sizeof(unsigned long int) * 8; | ||
23 | |||
24 | // clip to keep lowest n bits | ||
25 | -- | ||
26 | 2.14.1 | ||
27 | |||
diff --git a/recipes-multimedia/libyami/libyami/0002-typecast-index-from-size_t-to-int.patch b/recipes-multimedia/libyami/libyami/0002-typecast-index-from-size_t-to-int.patch deleted file mode 100644 index a216566c..00000000 --- a/recipes-multimedia/libyami/libyami/0002-typecast-index-from-size_t-to-int.patch +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | From 88fa048e22ad00b04054b8a64df53bd440e01537 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 17:29:02 -0700 | ||
4 | Subject: [PATCH 2/9] typecast index from size_t to int | ||
5 | |||
6 | size_t is not consistent across architectures e.g. on arm its unsigned int | ||
7 | |||
8 | Fixes | ||
9 | error: comparison of unsigned expression < 0 is always false [-Werror,-Wtautological-compare] | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | --- | ||
13 | Upstream-Status: Pending | ||
14 | |||
15 | codecparsers/jpegParser.cpp | 4 ++-- | ||
16 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
17 | |||
18 | diff --git a/codecparsers/jpegParser.cpp b/codecparsers/jpegParser.cpp | ||
19 | index 2217028..6da5c36 100644 | ||
20 | --- a/codecparsers/jpegParser.cpp | ||
21 | +++ b/codecparsers/jpegParser.cpp | ||
22 | @@ -639,7 +639,7 @@ bool Parser::parseDAC() | ||
23 | |||
24 | length -= 2; | ||
25 | |||
26 | - if (index < 0 || index >= (2 * NUM_ARITH_TBLS)) { | ||
27 | + if ((int)index < 0 || index >= (2 * NUM_ARITH_TBLS)) { | ||
28 | ERROR("Invalid DAC Index"); | ||
29 | return false; | ||
30 | } | ||
31 | @@ -747,7 +747,7 @@ bool Parser::parseDHT() | ||
32 | huffTables = &m_dcHuffTables; | ||
33 | } | ||
34 | |||
35 | - if (index < 0 || index >= NUM_HUFF_TBLS) { | ||
36 | + if ((int)index < 0 || index >= NUM_HUFF_TBLS) { | ||
37 | ERROR("Bad Huff Table Index"); | ||
38 | return false; | ||
39 | } | ||
40 | -- | ||
41 | 2.14.1 | ||
42 | |||
diff --git a/recipes-multimedia/libyami/libyami/0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch b/recipes-multimedia/libyami/libyami/0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch deleted file mode 100644 index 17289602..00000000 --- a/recipes-multimedia/libyami/libyami/0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch +++ /dev/null | |||
@@ -1,29 +0,0 @@ | |||
1 | From 533d63287e9dd8f269b137c18fbe6c19206c8668 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 17:49:43 -0700 | ||
4 | Subject: [PATCH 3/9] Add -Wno-invalid-offsetof to compiler commandline | ||
5 | |||
6 | clang++ is fussy about offsetof on non-POD types | ||
7 | |||
8 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
9 | --- | ||
10 | Upstream-Status: Pending | ||
11 | |||
12 | codecparsers/Makefile.am | 1 + | ||
13 | 1 file changed, 1 insertion(+) | ||
14 | |||
15 | diff --git a/codecparsers/Makefile.am b/codecparsers/Makefile.am | ||
16 | index 720bf81..d9226b3 100644 | ||
17 | --- a/codecparsers/Makefile.am | ||
18 | +++ b/codecparsers/Makefile.am | ||
19 | @@ -118,6 +118,7 @@ libyami_codecparser_cppflags = \ | ||
20 | -Dvp8dx_start_decode=libyami_vp8dx_start_decode \ | ||
21 | -Dvp8dx_bool_decoder_fill=libyami_vp8dx_bool_decoder_fill \ | ||
22 | -I$(top_srcdir)/interface \ | ||
23 | + -Wno-invalid-offsetof \ | ||
24 | $(extra_includes) \ | ||
25 | $(NULL) | ||
26 | |||
27 | -- | ||
28 | 2.14.1 | ||
29 | |||
diff --git a/recipes-multimedia/libyami/libyami/0004-Typecast-POWER32SUB2-to-uint8_t.patch b/recipes-multimedia/libyami/libyami/0004-Typecast-POWER32SUB2-to-uint8_t.patch deleted file mode 100644 index 27eca39b..00000000 --- a/recipes-multimedia/libyami/libyami/0004-Typecast-POWER32SUB2-to-uint8_t.patch +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | From d9c831ee38da4551396fad5cd53c3dfc0e5e0cf8 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 17:57:34 -0700 | ||
4 | Subject: [PATCH 4/9] Typecast POWER32SUB2 to uint8_t | ||
5 | |||
6 | Fixes | ||
7 | |||
8 | h265Parser.cpp:1064:5: error: comparison of constant 4294967294 with expression | ||
9 | of type 'uint8_t' (aka 'unsigned char') is always false [-Werror,-Wtautological-constant-out-of-range-compare] | ||
10 | |||
11 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
12 | --- | ||
13 | Upstream-Status: Pending | ||
14 | |||
15 | codecparsers/h265Parser.cpp | 2 +- | ||
16 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
17 | |||
18 | diff --git a/codecparsers/h265Parser.cpp b/codecparsers/h265Parser.cpp | ||
19 | index 0dea3a6..c6cded2 100644 | ||
20 | --- a/codecparsers/h265Parser.cpp | ||
21 | +++ b/codecparsers/h265Parser.cpp | ||
22 | @@ -125,7 +125,7 @@ namespace H265 { | ||
23 | \ | ||
24 | CHECK_READ_UE(var->var##_max_num_reorder_pics[i], 0, var->var##_max_dec_pic_buffering_minus1[i]); \ | ||
25 | \ | ||
26 | - CHECK_READ_UE(var->var##_max_latency_increase_plus1[i], 0, POWER32SUB2); \ | ||
27 | + CHECK_READ_UE(var->var##_max_latency_increase_plus1[i], 0, (uint8_t)POWER32SUB2); \ | ||
28 | } \ | ||
29 | } | ||
30 | |||
31 | -- | ||
32 | 2.14.1 | ||
33 | |||
diff --git a/recipes-multimedia/libyami/libyami/0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch b/recipes-multimedia/libyami/libyami/0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch deleted file mode 100644 index c9c74520..00000000 --- a/recipes-multimedia/libyami/libyami/0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | From 27b61f5ab1b1643436f56517e4980734b4b9acca Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 18:38:05 -0700 | ||
4 | Subject: [PATCH 6/9] Avoid namespace conflicts by adding explicit using | ||
5 | <namespace> | ||
6 | |||
7 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
8 | --- | ||
9 | Upstream-Status: Pending | ||
10 | |||
11 | decoder/vaapidecoder_h264.h | 1 + | ||
12 | decoder/vaapidecoder_h265.h | 1 + | ||
13 | 2 files changed, 2 insertions(+) | ||
14 | |||
15 | diff --git a/decoder/vaapidecoder_h264.h b/decoder/vaapidecoder_h264.h | ||
16 | index 57e2c27..ea5c2f2 100644 | ||
17 | --- a/decoder/vaapidecoder_h264.h | ||
18 | +++ b/decoder/vaapidecoder_h264.h | ||
19 | @@ -30,6 +30,7 @@ namespace YamiMediaCodec { | ||
20 | |||
21 | class VaapiDecPictureH264; | ||
22 | class VaapiDecoderH264 : public VaapiDecoderBase { | ||
23 | +using YamiMediaCodec::VaapiDecoderBase::createPicture; | ||
24 | public: | ||
25 | typedef SharedPtr<VaapiDecPictureH264> PicturePtr; | ||
26 | typedef std::vector<PicturePtr> RefSet; | ||
27 | diff --git a/decoder/vaapidecoder_h265.h b/decoder/vaapidecoder_h265.h | ||
28 | index f7e2303..159e25f 100644 | ||
29 | --- a/decoder/vaapidecoder_h265.h | ||
30 | +++ b/decoder/vaapidecoder_h265.h | ||
31 | @@ -38,6 +38,7 @@ namespace YamiMediaCodec { | ||
32 | |||
33 | class VaapiDecPictureH265; | ||
34 | class VaapiDecoderH265:public VaapiDecoderBase { | ||
35 | + using YamiMediaCodec::VaapiDecoderBase::createPicture; | ||
36 | typedef YamiParser::H265::SPS SPS; | ||
37 | typedef YamiParser::H265::SliceHeader SliceHeader; | ||
38 | typedef YamiParser::H265::NalUnit NalUnit; | ||
39 | -- | ||
40 | 2.14.1 | ||
41 | |||
diff --git a/recipes-multimedia/libyami/libyami/0007-Delete-unused-variables.patch b/recipes-multimedia/libyami/libyami/0007-Delete-unused-variables.patch deleted file mode 100644 index b80774c9..00000000 --- a/recipes-multimedia/libyami/libyami/0007-Delete-unused-variables.patch +++ /dev/null | |||
@@ -1,36 +0,0 @@ | |||
1 | From b982997c96e11b9c0b3cd58a31af2d0a219713a3 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 18:39:58 -0700 | ||
4 | Subject: [PATCH 7/9] Delete unused variables | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | --- | ||
8 | Upstream-Status: Pending | ||
9 | |||
10 | decoder/vaapidecoder_vp8.cpp | 8 ++++---- | ||
11 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
12 | |||
13 | diff --git a/decoder/vaapidecoder_vp8.cpp b/decoder/vaapidecoder_vp8.cpp | ||
14 | index 5fc89ec..ff5b896 100644 | ||
15 | --- a/decoder/vaapidecoder_vp8.cpp | ||
16 | +++ b/decoder/vaapidecoder_vp8.cpp | ||
17 | @@ -32,12 +32,12 @@ typedef VaapiDecoderVP8::PicturePtr PicturePtr; | ||
18 | |||
19 | // the following parameter apply to Intra-Predicted Macroblocks, | ||
20 | // $11.2 $11.4: key frame default probs | ||
21 | -static const uint8_t keyFrameYModeProbs[4] = { 145, 156, 163, 128 }; | ||
22 | -static const uint8_t keyFrameUVModeProbs[3] = { 142, 114, 183 }; | ||
23 | +//static const uint8_t keyFrameYModeProbs[4] = { 145, 156, 163, 128 }; | ||
24 | +//static const uint8_t keyFrameUVModeProbs[3] = { 142, 114, 183 }; | ||
25 | |||
26 | // $16.1: non-key frame default probs | ||
27 | -static const uint8_t nonKeyFrameDefaultYModeProbs[4] = { 112, 86, 140, 37 }; | ||
28 | -static const uint8_t nonKeyFrameDefaultUVModeProbs[3] = { 162, 101, 204 }; | ||
29 | +//static const uint8_t nonKeyFrameDefaultYModeProbs[4] = { 112, 86, 140, 37 }; | ||
30 | +//static const uint8_t nonKeyFrameDefaultUVModeProbs[3] = { 162, 101, 204 }; | ||
31 | |||
32 | static const uint32_t surfaceNumVP8 = 3; | ||
33 | |||
34 | -- | ||
35 | 2.14.1 | ||
36 | |||
diff --git a/recipes-multimedia/libyami/libyami/0008-NalUnit-is-declared-in-different-namespace.patch b/recipes-multimedia/libyami/libyami/0008-NalUnit-is-declared-in-different-namespace.patch deleted file mode 100644 index 18b98be8..00000000 --- a/recipes-multimedia/libyami/libyami/0008-NalUnit-is-declared-in-different-namespace.patch +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | From c54130511c91e457f1c5bb47729f5e3a0fc0cb91 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 18:42:28 -0700 | ||
4 | Subject: [PATCH 8/9] NalUnit is declared in different namespace | ||
5 | |||
6 | Fixes | ||
7 | vaapidecoder_h265.h:32:5: error: struct 'NalUnit' was previously declared as a class [-Werror,-Wmismatched-tags] struct NalUnit; | ||
8 | |||
9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
10 | --- | ||
11 | Upstream-Status: Pending | ||
12 | |||
13 | decoder/vaapidecoder_h265.h | 2 +- | ||
14 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
15 | |||
16 | diff --git a/decoder/vaapidecoder_h265.h b/decoder/vaapidecoder_h265.h | ||
17 | index 159e25f..674638f 100644 | ||
18 | --- a/decoder/vaapidecoder_h265.h | ||
19 | +++ b/decoder/vaapidecoder_h265.h | ||
20 | @@ -29,7 +29,7 @@ namespace YamiParser { | ||
21 | namespace H265 { | ||
22 | struct SPS; | ||
23 | struct SliceHeader; | ||
24 | - struct NalUnit; | ||
25 | + class NalUnit; | ||
26 | class Parser; | ||
27 | }; | ||
28 | }; | ||
29 | -- | ||
30 | 2.14.1 | ||
31 | |||
diff --git a/recipes-multimedia/libyami/libyami/0009-Fix-clang-warnings.patch b/recipes-multimedia/libyami/libyami/0009-Fix-clang-warnings.patch deleted file mode 100644 index 08ef455b..00000000 --- a/recipes-multimedia/libyami/libyami/0009-Fix-clang-warnings.patch +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | From a54dc7b6a777882f55a3f31bd97748a261db03d2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Khem Raj <raj.khem@gmail.com> | ||
3 | Date: Fri, 11 Aug 2017 18:53:06 -0700 | ||
4 | Subject: [PATCH 9/9] Fix clang warnings | ||
5 | |||
6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
7 | --- | ||
8 | Upstream-Status: Pending | ||
9 | |||
10 | encoder/vaapiencoder_h264.cpp | 4 ++-- | ||
11 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
12 | |||
13 | diff --git a/encoder/vaapiencoder_h264.cpp b/encoder/vaapiencoder_h264.cpp | ||
14 | index 98bc2ed..94015cb 100644 | ||
15 | --- a/encoder/vaapiencoder_h264.cpp | ||
16 | +++ b/encoder/vaapiencoder_h264.cpp | ||
17 | @@ -509,7 +509,7 @@ bit_writer_write_sps(BitWriter* bitwriter, | ||
18 | } | ||
19 | /* vcl_hrd_parameters_present_flag */ | ||
20 | bitwriter->writeBits(0, 1); | ||
21 | - if (nal_hrd_parameters_present_flag || 0/*vcl_hrd_parameters_present_flag*/) { | ||
22 | + if (nal_hrd_parameters_present_flag || !!(0)/*vcl_hrd_parameters_present_flag*/) { | ||
23 | /* low_delay_hrd_flag */ | ||
24 | bitwriter->writeBits(0, 1); | ||
25 | } | ||
26 | @@ -1889,7 +1889,7 @@ bool VaapiEncoderH264::addSliceHeaders (const PicturePtr& picture) const | ||
27 | sliceParam->num_macroblocks = curSliceMbs; | ||
28 | sliceParam->macroblock_info = VA_INVALID_ID; | ||
29 | sliceParam->slice_type = h264_get_slice_type (picture->m_type); | ||
30 | - assert (sliceParam->slice_type != -1); | ||
31 | + assert ((int)sliceParam->slice_type != -1); | ||
32 | sliceParam->idr_pic_id = m_idrNum; | ||
33 | sliceParam->pic_order_cnt_lsb = picture->m_poc % m_maxPicOrderCnt; | ||
34 | |||
35 | -- | ||
36 | 2.14.1 | ||
37 | |||
diff --git a/recipes-multimedia/libyami/libyami/0010-h26xparser-Fix-build-error-with-GCC9.patch b/recipes-multimedia/libyami/libyami/0010-h26xparser-Fix-build-error-with-GCC9.patch deleted file mode 100644 index be69ab71..00000000 --- a/recipes-multimedia/libyami/libyami/0010-h26xparser-Fix-build-error-with-GCC9.patch +++ /dev/null | |||
@@ -1,157 +0,0 @@ | |||
1 | From fdb8185749098eaf55050c4ec5c0f21c5be1e326 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Tue, 4 Jun 2019 16:53:16 +0800 | ||
4 | Subject: [PATCH] h26xparser: Fix build error with GCC9 | ||
5 | |||
6 | GCC9 causing build failure: | ||
7 | |||
8 | | ../../git/codecparsers/h264Parser.cpp: In constructor 'YamiParser::H264::PPS::PPS()': | ||
9 | | ../../git/codecparsers/h264Parser.cpp:140:41: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H264::PPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] | ||
10 | | 140 | memset(this, 0, offsetof(PPS, m_sps)); | ||
11 | | | ^ | ||
12 | | In file included from ../../git/codecparsers/h264Parser.cpp:21: | ||
13 | | ../../git/codecparsers/h264Parser.h:292:8: note: 'struct YamiParser::H264::PPS' declared here | ||
14 | | 292 | struct PPS { | ||
15 | | | ^~~ | ||
16 | | ../../git/codecparsers/h264Parser.cpp: In constructor 'YamiParser::H264::SliceHeader::SliceHeader()': | ||
17 | | ../../git/codecparsers/h264Parser.cpp:686:49: error: 'void* memset(void*, int, size_t)' clearing an object of type 'class YamiParser::H264::SliceHeader' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] | ||
18 | | 686 | memset(this, 0, offsetof(SliceHeader, m_pps)); | ||
19 | | | ^ | ||
20 | | In file included from ../../git/codecparsers/h264Parser.cpp:21: | ||
21 | | ../../git/codecparsers/h264Parser.h:371:7: note: 'class YamiParser::H264::SliceHeader' declared here | ||
22 | | 371 | class SliceHeader { | ||
23 | | | ^~~~~~~~~~~ | ||
24 | | ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::VPS::VPS()': | ||
25 | | ../../git/codecparsers/h265Parser.cpp:165:53: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::VPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] | ||
26 | | 165 | memset(this, 0, offsetof(VPS, hrd_layer_set_idx)); | ||
27 | | | ^ | ||
28 | | In file included from ../../git/codecparsers/h265Parser.cpp:21: | ||
29 | | ../../git/codecparsers/h265Parser.h:256:12: note: 'struct YamiParser::H265::VPS' declared here | ||
30 | | 256 | struct VPS { | ||
31 | | | ^~~ | ||
32 | | ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::SPS::SPS()': | ||
33 | | ../../git/codecparsers/h265Parser.cpp:174:39: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::SPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] | ||
34 | | 174 | memset(this, 0, offsetof(SPS, vps)); | ||
35 | | | ^ | ||
36 | | In file included from ../../git/codecparsers/h265Parser.cpp:21: | ||
37 | | ../../git/codecparsers/h265Parser.h:290:12: note: 'struct YamiParser::H265::SPS' declared here | ||
38 | | 290 | struct SPS { | ||
39 | | | ^~~ | ||
40 | | ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::PPS::PPS()': | ||
41 | | ../../git/codecparsers/h265Parser.cpp:179:39: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::PPS' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] | ||
42 | | 179 | memset(this, 0, offsetof(PPS, sps)); | ||
43 | | | ^ | ||
44 | | In file included from ../../git/codecparsers/h265Parser.cpp:21: | ||
45 | | ../../git/codecparsers/h265Parser.h:362:12: note: 'struct YamiParser::H265::PPS' declared here | ||
46 | | 362 | struct PPS { | ||
47 | | | ^~~ | ||
48 | | ../../git/codecparsers/h265Parser.cpp: In constructor 'YamiParser::H265::SliceHeader::SliceHeader()': | ||
49 | | ../../git/codecparsers/h265Parser.cpp:184:47: error: 'void* memset(void*, int, size_t)' clearing an object of type 'struct YamiParser::H265::SliceHeader' with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess] | ||
50 | | 184 | memset(this, 0, offsetof(SliceHeader, pps)); | ||
51 | | | ^ | ||
52 | | In file included from ../../git/codecparsers/h265Parser.cpp:21: | ||
53 | | ../../git/codecparsers/h265Parser.h:499:12: note: 'struct YamiParser::H265::SliceHeader' declared here | ||
54 | | 499 | struct SliceHeader { | ||
55 | | | ^~~~~~~~~~~ | ||
56 | | ../../git/codecparsers/mpeg2_parser.cpp: In constructor 'YamiParser::MPEG2::SeqHeader::SeqHeader()': | ||
57 | | ../../git/codecparsers/mpeg2_parser.cpp:163:59: error: 'void* memset(void*, int, size_t)' clearing an object of non-trivial type 'struct YamiParser::MPEG2::SeqHeader'; use assignment or value-initialization instead [-Werror=class-memaccess] | ||
58 | | 163 | SeqHeader::SeqHeader() { memset(this, 0, sizeof(*this)); } | ||
59 | | | ^ | ||
60 | | In file included from ../../git/codecparsers/mpeg2_parser.cpp:34: | ||
61 | | ../../git/codecparsers/mpeg2_parser.h:153:12: note: 'struct YamiParser::MPEG2::SeqHeader' declared here | ||
62 | | 153 | struct SeqHeader { | ||
63 | | | ^~~~~~~~~ | ||
64 | | cc1plus: all warnings being treated as errors | ||
65 | |||
66 | By typecasting structure pointer to void pointer, GCC9 does normal memset operation where offsetof() give correct | ||
67 | number of bytes to set. | ||
68 | |||
69 | Status: Submitted [https://github.com/intel/libyami/pull/876] | ||
70 | |||
71 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
72 | --- | ||
73 | codecparsers/h264Parser.cpp | 4 ++-- | ||
74 | codecparsers/h265Parser.cpp | 8 ++++---- | ||
75 | codecparsers/mpeg2_parser.cpp | 3 ++- | ||
76 | 3 files changed, 8 insertions(+), 7 deletions(-) | ||
77 | |||
78 | diff --git a/codecparsers/h264Parser.cpp b/codecparsers/h264Parser.cpp | ||
79 | index 22117a1..6f7959e 100644 | ||
80 | --- a/codecparsers/h264Parser.cpp | ||
81 | +++ b/codecparsers/h264Parser.cpp | ||
82 | @@ -137,7 +137,7 @@ static bool scalingList(NalReader& br, uint8_t* sl, uint32_t size, uint32_t inde | ||
83 | |||
84 | PPS::PPS() | ||
85 | { | ||
86 | - memset(this, 0, offsetof(PPS, m_sps)); | ||
87 | + memset((void*)this, 0, offsetof(PPS, m_sps)); | ||
88 | } | ||
89 | |||
90 | PPS::~PPS() | ||
91 | @@ -683,7 +683,7 @@ Parser::searchSps(uint8_t id) const | ||
92 | |||
93 | SliceHeader::SliceHeader() | ||
94 | { | ||
95 | - memset(this, 0, offsetof(SliceHeader, m_pps)); | ||
96 | + memset((void*)this, 0, offsetof(SliceHeader, m_pps)); | ||
97 | } | ||
98 | |||
99 | bool SliceHeader::refPicListModification(NalReader& br, RefPicListModification* pm0, | ||
100 | diff --git a/codecparsers/h265Parser.cpp b/codecparsers/h265Parser.cpp | ||
101 | index 0dea3a6..d7e6740 100644 | ||
102 | --- a/codecparsers/h265Parser.cpp | ||
103 | +++ b/codecparsers/h265Parser.cpp | ||
104 | @@ -162,7 +162,7 @@ static const uint8_t DefaultScalingList2[64] = { | ||
105 | |||
106 | VPS::VPS() | ||
107 | { | ||
108 | - memset(this, 0, offsetof(VPS, hrd_layer_set_idx)); | ||
109 | + memset((void*)this, 0, offsetof(VPS, hrd_layer_set_idx)); | ||
110 | } | ||
111 | |||
112 | VPS::~VPS() | ||
113 | @@ -171,17 +171,17 @@ VPS::~VPS() | ||
114 | |||
115 | SPS::SPS() | ||
116 | { | ||
117 | - memset(this, 0, offsetof(SPS, vps)); | ||
118 | + memset((void*)this, 0, offsetof(SPS, vps)); | ||
119 | } | ||
120 | |||
121 | PPS::PPS() | ||
122 | { | ||
123 | - memset(this, 0, offsetof(PPS, sps)); | ||
124 | + memset((void*)this, 0, offsetof(PPS, sps)); | ||
125 | } | ||
126 | |||
127 | SliceHeader::SliceHeader() | ||
128 | { | ||
129 | - memset(this, 0, offsetof(SliceHeader, pps)); | ||
130 | + memset((void*)this, 0, offsetof(SliceHeader, pps)); | ||
131 | } | ||
132 | |||
133 | SliceHeader::~SliceHeader() | ||
134 | diff --git a/codecparsers/mpeg2_parser.cpp b/codecparsers/mpeg2_parser.cpp | ||
135 | index 21032b1..173da39 100644 | ||
136 | --- a/codecparsers/mpeg2_parser.cpp | ||
137 | +++ b/codecparsers/mpeg2_parser.cpp | ||
138 | @@ -33,6 +33,7 @@ | ||
139 | #include "common/log.h" | ||
140 | #include "mpeg2_parser.h" | ||
141 | #include <inttypes.h> | ||
142 | +#include <cstddef> | ||
143 | |||
144 | namespace YamiParser { | ||
145 | namespace MPEG2 { | ||
146 | @@ -160,7 +161,7 @@ namespace MPEG2 { | ||
147 | |||
148 | SeqExtension::SeqExtension() { memset(this, 0, sizeof(*this)); } | ||
149 | |||
150 | - SeqHeader::SeqHeader() { memset(this, 0, sizeof(*this)); } | ||
151 | + SeqHeader::SeqHeader() { memset((void*)this, 0, offsetof(SeqHeader, quantizationMatrices)); } | ||
152 | |||
153 | StreamHeader::StreamHeader() { memset(this, 0, sizeof(*this)); } | ||
154 | |||
155 | -- | ||
156 | 2.17.0 | ||
157 | |||
diff --git a/recipes-multimedia/libyami/libyami_1.3.1.bb b/recipes-multimedia/libyami/libyami_1.3.1.bb deleted file mode 100644 index 83845935..00000000 --- a/recipes-multimedia/libyami/libyami_1.3.1.bb +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | SUMMARY = "Yami is media infrastructure base on libva" | ||
2 | DESCRIPTION = "Yet Another Media Infrastructure \ | ||
3 | light weight hardware codec library base on VA-API " | ||
4 | |||
5 | HOMEPAGE = "https://github.com/intel/libyami" | ||
6 | BUGTRACKER = "https://github.com/intel/libyami/issues/new" | ||
7 | |||
8 | LICENSE = "Apache-2.0" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3b83ef96387f14655fc854ddc3c6bd57" | ||
10 | |||
11 | SRC_URI = "git://github.com/intel/libyami.git;branch=apache \ | ||
12 | file://0001-bitWriter.cpp-Delete-unused-CACHEBYTES.patch \ | ||
13 | file://0002-typecast-index-from-size_t-to-int.patch \ | ||
14 | file://0003-Add-Wno-invalid-offsetof-to-compiler-commandline.patch \ | ||
15 | file://0004-Typecast-POWER32SUB2-to-uint8_t.patch \ | ||
16 | file://0006-Avoid-namespace-conflicts-by-adding-explicit-using-n.patch \ | ||
17 | file://0007-Delete-unused-variables.patch \ | ||
18 | file://0008-NalUnit-is-declared-in-different-namespace.patch \ | ||
19 | file://0009-Fix-clang-warnings.patch \ | ||
20 | file://0010-h26xparser-Fix-build-error-with-GCC9.patch \ | ||
21 | " | ||
22 | SRCREV = "fb48083de91f837ddbf599dd4b5ad1eb1239e1cf" | ||
23 | S = "${WORKDIR}/git" | ||
24 | |||
25 | PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "x11", "", d)}" | ||
26 | PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxrandr libxrender" | ||
27 | |||
28 | DEPENDS = "libva" | ||
29 | inherit autotools pkgconfig distro_features_check | ||
30 | |||
31 | REQUIRED_DISTRO_FEATURES = "opengl" | ||
diff --git a/recipes-multimedia/mediasdk/intel-mediasdk_19.1.0.bb b/recipes-multimedia/mediasdk/intel-mediasdk_19.1.0.bb deleted file mode 100644 index 7dd4da63..00000000 --- a/recipes-multimedia/mediasdk/intel-mediasdk_19.1.0.bb +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
1 | SUMMARY = "Intel(R) Media SDK for hardware accelerated media processing" | ||
2 | DESCRIPTION = "Intel(R) Media SDK provides an API to access hardware-accelerated \ | ||
3 | video decode, encode and filtering on Intel® platforms with integrated graphics." | ||
4 | |||
5 | HOMEPAGE = "https://github.com/Intel-Media-SDK/MediaSDK" | ||
6 | BUGTRACKER = "https://github.com/Intel-Media-SDK/MediaSDK/issues" | ||
7 | |||
8 | LICENSE = "MIT" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE;md5=3cb331af679cd8f968bf799a9c55b46e" | ||
10 | |||
11 | # Only for 64 bit until media-driver issues aren't fixed | ||
12 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
13 | |||
14 | DEPENDS += "libdrm libva intel-media-driver" | ||
15 | |||
16 | PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "dri3", "", d)} \ | ||
17 | ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)}" | ||
18 | |||
19 | PACKAGECONFIG[dri3] = "-DENABLE_X11_DRI3=ON, -DENABLE_X11_DRI3=OFF" | ||
20 | PACKAGECONFIG[wayland] = "-DENABLE_WAYLAND=ON, -DENABLE_WAYLAND=OFF, wayland wayland-native" | ||
21 | |||
22 | SRC_URI = " \ | ||
23 | git://github.com/Intel-Media-SDK/MediaSDK.git;protocol=https;branch=${BPN}-19.1 \ | ||
24 | " | ||
25 | |||
26 | SRCREV = "428b07dabe13b991ba20cf796c91f897a8d1b972" | ||
27 | S = "${WORKDIR}/git" | ||
28 | |||
29 | UPSTREAM_CHECK_GITTAGREGEX = "^intel-mediasdk-(?P<pver>(\d+(\.\d+)+))$" | ||
30 | |||
31 | inherit cmake pkgconfig | ||
32 | |||
33 | EXTRA_OECMAKE += "-DMFX_INCLUDE=${S}/api/include -DBUILD_SAMPLES=OFF" | ||
34 | |||
35 | FILES_${PN} += " \ | ||
36 | ${libdir}/mfx \ | ||
37 | ${datadir}/mfx/plugins.cfg \ | ||
38 | " | ||
diff --git a/recipes-multimedia/vpl/files/0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch b/recipes-multimedia/vpl/files/0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch new file mode 100644 index 00000000..3158aef6 --- /dev/null +++ b/recipes-multimedia/vpl/files/0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch | |||
@@ -0,0 +1,34 @@ | |||
1 | From a0fe1b898ba446fdd45ff7fdad18d442140df090 Mon Sep 17 00:00:00 2001 | ||
2 | From: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
3 | Date: Sun, 11 May 2025 17:21:17 +0530 | ||
4 | Subject: [PATCH] Add cstdint header to resolve build issue with gcc-15 | ||
5 | |||
6 | Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com> | ||
7 | |||
8 | Upstream-Status: Submitted [https://github.com/intel/libvpl-tools/pull/7] | ||
9 | --- | ||
10 | tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp | 3 ++- | ||
11 | 1 file changed, 2 insertions(+), 1 deletion(-) | ||
12 | |||
13 | diff --git a/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp b/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp | ||
14 | index 29d4a99..91baf8b 100644 | ||
15 | --- a/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp | ||
16 | +++ b/tools/legacy/sample_vpp/src/sample_vpp_frc_adv.cpp | ||
17 | @@ -5,6 +5,7 @@ | ||
18 | ############################################################################*/ | ||
19 | |||
20 | #include "sample_vpp_frc_adv.h" | ||
21 | +#include <cstdint> | ||
22 | #include <math.h> | ||
23 | #include <algorithm> | ||
24 | #include "vm/strings_defs.h" | ||
25 | @@ -179,4 +180,4 @@ mfxU64 FRCAdvancedChecker::GetExpectedPTS(mfxU32 frameNumber, mfxU64 timeOffset, | ||
26 | |||
27 | } // mfxU64 FRCAdvancedChecker::GetExpectedPTS( mfxU32 frameNumber, mfxU64 timeOffset, mfxU64 timeJump ) | ||
28 | |||
29 | -/* EOF */ | ||
30 | \ No newline at end of file | ||
31 | +/* EOF */ | ||
32 | -- | ||
33 | 2.43.0 | ||
34 | |||
diff --git a/recipes-multimedia/vpl/files/0001-Update-vpl-inspect-to-remove-ReportedStats.patch b/recipes-multimedia/vpl/files/0001-Update-vpl-inspect-to-remove-ReportedStats.patch new file mode 100644 index 00000000..8ccd7e46 --- /dev/null +++ b/recipes-multimedia/vpl/files/0001-Update-vpl-inspect-to-remove-ReportedStats.patch | |||
@@ -0,0 +1,73 @@ | |||
1 | From 39ec70e27cb6887d6b9e6abc231d1052f02c4d9b Mon Sep 17 00:00:00 2001 | ||
2 | From: "Yuan, Jenny" <jenny.yuan@intel.com> | ||
3 | Date: Thu, 13 Feb 2025 11:54:46 -0800 | ||
4 | Subject: [PATCH] Update vpl-inspect to remove ReportedStats | ||
5 | |||
6 | Since experimental API mfxEncoderDescription::encoder::ReportedStats is | ||
7 | going to be removed, update vpl-inspect to remove ReportedStats field | ||
8 | report. | ||
9 | |||
10 | Upstream-Status: Backport [https://github.com/intel/libvpl-tools/commit/39ec70e27cb6887d6b9e6abc231d1052f02c4d9b] | ||
11 | --- | ||
12 | tools/cli/vpl-inspect/src/vpl-inspect.cpp | 38 ----------------------- | ||
13 | 1 file changed, 38 deletions(-) | ||
14 | |||
15 | diff --git a/tools/cli/vpl-inspect/src/vpl-inspect.cpp b/tools/cli/vpl-inspect/src/vpl-inspect.cpp | ||
16 | index e872316..b6e302f 100644 | ||
17 | --- a/tools/cli/vpl-inspect/src/vpl-inspect.cpp | ||
18 | +++ b/tools/cli/vpl-inspect/src/vpl-inspect.cpp | ||
19 | @@ -113,22 +113,6 @@ const char *_print_MediaAdapterType(mfxMediaAdapterType type) { | ||
20 | return "<unknown media adapter type>"; | ||
21 | } | ||
22 | |||
23 | -#ifdef ONEVPL_EXPERIMENTAL | ||
24 | -const char *_print_EncodeStatsType(mfxU16 type) { | ||
25 | - switch (type) { | ||
26 | - STRING_OPTION(MFX_ENCODESTATS_LEVEL_BLK); | ||
27 | - STRING_OPTION(MFX_ENCODESTATS_LEVEL_SLICE); | ||
28 | - STRING_OPTION(MFX_ENCODESTATS_LEVEL_TILE); | ||
29 | - STRING_OPTION(MFX_ENCODESTATS_LEVEL_FRAME); | ||
30 | - | ||
31 | - default: | ||
32 | - break; | ||
33 | - } | ||
34 | - | ||
35 | - return "<unknown encode stats type>"; | ||
36 | -} | ||
37 | -#endif | ||
38 | - | ||
39 | #ifdef ONEVPL_EXPERIMENTAL | ||
40 | const char *_print_SurfaceType(mfxSurfaceType type) { | ||
41 | switch (type) { | ||
42 | @@ -549,28 +533,6 @@ int main(int argc, char *argv[]) { | ||
43 | "", | ||
44 | enc->Codecs[codec].BiDirectionalPrediction); | ||
45 | |||
46 | -#ifdef ONEVPL_EXPERIMENTAL | ||
47 | - // Once ReportedStats is moved out of experimental API the struct version of mfxEncoderDescription should | ||
48 | - // be updated, and that can be used to know whether this field is valid. | ||
49 | - // For now, just check implementation API version. | ||
50 | - mfxVersion reqApiVersionReportedStats = {}; | ||
51 | - reqApiVersionReportedStats.Major = 2; | ||
52 | - reqApiVersionReportedStats.Minor = 7; | ||
53 | - if (idesc->ApiVersion.Version >= reqApiVersionReportedStats.Version) { | ||
54 | - mfxU16 reportedStats = enc->Codecs[codec].ReportedStats; | ||
55 | - if (reportedStats) { | ||
56 | - for (mfxU16 statMask = 1; statMask != 0; statMask <<= 1) { | ||
57 | - if (reportedStats & statMask) { | ||
58 | - const char *statStr = _print_EncodeStatsType(statMask); | ||
59 | - printf("%4sReportedStats: %s\n", "", statStr); | ||
60 | - } | ||
61 | - } | ||
62 | - } | ||
63 | - else { | ||
64 | - printf("%4sReportedStats: 0\n", ""); | ||
65 | - } | ||
66 | - } | ||
67 | -#endif | ||
68 | for (int profile = 0; profile < enc->Codecs[codec].NumProfiles; profile++) { | ||
69 | printf("%6sProfile: %s\n", | ||
70 | "", | ||
71 | -- | ||
72 | 2.43.0 | ||
73 | |||
diff --git a/recipes-multimedia/vpl/files/0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch b/recipes-multimedia/vpl/files/0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch new file mode 100644 index 00000000..f9a568a7 --- /dev/null +++ b/recipes-multimedia/vpl/files/0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch | |||
@@ -0,0 +1,25 @@ | |||
1 | From ff715f4c543ddabc5c90160d0ae5c5598e8e1289 Mon Sep 17 00:00:00 2001 | ||
2 | From: Markus Volk <f_l_k@t-online.de> | ||
3 | Date: Thu, 15 Jun 2023 13:43:32 +0200 | ||
4 | Subject: [PATCH] vpl.pc.in: dont pass pcfiledir to cflags | ||
5 | |||
6 | Signed-off-by: Markus Volk <f_l_k@t-online.de> | ||
7 | |||
8 | Upstream-Status: Inappropriate [oe specific] | ||
9 | --- | ||
10 | libvpl/pkgconfig/vpl.pc.in | 4 ++-- | ||
11 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
12 | |||
13 | diff --git a/libvpl/pkgconfig/vpl.pc.in b/libvpl/pkgconfig/vpl.pc.in | ||
14 | index aa9b158..b4e85ff 100644 | ||
15 | --- a/libvpl/pkgconfig/vpl.pc.in | ||
16 | +++ b/libvpl/pkgconfig/vpl.pc.in | ||
17 | @@ -7,6 +7,6 @@ Description: Accelerated video decode, encode, and frame processing capabilities | ||
18 | Version: @API_VERSION_MAJOR@.@API_VERSION_MINOR@ | ||
19 | URL: https://github.com/intel/libvpl | ||
20 | |||
21 | -Libs: -L${libdir} -l@OUTPUT_NAME@ @VPL_PKGCONFIG_DEPENDENT_LIBS@ | ||
22 | +Libs: -L@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@ -l@OUTPUT_NAME@ @VPL_PKGCONFIG_DEPENDENT_LIBS@ | ||
23 | Libs.private: @VPL_PKGCONFIG_PRIVATE_LIBS@ | ||
24 | -Cflags: -I${includedir} -I${includedir}/vpl | ||
25 | +Cflags: -I@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@ -I@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_INCLUDEDIR@/vpl | ||
diff --git a/recipes-multimedia/vpl/libvpl-tools_1.3.0.bb b/recipes-multimedia/vpl/libvpl-tools_1.3.0.bb new file mode 100644 index 00000000..e89a9d46 --- /dev/null +++ b/recipes-multimedia/vpl/libvpl-tools_1.3.0.bb | |||
@@ -0,0 +1,44 @@ | |||
1 | SUMMARY = "Intel Video Processing Library Tools" | ||
2 | DESCRIPTION = "Intel Video Processing Library (VPL) Tools provides \ | ||
3 | access to hardware accelerated video decode, encode and video processing \ | ||
4 | capabilities on Intel® GPUs use cases." | ||
5 | |||
6 | HOMEPAGE = "https://github.com/intel/libvpl-tools" | ||
7 | LICENSE = "MIT" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \ | ||
9 | file://third-party-programs.txt;md5=ddf05049184e74942f45b0ca4cc69b8a" | ||
10 | |||
11 | SRC_URI = "git://github.com/intel/libvpl-tools.git;protocol=https;branch=main \ | ||
12 | file://0001-Update-vpl-inspect-to-remove-ReportedStats.patch \ | ||
13 | file://0001-Add-cstdint-header-to-resolve-build-issue-with-gcc-1.patch \ | ||
14 | " | ||
15 | |||
16 | SRCREV = "82eab13ecec99f34e0f1d5dac490611b604406c9" | ||
17 | S = "${WORKDIR}/git" | ||
18 | |||
19 | inherit cmake | ||
20 | DEPENDS += "libva libvpl pkgconfig-native" | ||
21 | |||
22 | PACKAGECONFIG ??= "tools" | ||
23 | PACKAGECONFIG[tools] = "-DENABLE_WAYLAND=ON, -DENABLE_WAYLAND=OFF, wayland wayland-native wayland-protocols" | ||
24 | |||
25 | do_install:append() { | ||
26 | mkdir -p ${D}${datadir}/VPL/samples | ||
27 | mv ${D}${bindir}/sample_* ${D}${datadir}/VPL/samples | ||
28 | mv ${D}${bindir}/metrics_monitor ${D}${datadir}/VPL/samples | ||
29 | } | ||
30 | |||
31 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
32 | |||
33 | FILES_SOLIBSDEV = "" | ||
34 | |||
35 | FILES:${PN} += " ${datadir}/VPL/samples \ | ||
36 | ${libdir}/libcttmetrics.so \ | ||
37 | ${libdir}/vpl-tools/libvpl_wayland.* \ | ||
38 | " | ||
39 | |||
40 | FILES:${PN}-dev += "${libdir}/vpl-tools/libvpl_wayland.so \ | ||
41 | " | ||
42 | |||
43 | FILES:${PN}-doc += " ${datadir}/vpl-tools \ | ||
44 | " | ||
diff --git a/recipes-multimedia/vpl/libvpl_2.14.0.bb b/recipes-multimedia/vpl/libvpl_2.14.0.bb new file mode 100644 index 00000000..d52ca076 --- /dev/null +++ b/recipes-multimedia/vpl/libvpl_2.14.0.bb | |||
@@ -0,0 +1,44 @@ | |||
1 | SUMMARY = "Intel Video Processing Library" | ||
2 | DESCRIPTION = "Intel Video Processing Library (VPL) provides \ | ||
3 | a single video processing API for encode, decode, and video processing \ | ||
4 | that works across a wide range of accelerators." | ||
5 | |||
6 | HOMEPAGE = "https://github.com/intel/libvpl" | ||
7 | LICENSE = "MIT" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \ | ||
9 | file://third-party-programs.txt;md5=ddf05049184e74942f45b0ca4cc69b8a" | ||
10 | |||
11 | SRC_URI = "git://github.com/intel/libvpl.git;protocol=https;branch=main \ | ||
12 | file://0001-vpl.pc.in-dont-pass-pcfiledir-to-cflags.patch \ | ||
13 | " | ||
14 | SRCREV = "025d43d086a3e663184cb49febe86152bf05409f" | ||
15 | S = "${WORKDIR}/git" | ||
16 | |||
17 | inherit cmake | ||
18 | DEPENDS += "libva pkgconfig-native" | ||
19 | |||
20 | PACKAGECONFIG ??= "tools" | ||
21 | PACKAGECONFIG[tools] = "-DBUILD_TOOLS=ON, -DBUILD_TOOLS=OFF, wayland wayland-native wayland-protocols" | ||
22 | |||
23 | EXTRA_OECMAKE = "-DBUILD_EXAMPLES=ON" | ||
24 | |||
25 | do_install:append() { | ||
26 | mkdir -p ${D}${datadir}/VPL/samples | ||
27 | mv ${D}${bindir}/hello-* ${D}${datadir}/VPL/samples | ||
28 | } | ||
29 | |||
30 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
31 | |||
32 | PACKAGES =+ "${PN}-examples" | ||
33 | |||
34 | RREPLACES:${PN} = "onevpl" | ||
35 | RCONFLICTS:${PN} = "onevpl" | ||
36 | |||
37 | FILES:${PN}-examples = "${datadir}/vpl \ | ||
38 | " | ||
39 | |||
40 | FILES_SOLIBSDEV = "" | ||
41 | FILES:${PN}-dev += "${libdir}/libvpl.so" | ||
42 | |||
43 | FILES:${PN} += " ${datadir}/VPL/samples \ | ||
44 | " | ||
diff --git a/recipes-multimedia/vpl/vpl-gpu-rt_25.1.4.bb b/recipes-multimedia/vpl/vpl-gpu-rt_25.1.4.bb new file mode 100644 index 00000000..d182ce53 --- /dev/null +++ b/recipes-multimedia/vpl/vpl-gpu-rt_25.1.4.bb | |||
@@ -0,0 +1,33 @@ | |||
1 | SUMMARY = "Intel(R) oneVPL runtime for Intel GPU accelerated media processing" | ||
2 | DESCRIPTION = "Intel(R) oneVPL runtime provides an runtime to access hardware-accelerated \ | ||
3 | video decode, encode and filtering on Intel® graphics." | ||
4 | |||
5 | HOMEPAGE = "https://github.com/intel/vpl-gpu-rt" | ||
6 | BUGTRACKER = "https://github.com/intel/vpl-gpu-rt/issues" | ||
7 | |||
8 | LICENSE = "MIT" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE;md5=eb8cb45b9b57dbaa9fcc9adc4230202b" | ||
10 | |||
11 | PE = "1" | ||
12 | |||
13 | # Only for 64 bit | ||
14 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
15 | COMPATIBLE_HOST:x86-x32 = "null" | ||
16 | |||
17 | DEPENDS += "libdrm libva intel-media-driver libvpl pkgconfig-native" | ||
18 | RDEPENDS:${PN} += "intel-media-driver" | ||
19 | |||
20 | SRC_URI = "git://github.com/intel/vpl-gpu-rt.git;protocol=https;nobranch=1;lfs=0 \ | ||
21 | " | ||
22 | |||
23 | SRCREV = "c65990e456acf901597a76b22407232679152547" | ||
24 | S = "${WORKDIR}/git" | ||
25 | |||
26 | FILES:${PN} += " \ | ||
27 | ${libdir}/libmfx-gen/enctools.so \ | ||
28 | " | ||
29 | |||
30 | inherit cmake | ||
31 | |||
32 | RREPLACES:${PN} = "onevpl-intel-gpu" | ||
33 | RCONFLICTS:${PN} = "onevpl-intel-gpu" | ||
diff --git a/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch b/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch new file mode 100644 index 00000000..58ed1c9a --- /dev/null +++ b/recipes-oneapi/crypto/intel-crypto-mb/0001-CMakeLists.txt-exclude-host-system-headers.patch | |||
@@ -0,0 +1,27 @@ | |||
1 | From efedbf9080c19241c2aa9ee7ba901245d38c8fa2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Mon, 7 Mar 2022 16:44:24 +0800 | ||
4 | Subject: [PATCH 1/2] CMakeLists.txt: exclude host system headers | ||
5 | |||
6 | Upstream-Status: Inappropriate | ||
7 | |||
8 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
9 | --- | ||
10 | sources/ippcp/crypto_mb/CMakeLists.txt | 1 - | ||
11 | 1 file changed, 1 deletion(-) | ||
12 | |||
13 | diff --git a/sources/ippcp/crypto_mb/CMakeLists.txt b/sources/ippcp/crypto_mb/CMakeLists.txt | ||
14 | index c4cc82a..4094f34 100644 | ||
15 | --- a/sources/ippcp/crypto_mb/CMakeLists.txt | ||
16 | +++ b/sources/ippcp/crypto_mb/CMakeLists.txt | ||
17 | @@ -82,7 +82,6 @@ include_directories( | ||
18 | ${CRYPTO_MB_INCLUDE_DIR} | ||
19 | ${OPENSSL_INCLUDE_DIR} | ||
20 | $<$<C_COMPILER_ID:Intel>:$ENV{ROOT}/compiler/include $ENV{ROOT}/compiler/include/icc> | ||
21 | - $<$<NOT:$<C_COMPILER_ID:Intel>>:${CMAKE_SYSTEM_INCLUDE_PATH}> | ||
22 | $<$<OR:$<C_COMPILER_ID:Intel>,$<BOOL:${MSVC_IDE}>>:$ENV{INCLUDE}> | ||
23 | ) | ||
24 | |||
25 | -- | ||
26 | 2.17.1 | ||
27 | |||
diff --git a/recipes-oneapi/crypto/intel-crypto-mb/0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch b/recipes-oneapi/crypto/intel-crypto-mb/0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch new file mode 100644 index 00000000..c47c8de5 --- /dev/null +++ b/recipes-oneapi/crypto/intel-crypto-mb/0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | From 3b7b4eca54aa8d851e37f60c74e4a027fa7b21f2 Mon Sep 17 00:00:00 2001 | ||
2 | From: Anuj Mittal <anuj.mittal@intel.com> | ||
3 | Date: Wed, 14 Jun 2023 13:18:45 +0800 | ||
4 | Subject: [PATCH] crypto-mb: Make sure libs are installed correctly | ||
5 | |||
6 | Dont assume that "lib" is always the correct destination. This fixes | ||
7 | multilib builds when libdir != /usr/lib. | ||
8 | |||
9 | Upstream-Status: Pending | ||
10 | |||
11 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
12 | --- | ||
13 | sources/ippcp/crypto_mb/src/CMakeLists.txt | 6 +++--- | ||
14 | 1 file changed, 3 insertions(+), 3 deletions(-) | ||
15 | |||
16 | diff --git a/sources/ippcp/crypto_mb/src/CMakeLists.txt b/sources/ippcp/crypto_mb/src/CMakeLists.txt | ||
17 | index c9cad06..31f52bd 100644 | ||
18 | --- a/sources/ippcp/crypto_mb/src/CMakeLists.txt | ||
19 | +++ b/sources/ippcp/crypto_mb/src/CMakeLists.txt | ||
20 | @@ -123,8 +123,8 @@ endif(DYNAMIC_LIB OR MB_STANDALONE) | ||
21 | # Installation of the shared library | ||
22 | if (MB_STANDALONE) # standalone crypto_mb's cmake run | ||
23 | install(TARGETS ${MB_DYN_LIB_TARGET} | ||
24 | - LIBRARY DESTINATION "lib" | ||
25 | - RUNTIME DESTINATION "lib" | ||
26 | + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
27 | + RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
28 | PUBLIC_HEADER DESTINATION "include/crypto_mb") | ||
29 | elseif (DYNAMIC_LIB) # build from ippcp's cmake | ||
30 | install(TARGETS ${MB_DYN_LIB_TARGET} | ||
31 | @@ -154,7 +154,7 @@ endif() | ||
32 | # Static lib installation | ||
33 | if(MB_STANDALONE) | ||
34 | install(TARGETS ${MB_STATIC_LIB_TARGET} | ||
35 | - ARCHIVE DESTINATION "lib" | ||
36 | + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
37 | PUBLIC_HEADER DESTINATION "include/crypto_mb") | ||
38 | else() | ||
39 | install(TARGETS ${MB_STATIC_LIB_TARGET} | ||
40 | -- | ||
41 | 2.37.3 | ||
42 | |||
diff --git a/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch b/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch new file mode 100644 index 00000000..62b56ea2 --- /dev/null +++ b/recipes-oneapi/crypto/intel-crypto-mb/0002-cmake-exclude-Yocto-build-flags.patch | |||
@@ -0,0 +1,45 @@ | |||
1 | From b4549bb765d279b5ba042c6340e1dd69d0890b64 Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Thu, 10 Mar 2022 14:30:01 +0800 | ||
4 | Subject: [PATCH 2/2] cmake: exclude Yocto build flags | ||
5 | |||
6 | Ipp-crypto has its own set of flags and -march values, | ||
7 | which causes conflict with default -march=nehalem in gcc | ||
8 | |||
9 | Upstream-Status: Inappropriate | ||
10 | |||
11 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
12 | --- | ||
13 | sources/ippcp/crypto_mb/src/CMakeLists.txt | 2 +- | ||
14 | sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake | 2 +- | ||
15 | 2 files changed, 2 insertions(+), 2 deletions(-) | ||
16 | |||
17 | diff --git a/sources/ippcp/crypto_mb/src/CMakeLists.txt b/sources/ippcp/crypto_mb/src/CMakeLists.txt | ||
18 | index 1ca1a8c..5284d62 100644 | ||
19 | --- a/sources/ippcp/crypto_mb/src/CMakeLists.txt | ||
20 | +++ b/sources/ippcp/crypto_mb/src/CMakeLists.txt | ||
21 | @@ -81,7 +81,7 @@ endif() | ||
22 | set(MB_LIB_TARGET ${MB_DYN_LIB_TARGET}) | ||
23 | |||
24 | set_source_files_properties(${CRYPTO_MB_SOURCES} PROPERTIES COMPILE_DEFINITIONS "${AVX512_LIBRARY_DEFINES}" | ||
25 | - COMPILE_FLAGS "${AVX512_CFLAGS} ${CMAKE_ASM_FLAGS} ${CMAKE_C_FLAGS_SECURITY}") | ||
26 | + COMPILE_FLAGS "${AVX512_CFLAGS} ${CMAKE_C_FLAGS_SECURITY}") | ||
27 | |||
28 | # Don't specify architectural flags for the assembler for this sources, because of the bug in Intel® C Compiler under MacOS: error: invalid instruction mnemonic 'vkmovb' | ||
29 | # The bug has been fixed since version 2021.3. This is a workaround to support older versions of Intel® C Compiler. | ||
30 | diff --git a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake | ||
31 | index a2abeeb..aadd6e2 100644 | ||
32 | --- a/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake | ||
33 | +++ b/sources/ippcp/crypto_mb/src/cmake/linux/GNU.cmake | ||
34 | @@ -58,7 +58,7 @@ set(LINK_FLAGS_DYNAMIC "${LINK_FLAGS_DYNAMIC} ${CRYPTO_MB_SOURCES_DIR}/cmake/dll | ||
35 | # Compiler flags | ||
36 | |||
37 | # Tells the compiler to align functions and loops | ||
38 | -set(CMAKE_C_FLAGS " -falign-functions=32 -falign-loops=32") | ||
39 | +set(CMAKE_C_FLAGS " -falign-functions=32 -falign-loops=32 ${TOOLCHAIN_OPTIONS}") | ||
40 | # Ensures that compilation takes place in a freestanding environment | ||
41 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffreestanding") | ||
42 | |||
43 | -- | ||
44 | 2.17.1 | ||
45 | |||
diff --git a/recipes-oneapi/crypto/intel-crypto-mb_2021.12.1.bb b/recipes-oneapi/crypto/intel-crypto-mb_2021.12.1.bb new file mode 100644 index 00000000..61383f82 --- /dev/null +++ b/recipes-oneapi/crypto/intel-crypto-mb_2021.12.1.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | SUMMARY = "Crypto Multi-buffer Library" | ||
2 | DESCRIPTION = "Intel® Integrated Performance Primitives (Intel® IPP) Cryptography \ | ||
3 | is a secure, fast and lightweight library of building blocks for cryptography, \ | ||
4 | highly-optimized for various Intel® CPUs." | ||
5 | HOMEPAGE = "https://github.com/intel/ipp-crypto" | ||
6 | |||
7 | LICENSE = "Apache-2.0" | ||
8 | |||
9 | LIC_FILES_CHKSUM = "file://../../../LICENSE;md5=d94a5b4dbbc5c6a0c2ce95ab337df6c4" | ||
10 | |||
11 | IPP_BRANCH = "ipp-crypto_${@'_'.join(d.getVar('PV').rsplit('.')[-3:])}" | ||
12 | |||
13 | SRC_URI = "git://github.com/intel/ipp-crypto;protocol=https;branch=${IPP_BRANCH} \ | ||
14 | file://0001-CMakeLists.txt-exclude-host-system-headers.patch;striplevel=4 \ | ||
15 | file://0002-cmake-exclude-Yocto-build-flags.patch;striplevel=4 \ | ||
16 | file://0001-crypto-mb-Make-sure-libs-are-installed-correctly.patch;striplevel=4 \ | ||
17 | " | ||
18 | SRCREV = "7d6ac349507258f49d00909df33d5dea4ff77f39" | ||
19 | |||
20 | S = "${WORKDIR}/git/sources/ippcp/crypto_mb" | ||
21 | |||
22 | DEPENDS = "openssl" | ||
23 | |||
24 | inherit cmake pkgconfig | ||
25 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
26 | |||
27 | EXTRA_OECMAKE += " -DARCH=intel64" | ||
28 | EXTRA_OECMAKE += " -DTOOLCHAIN_OPTIONS='${TOOLCHAIN_OPTIONS}'" | ||
diff --git a/recipes-oneapi/onedpl/onedpl_2022.8.0.bb b/recipes-oneapi/onedpl/onedpl_2022.8.0.bb new file mode 100644 index 00000000..7e3f309f --- /dev/null +++ b/recipes-oneapi/onedpl/onedpl_2022.8.0.bb | |||
@@ -0,0 +1,26 @@ | |||
1 | SUMMARY = "oneAPI DPC++ Library (oneDPL)" | ||
2 | DESCRIPTION = "The oneAPI DPC++ Library (oneDPL) aims to work with the \ | ||
3 | oneAPI DPC++ Compiler to provide high-productivity APIs to developers, \ | ||
4 | which can minimize DPC++ programming efforts across devices for high \ | ||
5 | performance parallel applications." | ||
6 | HOMEPAGE = "https://github.com/oneapi-src/oneDPL" | ||
7 | |||
8 | LICENSE = "Apache-2.0-with-LLVM-exception" | ||
9 | LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2e982d844baa4df1c80de75470e0c5cb \ | ||
10 | file://third-party-programs.txt;md5=409cd5c825a23043b6bb347861d34b35" | ||
11 | |||
12 | S = "${WORKDIR}/git" | ||
13 | |||
14 | SRC_URI = "git://github.com/uxlfoundation/oneDPL.git;protocol=https;branch=release/2022.8.0 \ | ||
15 | " | ||
16 | SRCREV = "89d8d8befd4da2cb52f3724f668d17d7e39d42cf" | ||
17 | |||
18 | do_compile[noexec] = "1" | ||
19 | do_configure[noexec] = "1" | ||
20 | |||
21 | do_install() { | ||
22 | install -d -m 755 ${D}${includedir}/onedpl | ||
23 | cp -r ${S}/include/* ${D}${includedir}/onedpl | ||
24 | } | ||
25 | |||
26 | UPSTREAM_CHECK_GITTAGREGEX = "^oneDPL-(?P<pver>(\d+(\.\d+)+))-release$" | ||
diff --git a/recipes-oneapi/setup-oneapi-env/files/intel-oneapi-runtime.conf b/recipes-oneapi/setup-oneapi-env/files/intel-oneapi-runtime.conf new file mode 100644 index 00000000..5faf9854 --- /dev/null +++ b/recipes-oneapi/setup-oneapi-env/files/intel-oneapi-runtime.conf | |||
@@ -0,0 +1,4 @@ | |||
1 | /opt/intel/oneapi/lib | ||
2 | /opt/intel/oneapi/lib/intel64 | ||
3 | /opt/intel/oneapi/lib/ia32 | ||
4 | /opt/intel/oneapi/lib/emu | ||
diff --git a/recipes-oneapi/setup-oneapi-env/setup-intel-oneapi-env_2023.0.0-25370.bb b/recipes-oneapi/setup-oneapi-env/setup-intel-oneapi-env_2023.0.0-25370.bb new file mode 100644 index 00000000..a1762a16 --- /dev/null +++ b/recipes-oneapi/setup-oneapi-env/setup-intel-oneapi-env_2023.0.0-25370.bb | |||
@@ -0,0 +1,23 @@ | |||
1 | SUMMARY = "Intel® oneAPI runtime libraries environment set up" | ||
2 | DESCRIPTION = "Recipe to set up the environment for Intel® oneAPI runtime libraries \ | ||
3 | via configuration file in ld.so.conf.d directory." | ||
4 | |||
5 | LICENSE = "EULA" | ||
6 | LIC_FILES_CHKSUM = "file://${CUSTOM_LICENSES_PATH}/EULA;md5=7bfc91523de2e84e7131d0eacf2827d4" | ||
7 | |||
8 | SRC_URI = "file://intel-oneapi-runtime.conf" | ||
9 | |||
10 | S = "${WORKDIR}/sources" | ||
11 | UNPACKDIR = "${S}" | ||
12 | |||
13 | do_install() { | ||
14 | mkdir -p ${D}${sysconfdir}/ld.so.conf.d/ | ||
15 | install -m 644 ${S}/intel-oneapi-runtime.conf ${D}${sysconfdir}/ld.so.conf.d/ | ||
16 | } | ||
17 | |||
18 | pkg_postinst_ontarget:${PN}() { | ||
19 | if [ x"$D" = "x" ]; then | ||
20 | if [ -x /sbin/ldconfig ]; then /sbin/ldconfig ; fi | ||
21 | fi | ||
22 | } | ||
23 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/recipes-opencl/igc/files/0001-Fix-for-the-gcc-9-issue.patch b/recipes-opencl/igc/files/0001-Fix-for-the-gcc-9-issue.patch deleted file mode 100644 index 70447176..00000000 --- a/recipes-opencl/igc/files/0001-Fix-for-the-gcc-9-issue.patch +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | From c3e985e0e82e9b4c2cc8d4dbfd8ff7890daa50e0 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Wesierski, Lukasz" <lukasz.wesierski@intel.com> | ||
3 | Date: Thu, 6 Jun 2019 21:00:00 -0700 | ||
4 | Subject: [PATCH] Fix for the gcc-9 issue. | ||
5 | |||
6 | Fixes #91 | ||
7 | |||
8 | Change-Id: I8149771d6add9645126cb94584f46485c256a488 | ||
9 | |||
10 | Upstream-Status: Backport | ||
11 | [https://github.com/intel/intel-graphics-compiler/commit/b95b2220ddd1d50b718cae6829d832a14ff60790] | ||
12 | |||
13 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
14 | --- | ||
15 | IGC/AdaptorOCL/cif/cif/common/cif.h | 8 ++++++++ | ||
16 | IGC/common/LLVMWarningsPop.hpp | 4 ++++ | ||
17 | IGC/common/LLVMWarningsPush.hpp | 10 ++++++++++ | ||
18 | 3 files changed, 22 insertions(+) | ||
19 | |||
20 | diff --git a/IGC/AdaptorOCL/cif/cif/common/cif.h b/IGC/AdaptorOCL/cif/cif/common/cif.h | ||
21 | index 99d67d5a..00352964 100644 | ||
22 | --- a/IGC/AdaptorOCL/cif/cif/common/cif.h | ||
23 | +++ b/IGC/AdaptorOCL/cif/cif/common/cif.h | ||
24 | @@ -310,6 +310,14 @@ struct InterfacesList { | ||
25 | requestedInterfaceId, std::forward<DefaultValueT>(defaultValue), std::forward<Args>(args)...); | ||
26 | } | ||
27 | |||
28 | + /// Calls Callable::Call with all contained interfaces (sequentially, one at a time) as template parameters. | ||
29 | + /// Arguments will be forwarded as regular function parameters to Callable::Call. | ||
30 | + template <typename Callable, typename RetType, typename DefaultValueT> | ||
31 | + static RetType forwardToOne(InterfaceId_t requestedInterfaceId, DefaultValueT &&defaultValue) { | ||
32 | + return forwardToOneImpl<0, RetType, Callable, DefaultValueT, InterfacePack<SupportedInterfaces...>>( | ||
33 | + requestedInterfaceId, std::forward<DefaultValueT>(defaultValue)); | ||
34 | + } | ||
35 | + | ||
36 | /// Calls Callable::Call with all contained interfaces (sequentially, one at a time) as template parameters. | ||
37 | /// Arguments will be forwarded as regular function parameters to Callable::Call. | ||
38 | template <typename Callable, typename... Args> | ||
39 | diff --git a/IGC/common/LLVMWarningsPop.hpp b/IGC/common/LLVMWarningsPop.hpp | ||
40 | index 9875acb8..f8e405d2 100644 | ||
41 | --- a/IGC/common/LLVMWarningsPop.hpp | ||
42 | +++ b/IGC/common/LLVMWarningsPop.hpp | ||
43 | @@ -57,3 +57,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
44 | #ifdef _MSC_VER | ||
45 | # pragma warning( pop ) | ||
46 | #endif | ||
47 | + | ||
48 | +#if defined(__linux__) | ||
49 | +# pragma GCC diagnostic pop | ||
50 | +#endif | ||
51 | diff --git a/IGC/common/LLVMWarningsPush.hpp b/IGC/common/LLVMWarningsPush.hpp | ||
52 | index bab4a5e1..aca8db34 100644 | ||
53 | --- a/IGC/common/LLVMWarningsPush.hpp | ||
54 | +++ b/IGC/common/LLVMWarningsPush.hpp | ||
55 | @@ -55,8 +55,18 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
56 | # pragma warning( push ) | ||
57 | #endif | ||
58 | |||
59 | +#if defined(__linux__) | ||
60 | +# pragma GCC diagnostic push | ||
61 | +#endif | ||
62 | + | ||
63 | #include <llvm/Config/llvm-config.h> | ||
64 | |||
65 | +#if defined(__linux__) | ||
66 | +# if __GNUC__ > 8 | ||
67 | +# pragma GCC diagnostic ignored "-Winit-list-lifetime" | ||
68 | +# endif | ||
69 | +#endif | ||
70 | + | ||
71 | #if defined( _WIN32 ) || defined( _WIN64 ) | ||
72 | |||
73 | // 'inline' : used more than once | ||
74 | -- | ||
75 | 2.17.0 | ||
76 | |||
diff --git a/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch b/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch deleted file mode 100644 index 1e0c3444..00000000 --- a/recipes-opencl/igc/files/0001-skip-execution-of-ElfPackager.patch +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
1 | From 78270818abd269bc8a1cf5deb69f15e3849333fe Mon Sep 17 00:00:00 2001 | ||
2 | From: Naveen Saini <naveen.kumar.saini@intel.com> | ||
3 | Date: Wed, 12 Jun 2019 14:10:23 +0800 | ||
4 | Subject: [PATCH] skip execution of ElfPackager | ||
5 | |||
6 | ElfPackager adds the ability to convert llvm bitcode into elf files for | ||
7 | easier partitioning. Skip for now until we start building a native | ||
8 | version for this. | ||
9 | |||
10 | Upstream-Status: Inappropriate [configuration specific] | ||
11 | |||
12 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
13 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
14 | --- | ||
15 | IGC/ElfPackager/CMakeLists.txt | 8 ++++---- | ||
16 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
17 | |||
18 | diff --git a/IGC/ElfPackager/CMakeLists.txt b/IGC/ElfPackager/CMakeLists.txt | ||
19 | index 6bf4aa01..d8cd4e8b 100644 | ||
20 | --- a/IGC/ElfPackager/CMakeLists.txt | ||
21 | +++ b/IGC/ElfPackager/CMakeLists.txt | ||
22 | @@ -69,10 +69,10 @@ include_directories ( | ||
23 | ${IGC_SOURCE_DIR}/AdaptorOCL/CLElfLib/ | ||
24 | ) | ||
25 | |||
26 | -add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager} | ||
27 | - POST_BUILD | ||
28 | - COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin | ||
29 | - ) | ||
30 | +#add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager} | ||
31 | +# POST_BUILD | ||
32 | +# COMMAND $<TARGET_FILE:${IGC_BUILD__PROJ__ElfPackager}> -includeSizet -funcList ${CMAKE_CURRENT_SOURCE_DIR}/function_bin.txt ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc ${IGC_BUILD__BIF_DIR}/igdclbif.bin | ||
33 | +# ) | ||
34 | |||
35 | |||
36 | add_dependencies("${IGC_BUILD__PROJ__ElfPackager}" "${IGC_BUILD__PROJ__BiFModule_OCL}") | ||
37 | -- | ||
38 | 2.17.0 | ||
39 | |||
diff --git a/recipes-opencl/igc/intel-graphics-compiler_1.0.6.bb b/recipes-opencl/igc/intel-graphics-compiler_1.0.6.bb deleted file mode 100644 index f64b97fd..00000000 --- a/recipes-opencl/igc/intel-graphics-compiler_1.0.6.bb +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)" | ||
2 | DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \ | ||
3 | llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \ | ||
4 | hardware architecture." | ||
5 | |||
6 | LICENSE = "MIT & BSD-3-Clause" | ||
7 | LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \ | ||
8 | file://IGC/Compiler/LegalizationPass.cpp;md5=4e9a7f0d710a0546cbf5581e1565a986" | ||
9 | |||
10 | SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https \ | ||
11 | file://0001-skip-execution-of-ElfPackager.patch \ | ||
12 | file://0001-Fix-for-the-gcc-9-issue.patch \ | ||
13 | " | ||
14 | |||
15 | SRCREV = "ebfc688126900a821e407a96417800919b793447" | ||
16 | |||
17 | S = "${WORKDIR}/git" | ||
18 | |||
19 | inherit cmake | ||
20 | |||
21 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
22 | COMPATIBLE_HOST_libc-musl = "null" | ||
23 | |||
24 | DEPENDS_class-target = " flex-native bison-native clang clang-cross-x86_64" | ||
25 | |||
26 | EXTRA_OECMAKE = "-DIGC_PREFERRED_LLVM_VERSION=8.0.0 -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python2" | ||
27 | EXTRA_OECMAKE += "-DCOMMON_CLANG_LIBRARY_NAME=common_clang" | ||
diff --git a/recipes-rt/images/core-image-rt-sdk.bb b/recipes-rt/images/core-image-rt-sdk.bb index 920c4cee..1270283e 100644 --- a/recipes-rt/images/core-image-rt-sdk.bb +++ b/recipes-rt/images/core-image-rt-sdk.bb | |||
@@ -13,7 +13,7 @@ tools for real-time use. It includes the full meta-toolchain, development \ | |||
13 | headers and libraries to form a standalone SDK." | 13 | headers and libraries to form a standalone SDK." |
14 | DEPENDS += "linux-intel-rt" | 14 | DEPENDS += "linux-intel-rt" |
15 | 15 | ||
16 | IMAGE_FEATURES += "dev-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps debug-tweaks" | 16 | IMAGE_FEATURES += "dev-pkgs tools-sdk tools-debug eclipse-debug tools-profile tools-testapps" |
17 | 17 | ||
18 | IMAGE_INSTALL += "rt-tests hwlatdetect kernel-dev" | 18 | IMAGE_INSTALL += "rt-tests hwlatdetect kernel-dev" |
19 | 19 | ||
diff --git a/recipes-selftest/images/files/incorrect.crt b/recipes-selftest/images/files/incorrect.crt deleted file mode 100644 index 3a2411ab..00000000 --- a/recipes-selftest/images/files/incorrect.crt +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE----- | ||
2 | MIIDCTCCAfGgAwIBAgIJAIYXAHv3cQNjMA0GCSqGSIb3DQEBCwUAMBsxGTAXBgNV | ||
3 | BAMMEFRlc3QgWW9jdG8gdGhpbmcwHhcNMTcwMTI1MjI1MjI3WhcNMTgwMTI1MjI1 | ||
4 | MjI3WjAbMRkwFwYDVQQDDBBUZXN0IFlvY3RvIHRoaW5nMIIBIjANBgkqhkiG9w0B | ||
5 | AQEFAAOCAQ8AMIIBCgKCAQEAukI2ioMeL8qaXxMtryonAT51w+Zre0wB8bDBPuXD | ||
6 | SwDVXNWfiKKTfCVEkLEUnsUEd7jiKswCT5orTwCD7aQK0mTrkAWEi8hEI3MkNoeh | ||
7 | T51gkuTfv7A/HgPkhhlU4UQqipI6XoLf7o7PUV33ZfB43//iKY2kLBdsFvs4ALWE | ||
8 | 31hLOkCFb+nqMnfZxq7DgvBwIdxJdLQvaskpDMfkna+zE3QWqkH5v55atW8Bunwk | ||
9 | /6q5kqNhyrjZb4i0BqJ5AHFUEQzlDcjpyFVUtR14r0IxjBFMHZXrx4uLe7KvGf/4 | ||
10 | GqpqeFOPqxMsfC5ILJJ7nvwFViqftGgtWg/12bKMTB5saQIDAQABo1AwTjAdBgNV | ||
11 | HQ4EFgQURA8KbgpiGfS2+7MT0H5AvpxeYLowHwYDVR0jBBgwFoAURA8KbgpiGfS2 | ||
12 | +7MT0H5AvpxeYLowDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAK9n+ | ||
13 | 9T+hlM2kEpsUgtyihEJbGHzbw+Pj11b0ICntCVuPKewtBMveYp8lejrQwMFNGRMt | ||
14 | ZQe1LFb9HcLeM3MLUz9Lm4BJIjkey3Jfq1AskROYk/bJnFIJIx6P3U9gBa20P46X | ||
15 | LH3g6yub1HR7KZC9nfBsak3FPoJR/SYTJs0HsMeL4878+2IbETA4BL0kbKW48FFW | ||
16 | jF4f6don0eiaF8b4KkfbWKrCaEm+LMxbyBEQ6fIb1cmGY8A9A5houjmgi6YWSkoi | ||
17 | SLpOC9TZ2R51fO9rRsv7XwLK0V9o9YaEYPBg6V/TeJl5nxAZBeVTKVTQbBGZY+l2 | ||
18 | nzN0pKsl7RXLf3SRYA== | ||
19 | -----END CERTIFICATE----- | ||
diff --git a/recipes-selftest/images/files/incorrect.key b/recipes-selftest/images/files/incorrect.key deleted file mode 100644 index d05475b6..00000000 --- a/recipes-selftest/images/files/incorrect.key +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
1 | -----BEGIN RSA PRIVATE KEY----- | ||
2 | MIIEowIBAAKCAQEAukI2ioMeL8qaXxMtryonAT51w+Zre0wB8bDBPuXDSwDVXNWf | ||
3 | iKKTfCVEkLEUnsUEd7jiKswCT5orTwCD7aQK0mTrkAWEi8hEI3MkNoehT51gkuTf | ||
4 | v7A/HgPkhhlU4UQqipI6XoLf7o7PUV33ZfB43//iKY2kLBdsFvs4ALWE31hLOkCF | ||
5 | b+nqMnfZxq7DgvBwIdxJdLQvaskpDMfkna+zE3QWqkH5v55atW8Bunwk/6q5kqNh | ||
6 | yrjZb4i0BqJ5AHFUEQzlDcjpyFVUtR14r0IxjBFMHZXrx4uLe7KvGf/4GqpqeFOP | ||
7 | qxMsfC5ILJJ7nvwFViqftGgtWg/12bKMTB5saQIDAQABAoIBAQCEtAox86s9N6d2 | ||
8 | 164z3998Zmj3UyL+7K9x6JI2YvMabBSYGOeaLOLRj6fjQxdC63H8brBM958p4di7 | ||
9 | Z82XMco4Dok6yoOeJ+hMLYv+gfGvTJxy7DhyVXsSwok99axg9vUsV3TYw3wSdpNF | ||
10 | EKLkcUldpu0W2ADBHUr4sLI85xctHH3Kt0sNDzhgADFa5rDYACXTKHtFOhEqBIwN | ||
11 | FmbuRQirnErUkI3Pczgl2Xy1MlaozH9CB+bLAb5q2FYu4DKgjl4UorC+w2HV41KH | ||
12 | XoL7L36XXqLRHBfEAwOWb8yro+TK8T7gW7aagTI1wgsbbQkjQmOHxclmJACdMOiJ | ||
13 | DjPeR0GBAoGBAO7i2eaEoKa9QlKokN+93uOJD/F6DBi6jF0vGOqWlF8AVTj3kGL3 | ||
14 | X8fY/avrSlg7hKZWdei+Q5PyZViKxqmHjq781ZisKck52Tqz4s7ylqRXSgStinZr | ||
15 | UqrkShCqZ3g1W91gIeVPQz0/b+gBskoHzQ5WQHfV5v9S1PaxjzcYtCrRAoGBAMea | ||
16 | LcA2jjuEjqxa5v5fh8ygcHasJMRKJxW1OCKiQ94DjjzPsdVqZ1sJZChLW/N3nxe7 | ||
17 | wHlNJmsGbJ2w1zD5+qkkPjLq5Q4B5KAd62NNrWaEHFdEc/PPkn4xP7Zkfuu5K+m2 | ||
18 | 7z/MF4ibvVh9PvD3HY8FWKEtkqB4rfD8AoUOVd4ZAoGAXxXAsfa8k2Hl0kzyTXyg | ||
19 | CWV3CSERS46FbFngyw9gw2e4hFJWEG5ym3ONlS60iuY16JelmxyQfYUQPewPI0+n | ||
20 | xZMx2fE9OLFj+++6KbF5sLRl6/K/mF8jqo3vxS5uvPRQOo+XLlUcaHalrm1ub/Um | ||
21 | 87v1MT3dEmgACKmoXb/hhuECgYAZluiapePiOYJZEmZe4jx0vXTtofAswhz0qYEC | ||
22 | 3663vdj0buQrqjKJ91BB4jdtpT5eOpHYe02blv1B0jQkcUfze1QGDxtCineXF37g | ||
23 | Aktiwzkm7v22mjv7tbCnX4buDZVVp0BQ+4dg2iaSO6xgFC5T8amFMGSF8jLKnGRu | ||
24 | ToIvsQKBgADBTse2vnI85NRsYq48ztQuIU2zlGXIAcoPSvGb8Vhty/joc0jWcI5P | ||
25 | raGXBARbuVlcEapK3mDRfO0CQjDaTPK4EYYJwGp8k33Hkkcbgs4kfm308jRsclMr | ||
26 | YeMwQsYyOv45x4iPCwrqZEhpPDvACBi7DB6QvZ0++vJbobTt1jyi | ||
27 | -----END RSA PRIVATE KEY----- | ||
diff --git a/recipes-selftest/images/files/refkit-db.crt b/recipes-selftest/images/files/refkit-db.crt deleted file mode 100644 index 22ad6a89..00000000 --- a/recipes-selftest/images/files/refkit-db.crt +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | -----BEGIN CERTIFICATE----- | ||
2 | MIIC+zCCAeOgAwIBAgIJANT2SMJoGZGsMA0GCSqGSIb3DQEBCwUAMBQxEjAQBgNV | ||
3 | BAMMCXJlZmtpdC1kYjAeFw0xNzA0MjAxMjA2MzJaFw0xODA0MjAxMjA2MzJaMBQx | ||
4 | EjAQBgNVBAMMCXJlZmtpdC1kYjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC | ||
5 | ggEBALQcIqYiAVfN8U+vcuPZAYBQVe8CXuuZNct/Knn/tT7sXZIGMCDnla2khC4/ | ||
6 | +tdG3Umo6ON5SfaPCx3+Y6jRY6PWDU5sZlzWZibRJpjUT3bJZUhYEwgxvOVHJWWV | ||
7 | OYlfAvHFBhdYygn99h7Fl9qjThpIvs+WJwRLt21ntlAYBHNR0mot3zur8i2V16i4 | ||
8 | qDChq4uSK2A+OuWGQHHBPy0ukOfW7MzCC3mDcW32o6lMzUaB3O/sUb6BKvF4c0Hb | ||
9 | VM58zqLjkE9FGvk9iPwO7dNpIkz6CmnRSMCqqTqzjxA6dqgMej3Yec4clmL0Bu5H | ||
10 | 6OBpka7qNM/aqLQ5XvN60IhIR2kCAwEAAaNQME4wHQYDVR0OBBYEFGhgESWFFHgb | ||
11 | Gp9GEuYh5O/7O6rdMB8GA1UdIwQYMBaAFGhgESWFFHgbGp9GEuYh5O/7O6rdMAwG | ||
12 | A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAI/ShHxDR8pr/YeD0O910yBS | ||
13 | cxiqMnH7pfTJEaNoTbed5tlGJNzHwjv5sJj87jRuEJs9RG4zCRG4KdYtBs9nj5aF | ||
14 | nWNyv2RfDePJYxlx1H1MnHdG2iCXbbzdwh/zQDge58xVBXK6JE+zipMMMGDan281 | ||
15 | 9vuwH7MA3cSmvOI3waPv2aGG+eukpUU4/06HSkHPbml+l74tIryNoBohj0tykAFc | ||
16 | uqWcLdclJPz/XFgURjAJfFVkgwu5388l7uz3y9vRW5OTyIoQRriwNRxsDY8Dao8b | ||
17 | NmjzU4k2WyGA3uOSUpSXnUmJfT7eKVG6Efe6Afer6sGnLqNNZf1AcfHiP2woy9M= | ||
18 | -----END CERTIFICATE----- | ||
diff --git a/recipes-selftest/images/files/refkit-db.key b/recipes-selftest/images/files/refkit-db.key deleted file mode 100644 index 4b54587e..00000000 --- a/recipes-selftest/images/files/refkit-db.key +++ /dev/null | |||
@@ -1,28 +0,0 @@ | |||
1 | -----BEGIN PRIVATE KEY----- | ||
2 | MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC0HCKmIgFXzfFP | ||
3 | r3Lj2QGAUFXvAl7rmTXLfyp5/7U+7F2SBjAg55WtpIQuP/rXRt1JqOjjeUn2jwsd | ||
4 | /mOo0WOj1g1ObGZc1mYm0SaY1E92yWVIWBMIMbzlRyVllTmJXwLxxQYXWMoJ/fYe | ||
5 | xZfao04aSL7PlicES7dtZ7ZQGARzUdJqLd87q/ItldeouKgwoauLkitgPjrlhkBx | ||
6 | wT8tLpDn1uzMwgt5g3Ft9qOpTM1Ggdzv7FG+gSrxeHNB21TOfM6i45BPRRr5PYj8 | ||
7 | Du3TaSJM+gpp0UjAqqk6s48QOnaoDHo92HnOHJZi9AbuR+jgaZGu6jTP2qi0OV7z | ||
8 | etCISEdpAgMBAAECggEAbtXplKbUgL4hQ9JKN2Cxhc7qMv0YgI92BVaqQw1S8ffu | ||
9 | 1Q+tynH5MDRPi06gBJ59SvkA6AsZsvrv8nM7zQWd9ZKh+aLHk1X04upOgDoW9JiX | ||
10 | FV/txlslTUrs/ohIMfsgCrweNXvUSTXZobIi8s8QHyipE4HpXMFjjZYHIV7GTlgA | ||
11 | PRgGu3NygbWfR8hcx5JtzVz/jka7FFFSbk/pMr0TeJHXP55VfqWLeeSBQmWwooj2 | ||
12 | QcRfqMXgLKgu6uEggaP5HMcfTuWgWNhbke/596CgsUtQ5Gg64Q6v7cKcPy0/lgn1 | ||
13 | PnvfT9uhgEFDLNFkSBxV3ImrNYo73Nqmbp3w5tK9SQKBgQDs/HW7pNnB0LD51qok | ||
14 | pkX0SBvyKxDT1QuU4z0FY9GT7OKOg8Xa0ZGyErt+ZbyFiyUGF5Axc3rJ3DyGslgu | ||
15 | 5O+AqcpCQOlOyovGQ6ST9x/gEeVcRnZn1MV4vMxwaOSXtY7u0IGyaDlFn1QWHWCN | ||
16 | imv8OR6YuhivwBIXGzJ16oEqDwKBgQDCj3ls7tlPrLvUQIh8gfjCoInU8fRAqtAe | ||
17 | Ab/OximLsKQPKLDma6xd+X2Fk8Dowdb88GNT99x3VZjHqVJM9URDkiOGKAXA/rBp | ||
18 | jAXhnQwahT8YCzOUHqDYNMMQrXHvbiHqLodGrrO2WjYNmH69prQAk8WYAIwl+hdx | ||
19 | BS70LGLPBwKBgQDU9RinAkBcFjiyieBjBreeCJ50Q5bfhHbf2EOhcE2IbDo6bteB | ||
20 | Bwmxx3uM3cdHCf6/NrVweqFAfBQ3xlPP8BH4wJrsZoBBOWnZRDfEbzHJnMtK3FbS | ||
21 | fzTkhmQAL4Ibgh9rIxspQtcUZVSees+k4VqgUIPaIoDEjgizktEJfS2MqQKBgQDA | ||
22 | rOFtVaRz2PYyHq6LzxMRe3bEIdDn8cEk1kqjdW9TXV07feqiZmNOtXLvRAG4/63u | ||
23 | 1Akp8L6ul2Az6qUMfaBa4nC3vQ7lr9P40qhIZATGhsqS/xTXTPWw55999qZsnL6N | ||
24 | cgKZpw1mOzRohmqNWnfMUotOGsywF1n7nUyAlyxLJQKBgElTaNTFYF3MbGfhl1He | ||
25 | fnDXlf8OCOK1i5oIzMLqverb2UN/qp6p0b3SAtcw5cUXcaPlajHrfYgacF/0Qyua | ||
26 | Cerey9GLEdJ7saDWhz0GyJ8yyEXy8CVs0svVaLPWI0s2B7/obzP9+gTb/WE9qZqu | ||
27 | bNoVEpJ/wZhk+IL4+KPmqphu | ||
28 | -----END PRIVATE KEY----- | ||
diff --git a/recipes-selftest/images/secureboot-selftest-image-signed.bb b/recipes-selftest/images/secureboot-selftest-image-signed.bb deleted file mode 100644 index 3ce11f32..00000000 --- a/recipes-selftest/images/secureboot-selftest-image-signed.bb +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | require secureboot-selftest-image-unsigned.bb | ||
2 | |||
3 | IMAGE_FEATURES += "secureboot" | ||
4 | |||
5 | SECURE_BOOT_SIGNING_KEY ?= "${THISDIR}/files/refkit-db.key" | ||
6 | SECURE_BOOT_SIGNING_CERT ?= "${THISDIR}/files/refkit-db.crt" | ||
diff --git a/recipes-selftest/images/secureboot-selftest-image-unsigned.bb b/recipes-selftest/images/secureboot-selftest-image-unsigned.bb deleted file mode 100644 index e03e7b47..00000000 --- a/recipes-selftest/images/secureboot-selftest-image-unsigned.bb +++ /dev/null | |||
@@ -1,20 +0,0 @@ | |||
1 | require recipes-core/images/core-image-minimal.bb | ||
2 | |||
3 | DEPENDS_remove = "grub-efi" | ||
4 | |||
5 | inherit uefi-comboapp | ||
6 | |||
7 | WKS_FILE = "generic-bootdisk.wks.in" | ||
8 | |||
9 | do_uefiapp_deploy_append() { | ||
10 | for i in ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi; do | ||
11 | target=`basename $i` | ||
12 | target=`echo $target | sed -e 's/${IMAGE_LINK_NAME}.//'` | ||
13 | |||
14 | cat > ${IMAGE_ROOTFS}/boot/startup.nsh << EOF | ||
15 | $target | ||
16 | reset | ||
17 | EOF | ||
18 | break | ||
19 | done | ||
20 | } | ||
diff --git a/recipes-support/isa-l/isa-l_2.31.1.bb b/recipes-support/isa-l/isa-l_2.31.1.bb new file mode 100644 index 00000000..78850579 --- /dev/null +++ b/recipes-support/isa-l/isa-l_2.31.1.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | SUMMARY = "Intelligent Storage Acceleration Library" | ||
2 | DESCRIPTION = "ISA-L is a collection of optimized low-level functions \ | ||
3 | targeting storage applications." | ||
4 | LICENSE = "BSD-3-Clause" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=2476688d0948d4a3f7c69473a603540d" | ||
6 | SECTION = "lib" | ||
7 | |||
8 | inherit autotools pkgconfig | ||
9 | |||
10 | S = "${WORKDIR}/git" | ||
11 | SRCREV = "c387163fcbca62701d646149564c550c78a4f985" | ||
12 | SRC_URI = "git://github.com/intel/isa-l.git;branch=master;protocol=https" | ||
13 | |||
14 | DEPENDS = "nasm-native" | ||
15 | AS[unexport] = "1" | ||
16 | |||
17 | TARGET_CC_ARCH += "${LDFLAGS}" | ||
18 | |||
19 | COMPATIBLE_HOST = '(x86_64).*-linux' | ||
diff --git a/recipes-support/jhi/jhi_1.33.bb b/recipes-support/jhi/jhi_1.33.bb deleted file mode 100755 index 034b56a6..00000000 --- a/recipes-support/jhi/jhi_1.33.bb +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | SUMMARY = "Intel Dynamic Application Loader (DAL) Host Interface" | ||
2 | DESCRIPTION = "A daemon and libraries which allow user space applications \ | ||
3 | to install Java applets on DAL FW and communicate with them" | ||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=833126f14614a3276708a4d7c9734645" | ||
6 | |||
7 | SRC_URI = "git://github.com/intel/dynamic-application-loader-host-interface.git;protocol=https" | ||
8 | |||
9 | inherit cmake useradd systemd pkgconfig | ||
10 | |||
11 | SRCREV = "44d64cdbcf7eacd397ce9c18b9094514b62093e6" | ||
12 | |||
13 | S = "${WORKDIR}/git" | ||
14 | |||
15 | DEPENDS += "util-linux libxml2" | ||
16 | DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}" | ||
17 | RDEPENDS_${PN} += "bash" | ||
18 | |||
19 | USERADD_PACKAGES = "${PN}" | ||
20 | USERADD_PARAM_${PN} = "--system --no-create-home --shell /bin/false -g mei jhi" | ||
21 | |||
22 | GROUPADD_PARAM_${PN} = "-g 880 mei" | ||
23 | |||
24 | SYSTEMD_PACKAGES = "${PN}" | ||
25 | |||
26 | COMPATIBLE_HOST_libc-musl = 'null' | ||
27 | |||
28 | # systemd is the default so they are installed when sysvinit is not selected as INIT_SYSTEM | ||
29 | EXTRA_OECMAKE = "-DCMAKE_SKIP_RPATH=ON \ | ||
30 | -DINIT_SYSTEM=${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'SysVinit', 'systemd', d)} \ | ||
31 | -DAPPLETS_DIR=${libdir}/dal/applets \ | ||
32 | -DAPP_REPO_DIR=${localstatedir}/cache/dal/applet_repository \ | ||
33 | " | ||
34 | |||
35 | do_install_append () { | ||
36 | install -d ${D}${localstatedir}/cache/dal/applet_repository | ||
37 | |||
38 | chown -R jhi ${D}${localstatedir}/cache/dal/applet_repository | ||
39 | chgrp -R mei ${D}${localstatedir}/cache/dal/applet_repository | ||
40 | |||
41 | install -d ${D}${bindir} | ||
42 | install -m 755 ${B}/bin_linux/smoketest ${D}${bindir} | ||
43 | install -m 755 ${B}/bin_linux/bist ${D}${bindir} | ||
44 | |||
45 | install -d ${D}${libdir}/dal/smoketest/applets | ||
46 | cp -r ${S}/test/smoketest/applets/* ${D}${libdir}/dal/smoketest/applets/ | ||
47 | } | ||
48 | |||
49 | PACKAGES =+ "${PN}-test" | ||
50 | |||
51 | FILES_${PN}-dev = "" | ||
52 | |||
53 | FILES_${PN} = "\ | ||
54 | ${sbindir} \ | ||
55 | ${sysconfdir} \ | ||
56 | ${libdir} \ | ||
57 | ${libdir}/dal/applets \ | ||
58 | ${systemd_system_unitdir} \ | ||
59 | ${localstatedir}/cache/dal/applet_repository \ | ||
60 | " | ||
61 | |||
62 | FILES_${PN}-test = "\ | ||
63 | ${bindir} \ | ||
64 | ${libdir}/dal/smoketest/applets \ | ||
65 | " | ||
diff --git a/recipes-support/libipt/libipt_2.1.2.bb b/recipes-support/libipt/libipt_2.1.2.bb new file mode 100644 index 00000000..edc9c371 --- /dev/null +++ b/recipes-support/libipt/libipt_2.1.2.bb | |||
@@ -0,0 +1,34 @@ | |||
1 | SUMMARY = "Intel(R) Processor Trace Decoder Library" | ||
2 | DESCRIPTION = "The Intel Processor Trace (Intel PT) Decoder Library is Intel's \ | ||
3 | reference implementation for decoding Intel PT. It can be used as a standalone \ | ||
4 | library or it can be partially or fully integrated into your tool." | ||
5 | HOMEPAGE = "https://github.com/intel/libipt" | ||
6 | |||
7 | LICENSE = "BSD-3-Clause" | ||
8 | LIC_FILES_CHKSUM = "file://LICENSE;md5=491799fd9431e57ad52cb0ef3497afce" | ||
9 | |||
10 | inherit pkgconfig cmake | ||
11 | |||
12 | S = "${WORKDIR}/git" | ||
13 | |||
14 | SRC_URI = "git://github.com/intel/libipt.git;protocol=https;branch=stable/v2.1" | ||
15 | |||
16 | SRCREV = "ffc548e5fbc2fa3e9795d4593f861e1df99cf906" | ||
17 | |||
18 | EXTRA_OECMAKE += " \ | ||
19 | -DPTDUMP=ON \ | ||
20 | -DPTTC=ON \ | ||
21 | -DPTSEG=ON \ | ||
22 | -DCMAKE_SKIP_RPATH=ON \ | ||
23 | " | ||
24 | |||
25 | do_install:append() { | ||
26 | install -d ${D}${bindir}/libipt | ||
27 | install -d ${D}${bindir}/libipt/tests | ||
28 | |||
29 | cp -r ${B}/bin/* ${D}${bindir}/libipt/ | ||
30 | cp -r ${S}/test/src/* ${D}${bindir}/libipt/tests | ||
31 | } | ||
32 | |||
33 | FILES:${PN}-test = "${bindir}" | ||
34 | PACKAGES =+ "${PN}-test" | ||
diff --git a/recipes-support/sbsigntool/sbsigntool-native_git.bb b/recipes-support/sbsigntool/sbsigntool-native_git.bb deleted file mode 100644 index 65546c5c..00000000 --- a/recipes-support/sbsigntool/sbsigntool-native_git.bb +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | DESCRIPTION = "Utility for signing and verifying files for UEFI Secure Boot" | ||
2 | LICENSE = "GPLv3 & LGPL-2.1 & LGPL-3.0 & MIT" | ||
3 | |||
4 | # sbsigntool statically links to libccan.a which is built with modules | ||
5 | # passed to "create-ccan-tree" (and their dependencies). Therefore, | ||
6 | # we also keep track of all the ccan module licenses. | ||
7 | LIC_FILES_CHKSUM = "file://LICENSE.GPLv3;md5=9eef91148a9b14ec7f9df333daebc746 \ | ||
8 | file://COPYING;md5=a7710ac18adec371b84a9594ed04fd20 \ | ||
9 | file://lib/ccan.git/ccan/endian/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | ||
10 | file://lib/ccan.git/ccan/htable/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | ||
11 | file://lib/ccan.git/ccan/list/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | ||
12 | file://lib/ccan.git/ccan/read_write_all/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | ||
13 | file://lib/ccan.git/ccan/talloc/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | ||
14 | file://lib/ccan.git/ccan/typesafe_cb/LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1 \ | ||
15 | file://lib/ccan.git/ccan/failtest/LICENSE;md5=6a6a8e020838b23406c81b19c1d46df6 \ | ||
16 | file://lib/ccan.git/ccan/tlist/LICENSE;md5=6a6a8e020838b23406c81b19c1d46df6 \ | ||
17 | file://lib/ccan.git/ccan/time/LICENSE;md5=838c366f69b72c5df05c96dff79b35f2 \ | ||
18 | " | ||
19 | |||
20 | # The original upstream is git://kernel.ubuntu.com/jk/sbsigntool but it has | ||
21 | # not been maintained and many patches have been backported in this repo. | ||
22 | SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git;protocol=https;name=sbsigntools \ | ||
23 | git://github.com/rustyrussell/ccan.git;protocol=https;destsuffix=git/lib/ccan.git;name=ccan \ | ||
24 | file://0001-configure-Fixup-build-dependencies-for-cross-compili.patch \ | ||
25 | " | ||
26 | |||
27 | SRCREV_sbsigntools ?= "216dbd3331a7e14ff79cc4dd68c29896f1152ae4" | ||
28 | SRCREV_ccan ?= "b1f28e17227f2320d07fe052a8a48942fe17caa5" | ||
29 | SRCREV_FORMAT = "sbsigntools_ccan" | ||
30 | |||
31 | DEPENDS = "binutils-native gnu-efi-native help2man-native openssl-native util-linux-native" | ||
32 | |||
33 | PV = "0.9.2-git${SRCPV}" | ||
34 | |||
35 | S = "${WORKDIR}/git" | ||
36 | |||
37 | inherit native autotools pkgconfig | ||
38 | |||
39 | do_configure_prepend() { | ||
40 | cd ${S} | ||
41 | |||
42 | sed -i s#RECIPE_SYSROOT#${RECIPE_SYSROOT_NATIVE}#g configure.ac | ||
43 | |||
44 | if [ ! -e lib/ccan ]; then | ||
45 | |||
46 | # Use empty SCOREDIR because 'make scores' is not run. | ||
47 | # The default setting depends on (non-whitelisted) host tools. | ||
48 | sed -i -e 's#^\(SCOREDIR=\).*#\1#' lib/ccan.git/Makefile | ||
49 | |||
50 | lib/ccan.git/tools/create-ccan-tree \ | ||
51 | --build-type=automake lib/ccan \ | ||
52 | talloc read_write_all build_assert array_size endian | ||
53 | fi | ||
54 | |||
55 | # Create generatable docs from git | ||
56 | ( | ||
57 | echo "Authors of sbsigntool:" | ||
58 | echo | ||
59 | git log --format='%an' | sort -u | sed 's,^,\t,' | ||
60 | ) > AUTHORS | ||
61 | |||
62 | # Generate simple ChangeLog | ||
63 | git log --date=short --format='%ad %t %an <%ae>%n%n * %s%n' > ChangeLog | ||
64 | |||
65 | cd ${B} | ||
66 | } | ||
67 | |||
68 | def efi_arch(d): | ||
69 | import re | ||
70 | harch = d.getVar("HOST_ARCH") | ||
71 | if re.match("i[3456789]86", harch): | ||
72 | return "ia32" | ||
73 | return harch | ||
74 | |||
75 | EXTRA_OEMAKE = "\ | ||
76 | INCLUDES+='-I${S}/lib/ccan.git/ \ | ||
77 | -I${STAGING_INCDIR_NATIVE}/efi \ | ||
78 | -I${STAGING_INCDIR_NATIVE} \ | ||
79 | -I${STAGING_INCDIR_NATIVE}/efi/${@efi_arch(d)}' \ | ||
80 | " | ||
diff --git a/recipes-support/sbsigntool/sbsigntool/0001-configure-Fixup-build-dependencies-for-cross-compili.patch b/recipes-support/sbsigntool/sbsigntool/0001-configure-Fixup-build-dependencies-for-cross-compili.patch deleted file mode 100644 index ef686511..00000000 --- a/recipes-support/sbsigntool/sbsigntool/0001-configure-Fixup-build-dependencies-for-cross-compili.patch +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | From c3533b8da1e1425801d2fc0bcd231e13d593f16b Mon Sep 17 00:00:00 2001 | ||
2 | From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> | ||
3 | Date: Tue, 19 Feb 2019 20:07:45 +0800 | ||
4 | Subject: [PATCH] configure: Fixup build dependencies for cross-compiling | ||
5 | |||
6 | When cross-compiling, custom header files and libraries need to be | ||
7 | specified. sbsign assumes that all the dependencies are located | ||
8 | under /usr/include and /usr/lib. | ||
9 | |||
10 | Prepend these paths with a placeholder that can be replaced with the | ||
11 | actual paths once they are resolved. | ||
12 | |||
13 | Upstream status: inappropriate [OE specific] | ||
14 | |||
15 | Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> | ||
16 | |||
17 | Taken from : | ||
18 | https://github.com/intel/luv-yocto/tree/master/meta-luv/recipes-devtools/sbsigntool/sbsigntool | ||
19 | |||
20 | Corrected typo error and ported to version 0.9.2 | ||
21 | |||
22 | Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> | ||
23 | --- | ||
24 | configure.ac | 7 +++++-- | ||
25 | 1 file changed, 5 insertions(+), 2 deletions(-) | ||
26 | |||
27 | diff --git a/configure.ac b/configure.ac | ||
28 | index 1459e91..3e34c8d 100644 | ||
29 | --- a/configure.ac | ||
30 | +++ b/configure.ac | ||
31 | @@ -70,7 +70,10 @@ AM_CONDITIONAL(TEST_BINARY_FORMAT, [ test "$EFI_ARCH" = "arm" -o "$EFI_ARCH" = " | ||
32 | ## | ||
33 | # no consistent view of where gnu-efi should dump the efi stuff, so find it | ||
34 | ## | ||
35 | -for path in /lib /lib64 /usr/lib /usr/lib64 /usr/lib32 /lib/efi /lib64/efi /usr/lib/efi /usr/lib64/efi /usr/lib/gnuefi /usr/lib64/gnuefi ; do | ||
36 | +for path in RECIPE_SYSROOT/lib RECIPE_SYSROOT/lib64 RECIPE_SYSROOT/usr/lib \ | ||
37 | + RECIPE_SYSROOT/usr/lib64 RECIPE_SYSROOT/usr/lib32 \ | ||
38 | + RECIPE_SYSROOT/lib/efi RECIPE_SYSROOT/lib64/efi \ | ||
39 | + RECIPE_SYSROOT/usr/lib/efi RECIPE_SYSROOT/usr/lib64/efi; do | ||
40 | if test -e $path/crt0-efi-$EFI_ARCH.o; then | ||
41 | CRTPATH=$path | ||
42 | fi | ||
43 | @@ -79,7 +82,7 @@ if test -z "$CRTPATH"; then | ||
44 | AC_MSG_ERROR([cannot find the gnu-efi crt path]) | ||
45 | fi | ||
46 | |||
47 | -EFI_CPPFLAGS="-I/usr/include/efi -I/usr/include/efi/$EFI_ARCH \ | ||
48 | +EFI_CPPFLAGS="-IRECIPE_SYSROOT/usr/include/efi -IRECIPE_SYSROOT/usr/include/efi/$EFI_ARCH \ | ||
49 | -DEFI_FUNCTION_WRAPPER" | ||
50 | CPPFLAGS_save="$CPPFLAGS" | ||
51 | CPPFLAGS="$CPPFLAGS $EFI_CPPFLAGS" | ||
52 | -- | ||
53 | 2.7.4 | ||
54 | |||
diff --git a/wic/grub-bootdisk-microcode.wks.in b/wic/grub-bootdisk-microcode.wks.in index d83b1dfb..7dc66f98 100644 --- a/wic/grub-bootdisk-microcode.wks.in +++ b/wic/grub-bootdisk-microcode.wks.in | |||
@@ -9,4 +9,4 @@ part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 | |||
9 | 9 | ||
10 | part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid | 10 | part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid |
11 | 11 | ||
12 | bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 ${APPEND}" | 12 | bootloader --ptable gpt --timeout=5 --append=" rootfstype=ext4 " |
diff --git a/wic/image-installer.wks.in b/wic/image-installer.wks.in index 4de318f6..933e8d85 100644 --- a/wic/image-installer.wks.in +++ b/wic/image-installer.wks.in | |||
@@ -5,4 +5,4 @@ part /boot --source bootimg-efi --sourceparams="loader=${EFI_PROVIDER},title=ins | |||
5 | 5 | ||
6 | part / --source bootimg-partition --ondisk sda --fstype=ext4 --label image --use-uuid --align 1024 | 6 | part / --source bootimg-partition --ondisk sda --fstype=ext4 --label image --use-uuid --align 1024 |
7 | 7 | ||
8 | bootloader --ptable gpt --timeout=5 --append="rootwait ${APPEND}" | 8 | bootloader --ptable gpt --timeout=5 --append=" rootwait " |
diff --git a/wic/systemd-bootdisk-microcode.wks.in b/wic/systemd-bootdisk-microcode.wks.in index 03528950..925c1fa3 100644 --- a/wic/systemd-bootdisk-microcode.wks.in +++ b/wic/systemd-bootdisk-microcode.wks.in | |||
@@ -10,4 +10,4 @@ part / --source rootfs --ondisk sda --fstype=ext4 --label platform --align 1024 | |||
10 | 10 | ||
11 | part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid | 11 | part swap --ondisk sda --size 44 --label swap1 --fstype=swap --use-uuid |
12 | 12 | ||
13 | bootloader --ptable gpt --timeout=5 --append="rootfstype=ext4 ${APPEND}" | 13 | bootloader --ptable gpt --timeout=5 --append=" rootfstype=ext4 " |