mirror of
git://git.yoctoproject.org/meta-intel
synced 2026-01-01 13:58:05 +00:00
Compare commits
No commits in common. "master" and "15.0-hardknott-3.3" have entirely different histories.
master
...
15.0-hardk
87
CHANGELOG
Normal file
87
CHANGELOG
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
This file will only list major changes that occur within a release.
|
||||
For a full list of changes, view the git log of the repository.
|
||||
|
||||
Rocko Release 11/2017
|
||||
=====================
|
||||
|
||||
Moved qat support to separate layer
|
||||
-----------------------------------
|
||||
Quick Assist Technology (QAT) is more middleware and should not be part of the
|
||||
core BSP. The new layer can be found here:
|
||||
https://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-qat/
|
||||
|
||||
Moved dpdk support to separate layer
|
||||
------------------------------------
|
||||
We had some requests to make DPDK standalone so that it could be included
|
||||
without bringing in anything else from meta-intel, as it is not specific to
|
||||
Intel(R) hardware. The new layer is located here:
|
||||
https://git.yoctoproject.org/cgit/cgit.cgi/meta-dpdk/
|
||||
|
||||
Added support for out-of-tree iwlwifi drivers
|
||||
---------------------------------------------
|
||||
Backport-iwlwifi out-of-tree wifi modules are now available via meta-intel.
|
||||
Backport-iwlwifi brings the latest iwlwifi drivers to almost any kernel
|
||||
Note that mac80211 and cfg80211 backports are also necessary, which will most
|
||||
likely cause incompatibility with other in-tree wifi drivers.
|
||||
See https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi for more info.
|
||||
|
||||
Added support for out-of-tree ixgbe drivers
|
||||
-------------------------------------------
|
||||
The out-of-tree ixgbe drivers bring ixgbe support to nearly any kernel. See
|
||||
here: http://www.intel.com/network/connectivity/products/server_adapters.htm
|
||||
|
||||
Added an implementation of Secure Boot
|
||||
--------------------------------------
|
||||
meta-intel now supports a simple Secure Boot implementation. This implementation
|
||||
consists of a single binary consisting of an EFI stub, the kernel, an
|
||||
initrd, and a kernel command line. The binary is then signed via keys defined by
|
||||
the variables SECUREBOOT_SIGNING_KEY and SECUREBOOT_SIGNING_CERT. These keys
|
||||
should match the keys embedded in your hardware's firmware.
|
||||
See documentation/secureboot/README for more information on this feature.
|
||||
|
||||
Improved Yocto Project Compatibility status
|
||||
-------------------------------------------
|
||||
The common layer should now be considered Yocto Project compatible - it should
|
||||
no longer modify OE-core values when adding the layer to your bblayers.conf.
|
||||
The meta-tlk layer is still not Yocto Project compatible, however.
|
||||
|
||||
Pyro Release 5/2017
|
||||
===================
|
||||
|
||||
Changed default kernel provider from linux-yocto to linux-intel.
|
||||
----------------------------------------------------------------
|
||||
Linux-intel is an Intel(R)-maintained kernel based on the latest stable
|
||||
branch, along with backports from upstream to better support Intel(R)
|
||||
hardware. The intel-linux kernel also has a branch with the preempt-rt
|
||||
patches applied, providing a preempt-rt kernel with no additional work.
|
||||
|
||||
Added QEMU support.
|
||||
-------------------
|
||||
We now build several virtio drivers into the kernel by default, and
|
||||
have qemuboot.conf files for intel-corei7-64 and intel-core2-32
|
||||
targets. This allows one to do basic testing on meta-intel images
|
||||
without having to use hardware. The virtio drivers are added via
|
||||
KERNEL_FEATURES_INTEL_COMMON. This prevents them from being added to
|
||||
custom kernels by default. They can be removed by adding the
|
||||
following to a conf or kernel bbappend file:
|
||||
KERNEL_FEATURES_INTEL_COMMON_remove = “cfg/virtio.scc”
|
||||
OVMF firmware is also built and can be used in order to emulate a UEFI
|
||||
environment. A full runqemu command line for intel-corei7-64 could look
|
||||
like this:
|
||||
runqemu core-image-minimal intel-corei7-64 wic ovmf
|
||||
|
||||
Musl support
|
||||
------------
|
||||
Meta-intel is now compatible with the musl C library. You can specify musl
|
||||
As your C library by adding the following to your local.conf:
|
||||
TCLIBC = “musl”
|
||||
Note: there is a known failure with DPDK.
|
||||
|
||||
X32 support
|
||||
-----------
|
||||
The meta-intel layer can now build with the x32 tune settings in a multi-lib
|
||||
setting, it will not work in as the primary MACHINE tune as the bootloader needs
|
||||
to be built as a 64bit binary. The setup for this would be as follows:
|
||||
require conf/multilib.conf
|
||||
MULTILIBS = "multilib:libx32
|
||||
DEFAULTTUNE_virtclass-multilib-libx32 = "corei7-64-x32"
|
||||
32
MAINTAINERS
Normal file
32
MAINTAINERS
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
This file contains a list of BSP maintainers for the BSPs contained in
|
||||
the meta-intel repository.
|
||||
|
||||
The purpose of this file is to provide contact information for
|
||||
specific BSPs and other code contained within meta-intel. You should
|
||||
address questions and patches for a particular BSP or other code to
|
||||
the appropriate maintainer listed in this file, cc'ing the meta-intel
|
||||
mailing list. This ensures that your question or patch will be
|
||||
addressed by the appropriate person, and that it will be seen by other
|
||||
users who may be facing similar problems or questions.
|
||||
|
||||
Please see the top-level README file for guidelines relating to the
|
||||
details of submitting patches, reporting problems, or asking questions
|
||||
about any of the BSPs or other recipes contained within meta-intel.
|
||||
|
||||
Descriptions of section entries:
|
||||
|
||||
M: Mail patches to: FullName <address@domain>
|
||||
F: Files and directories with wildcard patterns.
|
||||
A trailing slash includes all files and subdirectory files.
|
||||
F: common/ all files in and below common
|
||||
F: common/* all files in common, but not below
|
||||
One pattern per line. Multiple F: lines acceptable.
|
||||
|
||||
Please keep this list in alphabetical order.
|
||||
|
||||
Maintainers List (try to look for most precise areas first)
|
||||
|
||||
-----------------------------------
|
||||
|
||||
M: Anuj Mittal <anuj.mittal@intel.com>
|
||||
F: *
|
||||
459
README
Normal file
459
README
Normal file
|
|
@ -0,0 +1,459 @@
|
|||
meta-intel
|
||||
==========
|
||||
|
||||
This README file contains information on building and booting
|
||||
meta-intel BSP layers. Please see the corresponding sections below
|
||||
for details.
|
||||
|
||||
|
||||
Yocto Project Compatible
|
||||
========================
|
||||
|
||||
The BSPs contained in this layer are compatible with the Yocto Project
|
||||
as per the requirements listed here:
|
||||
|
||||
https://www.yoctoproject.org/webform/yocto-project-compatible-registration
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
This layer depends on:
|
||||
|
||||
URI: git://git.openembedded.org/bitbake
|
||||
|
||||
URI: git://git.openembedded.org/openembedded-core
|
||||
layers: meta
|
||||
branch: master
|
||||
|
||||
|
||||
Table of Contents
|
||||
=================
|
||||
|
||||
I. Overview
|
||||
II. Building and booting meta-intel BSP layers
|
||||
a. Building the intel-common BSP layers
|
||||
b. Booting the intel-common BSP images
|
||||
c. Building the installer image
|
||||
III. Technical Miscellany
|
||||
Benefits of using meta-intel
|
||||
The intel-common kernel package architecture
|
||||
Intel-specific machine features
|
||||
IV. Tested Hardware
|
||||
V. Guidelines for submitting patches
|
||||
|
||||
|
||||
I. Overview
|
||||
===========
|
||||
|
||||
This is the location for Intel-maintained BSPs.
|
||||
|
||||
For details on the intel-common, see the information below.
|
||||
|
||||
For all others, please see the README files contained in the
|
||||
individual BSP layers for BSP-specific information.
|
||||
|
||||
If you have problems with or questions about a particular BSP, please
|
||||
contact the maintainer listed in the MAINTAINERS file directly (cc:ing
|
||||
the Yocto mailing list puts it in the archive and helps other people
|
||||
who might have the same questions in the future), but please try to do
|
||||
the following first:
|
||||
|
||||
- look in the Yocto Project Bugzilla
|
||||
(http://bugzilla.yoctoproject.org/) to see if a problem has
|
||||
already been reported
|
||||
|
||||
- look through recent entries of the meta-intel
|
||||
(https://lists.yoctoproject.org/pipermail/meta-intel/) and Yocto
|
||||
(https://lists.yoctoproject.org/pipermail/yocto/) mailing list
|
||||
archives to see if other people have run into similar problems or
|
||||
had similar questions answered.
|
||||
|
||||
If you believe you have encountered a bug, you can open a new bug and
|
||||
enter the details in the Yocto Project Bugzilla
|
||||
(http://bugzilla.yoctoproject.org/). If you're relatively certain
|
||||
that it's a bug against the BSP itself, please use the 'Yocto Project
|
||||
Components: BSPs | meta-intel' category for the bug; otherwise, please
|
||||
submit the bug against the most likely category for the problem - if
|
||||
you're wrong, it's not a big deal and the bug will be recategorized
|
||||
upon triage.
|
||||
|
||||
|
||||
II. Building and booting meta-intel BSP layers
|
||||
==============================================
|
||||
|
||||
The following sections contain information on building and booting the
|
||||
BSPs contained in the meta-intel layer.
|
||||
|
||||
Note that these instructions specifically cover the intel-common, which
|
||||
may or may not be applicable to other BSPs contained in this layer - if
|
||||
a given BSP contains its own README, that version should be used instead,
|
||||
and these instructions can be ignored.
|
||||
|
||||
a. Building the intel-common BSP layers
|
||||
-------------------------------------------------
|
||||
|
||||
In order to build an image with BSP support for a given release, you
|
||||
need to download the corresponding BSP tarball from the 'Board Support
|
||||
Package (BSP) Downloads' page of the Yocto Project website (or
|
||||
equivalently, check out the appropriate branch from the meta-intel git
|
||||
repository, see below). For the intel-common BSPs, those tarballs would
|
||||
correspond to the following choices in the BSP downloads section:
|
||||
|
||||
- Intel-core2-32 Intel® Common Core BSP (Intel-core2-32)
|
||||
- Intel-corei7-64 Intel® Common Core BSP (Intel-corei7-64)
|
||||
|
||||
The intel-* BSPs, also known as the intel-common BSPs, provide a few
|
||||
carefully selected tune options and generic hardware support to cover
|
||||
the majority of current Intel CPUs and devices. The naming follows the
|
||||
convention of intel-<TUNE>-<BITS>, where TUNE is the gcc cpu-type
|
||||
(used with mtune and march typically) and BITS is either 32 bit or 64
|
||||
bit.
|
||||
|
||||
Having done that, and assuming you extracted the BSP tarball contents
|
||||
at the top-level of your yocto build tree, you can build a BSP image
|
||||
by adding the location of the meta-intel layer to bblayers.conf e.g.:
|
||||
|
||||
yocto/meta-intel \
|
||||
|
||||
To enable a particular machine, you need to add a MACHINE line naming
|
||||
the BSP to the local.conf file:
|
||||
|
||||
MACHINE ?= "xxx"
|
||||
|
||||
where 'xxx' is replaced by one of the following BSP names:
|
||||
|
||||
- intel-core2-32
|
||||
|
||||
This BSP is optimized for the Core2 family of CPUs as well as all
|
||||
Atom CPUs prior to the Silvermont core.
|
||||
|
||||
- intel-corei7-64
|
||||
|
||||
This BSP is optimized for Nehalem and later Core and Xeon CPUs as
|
||||
well as Silvermont and later Atom CPUs, such as the Baytrail SoCs.
|
||||
|
||||
You should then be able to build an image as such:
|
||||
|
||||
$ source oe-init-build-env
|
||||
$ bitbake core-image-sato
|
||||
|
||||
At the end of a successful build, you should have an image that
|
||||
you can boot from a USB flash drive (see instructions on how to do
|
||||
that below, in the section 'Booting the intel-common BSP images').
|
||||
|
||||
As an alternative to downloading the BSP tarball, you can also work
|
||||
directly from the meta-intel git repository. For each BSP in the
|
||||
'meta-intel' repository, there are multiple branches, one
|
||||
corresponding to each major release starting with 'laverne' (0.90), in
|
||||
addition to the latest code which tracks the current master (note that
|
||||
not all BSPs are present in every release). Instead of extracting
|
||||
a BSP tarball at the top level of your yocto build tree, you can
|
||||
equivalently check out the appropriate branch from the meta-intel
|
||||
repository at the same location.
|
||||
|
||||
b. Booting the intel-common BSP images
|
||||
--------------------------------------
|
||||
|
||||
If you've built your own image, either from the downloaded BSP layer
|
||||
or from the meta-intel git repository, you'll find the bootable
|
||||
image in the build/tmp/deploy/images/xxx directory, where again
|
||||
'xxx' refers to the machine name used in the build.
|
||||
|
||||
Under Linux, insert a USB flash drive. Assuming the USB flash drive
|
||||
takes device /dev/sdf, use dd to copy the image to it. Before the image
|
||||
can be burned onto a USB drive, it should be un-mounted. Some Linux distros
|
||||
may automatically mount a USB drive when it is plugged in. Using USB device
|
||||
/dev/sdf as an example, find all mounted partitions:
|
||||
|
||||
$ mount | grep sdf
|
||||
|
||||
and un-mount those that are mounted, for example:
|
||||
|
||||
$ umount /dev/sdf1
|
||||
$ umount /dev/sdf2
|
||||
|
||||
Now burn the image onto the USB drive:
|
||||
|
||||
$ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress
|
||||
$ sync
|
||||
$ eject /dev/sdf
|
||||
|
||||
This should give you a bootable USB flash device. Insert the device
|
||||
into a bootable USB socket on the target, and power on. This should
|
||||
result in a system booted to the Sato graphical desktop.
|
||||
|
||||
If you want a terminal, use the arrows at the top of the UI to move to
|
||||
different pages of available applications, one of which is named
|
||||
'Terminal'. Clicking that should give you a root terminal.
|
||||
|
||||
If you want to ssh into the system, you can use the root terminal to
|
||||
ifconfig the IP address and use that to ssh in. The root password is
|
||||
empty, so to log in type 'root' for the user name and hit 'Enter' at
|
||||
the Password prompt: and you should be in.
|
||||
|
||||
If you find you're getting corrupt images on the USB (it doesn't show
|
||||
the syslinux boot: prompt, or the boot: prompt contains strange
|
||||
characters), try doing this first:
|
||||
|
||||
$ dd if=/dev/zero of=/dev/sdf bs=1M count=512
|
||||
|
||||
c. Building the installer image
|
||||
-----------------------------------------------
|
||||
|
||||
If you plan to install your image to your target machine, you can build a wic
|
||||
based installer image instead of default wic image. To build it, you need to
|
||||
add below configuration to local.conf :
|
||||
|
||||
WKS_FILE = "image-installer.wks.in"
|
||||
IMAGE_FSTYPES_append = " ext4"
|
||||
IMAGE_TYPEDEP_wic = "ext4"
|
||||
INITRD_IMAGE_LIVE="core-image-minimal-initramfs"
|
||||
do_image_wic[depends] += "${INITRD_IMAGE_LIVE}:do_image_complete"
|
||||
do_rootfs[depends] += "virtual/kernel:do_deploy"
|
||||
IMAGE_BOOT_FILES_append = "\
|
||||
${KERNEL_IMAGETYPE} \
|
||||
microcode.cpio \
|
||||
${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.ext4;rootfs.img \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', 'grub-efi-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', '${IMAGE_ROOTFS}/boot/EFI/BOOT/grub.cfg;EFI/BOOT/grub.cfg', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', 'systemd-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/loader.conf;loader/loader.conf ', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/entries/boot.conf;loader/entries/boot.conf', '', d)} "
|
||||
|
||||
Burn the wic image onto USB flash device, insert the device to target machine
|
||||
and power on. This should start the installation process.
|
||||
|
||||
III. Technical Miscellany
|
||||
=========================
|
||||
|
||||
Benefits of using meta-intel
|
||||
----------------------------
|
||||
|
||||
Using meta-intel has the following benefits over a generic BSP:
|
||||
|
||||
tune flags
|
||||
++++++++++
|
||||
intel-* MACHINEs each have different compilation flags appropriate for their
|
||||
targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern
|
||||
64-bit Intel Core i microarchitecture, and includes instruction sets up to
|
||||
SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2
|
||||
microarchitecture, and includes instruction sets up to SSE3.
|
||||
|
||||
linux-intel kernel
|
||||
++++++++++++++++++
|
||||
The linux-intel kernel is an initiative to bring better Intel(R) hardware
|
||||
support to the current LTS linux kernel. It contains a base LTS kernel with
|
||||
additional backports from upstream Intel drivers. In addition, a default kernel
|
||||
config containing most features found on Intel boards is supplied via the
|
||||
yocto-kernel-cache.
|
||||
|
||||
graphics stack
|
||||
++++++++++++++
|
||||
Meta-intel provides the latest Intel Graphics Linux Stack drivers to support
|
||||
Intel hardware as defined by the https://01.org/linuxgraphics.
|
||||
|
||||
Other software
|
||||
++++++++++++++
|
||||
* intel ucode - provides the latest microcode updates for Intel processors
|
||||
|
||||
* thermald - which proactively controls thermal, using P-states, T-states, and
|
||||
the Intel power clamp driver.
|
||||
(https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon)
|
||||
|
||||
The intel-common kernel package architecture
|
||||
--------------------------------------------
|
||||
|
||||
These BSPs use what we call the intel-common Linux kernel package
|
||||
architecture. This includes core2-32-intel-common and
|
||||
corei7-64-intel-common. These kernel packages can also be used by any
|
||||
of the BSPs in meta-intel that choose to include the
|
||||
intel-common-pkgarch.inc file.
|
||||
|
||||
To minimize the proliferation of vendor trees, reduce the sources we
|
||||
must support, and consolidate QA efforts, all BSP maintainers are
|
||||
encouraged to make use of the intel-common Linux kernel package
|
||||
architecture.
|
||||
|
||||
Intel-specific machine features
|
||||
-------------------------------
|
||||
|
||||
The meta-intel layer makes some additional machine features available
|
||||
to BSPs. These machine features can be used in a BSP layer in the
|
||||
same way that machine features are used in other layers based on
|
||||
oe-core, via the MACHINE_FEATURES variable.
|
||||
|
||||
Requirements
|
||||
++++++++++++
|
||||
|
||||
The meta-intel-specific machine features are only available to a BSP
|
||||
when the meta-intel layer is included in the build configuration, and
|
||||
the meta-intel.inc file is included in the machine configuration of
|
||||
that BSP.
|
||||
|
||||
To make these features available for your machine, you will need to:
|
||||
|
||||
1. include a configuration line such as the below in bblayers.conf
|
||||
BBLAYERS += "<local path>/meta-intel"
|
||||
2. include the following line in the machine configuration file
|
||||
require conf/machine/include/meta-intel.inc
|
||||
|
||||
Once the above requirements are met, the machine features provided by
|
||||
the meta-intel layer will be available for the BSP to use.
|
||||
|
||||
Available machine features
|
||||
++++++++++++++++++++++++++
|
||||
|
||||
Currently, the meta-intel layer makes the following set of
|
||||
Intel-specific machine features available:
|
||||
|
||||
* intel-ucode
|
||||
|
||||
These machine features can be included by listing them in the
|
||||
MACHINE_FEATURES variable in the machine configuration file. For
|
||||
example:
|
||||
|
||||
MACHINE_FEATURES += "intel-ucode"
|
||||
|
||||
Machine feature details
|
||||
+++++++++++++++++++++++
|
||||
|
||||
* intel-ucode
|
||||
|
||||
This feature provides support for microcode updates to Intel
|
||||
processors. The intel-ucode feature runs at early boot and uses
|
||||
the microcode data file added by the feature into the BSP's
|
||||
initrd. It also puts the userland microcode-updating tool,
|
||||
iucode_tool, into the target images along with the microcode data
|
||||
file.
|
||||
|
||||
Q. Why might a user want to enable the intel-ucode feature?
|
||||
|
||||
A. Intel releases microcode updates to correct processor behavior
|
||||
as documented in the respective processor specification
|
||||
updates. While the normal approach to getting such microcode
|
||||
updates is via a BIOS upgrade, this can be an administrative
|
||||
hassle and not always possible in the field. The intel-ucode
|
||||
feature enables the microcode update capability present in the
|
||||
Linux kernel. It provides an easy path for upgrading processor
|
||||
microcode without the need to change the BIOS. If the feature
|
||||
is enabled, it is also possible to update the existing target
|
||||
images with a newer microcode update in the future.
|
||||
|
||||
Q. How would a user bundle only target-specific microcode in the
|
||||
target image?
|
||||
|
||||
A. The Intel microcode data file released by Intel contains
|
||||
microcode updates for multiple processors. If the BSP image is
|
||||
meant to run on only a certain subset of processor types, a
|
||||
processor-specific subset of microcode can be bundled into the
|
||||
target image via the UCODE_FILTER_PARAMETERS variable. This
|
||||
works by listing a sequence of iucode-tool parameters in the
|
||||
UCODE_FILTER_PARAMETERS variable, which in this case will
|
||||
select only the specific microcode relevant to the BSP. For
|
||||
more information on the underlying parameters refer to the
|
||||
iucode-tool manual page at http://manned.org/iucode-tool
|
||||
|
||||
To define a set of parameters for microcode-filtering via the
|
||||
UCODE_FILTER_PARAMETERS variable, one needs to identify the
|
||||
cpuid signatures of all the processors the BSP is meant to run
|
||||
on. One way to determine the cpuid signature for a specific
|
||||
processor is to build and run an intel-ucode-feature-enabled
|
||||
image on the target hardware, without first assigning any value
|
||||
to the UCODE_FILTER_PARAMETERS variable, and then once the
|
||||
image is booted, run the "ucode_tool -S" command to have the
|
||||
ucode tool scan the system for processor signatures. These
|
||||
signatures can then be used in the UCODE_FILTER_PARAMETERS
|
||||
variable in conjunction with -s parameter. For example, for
|
||||
the fri2 BSP, the cpuid can be determined as such:
|
||||
|
||||
[root@fri2 ~]# iucode_tool -S
|
||||
iucode_tool: system has processor(s) with signature 0x00020661
|
||||
|
||||
Given that output, a suitable UCODE_FILTER_PARAMETERS variable
|
||||
definition could be specified in the machine configuration as
|
||||
such:
|
||||
|
||||
UCODE_FILTER_PARAMETERS = "-s 0x00020661"
|
||||
|
||||
Q. Are there any reasons a user might want to disable the
|
||||
intel-ucode feature?
|
||||
|
||||
A. The microcode data file and associated tools occupy a small
|
||||
amount of space (a few KB) on the target image. BSPs which are
|
||||
highly sensitive to target image size and which are not
|
||||
experiencing microcode-related issues might consider not
|
||||
enabling this feature.
|
||||
|
||||
|
||||
IV. Tested Hardware
|
||||
===================
|
||||
|
||||
The following undergo regular basic testing with their respective MACHINE types.
|
||||
Note that both 64-bit and 32-bit firmware is available for the MinnowBoard
|
||||
Turbot, so it is tested against both intel-corei7-64 and intel-core2-32.
|
||||
|
||||
intel-corei7-64:
|
||||
NUC6i5SYH
|
||||
NUC7i7BNH
|
||||
Coffee Lake-H
|
||||
|
||||
intel-core2-32:
|
||||
MinnowBoard Turbot
|
||||
|
||||
|
||||
V. Guidelines for submitting patches
|
||||
====================================
|
||||
|
||||
Please submit any patches against meta-intel BSPs to the meta-intel
|
||||
mailing list (meta-intel@lists.yoctoproject.org). Also, if your patches are
|
||||
available via a public git repository, please also include a URL to
|
||||
the repo and branch containing your patches as that makes it easier
|
||||
for maintainers to grab and test your patches.
|
||||
|
||||
There are patch submission scripts available that will, among other
|
||||
things, automatically include the repo URL and branch as mentioned.
|
||||
Please see the Yocto Project Development Manual sections entitled
|
||||
'Using Scripts to Push a Change Upstream and Request a Pull' and
|
||||
'Using Email to Submit a Patch' for details.
|
||||
|
||||
Regardless of how you submit a patch or patchset, the patches should
|
||||
at minimum follow the suggestions outlined in the 'Submitting a Change
|
||||
to the Yocto Project' section in the Yocto Project Development Manual.
|
||||
Specifically, they should:
|
||||
|
||||
- Include a 'Signed-off-by:' line. A commit can't legally be pulled
|
||||
in without this.
|
||||
|
||||
- Provide a single-line, short summary of the change. This short
|
||||
description should be prefixed by the BSP or recipe name, as
|
||||
appropriate, followed by a colon. Capitalize the first character
|
||||
of the summary (following the colon).
|
||||
|
||||
- For the body of the commit message, provide detailed information
|
||||
that describes what you changed, why you made the change, and the
|
||||
approach you used.
|
||||
|
||||
- If the change addresses a specific bug or issue that is associated
|
||||
with a bug-tracking ID, include a reference to that ID in your
|
||||
detailed description in the following format: [YOCTO #<bug-id>].
|
||||
|
||||
- Pay attention to line length - please don't allow any particular
|
||||
line in the commit message to stretch past 72 characters.
|
||||
|
||||
- For any non-trivial patch, provide information about how you
|
||||
tested the patch, and for any non-trivial or non-obvious testing
|
||||
setup, provide details of that setup.
|
||||
|
||||
Doing a quick 'git log' in meta-intel will provide you with many
|
||||
examples of good example commits if you have questions about any
|
||||
aspect of the preferred format.
|
||||
|
||||
The meta-intel maintainers will do their best to review and/or pull in
|
||||
a patch or patchset within 24 hours of the time it was posted. For
|
||||
larger and/or more involved patches and patchsets, the review process
|
||||
may take longer.
|
||||
|
||||
Please see the meta-intel/MAINTAINERS file for the list of maintainers
|
||||
and their specific areas; it's also a good idea to cc: the specific
|
||||
maintainer, if applicable.
|
||||
35
README.md
35
README.md
|
|
@ -1,35 +0,0 @@
|
|||
# meta-intel
|
||||
|
||||
OpenEmbedded/Yocto BSP layer for Intel platforms.
|
||||
|
||||
## Dependencies
|
||||
|
||||
This layer primarily depends on OpenEmbedded-Core (OE-Core). However, certain
|
||||
recipes may require additional layers to support optional features or
|
||||
programming languages not supported by OE-Core. Such recipes are located within
|
||||
the `dynamic-layers` directory.
|
||||
|
||||
Base dependencies:
|
||||
- [Bitbake](https://git.openembedded.org/bitbake)
|
||||
- [OE-Core](https://git.openembedded.org/openembedded-core)
|
||||
|
||||
Dynamic additional dependencies:
|
||||
|
||||
- [meta-openembedded](https://git.openembedded.org/meta-openembedded/tree/meta-oe)
|
||||
- [meta-python](https://git.openembedded.org/meta-openembedded/tree/meta-python)
|
||||
- [meta-clang](https://github.com/kraj/meta-clang.git)
|
||||
|
||||
|
||||
## Contents
|
||||
|
||||
- [Building and booting meta-intel BSP layers](documentation/building_and_booting.md)
|
||||
- [Intel oneAPI DPC++/C++ Compiler](documentation/dpcpp-compiler.md)
|
||||
- [Build Image with OpenVINO™ toolkit](documentation/openvino.md)
|
||||
- [Tested Hardware](documentation/tested_hardware.md)
|
||||
- [Guidelines for submitting patches](documentation/submitting_patches.md)
|
||||
- [Reporting bugs](documentation/reporting_bugs.md)
|
||||
- [Reporting security bugs](SECURITY.md)
|
||||
|
||||
## Maintainers
|
||||
|
||||
- Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
17
README.sources
Normal file
17
README.sources
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
The sources for the packages comprising the images shipped with this
|
||||
BSP can be found at the following location:
|
||||
|
||||
http://downloads.yoctoproject.org/mirror/sources/
|
||||
|
||||
The metadata used to generate the images shipped with this BSP, in
|
||||
addition to the code contained in this BSP, can be found at the
|
||||
following location:
|
||||
|
||||
http://downloads.yoctoproject.org/releases/yocto/yocto-2.7/poky-warrior-21.0.0.tar.bz2
|
||||
|
||||
The metadata used to generate the images shipped with this BSP, in
|
||||
addition to the code contained in this BSP, can also be found at the
|
||||
following locations:
|
||||
|
||||
git://git.yoctoproject.org/poky.git
|
||||
git://git.yoctoproject.org/meta-intel
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
# Security Policy
|
||||
Intel is committed to rapidly addressing security vulnerabilities affecting our customers and providing clear guidance on the solution, impact, severity and mitigation.
|
||||
|
||||
## Reporting a Vulnerability
|
||||
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).
|
||||
|
||||
151
classes/uefi-comboapp.bbclass
Normal file
151
classes/uefi-comboapp.bbclass
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
# This class brings a more generic version of the UEFI combo app from refkit to meta-intel.
|
||||
# It uses a combo file, containing kernel, initramfs and
|
||||
# command line, presented to the BIOS as UEFI application, by prepending
|
||||
# it with the efi stub obtained from systemd-boot.
|
||||
|
||||
# Don't add syslinux or build an ISO
|
||||
PCBIOS_forcevariable = "0"
|
||||
NOISO_forcevariable = "1"
|
||||
|
||||
# image-live.bbclass will default INITRD_LIVE to the image INITRD_IMAGE creates.
|
||||
# We want behavior to be consistent whether or not "live" is in IMAGE_FSTYPES, so
|
||||
# we default INITRD_LIVE to the INITRD_IMAGE as well.
|
||||
INITRD_IMAGE ?= "core-image-minimal-initramfs"
|
||||
INITRD_LIVE ?= " ${@ ('${DEPLOY_DIR_IMAGE}/' + d.getVar('INITRD_IMAGE', expand=True) + '-${MACHINE}.cpio.gz') if d.getVar('INITRD_IMAGE', True) else ''}"
|
||||
|
||||
do_uefiapp[depends] += " \
|
||||
intel-microcode:do_deploy \
|
||||
systemd-boot:do_deploy \
|
||||
virtual/kernel:do_deploy \
|
||||
"
|
||||
|
||||
# INITRD_IMAGE is added to INITRD_LIVE, which we use to create our initrd, so depend on it if it is set
|
||||
do_uefiapp[depends] += "${@ '${INITRD_IMAGE}:do_image_complete' if d.getVar('INITRD_IMAGE') else ''}"
|
||||
|
||||
# The image does without traditional bootloader.
|
||||
# In its place, instead, it uses a single UEFI executable binary, which is
|
||||
# composed by:
|
||||
# - an UEFI stub
|
||||
# The linux kernel can generate a UEFI stub, however the one from systemd-boot can fetch
|
||||
# the command line from a separate section of the EFI application, avoiding the need to
|
||||
# rebuild the kernel.
|
||||
# - the kernel
|
||||
# - an initramfs (optional)
|
||||
|
||||
def create_uefiapp(d, uuid=None, app_suffix=''):
|
||||
import glob, re
|
||||
from subprocess import check_call
|
||||
|
||||
build_dir = d.getVar('B')
|
||||
deploy_dir_image = d.getVar('DEPLOY_DIR_IMAGE')
|
||||
image_link_name = d.getVar('IMAGE_LINK_NAME')
|
||||
|
||||
cmdline = '%s/cmdline.txt' % build_dir
|
||||
linux = '%s/%s' % (deploy_dir_image, d.getVar('KERNEL_IMAGETYPE'))
|
||||
initrd = '%s/initrd' % build_dir
|
||||
|
||||
stub_path = '%s/linux*.efi.stub' % deploy_dir_image
|
||||
stub = glob.glob(stub_path)[0]
|
||||
m = re.match(r"\S*(ia32|x64)(.efi)\S*", os.path.basename(stub))
|
||||
app = "boot%s%s%s" % (m.group(1), app_suffix, m.group(2))
|
||||
executable = '%s/%s.%s' % (deploy_dir_image, image_link_name, app)
|
||||
|
||||
if d.getVar('INITRD_LIVE'):
|
||||
with open(initrd, 'wb') as dst:
|
||||
for cpio in d.getVar('INITRD_LIVE').split():
|
||||
with open(cpio, 'rb') as src:
|
||||
dst.write(src.read())
|
||||
initrd_cmd = "--add-section .initrd=%s --change-section-vma .initrd=0x3000000 " % initrd
|
||||
else:
|
||||
initrd_cmd = ""
|
||||
|
||||
root = 'root=PARTUUID=%s' % uuid if uuid else ''
|
||||
|
||||
with open(cmdline, 'w') as f:
|
||||
f.write('%s %s' % (d.getVar('APPEND'), root))
|
||||
|
||||
objcopy_cmd = ("objcopy "
|
||||
"--add-section .cmdline=%s --change-section-vma .cmdline=0x30000 "
|
||||
"--add-section .linux=%s --change-section-vma .linux=0x40000 "
|
||||
"%s %s %s") % \
|
||||
(cmdline, linux, initrd_cmd, stub, executable)
|
||||
|
||||
check_call(objcopy_cmd, shell=True)
|
||||
|
||||
python create_uefiapps () {
|
||||
# We must clean up anything that matches the expected output pattern, to ensure that
|
||||
# the next steps do not accidentally use old files.
|
||||
import glob
|
||||
pattern = d.expand('${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi')
|
||||
for old_efi in glob.glob(pattern):
|
||||
os.unlink(old_efi)
|
||||
uuid = d.getVar('DISK_SIGNATURE_UUID')
|
||||
create_uefiapp(d, uuid=uuid)
|
||||
}
|
||||
|
||||
# This is intentionally split into different parts. This way, derived
|
||||
# classes or images can extend the individual parts. We can also use
|
||||
# whatever language (shell script or Python) is more suitable.
|
||||
python do_uefiapp() {
|
||||
bb.build.exec_func('create_uefiapps', d)
|
||||
}
|
||||
|
||||
do_uefiapp[vardeps] += "APPEND DISK_SIGNATURE_UUID INITRD_LIVE KERNEL_IMAGETYPE IMAGE_LINK_NAME"
|
||||
|
||||
uefiapp_deploy_at() {
|
||||
dest=$1
|
||||
for i in ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot*.efi; do
|
||||
target=`basename $i`
|
||||
target=`echo $target | sed -e 's/${IMAGE_LINK_NAME}.//'`
|
||||
cp --preserve=timestamps -r $i $dest/$target
|
||||
done
|
||||
}
|
||||
|
||||
fakeroot do_uefiapp_deploy() {
|
||||
rm -rf ${IMAGE_ROOTFS}/boot/*
|
||||
dest=${IMAGE_ROOTFS}/boot/EFI/BOOT
|
||||
mkdir -p $dest
|
||||
uefiapp_deploy_at $dest
|
||||
}
|
||||
|
||||
do_uefiapp_deploy[depends] += "${PN}:do_uefiapp virtual/fakeroot-native:do_populate_sysroot"
|
||||
|
||||
|
||||
# This decides when/how we add our tasks to the image
|
||||
python () {
|
||||
image_fstypes = d.getVar('IMAGE_FSTYPES', True)
|
||||
initramfs_fstypes = d.getVar('INITRAMFS_FSTYPES', True)
|
||||
|
||||
# Don't add any of these tasks to initramfs images
|
||||
if initramfs_fstypes not in image_fstypes:
|
||||
bb.build.addtask('uefiapp', 'do_image', 'do_rootfs', d)
|
||||
bb.build.addtask('uefiapp_deploy', 'do_image', 'do_rootfs', d)
|
||||
}
|
||||
|
||||
SIGN_AFTER ?= "do_uefiapp"
|
||||
SIGN_BEFORE ?= "do_uefiapp_deploy"
|
||||
SIGNING_DIR ?= "${DEPLOY_DIR_IMAGE}"
|
||||
SIGNING_BINARIES ?= "${IMAGE_LINK_NAME}.boot*.efi"
|
||||
inherit uefi-sign
|
||||
|
||||
# Legacy hddimg support below this line
|
||||
efi_hddimg_populate() {
|
||||
uefiapp_deploy_at "$1"
|
||||
}
|
||||
|
||||
build_efi_cfg() {
|
||||
# The command line is built into the combo app, so this is a null op
|
||||
:
|
||||
}
|
||||
|
||||
populate_kernel_append() {
|
||||
# The kernel and initrd are built into the app, so we don't need these
|
||||
if [ -f $dest/initrd ]; then
|
||||
rm $dest/initrd
|
||||
fi
|
||||
if [ -f $dest/vmlinuz ]; then
|
||||
rm $dest/vmlinuz
|
||||
fi
|
||||
}
|
||||
|
||||
IMAGE_FEATURES[validitems] += "secureboot"
|
||||
50
classes/uefi-sign.bbclass
Normal file
50
classes/uefi-sign.bbclass
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# By default, sign all .efi binaries in ${B} after compiling and before deploying
|
||||
SIGNING_DIR ?= "${B}"
|
||||
SIGNING_BINARIES ?= "*.efi"
|
||||
SIGN_AFTER ?= "do_compile"
|
||||
SIGN_BEFORE ?= "do_deploy"
|
||||
|
||||
python () {
|
||||
import os
|
||||
import hashlib
|
||||
|
||||
# Ensure that if the signing key or cert change, we rerun the uefiapp process
|
||||
if bb.utils.contains('IMAGE_FEATURES', 'secureboot', True, False, d):
|
||||
for varname in ('SECURE_BOOT_SIGNING_CERT', 'SECURE_BOOT_SIGNING_KEY'):
|
||||
filename = d.getVar(varname)
|
||||
if filename is None:
|
||||
bb.fatal('%s is not set.' % varname)
|
||||
if not os.path.isfile(filename):
|
||||
bb.fatal('%s=%s is not a file.' % (varname, filename))
|
||||
with open(filename, 'rb') as f:
|
||||
data = f.read()
|
||||
hash = hashlib.sha256(data).hexdigest()
|
||||
d.setVar('%s_HASH' % varname, hash)
|
||||
|
||||
# Must reparse and thus rehash on file changes.
|
||||
bb.parse.mark_dependency(d, filename)
|
||||
|
||||
bb.build.addtask('uefi_sign', d.getVar('SIGN_BEFORE'), d.getVar('SIGN_AFTER'), d)
|
||||
|
||||
# Original binary needs to be regenerated if the hash changes since we overwrite it
|
||||
# SIGN_AFTER isn't necessarily when it gets generated, but its our best guess
|
||||
d.appendVarFlag(d.getVar('SIGN_AFTER'), 'vardeps', 'SECURE_BOOT_SIGNING_CERT_HASH SECURE_BOOT_SIGNING_KEY_HASH')
|
||||
}
|
||||
|
||||
do_uefi_sign() {
|
||||
if [ -f ${SECURE_BOOT_SIGNING_KEY} ] && [ -f ${SECURE_BOOT_SIGNING_CERT} ]; then
|
||||
for i in `find ${SIGNING_DIR}/ -name '${SIGNING_BINARIES}'`; do
|
||||
sbsign --key ${SECURE_BOOT_SIGNING_KEY} --cert ${SECURE_BOOT_SIGNING_CERT} $i
|
||||
sbverify --cert ${SECURE_BOOT_SIGNING_CERT} $i.signed
|
||||
mv $i.signed $i
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
do_uefi_sign[depends] += "sbsigntool-native:do_populate_sysroot"
|
||||
|
||||
do_uefi_sign[vardeps] += "SECURE_BOOT_SIGNING_CERT_HASH \
|
||||
SECURE_BOOT_SIGNING_KEY_HASH \
|
||||
SIGNING_BINARIES SIGNING_DIR \
|
||||
SIGN_BEFORE SIGN_AFTER \
|
||||
"
|
||||
|
|
@ -1,46 +1,45 @@
|
|||
# This file contains a list of recipe maintainers for meta-intel
|
||||
|
||||
RECIPE_MAINTAINER:pn-backport-iwlwifi = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-core-image-rt = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-core-image-rt-sdk = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-core-image-tiny = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-core-image-minimal-initramfs = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-embree = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-gmmlib = "Lim Siew Hoon <siew.hoon.lim@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-intel-cmt-cat = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-intel-compute-runtime = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-intel-crypto-mb = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-intel-graphics-compiler = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-intel-media-driver = "Lim Siew Hoon <siew.hoon.lim@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-intel-microcode = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-intel-vaapi-driver = "Lim Siew Hoon <siew.hoon.lim@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-ipmctl = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-isa-l = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-ispc = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-itt = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-ixgbe = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-ixgbevf = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-iucode-tool = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-level-zero = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-libipt = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-libva-intel = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-libva-intel-utils = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-libxcam = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-linux-intel = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-linux-intel-rt = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-linux-intel-dev = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-linux-npu-driver = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-lms = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-metee = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-metrics-discovery = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-oidn = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-onednn = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-onedpl = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-onevpl = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-onevpl-intel-gpu = "Yew Chang Ching <chang.ching.yew@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-opencl-clang = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-openvkl = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-ospray = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-rkcommon = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-thermald = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER:pn-xf86-video-ast = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-backport-iwlwifi = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-core-image-rt = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-core-image-rt-sdk = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-core-image-tiny = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-core-image-minimal-initramfs = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-gmmlib = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-hdcp = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-intel-graphics-compiler = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-intel-compute-runtime = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-intel-media-driver = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-intel-mediasdk = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-intel-microcode = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-intel-vaapi-driver = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-ipmctl = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-isa-l = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-itt = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-ixgbe = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-ixgbevf = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-iucode-tool = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-jhi = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-level-zero = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libipt = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libyami = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libyami-utils = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-libxcam = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-linux-intel = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-linux-intel-rt = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-linux-intel-dev = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-lms = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-metee = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-metrics-discovery = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-onednn = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-open-model-zoo = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-opencl-clang = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-openvino-inference-engine = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-openvino-model-optimizer = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-ovmf-shell-image-enrollkeys = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-sbsigntool-native = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-secureboot-selftest-image-signed = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-secureboot-selftest-image-unsigned = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-thermald = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-xf86-video-ast = "Anuj Mittal <anuj.mittal@intel.com>"
|
||||
RECIPE_MAINTAINER_pn-zlib-intel = "Naveen Saini <naveen.kumar.saini@intel.com>"
|
||||
|
|
|
|||
|
|
@ -10,16 +10,15 @@ BBFILE_PATTERN_intel := "^${LAYERDIR}/"
|
|||
BBFILE_PRIORITY_intel = "5"
|
||||
|
||||
# Additional license directories.
|
||||
CUSTOM_LICENSES_PATH = "${LAYERDIR}/custom-licenses"
|
||||
LICENSE_PATH += "${CUSTOM_LICENSES_PATH}"
|
||||
LICENSE_PATH += "${LAYERDIR}/custom-licenses"
|
||||
|
||||
LAYERDEPENDS_intel = "core"
|
||||
LAYERRECOMMENDS_intel = "dpdk"
|
||||
LAYERRECOMMENDS_intel = "dpdk intel-qat"
|
||||
|
||||
# This should only be incremented on significant changes that will
|
||||
# cause compatibility issues with other layers
|
||||
LAYERVERSION_intel = "5"
|
||||
LAYERSERIES_COMPAT_intel = "scarthgap whinlatter"
|
||||
LAYERSERIES_COMPAT_intel = "dunfell gatesgarth hardknott"
|
||||
|
||||
BBFILES_DYNAMIC += " \
|
||||
clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bb \
|
||||
|
|
@ -32,6 +31,10 @@ BBFILES_DYNAMIC += " \
|
|||
|
||||
require ${LAYERDIR}/conf/include/maintainers.inc
|
||||
|
||||
PREFERRED_PROVIDER_zlib ?= "zlib"
|
||||
PREFERRED_PROVIDER_zlib-native ?= "zlib-native"
|
||||
PREFERRED_PROVIDER_nativesdk-zlib ?= "nativesdk-zlib"
|
||||
|
||||
# Use the libva from OE-Core when layer is included but no MACHINE
|
||||
# from meta-intel is being used.
|
||||
PREFERRED_PROVIDER_libva ?= "libva"
|
||||
|
|
@ -41,5 +44,3 @@ PREFERRED_PROVIDER_nativesdk-libva ?= "nativesdk-libva"
|
|||
PREFERRED_PROVIDER_libva-utils ?= "libva-utils"
|
||||
PREFERRED_PROVIDER_libva-utils-native ?= "libva-utils-native"
|
||||
PREFERRED_PROVIDER_nativesdk-libva-utils ?= "nativesdk-libva-utils"
|
||||
|
||||
addpylib ${LAYERDIR}/lib oeqa
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
INTEL_COMMON_PACKAGE_ARCH ?= "${TUNE_PKGARCH}-intel-common"
|
||||
PACKAGE_ARCH:pn-linux-intel = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-linux-intel-rt = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-linux-intel-tiny = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-linux-intel-dev = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-linux-yocto = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-linux-yocto-rt = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-linux-yocto-tiny = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-linux-yocto-dev = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-intel-microcode = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-backport-iwlwifi = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-ixgbe = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH:pn-ixgbevf = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_EXTRA_ARCHS:append = " ${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-intel = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-intel-rt = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-intel-tiny = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-intel-dev = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-yocto = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-yocto-rt = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-yocto-tiny = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-linux-yocto-dev = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-intel-microcode = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-backport-iwlwifi = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-ixgbe = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_ARCH_pn-ixgbevf = "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
PACKAGE_EXTRA_ARCHS_append += "${INTEL_COMMON_PACKAGE_ARCH}"
|
||||
MACHINEOVERRIDES =. "${INTEL_COMMON_PACKAGE_ARCH}:"
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@
|
|||
#
|
||||
|
||||
DEFAULTTUNE ?= "core2-32"
|
||||
require conf/machine/include/x86/tune-core2.inc
|
||||
require conf/machine/include/x86/x86-base.inc
|
||||
require conf/machine/include/tune-core2.inc
|
||||
require conf/machine/include/x86-base.inc
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@
|
|||
#
|
||||
|
||||
DEFAULTTUNE ?= "corei7-64"
|
||||
require conf/machine/include/x86/tune-corei7.inc
|
||||
require conf/machine/include/x86/x86-base.inc
|
||||
require conf/machine/include/tune-corei7.inc
|
||||
require conf/machine/include/x86-base.inc
|
||||
|
|
|
|||
|
|
@ -5,12 +5,17 @@
|
|||
#
|
||||
|
||||
PREFERRED_PROVIDER_virtual/kernel ?= "linux-intel"
|
||||
PREFERRED_PROVIDER_virtual/kernel:poky-tiny ?= "linux-intel"
|
||||
PREFERRED_PROVIDER_virtual/kernel_poky-tiny ?= "linux-intel"
|
||||
|
||||
PREFERRED_VERSION_linux-intel ?= "6.12%"
|
||||
PREFERRED_VERSION_linux-intel-rt ?= "6.12%"
|
||||
PREFERRED_VERSION_linux-intel:poky-altcfg ?= "6.12%"
|
||||
PREFERRED_VERSION_linux-intel-rt:poky-altcfg ?= "6.12%"
|
||||
# Only use the Intel-tuned zlib for target builds to improve reuse
|
||||
PREFERRED_PROVIDER_zlib = "zlib-intel"
|
||||
PREFERRED_PROVIDER_zlib-native = "zlib-native"
|
||||
PREFERRED_PROVIDER_nativesdk-zlib = "nativesdk-zlib"
|
||||
|
||||
PREFERRED_VERSION_linux-intel ?= "5.10%"
|
||||
PREFERRED_VERSION_linux-intel-rt ?= "5.10%"
|
||||
PREFERRED_VERSION_linux-intel_poky-altcfg ?= "5.4%"
|
||||
PREFERRED_VERSION_linux-intel-rt_poky-altcfg ?= "5.4%"
|
||||
|
||||
# Need to point to latest version of libva needed for media components
|
||||
PREFERRED_PROVIDER_libva = "libva-intel"
|
||||
|
|
@ -21,24 +26,29 @@ PREFERRED_PROVIDER_libva-utils = "libva-intel-utils"
|
|||
PREFERRED_PROVIDER_libva-utils-native = "libva-intel-utils-native"
|
||||
PREFERRED_PROVIDER_nativesdk-libva-utils = "nativesdk-libva-intel-utils"
|
||||
|
||||
PREFERRED_VERSION_opencl-clang ?= "${@bb.utils.contains('LLVMVERSION', '10.0.1', '10.0.0', \
|
||||
bb.utils.contains('LLVMVERSION', '11.1.0', '11.0.0', '12.0.0', d), d)}"
|
||||
PREFERRED_VERSION_opencl-clang-native ?= "${@bb.utils.contains('LLVMVERSION', '10.0.1', '10.0.0', \
|
||||
bb.utils.contains('LLVMVERSION', '11.1.0', '11.0.0', '12.0.0', d), d)}"
|
||||
|
||||
XSERVER_X86_ASPEED_AST = "xf86-video-ast \
|
||||
"
|
||||
|
||||
# include the user space intel microcode loading support in the generated images.
|
||||
MACHINE_ESSENTIAL_EXTRA_RDEPENDS:append = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', ' intel-microcode', '', d)}"
|
||||
MACHINE_ESSENTIAL_EXTRA_RDEPENDS_append = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', ' intel-microcode', '', d)}"
|
||||
|
||||
# recommended extra packages common to all intel machines
|
||||
MACHINE_EXTRA_RRECOMMENDS:append = " kernel-modules linux-firmware"
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS:append = " kernel-module-i915 linux-firmware-i915 kernel-module-igc kernel-module-r8152"
|
||||
MACHINE_EXTRA_RRECOMMENDS_append = " kernel-modules linux-firmware"
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS_append = " kernel-module-i915 linux-firmware-i915"
|
||||
|
||||
# for the early boot time kernel microcode loading support,
|
||||
# merge the microcode data in the final initrd image.
|
||||
INITRD_LIVE:prepend = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', '${DEPLOY_DIR_IMAGE}/microcode.cpio ', '', d)}"
|
||||
INITRD_LIVE_prepend = "${@bb.utils.contains('MACHINE_FEATURES', 'intel-ucode', '${DEPLOY_DIR_IMAGE}/microcode.cpio ', '', d)}"
|
||||
|
||||
DISK_SIGNATURE_UUID ??= "deadbeef-dead-beef-dead-beefdeadbeef"
|
||||
|
||||
EFI_PROVIDER ?= "systemd-boot"
|
||||
EFI_PROVIDER:x86-x32 = "grub-efi"
|
||||
EFI_PROVIDER_x86-x32 = "grub-efi"
|
||||
|
||||
# Add general MACHINEOVERRIDE for meta-intel
|
||||
MACHINEOVERRIDES =. "intel-x86-common:"
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# distro content (in particular the kernel) less than qemu.inc.
|
||||
|
||||
# Ensure that qemu gets built when building images.
|
||||
EXTRA_IMAGEDEPENDS += "qemu-system-native qemu-helper-native:do_addto_recipe_sysroot"
|
||||
EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
|
||||
|
||||
# Build ovmf firmware for uefi support in qemu.
|
||||
EXTRA_IMAGEDEPENDS += "ovmf"
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
# For runqemu
|
||||
IMAGE_CLASSES += "qemuboot"
|
||||
QB_SYSTEM_NAME:intel-core2-32 = "qemu-system-i386"
|
||||
QB_CPU:intel-core2-32 = "-cpu coreduo"
|
||||
QB_CPU_KVM:intel-core2-32 = "-cpu kvm32"
|
||||
QB_SYSTEM_NAME_intel-core2-32 = "qemu-system-i386"
|
||||
QB_CPU_intel-core2-32 = "-cpu coreduo"
|
||||
QB_CPU_KVM_intel-core2-32 = "-cpu kvm32"
|
||||
|
||||
QB_SYSTEM_NAME:intel-corei7-64 = "qemu-system-x86_64"
|
||||
QB_CPU:intel-corei7-64 = "-cpu Nehalem"
|
||||
QB_CPU_KVM:intel-corei7-64 = "-cpu kvm64"
|
||||
QB_SYSTEM_NAME_intel-corei7-64 = "qemu-system-x86_64"
|
||||
QB_CPU_intel-corei7-64 = "-cpu Nehalem"
|
||||
QB_CPU_KVM_intel-corei7-64 = "-cpu kvm64"
|
||||
|
||||
QB_SYSTEM_NAME:intel-skylake-64 = "qemu-system-x86_64"
|
||||
QB_CPU:intel-skylake-64 = "-cpu Skylake-Client"
|
||||
QB_CPU_KVM:intel-skylake-64 = "-cpu Skylake-Client"
|
||||
QB_SYSTEM_NAME_intel-skylake-64 = "qemu-system-x86_64"
|
||||
QB_CPU_intel-skylake-64 = "-cpu Skylake-Client"
|
||||
QB_CPU_KVM_intel-skylake-64 = "-cpu Skylake-Client"
|
||||
|
||||
QB_AUDIO_DRV = "alsa"
|
||||
QB_AUDIO_OPT = "-device AC97"
|
||||
QB_KERNEL_CMDLINE_APPEND = " oprofile.timer=1"
|
||||
QB_OPT_APPEND = " -usb -usbdevice tablet "
|
||||
QB_AUDIO_OPT = "-soundhw ac97,es1370"
|
||||
QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1"
|
||||
# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
|
||||
QB_OPT_APPEND = "-vga vmware -show-cursor -usb -usbdevice tablet -device virtio-rng-pci"
|
||||
|
|
|
|||
48
conf/machine/include/tune-skylake.inc
Normal file
48
conf/machine/include/tune-skylake.inc
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
# Settings for the GCC(1) cpu-type "skylake":
|
||||
#
|
||||
# Intel Skylake CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1,
|
||||
# SSE4.2, AVX, AVX2 and POPCNT instruction set support.
|
||||
#
|
||||
# This tune is recommended for Intel Skylake CPU (and beyond).
|
||||
#
|
||||
DEFAULTTUNE ?= "skylake-64"
|
||||
|
||||
# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
|
||||
require conf/machine/include/tune-corei7.inc
|
||||
|
||||
# Extra tune features
|
||||
TUNEVALID[skylake] = "Enable skylake specific processor optimizations"
|
||||
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'skylake', ' -march=skylake ${SKYLAKE_TUNE} -mfpmath=sse', '', d)}"
|
||||
|
||||
# Extra tune selections
|
||||
|
||||
AVAILTUNES += "skylake-64"
|
||||
TUNE_FEATURES_tune-skylake-64 = "${TUNE_FEATURES_tune-x86-64} skylake"
|
||||
BASE_LIB_tune-skylake-64 = "lib64"
|
||||
TUNE_PKGARCH_tune-skylake-64 = "skylake-64"
|
||||
PACKAGE_EXTRA_ARCHS_tune-skylake-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} skylake-64"
|
||||
QEMU_EXTRAOPTIONS_skylake-64 = " -cpu Skylake-Client"
|
||||
|
||||
|
||||
# Disable QEMU usermode by default (get avx2)
|
||||
MACHINE_FEATURES_remove = "qemu-usermode"
|
||||
|
||||
# If qemu-usermode is enabled, we have to disable avx2 ISA extensions, but we can keep mtune as skylake vs generic
|
||||
SKYLAKE_TUNE .= "${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', ' -mtune=skylake ${QEMU_UNAVAILABLE_ISA}', '-mtune=generic -mavx2', d)}"
|
||||
|
||||
QEMU_UNAVAILABLE_ISA = " \
|
||||
-mno-avx \
|
||||
-mno-avx2 \
|
||||
-mno-avx512f \
|
||||
-mno-avx512er \
|
||||
-mno-avx512cd \
|
||||
-mno-avx512pf \
|
||||
-mno-avx512dq \
|
||||
-mno-avx512bw \
|
||||
-mno-avx512vl \
|
||||
-mno-avx512ifma \
|
||||
-mno-avx512vbmi \
|
||||
-mno-avx512vbmi2 \
|
||||
-mno-avx512vnni \
|
||||
-mno-avx512bitalg \
|
||||
"
|
||||
|
|
@ -13,6 +13,9 @@ MACHINE_FEATURES += "intel-ucode"
|
|||
|
||||
MACHINE_HWCODECS ?= "intel-vaapi-driver gstreamer1.0-vaapi"
|
||||
|
||||
# Enable optional QAT items:
|
||||
COMPATIBLE_MACHINE_pn-qat17 = "intel-core2-32"
|
||||
|
||||
XSERVER ?= "${XSERVER_X86_BASE} \
|
||||
${XSERVER_X86_EXT} \
|
||||
${XSERVER_X86_FBDEV} \
|
||||
|
|
@ -29,4 +32,4 @@ APPEND += "rootwait console=ttyS0,115200 console=ttyPCH0,115200 console=tty0"
|
|||
|
||||
IMAGE_FSTYPES += "wic"
|
||||
WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}"
|
||||
WKS_FILE_DEPENDS:append = " intel-microcode"
|
||||
WKS_FILE_DEPENDS_append = " intel-microcode"
|
||||
|
|
|
|||
|
|
@ -11,11 +11,15 @@ MACHINE_FEATURES += "pcbios efi"
|
|||
MACHINE_FEATURES += "wifi 3g nfc"
|
||||
MACHINE_FEATURES += "intel-ucode"
|
||||
|
||||
MACHINE_HWCODECS ?= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'intel-media-driver vpl-gpu-rt', d)} gstreamer1.0-vaapi"
|
||||
MACHINE_HWCODECS ?= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '', 'intel-media-driver intel-mediasdk', d)} gstreamer1.0-vaapi"
|
||||
|
||||
# Enable optional dpdk:
|
||||
COMPATIBLE_MACHINE:pn-dpdk = "intel-corei7-64"
|
||||
COMPATIBLE_MACHINE:pn-dpdk-module = "intel-corei7-64"
|
||||
COMPATIBLE_MACHINE_pn-dpdk = "intel-corei7-64"
|
||||
|
||||
# Enable optional QAT items:
|
||||
COMPATIBLE_MACHINE_pn-qat16 = "intel-corei7-64"
|
||||
COMPATIBLE_MACHINE_pn-qat17 = "intel-corei7-64"
|
||||
COMPATIBLE_MACHINE_pn-zlib-qat = "intel-corei7-64"
|
||||
|
||||
XSERVER ?= "${XSERVER_X86_BASE} \
|
||||
${XSERVER_X86_EXT} \
|
||||
|
|
@ -33,4 +37,4 @@ APPEND += "rootwait console=ttyS0,115200 console=tty0"
|
|||
|
||||
IMAGE_FSTYPES += "wic"
|
||||
WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}"
|
||||
WKS_FILE_DEPENDS:append = " intel-microcode"
|
||||
WKS_FILE_DEPENDS_append = " intel-microcode"
|
||||
|
|
|
|||
|
|
@ -4,18 +4,17 @@
|
|||
#@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.
|
||||
|
||||
require conf/machine/include/meta-intel.inc
|
||||
require conf/machine/include/x86/x86-base.inc
|
||||
require conf/machine/include/x86/tune-x86-64-v3.inc
|
||||
require conf/machine/include/x86-base.inc
|
||||
require conf/machine/include/tune-skylake.inc
|
||||
require conf/machine/include/intel-common-pkgarch.inc
|
||||
|
||||
MACHINE_FEATURES += "efi"
|
||||
MACHINE_FEATURES += "wifi 3g nfc"
|
||||
MACHINE_FEATURES += "intel-ucode"
|
||||
|
||||
MACHINE_HWCODECS ?= "intel-media-driver vpl-gpu-rt gstreamer1.0-vaapi"
|
||||
MACHINE_HWCODECS ?= "intel-media-driver intel-mediasdk gstreamer1.0-vaapi"
|
||||
|
||||
COMPATIBLE_MACHINE:pn-dpdk = "intel-skylake-64"
|
||||
COMPATIBLE_MACHINE:pn-dpdk-module = "intel-skylake-64"
|
||||
COMPATIBLE_MACHINE_pn-dpdk = "intel-skylake-64"
|
||||
|
||||
XSERVER ?= "${XSERVER_X86_BASE} \
|
||||
${XSERVER_X86_EXT} \
|
||||
|
|
@ -33,4 +32,4 @@ APPEND += "rootwait console=ttyS0,115200 console=tty0"
|
|||
|
||||
IMAGE_FSTYPES += "wic"
|
||||
WKS_FILE ?= "${@bb.utils.contains_any("EFI_PROVIDER", "systemd-boot", "systemd-bootdisk-microcode.wks.in", "grub-bootdisk-microcode.wks.in", d)}"
|
||||
WKS_FILE_DEPENDS:append = " intel-microcode"
|
||||
WKS_FILE_DEPENDS_append = " intel-microcode"
|
||||
|
|
|
|||
|
|
@ -1,392 +0,0 @@
|
|||
Intel End User License Agreement for Developer Tools (Version October 2021)
|
||||
|
||||
IMPORTANT NOTICE - PLEASE READ AND AGREE BEFORE DOWNLOADING, INSTALLING, COPYING
|
||||
OR USING
|
||||
|
||||
This Agreement is between you, or the company or other legal entity that you
|
||||
represent and warrant you have the legal authority to bind, (each, "You" or
|
||||
"Your") and Intel Corporation and its subsidiaries (collectively, "Intel")
|
||||
regarding Your use of the Materials. By downloading, installing, copying or
|
||||
using the Materials, You agree to be bound by the terms of this Agreement. If
|
||||
You do not agree to the terms of this Agreement, or do not have legal authority
|
||||
or required age to agree to them, do not download, install, copy or use the
|
||||
Materials.
|
||||
|
||||
1. LICENSE DEFINITIONS.
|
||||
|
||||
A. "Cloud Provider" means a third party service provider offering a cloud-based
|
||||
platform, infrastructure, application or storage services, such as Microsoft
|
||||
Azure or Amazon Web Services, which You may only utilize to host the
|
||||
Materials subject to the restrictions set forth in Section 2.3 B.
|
||||
|
||||
B. "Derivative Work" means a derivative work, as defined in 17 U.S.C. 101, of
|
||||
the Source Code.
|
||||
|
||||
C. "Executable Code" means computer programming code in binary form suitable
|
||||
for machine execution by a processor without the intervening steps of
|
||||
interpretation or compilation.
|
||||
|
||||
D. "Materials" mean the software, documentation, the software product serial
|
||||
number, and other collateral, including any updates, made available to You
|
||||
by Intel under this Agreement. Materials include Redistributables,
|
||||
Executable Code, Source Code, Sample Source Code, and Pre-Release Materials,
|
||||
but do not include Third Party Software.
|
||||
|
||||
E. "Pre-Release Materials" mean the Materials, or portions of the Materials,
|
||||
that are identified (in the product release notes, on Intel's download
|
||||
website for the Materials or elsewhere) or labeled as pre-release,
|
||||
prototype, alpha or beta code and, as such, are deemed to be pre-release
|
||||
code (i) which may not be fully functional or tested and may contain bugs or
|
||||
errors; (ii) which Intel may substantially modify in its development of a
|
||||
production version; or (iii) for which Intel makes no assurances that it
|
||||
will ever develop or make a production version generally available.
|
||||
Pre-Release Materials are subject to the terms of Section 3.2.
|
||||
|
||||
F. "Reciprocal Open Source Software" means any software that is subject to a
|
||||
license which requires that (i) it must be distributed in source code form;
|
||||
(ii) it must be licensed under the same open source license terms; and (iii)
|
||||
its derivative works must be licensed under the same open source license
|
||||
terms. Examples of this type of license are the GNU General Public License
|
||||
or the Mozilla Public License.
|
||||
|
||||
G. "Redistributables" mean the files (if any) listed in the "redist.txt,"
|
||||
"redist-rt.txt" or similarly-named text files that may be included in the
|
||||
Materials. Redistributables include Sample Source Code.
|
||||
|
||||
H. "Sample Source Code" means those portions of the Materials that are Source
|
||||
Code and are identified as sample code. Sample Source Code may not have been
|
||||
tested or validated by Intel and is provided purely as a programming example.
|
||||
|
||||
I. "Source Code" means the software portion of the Materials provided in human
|
||||
readable format.
|
||||
|
||||
J. "Third Party Software" mean the files (if any) listed in the
|
||||
"third-party-software.txt" or other similarly-named text file that may be
|
||||
included in the Materials for the applicable software. Third Party Software
|
||||
is subject to the terms of Section 2.2.
|
||||
|
||||
K. "Your Product" means one or more applications, products or projects
|
||||
developed by or for You using the Materials.
|
||||
|
||||
2. LICENSE GRANTS.
|
||||
|
||||
2.1 License to the Materials. Subject to the terms and conditions of this
|
||||
Agreement, Intel grants You a non-exclusive, worldwide, non-assignable,
|
||||
non-sublicensable, limited right and license under its copyrights, to:
|
||||
|
||||
A. reproduce internally a reasonable number of copies of the Materials for Your
|
||||
personal or business use;
|
||||
|
||||
B. use the Materials solely for Your personal or business use to develop Your
|
||||
Product, in accordance with the documentation included as part of the
|
||||
Materials;
|
||||
|
||||
C. modify or create Derivative Works only of the Redistributables, or any
|
||||
portions, that are provided to You in Source Code;
|
||||
|
||||
D. distribute (directly and through Your distributors, resellers, and other
|
||||
channel partners, if applicable), the Redistributables, including any
|
||||
modifications to or Derivative Works of the Redistributables or any portions
|
||||
made pursuant to Section 2.1.C subject to the following conditions:
|
||||
|
||||
(1) Any distribution of the Redistributables must only be as part of Your
|
||||
Product which must add significant primary functionality different than
|
||||
that of the Redistributables themselves;
|
||||
|
||||
(2) You must only distribute the Redistributables originally provided to You
|
||||
by Intel only in Executable Code subject to a license agreement that
|
||||
prohibits reverse engineering, decompiling or disassembling the
|
||||
Redistributables;
|
||||
|
||||
(3) This distribution right includes a limited right to sublicense only the
|
||||
Intel copyrights in the Redistributables and only to the extent necessary
|
||||
to perform, display, and distribute the Redistributables (including Your
|
||||
modifications and Derivative Works of the Redistributables provided in
|
||||
Source Code) solely as incorporated in Your Product; and
|
||||
|
||||
(4) You: (i) will be solely responsible to Your customers for any update,
|
||||
support obligation or other obligation or liability which may arise from
|
||||
the distribution of Your Product, (ii) will not make any statement that
|
||||
Your Product is "certified" or that its performance is guaranteed by Intel
|
||||
or its suppliers, (iii) will not use Intel's or its suppliers' names or
|
||||
trademarks to market Your Product, (iv) will comply with any additional
|
||||
restrictions which are included in the text files with the
|
||||
Redistributables and in Section 3 below, (v) will indemnify, hold
|
||||
harmless, and defend Intel and its suppliers from and against any claims
|
||||
or lawsuits, costs, damages, and expenses, including attorney's fees, that
|
||||
arise or result from (a) Your modifications or Derivative Works of the
|
||||
Materials or (b) Your distribution of Your Product.
|
||||
|
||||
2.2 Third Party Software. Third Party Software, even if included with the
|
||||
distribution of the Materials, may be governed by separate license terms,
|
||||
including without limitation, third party license terms, open source
|
||||
software notices and terms, and/or other Intel software license terms. These
|
||||
separate license terms solely govern Your use of the Third Party Software.
|
||||
|
||||
2.3 Third Party Use.
|
||||
|
||||
A. If You are an entity, Your contractors may use the Materials under the
|
||||
license specified in Section 2, provided: (i) their use of the Materials is
|
||||
solely on behalf of and in support of Your business, (ii) they agree to the
|
||||
terms and conditions of this Agreement, and (iii) You are solely responsible
|
||||
for their use, misuse or disclosure of the Materials.
|
||||
|
||||
B. You may utilize a Cloud Provider to host the Materials for You, provided:
|
||||
(i) the Cloud Provider may only host the Materials for Your exclusive use
|
||||
and may not use the Materials for any other purpose whatsoever, including the
|
||||
restriction set forth in Section 3.1(xi); (ii) the Cloud Provider's use of
|
||||
the Materials must be solely on behalf of and in support of Your Product, and
|
||||
(iii) You will indemnify, hold harmless, and defend Intel and its suppliers
|
||||
from and against any claims or lawsuits, costs, damages, and expenses,
|
||||
including attorney's fees, that arise or result from Your Cloud Provider's
|
||||
use, misuse or disclosure of the Materials.
|
||||
|
||||
3. LICENSE CONDITIONS.
|
||||
|
||||
3.1 Restrictions. Except as expressly provided in this Agreement, You may NOT:
|
||||
(i) use, reproduce, disclose, distribute, or publicly display the
|
||||
Materials; (ii) share, publish, rent or lease the Materials to any third
|
||||
party; (iii) assign this Agreement or transfer the Materials; (iv) modify,
|
||||
adapt, or translate the Materials in whole or in part; (v) reverse engineer,
|
||||
decompile, or disassemble the Materials, or otherwise attempt to derive the
|
||||
source code for the software; (vi) work around any technical limitations in
|
||||
the Materials; (vii) distribute, sublicense or transfer any Source Code,
|
||||
modifications or Derivative Works of any Source Code to any third party;
|
||||
(viii) remove, minimize, block or modify any notices of Intel or its
|
||||
suppliers in the Materials; (ix) include the Redistributables in malicious,
|
||||
deceptive, or unlawful programs or products or use the Materials in any way
|
||||
that is against the law; (x) modify, create a Derivative Work, link, or
|
||||
distribute the Materials so that any part of it becomes Reciprocal Open
|
||||
Source Software; (xi) use the Materials directly or indirectly for SaaS
|
||||
services or service bureau purposes (i.e., a service that allows use of or
|
||||
access to the Materials by a third party as part of that service, such as
|
||||
the salesforce.com service business model).
|
||||
|
||||
3.2 Pre-Release Materials. If You receive Pre-Release Materials, You may
|
||||
reproduce a reasonable number of copies and use the Pre-Release Materials
|
||||
for evaluation and testing purposes only. You may not (i) modify or
|
||||
incorporate the Pre-Release Materials into Your Product; (ii) continue to
|
||||
use the Pre-Release Materials once a commercial version is released; or
|
||||
(iii) disclose to any third party any benchmarks, performance results, or
|
||||
other information relating to the Pre-Release Materials. Intel may waive
|
||||
these restrictions in writing at its sole discretion; however, if You decide
|
||||
to use the Pre-Release Materials in Your Product (even with Intel's waiver),
|
||||
You acknowledge and agree that You are fully responsible for any and all
|
||||
issues that result from such use.
|
||||
|
||||
3.3 Safety-Critical, and Life-Saving Applications; Indemnity. The Materials may
|
||||
provide information relevant to safety-critical applications
|
||||
("Safety-Critical Applications") to allow compliance with functional safety
|
||||
standards or requirements. You acknowledge and agree that safety is Your
|
||||
responsibility. To the extent You use the Materials to create, or as part
|
||||
of, products used in Safety-Critical Applications, it is Your responsibility
|
||||
to design, manage, and ensure that there are system-level safeguards to
|
||||
anticipate, monitor, and control system failures, and You agree that You are
|
||||
solely responsible for all applicable regulatory standards and
|
||||
safety-related requirements concerning Your use of the Materials in Safety
|
||||
Critical Applications.
|
||||
|
||||
Should You use the Materials for Safety-Critical Applications or in any type
|
||||
of a system or application in which the failure of the Materials could
|
||||
create a situation where personal injury or death may occur (e.g., medical
|
||||
systems, life-sustaining or life-saving systems) ("Life-Saving
|
||||
Applications"), You agree to indemnify, defend, and hold Intel and its
|
||||
representatives harmless against any claims or lawsuits, costs, damages, and
|
||||
expenses, including reasonable attorney fees, arising in any way out of Your
|
||||
use of the Materials in Safety-Critical Applications or Life-Saving
|
||||
Applications and claims of product liability, personal injury or death
|
||||
associated with those applications; even if such claims allege that Intel
|
||||
was negligent or strictly liable regarding the design or manufacture of the
|
||||
Materials or its failure to warn regarding the Materials.
|
||||
|
||||
3.4 Media Format Codecs and Digital Rights Management. You acknowledge and agree
|
||||
that Your use of the Materials or distribution of the Redistributables with
|
||||
Your Product as permitted by this Agreement may require You to procure
|
||||
license(s) from third parties that may hold intellectual property rights
|
||||
applicable to any media decoding, encoding or transcoding technology (e.g.,
|
||||
the use of an audio or video codec) and/or digital rights management
|
||||
capabilities of the Materials, if any. Should any such additional licenses
|
||||
be required, You are solely responsible for obtaining any such licenses and
|
||||
agree to obtain any such licenses at Your own expense.
|
||||
|
||||
4. DATA COLLECTION AND PRIVACY.
|
||||
|
||||
4.1 Data Collection. The Materials may generate and collect anonymous data
|
||||
and/or provisioning data about the Materials and/or the development
|
||||
environment and transmit the data to Intel as a one-time event during
|
||||
installation. Optional data may also be collected by the Materials, however,
|
||||
You will be provided notice of the request to collect optional data and no
|
||||
optional data will be collected without Your consent. All data collection by
|
||||
Intel is performed pursuant to relevant privacy laws, including notice and
|
||||
consent requirements.
|
||||
|
||||
4.2 Intel's Privacy Notice. Intel is committed to respecting Your privacy. To
|
||||
learn more about Intel's privacy practices, please visit
|
||||
http://www.intel.com/privacy.
|
||||
|
||||
5. OWNERSHIP. Title to the Materials and all copies remain with Intel or its
|
||||
suppliers. The Materials are protected by intellectual property rights,
|
||||
including without limitation, United States copyright laws and international
|
||||
treaty provisions. You will not remove any copyright or other proprietary
|
||||
notices from the Materials. Except as expressly provided herein, no license
|
||||
or right is granted to You directly or by implication, inducement, estoppel
|
||||
or otherwise; specifically, Intel does not grant any express or implied right
|
||||
to You under Intel patents, copyrights, trademarks, or trade secrets.
|
||||
|
||||
6. NO WARRANTY AND NO SUPPORT.
|
||||
|
||||
6.1 No Warranty. Disclaimer. Intel disclaims all warranties of any kind and the
|
||||
terms and remedies provided in this Agreement are instead of any other
|
||||
warranty or condition, express, implied or statutory, including those
|
||||
regarding merchantability, fitness for any particular purpose,
|
||||
non-infringement or any warranty arising out of any course of dealing, usage
|
||||
of trade, proposal, specification or sample. Intel does not assume (and does
|
||||
not authorize any person to assume on its behalf) any liability.
|
||||
|
||||
6.2 No Support; Priority Support. Intel may make changes to the Materials, or to
|
||||
items referenced therein, at any time without notice, but is not obligated
|
||||
to support, update or provide training for the Materials under the terms of
|
||||
this Agreement. Intel offers free community and paid priority support
|
||||
options. More information on these support options can be found at:
|
||||
https://software.intel.com/content/www/us/en/develop/support/priority-support.html.
|
||||
|
||||
7. LIMITATION OF LIABILITY.
|
||||
|
||||
7.1 Intel will not be liable for any of the following losses or damages (whether
|
||||
such losses or damages were foreseen, foreseeable, known or otherwise): (i)
|
||||
loss of revenue; (ii) loss of actual or anticipated profits; (iii) loss of
|
||||
the use of money; (iv) loss of anticipated savings; (v) loss of business;
|
||||
(vi) loss of opportunity; (vii) loss of goodwill; (viii) loss of use of the
|
||||
Materials; (ix) loss of reputation; (x) loss of, damage to, or corruption of
|
||||
data; or (xi) any indirect, incidental, special or consequential loss of
|
||||
damage however caused (including loss or damage of the type specified in
|
||||
this Section 7).
|
||||
|
||||
7.2 Intel's total cumulative liability to You, including for direct damages for
|
||||
claims relating to this Agreement, and whether for breach of contract,
|
||||
negligence, or for any other reason, will not exceed $100.
|
||||
|
||||
7.3 You acknowledge that the limitations of liability provided in this Section 7
|
||||
are an essential part of this Agreement. You agree that the limitations of
|
||||
liability provided in this Agreement with respect to Intel will be conveyed
|
||||
to and made binding upon any customer of Yours that acquires the
|
||||
Redistributables.
|
||||
|
||||
8. USER SUBMISSIONS. Should you provide Intel with comments, modifications,
|
||||
corrections, enhancements or other input ("Feedback") related to the
|
||||
Materials, Intel will be free to use, disclose, reproduce, license or
|
||||
otherwise distribute or exploit the Feedback in its sole discretion without
|
||||
any obligations or restrictions of any kind, including without limitation,
|
||||
intellectual property rights or licensing obligations. If You wish to provide
|
||||
Intel with information that You intend to be treated as confidential
|
||||
information, Intel requires that such confidential information be provided
|
||||
pursuant to a non-disclosure agreement ("NDA"); please contact Your Intel
|
||||
representative to ensure the proper NDA is in place.
|
||||
|
||||
9. NON-DISCLOSURE. Information provided by Intel to You may include information
|
||||
marked as confidential. You must treat such information as confidential under
|
||||
the terms of the applicable NDA between Intel and You. If You have not
|
||||
entered into an NDA with Intel, You must not disclose, distribute or make use
|
||||
of any information marked as confidential, except as expressly authorized in
|
||||
writing by Intel. Intel retains all rights in and to its confidential
|
||||
information specifications, designs, engineering details, discoveries,
|
||||
inventions, patents, copyrights, trademarks, trade secrets, and other
|
||||
proprietary rights relating to the Materials. Any breach by You of the
|
||||
confidentiality obligations provided for in this Section 9 will cause
|
||||
irreparable injury to Intel for which money damages may be inadequate to
|
||||
compensate Intel for losses arising from such a breach. Intel may obtain
|
||||
equitable relief, including injunctive relief, if You breach or threaten to
|
||||
breach Your confidentiality obligations.
|
||||
|
||||
10. TERM AND TERMINATION. This Agreement becomes effective on the date You
|
||||
accept this Agreement and will continue until terminated as provided for in
|
||||
this Agreement. The term for any Pre-Release Materials terminates upon
|
||||
release of a commercial version. This Agreement will terminate if You are in
|
||||
breach of any of its terms and conditions. Upon termination, You will
|
||||
promptly destroy the Materials and all copies. In the event of termination of
|
||||
this Agreement, Your license to any Redistributables distributed by You in
|
||||
accordance with the terms and conditions of this Agreement, prior to the
|
||||
effective date of such termination, will survive any such termination of this
|
||||
Agreement. Sections 1, 2.1.D(4)(v), 2.2, 2.3.A(iii), 2.3.B(iii), 3.3, 5, 6,
|
||||
7, 8, 9, 10 (with respect to these survival provisions in the last sentence),
|
||||
and 12 will survive expiration or termination of this Agreement.
|
||||
|
||||
11. U.S. GOVERNMENT RESTRICTED RIGHTS. The technical data and computer software
|
||||
covered by this license is a "Commercial Item," as such term is defined by
|
||||
the FAR 2.101 (48 C.F.R. 2.101) and is "commercial computer software" and
|
||||
"commercial computer software documentation" as specified under FAR 12.212
|
||||
(48 C.F.R. 12.212) or DFARS 227.7202 (48 C.F.R. 227.7202), as applicable.
|
||||
This commercial computer software and related documentation is provided to
|
||||
end users for use by and on behalf of the U.S. Government with only those
|
||||
rights as are granted to all other end users pursuant to the terms and
|
||||
conditions of this Agreement.
|
||||
|
||||
12. GENERAL PROVISIONS.
|
||||
|
||||
12.1 ENTIRE AGREEMENT. This Agreement contains the complete and exclusive
|
||||
agreement and understanding between the parties concerning the subject
|
||||
matter of this Agreement, and supersedes all prior and contemporaneous
|
||||
proposals, agreements, understanding, negotiations, representations,
|
||||
warranties, conditions, and communications, oral or written, between the
|
||||
parties relating to the same subject matter. Each party acknowledges and
|
||||
agrees that in entering into this Agreement it has not relied on, and will
|
||||
not be entitled to rely on, any oral or written representations,
|
||||
warranties, conditions, understanding, or communications between the
|
||||
parties that are not expressly set forth in this Agreement. The express
|
||||
provisions of this Agreement control over any course of performance, course
|
||||
of dealing, or usage of the trade inconsistent with any of the provisions
|
||||
of this Agreement. The provisions of this Agreement will prevail
|
||||
notwithstanding any different, conflicting, or additional provisions that
|
||||
may appear on any purchase order, acknowledgement, invoice, or other
|
||||
writing issued by either party in connection with this Agreement. No
|
||||
modification or amendment to this Agreement will be effective unless in
|
||||
writing and signed by authorized representatives of each party, and must
|
||||
specifically identify this Agreement by its title and version (e.g., "Intel
|
||||
End User License Agreement for Developer Tools (Version October 2021)");
|
||||
except that Intel may make changes to this Agreement as it distributes new
|
||||
versions of the Materials. When changes are made, Intel will make a new
|
||||
version of the Agreement available on its website. If You received a copy
|
||||
of this Agreement translated into another language, the English language
|
||||
version of this Agreement will prevail in the event of any conflict between
|
||||
versions.
|
||||
|
||||
12.2 EXPORT. You acknowledge that the Materials and all related technical
|
||||
information are subject to export controls and you agree to comply with all
|
||||
laws and regulations of the United States and other applicable governments
|
||||
governing export, re-export, import, transfer, distribution, and use of the
|
||||
Materials. In particular, but without limitation, the Materials may not be
|
||||
exported or re-exported (i) into any U.S. embargoed countries or (ii) to
|
||||
any person or entity listed on a denial order published by the U.S.
|
||||
government or any other applicable governments. By using the Materials, You
|
||||
represent and warrant that You are not located in any such country or on
|
||||
any such list. You also agree that You will not use the Materials for, or
|
||||
sell or transfer them to a third party who is known or suspected to be
|
||||
involved in, any purposes prohibited by the U.S. government or other
|
||||
applicable governments, including, without limitation, the development,
|
||||
design, manufacture, or production of nuclear, missile, chemical or
|
||||
biological weapons.
|
||||
|
||||
12.3 GOVERNING LAW, JURISDICTION, AND VENUE. All disputes arising out of or
|
||||
related to this Agreement, whether based on contract, tort, or any other
|
||||
legal or equitable theory, will in all respects be governed by, and
|
||||
construed and interpreted under, the laws of the United States of America
|
||||
and the State of Delaware, without reference to conflict of laws
|
||||
principles. The parties agree that the United Nations Convention on
|
||||
Contracts for the International Sale of Goods (1980) is specifically
|
||||
excluded from and will not apply to this Agreement. All disputes arising
|
||||
out of or related to this Agreement, whether based on contract, tort, or
|
||||
any other legal or equitable theory, will be subject to the exclusive
|
||||
jurisdiction of the courts of the State of Delaware or of the Federal
|
||||
courts sitting in that State. Each party submits to the personal
|
||||
jurisdiction of those courts and waives all objections to that jurisdiction
|
||||
and venue for those disputes.
|
||||
|
||||
12.4 SEVERABILITY. The parties intend that if a court holds that any provision
|
||||
or part of this Agreement is invalid or unenforceable under applicable law,
|
||||
the court will modify the provision to the minimum extent necessary to make
|
||||
it valid and enforceable, or if it cannot be made valid and enforceable,
|
||||
the parties intend that the court will sever and delete the provision or
|
||||
part from this Agreement. Any change to or deletion of a provision or part
|
||||
of this Agreement under this Section will not affect the validity or
|
||||
enforceability of the remainder of this Agreement, which will continue in
|
||||
full force and effect.
|
||||
|
|
@ -1,73 +1,63 @@
|
|||
Intel Simplified Software License (Version August 2021)
|
||||
Intel Simplified Software License (Version April 2018)
|
||||
|
||||
Use and Redistribution. You may use and redistribute the software (the
|
||||
"Software"), without modification, provided the following conditions are met:
|
||||
Copyright (c) 2018 Intel Corporation.
|
||||
|
||||
* Redistributions must reproduce the above copyright notice and the following
|
||||
terms of use in the Software and in the documentation and/or other materials
|
||||
provided with the distribution.
|
||||
* Neither the name of Intel nor the names of its suppliers may be used to
|
||||
endorse or promote products derived from this Software without specific
|
||||
prior written permission.
|
||||
* No reverse engineering, decompilation, or disassembly of this Software is
|
||||
permitted.
|
||||
Use and Redistribution. You may use and redistribute the software (the "Software"), without modification,
|
||||
provided the following conditions are met:
|
||||
|
||||
No other licenses. Except as provided in the preceding section, Intel grants no
|
||||
licenses or other rights by implication, estoppel or otherwise to, patent,
|
||||
copyright, trademark, trade name, service mark or other intellectual property
|
||||
licenses or rights of Intel.
|
||||
* Redistributions must reproduce the above copyright notice and the following terms of use in the Software
|
||||
and in the documentation and/or other materials provided with the distribution.
|
||||
|
||||
Third party software. The Software may contain Third Party Software. "Third
|
||||
Party Software" is open source software, third party software, or other Intel
|
||||
software that may be identified in the Software itself or in the files (if any)
|
||||
listed in the "third-party-software.txt" or similarly named text file included
|
||||
with the Software. Third Party Software, even if included with the distribution
|
||||
of the Software, may be governed by separate license terms, including without
|
||||
limitation, open source software license terms, third party software license
|
||||
terms, and other Intel software license terms. Those separate license terms
|
||||
solely govern your use of the Third Party Software, and nothing in this license
|
||||
limits any rights under, or grants rights that supersede, the terms of the
|
||||
applicable license terms.
|
||||
* Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived
|
||||
from this Software without specific prior written permission.
|
||||
|
||||
DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
|
||||
DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS
|
||||
WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE
|
||||
THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND
|
||||
ATTORNEYS' FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT
|
||||
INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE.
|
||||
* No reverse engineering, decompilation, or disassembly of this Software is permitted.
|
||||
|
||||
LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT,
|
||||
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents
|
||||
it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell ("Utilize")
|
||||
this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone.
|
||||
The patent license shall not apply to any combinations which include this software. No hardware per se
|
||||
is licensed hereunder.
|
||||
|
||||
No support. Intel may make changes to the Software, at any time without notice,
|
||||
and is not obligated to support, update or provide training for the Software.
|
||||
Third party and other Intel programs. "Third Party Programs" are the files listed in the
|
||||
"third-party-programs.txt" text file that is included with the Software and may include Intel programs
|
||||
under separate license terms. Third Party Programs, even if included with the distribution of the Materials,
|
||||
are governed by separate license terms and those license terms solely govern your use of those programs.
|
||||
|
||||
Termination. Your right to use the Software is terminated in the event of your
|
||||
breach of this license.
|
||||
DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
|
||||
AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS
|
||||
WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE
|
||||
FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM
|
||||
ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS.
|
||||
|
||||
Feedback. Should you provide Intel with comments, modifications, corrections,
|
||||
enhancements or other input ("Feedback") related to the Software, Intel will be
|
||||
free to use, disclose, reproduce, license or otherwise distribute or exploit the
|
||||
Feedback in its sole discretion without any obligations or restrictions of any
|
||||
kind, including without limitation, intellectual property rights or licensing
|
||||
obligations.
|
||||
LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO
|
||||
INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED
|
||||
USE OF THE SOFTWARE.
|
||||
|
||||
Compliance with laws. You agree to comply with all relevant laws and regulations
|
||||
governing your use, transfer, import or export (or prohibition thereof) of the
|
||||
Software.
|
||||
No support. Intel may make changes to the Software, at any time without notice, and is not obligated to
|
||||
support, update or provide training for the Software.
|
||||
|
||||
Governing law. All disputes will be governed by the laws of the United States of
|
||||
America and the State of Delaware without reference to conflict of law
|
||||
principles and subject to the exclusive jurisdiction of the state or federal
|
||||
courts sitting in the State of Delaware, and each party agrees that it submits
|
||||
to the personal jurisdiction and venue of those courts and waives any
|
||||
objections. The United Nations Convention on Contracts for the International
|
||||
Sale of Goods (1980) is specifically excluded and will not apply to the
|
||||
Software.
|
||||
Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement
|
||||
and you fail to cure the breach within a reasonable period of time.
|
||||
|
||||
Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input
|
||||
("Feedback") related to the Software Intel will be free to use, disclose, reproduce, license or otherwise
|
||||
distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any
|
||||
kind, including without limitation, intellectual property rights or licensing obligations.
|
||||
|
||||
Compliance with laws. You agree to comply with all relevant laws and regulations governing your use,
|
||||
transfer, import or export (or prohibition thereof) of the Software.
|
||||
|
||||
Governing law. All disputes will be governed by the laws of the United States of America and the State
|
||||
of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of
|
||||
the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to
|
||||
the personal jurisdiction and venue of those courts and waives any objections. The United Nations
|
||||
Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will
|
||||
not apply to the Software.
|
||||
|
||||
*Other names and brands may be claimed as the property of others.
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
Copyright (c) 2009, Stanford University, and authors listed below.
|
||||
All rights reserved.
|
||||
|
||||
Original authors:
|
||||
Solomon Boulos
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
Neither the name of Stanford University nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
|
@ -1,134 +0,0 @@
|
|||
### Building the Intel BSP layers
|
||||
|
||||
The intel-common BSP provide a few carefully selected tune options and
|
||||
generic hardware support to cover the majority of current Intel CPUs and
|
||||
devices. The naming follows the convention of intel-<TUNE>-<BITS>, where
|
||||
TUNE is the gcc cpu-type (used with mtune and march typically) and BITS
|
||||
is either 32 bit or 64 bit.
|
||||
|
||||
In order to build an image with BSP support for a given release, you
|
||||
need to clone the meta-intel layer from git repository:
|
||||
```
|
||||
git clone https://git.yoctoproject.org/meta-intel
|
||||
```
|
||||
|
||||
Check out the appropriate branch or release tags. The branch name and tags
|
||||
would align with Yocto Project
|
||||
[Release Codenames](https://wiki.yoctoproject.org/wiki/Releases).
|
||||
Assuming meta-intel repository is cloned at the top-level of
|
||||
OE-Core build tree, you can build a BSP image by adding the location of
|
||||
the meta-intel layer to bblayers.conf:
|
||||
```
|
||||
BBLAYERS = " \
|
||||
/openembedded-core/meta \
|
||||
/openembedded-core/meta-intel "
|
||||
```
|
||||
|
||||
To enable a particular machine, add a MACHINE line naming the BSP
|
||||
to the local.conf file:
|
||||
```
|
||||
MACHINE ?= "intel-corei7-64"
|
||||
```
|
||||
|
||||
where this can be replaced by other MACHINE types available:
|
||||
|
||||
- intel-core2-32
|
||||
|
||||
This BSP is optimized for the Core2 family of CPUs as well as all
|
||||
Atom CPUs prior to the Silvermont core.
|
||||
|
||||
- intel-corei7-64
|
||||
|
||||
This BSP is optimized for Nehalem and later Core and Xeon CPUs as
|
||||
well as Silvermont and later Atom CPUs, such as the Baytrail SoCs.
|
||||
|
||||
- intel-skylake-64
|
||||
|
||||
This BSP uses [x86-64-v3 tuning](https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html).
|
||||
|
||||
You should then be able to build an image as such:
|
||||
```
|
||||
$ source oe-init-build-env
|
||||
$ bitbake core-image-sato
|
||||
```
|
||||
|
||||
At the end of a successful build, you should have an image that
|
||||
you can boot from a USB flash drive.
|
||||
|
||||
|
||||
## Booting the intel-common BSP images
|
||||
|
||||
If you've built your own image, you'll find the bootable
|
||||
image in the build/tmp/deploy/images/{MACHINE} directory, where
|
||||
'MACHINE' refers to the machine name used in the build.
|
||||
|
||||
Under Linux, insert a USB flash drive. Assuming the USB flash drive
|
||||
takes device /dev/sdf, use dd to copy the image to it. Before the image
|
||||
can be burned onto a USB drive, it should be un-mounted. Some Linux distros
|
||||
may automatically mount a USB drive when it is plugged in. Using USB device
|
||||
/dev/sdf as an example, find all mounted partitions:
|
||||
```
|
||||
$ mount | grep sdf
|
||||
```
|
||||
|
||||
and un-mount those that are mounted, for example:
|
||||
```
|
||||
$ umount /dev/sdf1
|
||||
$ umount /dev/sdf2
|
||||
```
|
||||
|
||||
Now burn the image onto the USB drive:
|
||||
```
|
||||
$ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress
|
||||
$ sync
|
||||
$ eject /dev/sdf
|
||||
```
|
||||
|
||||
This should give you a bootable USB flash device. Insert the device
|
||||
into a bootable USB socket on the target, and power on. This should
|
||||
result in a system booted to the Sato graphical desktop.
|
||||
|
||||
If you want a terminal, use the arrows at the top of the UI to move to
|
||||
different pages of available applications, one of which is named
|
||||
'Terminal'. Clicking that should give you a root terminal.
|
||||
|
||||
If you want to ssh into the system, you can use the root terminal to
|
||||
ifconfig the IP address and use that to ssh in. The root password is
|
||||
empty, so to log in type 'root' for the user name and hit 'Enter' at
|
||||
the Password prompt: and you should be in.
|
||||
|
||||
If you find you're getting corrupt images on the USB (it doesn't show
|
||||
the syslinux boot: prompt, or the boot: prompt contains strange
|
||||
characters), try doing this first:
|
||||
```
|
||||
$ dd if=/dev/zero of=/dev/sdf bs=1M count=512
|
||||
```
|
||||
|
||||
## Building the installer image
|
||||
|
||||
If you plan to install your image to your target machine, you can build a wic
|
||||
based installer image instead of default wic image. To build it, you need to
|
||||
add below configuration to local.conf :
|
||||
|
||||
```
|
||||
WKS_FILE = "image-installer.wks.in"
|
||||
IMAGE_FSTYPES:append = " ext4"
|
||||
IMAGE_TYPEDEP:wic = "ext4"
|
||||
INITRD_IMAGE_LIVE="core-image-minimal-initramfs"
|
||||
do_image_wic[depends] += "${INITRD_IMAGE_LIVE}:do_image_complete"
|
||||
do_rootfs[depends] += "virtual/kernel:do_deploy"
|
||||
IMAGE_BOOT_FILES:append = "\
|
||||
${KERNEL_IMAGETYPE} \
|
||||
microcode.cpio \
|
||||
${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.rootfs.ext4;rootfs.img \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', 'grub-efi-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', '${IMAGE_ROOTFS}/boot/EFI/BOOT/grub.cfg;EFI/BOOT/grub.cfg', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', 'systemd-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/loader.conf;loader/loader.conf ', '', d)} \
|
||||
${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/entries/boot.conf;loader/entries/boot.conf', '', d)} "
|
||||
```
|
||||
|
||||
Burn the wic image onto USB flash device, insert the device to target machine
|
||||
and power on. This should start the installation process.
|
||||
|
||||
|
||||
|
|
@ -1,107 +0,0 @@
|
|||
Intel(R) oneAPI DPC++/C++ Compiler (ICX) toolchain
|
||||
==========================================================================
|
||||
|
||||
Get Started with the Intel oneAPI DPC++/C++ Compiler:
|
||||
|
||||
https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html#
|
||||
|
||||
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
Clone the required layers and include them in bblayers.conf:
|
||||
|
||||
```
|
||||
git clone https://git.openembedded.org/openembedded-core
|
||||
git clone https://git.openembedded.org/bitbake
|
||||
git clone https://git.openembedded.org/meta-openembedded
|
||||
git clone https://github.com/kraj/meta-clang.git
|
||||
git clone https://git.yoctoproject.org/meta-intel
|
||||
|
||||
$ source openembedded-core/oe-init-build-env
|
||||
|
||||
$ bitbake-layers add-layer ../meta-openembedded/meta-oe/
|
||||
$ bitbake-layers add-layer ../meta-intel
|
||||
$ bitbake-layers add-layer ../meta-clang
|
||||
```
|
||||
|
||||
Distro
|
||||
======
|
||||
|
||||
Note that oneAPI DPC++/C++ compiler currently only works when the vendor string is "oe".
|
||||
|
||||
```
|
||||
DISTRO ?= "nodistro"
|
||||
```
|
||||
|
||||
MACHINE configuration
|
||||
=====================
|
||||
|
||||
```
|
||||
MACHINE ?= "intel-skylake-64"
|
||||
```
|
||||
|
||||
Package installation
|
||||
====================
|
||||
|
||||
```
|
||||
# To include OpenCL driver that might be needed when compiling SYCL programs, include:
|
||||
IMAGE_INSTALL:append = " intel-compute-runtime intel-graphics-compiler"
|
||||
|
||||
# To install only runtime libraries, include:
|
||||
IMAGE_INSTALL:append = " intel-oneapi-dpcpp-cpp-runtime intel-oneapi-dpcpp-cpp-runtime-dev"
|
||||
|
||||
# To install the toolchain, include:
|
||||
IMAGE_INSTALL:append = " intel-oneapi-dpcpp-cpp intel-oneapi-dpcpp-cpp-dev"
|
||||
```
|
||||
in local.conf.
|
||||
|
||||
Build an image
|
||||
==============
|
||||
|
||||
```
|
||||
$ bitbake core-image-minimal
|
||||
```
|
||||
|
||||
Including oneAPI C++/DPC++ compiler in generated SDK toolchain
|
||||
==============================================================
|
||||
|
||||
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:
|
||||
|
||||
```
|
||||
ICXSDK = "1"
|
||||
```
|
||||
|
||||
Generate SDK:
|
||||
```
|
||||
bitbake core-image-minimal -c populate_sdk
|
||||
```
|
||||
|
||||
|
||||
To setup PATH variables on target
|
||||
=================================
|
||||
|
||||
Once image is booted successfully, some variables would need to be exported to make sure compiler can be used:
|
||||
|
||||
```
|
||||
$ source /opt/intel/oneapi/compiler/2022.1.0/env/vars.sh
|
||||
|
||||
$ mkdir -p /lib64
|
||||
|
||||
$ ln -sf /lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2
|
||||
```
|
||||
|
||||
Build application and run
|
||||
=========================
|
||||
|
||||
To compile a sycl application, for example:
|
||||
|
||||
```
|
||||
$ icpx --target=x86_64-oe-linux -fsycl simple-sycl-app.c -o simple-sycl-app
|
||||
```
|
||||
|
||||
To run:
|
||||
|
||||
```
|
||||
$ ./simple-sycl-app
|
||||
```
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
Build a Yocto Image with OpenVINO™ toolkit
|
||||
==========================================
|
||||
|
||||
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.
|
||||
|
||||
## Step 1: Set Up Environment
|
||||
|
||||
1. Clone the repositories.
|
||||
|
||||
```
|
||||
git clone https://git.yoctoproject.org/git/poky
|
||||
git clone https://github.com/openembedded/meta-openembedded
|
||||
git clone https://git.yoctoproject.org/git/meta-intel
|
||||
git clone https://github.com/intel/meta-openvino
|
||||
```
|
||||
|
||||
|
||||
2. Set up the OpenEmbedded build environment.
|
||||
|
||||
```
|
||||
source poky/oe-init-build-env
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
3. Add BitBake layers.
|
||||
|
||||
|
||||
```
|
||||
bitbake-layers add-layer ../meta-openembedded/meta-oe
|
||||
bitbake-layers add-layer ../meta-openembedded/meta-python
|
||||
bitbake-layers add-layer ../meta-intel
|
||||
bitbake-layers add-layer ../meta-openvino
|
||||
|
||||
```
|
||||
|
||||
|
||||
4. Set up BitBake configurations.
|
||||
Include extra configuration in the `conf/local.conf` file in your build directory as required.
|
||||
|
||||
|
||||
```
|
||||
MACHINE = "intel-skylake-64"
|
||||
|
||||
# Enable building OpenVINO Python API.
|
||||
# This requires meta-python layer to be included in bblayers.conf.
|
||||
PACKAGECONFIG:append:pn-openvino-inference-engine = " python3"
|
||||
|
||||
# This adds OpenVINO related libraries in the target image.
|
||||
CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine"
|
||||
|
||||
# This adds OpenVINO samples in the target image.
|
||||
CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine-samples"
|
||||
|
||||
# Include OpenVINO Python API package in the target image.
|
||||
CORE_IMAGE_EXTRA_INSTALL:append = " openvino-inference-engine-python3"
|
||||
|
||||
```
|
||||
|
||||
## Step 2: Build a Yocto Image with OpenVINO Packages
|
||||
|
||||
Run BitBake to build your image with OpenVINO packages. For example, to build the minimal image, run the following command:
|
||||
|
||||
|
||||
```
|
||||
bitbake core-image-minimal
|
||||
|
||||
```
|
||||
|
||||
## Step 3: Verify the Yocto Image
|
||||
|
||||
Verify that OpenVINO packages were built successfully. Run the following command:
|
||||
|
||||
```
|
||||
oe-pkgdata-util list-pkgs | grep openvino
|
||||
|
||||
```
|
||||
|
||||
|
||||
If the image build is successful, it will return the list of packages as below:
|
||||
|
||||
```
|
||||
openvino-inference-engine
|
||||
openvino-inference-engine-dbg
|
||||
openvino-inference-engine-dev
|
||||
openvino-inference-engine-python3
|
||||
openvino-inference-engine-samples
|
||||
openvino-inference-engine-src
|
||||
openvino-inference-engine-doc
|
||||
|
||||
```
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
## Reporting bugs
|
||||
|
||||
If you have problems with or questions about a particular BSP, please
|
||||
contact the maintainer listed in the [Maintainer](../README.md#maintainers) section directly (cc:ing
|
||||
the Yocto mailing list puts it in the archive and helps other people
|
||||
who might have the same questions in the future), but please try to do
|
||||
the following first:
|
||||
|
||||
- look in the [Yocto Project Bugzilla](http://bugzilla.yoctoproject.org/) to see if a
|
||||
problem has already been reported
|
||||
|
||||
- look through recent entries of the [meta-intel](https://lists.yoctoproject.org/g/meta-intel/messages)
|
||||
and [Yocto Archives](https://lists.yoctoproject.org/g/yocto/messages) mailing list archives to see
|
||||
if other people have run into similar problems or had similar questions answered.
|
||||
|
||||
If you believe you have encountered a bug, you can open a new bug and
|
||||
enter the details in the [Yocto Project Bugzilla](https://bugzilla.yoctoproject.org/).
|
||||
If you're relatively certain that it's a bug against the BSP itself, please use the
|
||||
'BSPs | bsps-meta-intel' category for the bug; otherwise, please submit the bug against
|
||||
the most likely category for the problem. if you're wrong, it's not a big deal and
|
||||
the bug will be recategorized upon triage.
|
||||
|
||||
38
documentation/secureboot/README
Normal file
38
documentation/secureboot/README
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
Currently, only one implementation of Secure Boot is available out of the box,
|
||||
which is using a single signed EFI application to directly boot the kernel with
|
||||
an optional initramfs.
|
||||
|
||||
This can be added to your build either through local.conf, or via your own
|
||||
custom image recipe.
|
||||
|
||||
If you are adding it via local.conf, set the following variables:
|
||||
|
||||
IMAGE_FEATURES += "secureboot"
|
||||
WKS_FILE = "generic-bootdisk.wks.in"
|
||||
SECURE_BOOT_SIGNING_KEY = "/path/to/your/signing/key"
|
||||
SECURE_BOOT_SIGNING_CERT = "/path/to/your/signing/cert"
|
||||
IMAGE_CLASSES += "uefi-comboapp"
|
||||
|
||||
If working with an image recipe, you can inherit uefi-comboapp directly instead
|
||||
of using the IMAGE_CLASSES variable.
|
||||
|
||||
The signing keys and certs can be created via openssl commands. Here's an
|
||||
example:
|
||||
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=your-subject/" -keyout \
|
||||
your-key.key -out your-key.crt -days 365 -nodes -sha256
|
||||
openssl x509 -in your-key.crt -out your-key.cer -outform DER
|
||||
|
||||
The .crt file is your SECURE_BOOT_SIGNING_CERT, and the .key file is your
|
||||
SECURE_BOOT_SIGNING_KEY.
|
||||
|
||||
You should enroll the .crt key in your firmware under the PK, KEK, and DB
|
||||
options (methods are different depending on your firmware). If a key should ever
|
||||
become invalid, enroll it under DBX to blacklist it.
|
||||
|
||||
The comboapp can be further manipulated in a number of ways. You can modify the
|
||||
kernel command line via the APPEND variable, you can change the default UUID via
|
||||
the DISK_SIGNATURE_UUID variable, and you can modify the contents of the
|
||||
initramfs via the INITRD_IMAGE or INITRD_LIVE variables.
|
||||
|
||||
A simple Secure Boot enabled image used for testing can be viewed at:
|
||||
common/recipes-selftest/images/secureboot-selftest-image-signed.bb
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
## Guidelines for submitting patches
|
||||
|
||||
Please submit any patches against meta-intel BSPs to the
|
||||
[meta-intel mailing list](https://lists.yoctoproject.org/g/meta-intel)
|
||||
(email: meta-intel@lists.yoctoproject.org). Also, if your patches are
|
||||
available via a public git repository, please also include a URL to
|
||||
the repo and branch containing your patches as that makes it easier
|
||||
for maintainers to grab and test your patches.
|
||||
|
||||
The patches should follow the suggestions outlined in the
|
||||
[Yocto Project and OpenEmbedded Contributor Guide](https://docs.yoctoproject.org/dev/contributor-guide/index.html).
|
||||
In addition, for any non-trivial patch, provide information about how you
|
||||
tested the patch, and for any non-trivial or non-obvious testing
|
||||
setup, provide details of that setup.
|
||||
|
||||
Doing a quick 'git log' in meta-intel will provide you with many
|
||||
examples of good example commits if you have questions about any
|
||||
aspect of the preferred format.
|
||||
|
||||
The meta-intel maintainers will do their best to review and/or pull in
|
||||
a patch or patch sets within 24 hours of the time it was posted. For
|
||||
larger and/or more involved patches and patch sets, the review process
|
||||
may take longer.
|
||||
|
||||
Please see the [maintainers](../README.md#maintainers) section for the list of maintainers. It's also
|
||||
a good idea to cc: the maintainer, if applicable.
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
## Tested Hardware
|
||||
|
||||
The following undergo regular testing with their respective MACHINE types:
|
||||
|
||||
- intel-corei7-64:
|
||||
* Alder Lake-P/S/PS
|
||||
* Amston Lake
|
||||
* Elkhart Lake
|
||||
* Metor Lake-P
|
||||
* Raptor Lake-P/S
|
||||
* Tiger Lake
|
||||
|
||||
- intel-skylake-64:
|
||||
* Alder Lake-P/S/PS
|
||||
* Amston Lake
|
||||
* Metor Lake-P
|
||||
* Raptor Lake-P/S
|
||||
* Tiger Lake
|
||||
|
||||
- intel-core2-32:
|
||||
* MinnowBoard Turbot
|
||||
|
|
@ -3,19 +3,19 @@ SUMMARY = "Deep Neural Network Library"
|
|||
DESCRIPTION = "This software is a user mode library that accelerates\
|
||||
deep-learning applications and frameworks on Intel architecture."
|
||||
LICENSE = "Apache-2.0 & BSD-3-Clause & BSL-1.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=8e17c0f9656ebaf0c380d9b22707c846 \
|
||||
file://tests/gtests/gtest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \
|
||||
file://src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \
|
||||
file://src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \
|
||||
file://doc/assets/mathjax/MathJax.js;endline=17;md5=25a014ad78c3d72a0e15d15f1d007c20 \
|
||||
"
|
||||
SECTION = "lib"
|
||||
|
||||
inherit pkgconfig cmake ptest
|
||||
|
||||
DNN_BRANCH = "rls-v${@'.'.join(d.getVar('PV').split('.')[0:2])}"
|
||||
|
||||
SRCREV = "66f0cb9eb66affd2da3bf5f8d897376f04aae6af"
|
||||
SRC_URI = "git://github.com/oneapi-src/oneDNN.git;branch=${DNN_BRANCH};protocol=https \
|
||||
S = "${WORKDIR}/git"
|
||||
SRCREV = "f58682cd8bd0615f41d879f8afc8f1511ab42d24"
|
||||
SRC_URI = "git://github.com/oneapi-src/oneDNN.git;branch=rls-v2.2 \
|
||||
file://run-ptest \
|
||||
"
|
||||
|
||||
|
|
@ -24,7 +24,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
|
|||
CVE_PRODUCT = "intel:math_kernel_library"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST:libc-musl = 'null'
|
||||
COMPATIBLE_HOST_libc-musl = 'null'
|
||||
|
||||
EXTRA_OECMAKE += " \
|
||||
-DDNNL_LIBRARY_TYPE=SHARED \
|
||||
|
|
@ -33,14 +33,12 @@ EXTRA_OECMAKE += " \
|
|||
-DDNNL_CPU_RUNTIME=OMP \
|
||||
-DDNNL_ARCH_OPT_FLAGS="" \
|
||||
-DCMAKE_SKIP_RPATH=ON \
|
||||
-DONEDNN_BUILD_GRAPH=OFF \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
"
|
||||
|
||||
PACKAGECONFIG ??= "gpu"
|
||||
PACKAGECONFIG[gpu] = "-DDNNL_GPU_RUNTIME=OCL, , opencl-headers virtual/opencl-icd, intel-compute-runtime"
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG[gpu] = "-DDNNL_GPU_RUNTIME=OCL, , opencl-headers ocl-icd, intel-compute-runtime"
|
||||
|
||||
do_install:append () {
|
||||
do_install_append () {
|
||||
install -d ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs
|
||||
install -m 0755 ${B}/tests/benchdnn/benchdnn ${D}${bindir}/mkl-dnn/tests/benchdnn
|
||||
cp -r ${B}/tests/benchdnn/inputs/* ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs
|
||||
|
|
@ -54,4 +52,4 @@ do_install_ptest () {
|
|||
|
||||
PACKAGES =+ "${PN}-test"
|
||||
|
||||
FILES:${PN}-test = "${bindir}/mkl-dnn/*"
|
||||
FILES_${PN}-test = "${bindir}/mkl-dnn/*"
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
From 200c200eb19602ffd7c8f29d0b2df9df1fd311bf Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Wed, 7 Apr 2021 17:44:20 +0800
|
||||
Subject: [PATCH] Fix debug info of work-item builtin translation (#745)
|
||||
|
||||
debug info of work-item builtins are lost in both llvm IR -> spirv and
|
||||
spirv -> llvm IR translations. See #744
|
||||
|
||||
Upstream-Status: Backport [https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/c734c5c8bbd3012a09c610e4be68e90cc603c580]
|
||||
Signed-off-by: Wenju He <wenju.he@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
lib/SPIRV/OCL20ToSPIRV.cpp | 5 ++-
|
||||
lib/SPIRV/SPIRVReader.cpp | 1 +
|
||||
test/DebugInfo/builtin-get-global-id.ll | 60 +++++++++++++++++++++++++
|
||||
3 files changed, 65 insertions(+), 1 deletion(-)
|
||||
create mode 100644 test/DebugInfo/builtin-get-global-id.ll
|
||||
|
||||
diff --git a/lib/SPIRV/OCL20ToSPIRV.cpp b/lib/SPIRV/OCL20ToSPIRV.cpp
|
||||
index 1262c48c..a742c8cf 100644
|
||||
--- a/lib/SPIRV/OCL20ToSPIRV.cpp
|
||||
+++ b/lib/SPIRV/OCL20ToSPIRV.cpp
|
||||
@@ -1297,11 +1297,14 @@ void OCL20ToSPIRV::transWorkItemBuiltinsToVariables() {
|
||||
for (auto UI = I.user_begin(), UE = I.user_end(); UI != UE; ++UI) {
|
||||
auto CI = dyn_cast<CallInst>(*UI);
|
||||
assert(CI && "invalid instruction");
|
||||
- Value *NewValue = new LoadInst(BV, "", CI);
|
||||
+ const DebugLoc &DLoc = CI->getDebugLoc();
|
||||
+ Instruction *NewValue = new LoadInst(BV, "", CI);
|
||||
+ NewValue->setDebugLoc(DLoc);
|
||||
LLVM_DEBUG(dbgs() << "Transform: " << *CI << " => " << *NewValue << '\n');
|
||||
if (IsVec) {
|
||||
NewValue =
|
||||
ExtractElementInst::Create(NewValue, CI->getArgOperand(0), "", CI);
|
||||
+ NewValue->setDebugLoc(DLoc);
|
||||
LLVM_DEBUG(dbgs() << *NewValue << '\n');
|
||||
}
|
||||
NewValue->takeName(CI);
|
||||
diff --git a/lib/SPIRV/SPIRVReader.cpp b/lib/SPIRV/SPIRVReader.cpp
|
||||
index 16a3dd38..528f6663 100644
|
||||
--- a/lib/SPIRV/SPIRVReader.cpp
|
||||
+++ b/lib/SPIRV/SPIRVReader.cpp
|
||||
@@ -307,6 +307,7 @@ bool SPIRVToLLVM::transOCLBuiltinFromVariable(GlobalVariable *GV,
|
||||
auto Replace = [&](std::vector<Value *> Arg, Instruction *I) {
|
||||
auto Call = CallInst::Create(Func, Arg, "", I);
|
||||
Call->takeName(I);
|
||||
+ Call->setDebugLoc(I->getDebugLoc());
|
||||
setAttrByCalledFunc(Call);
|
||||
SPIRVDBG(dbgs() << "[transOCLBuiltinFromVariable] " << *I << " -> " << *Call
|
||||
<< '\n';)
|
||||
diff --git a/test/DebugInfo/builtin-get-global-id.ll b/test/DebugInfo/builtin-get-global-id.ll
|
||||
new file mode 100644
|
||||
index 00000000..a4a00e63
|
||||
--- /dev/null
|
||||
+++ b/test/DebugInfo/builtin-get-global-id.ll
|
||||
@@ -0,0 +1,60 @@
|
||||
+; Check debug info of builtin get_global_id is preserved from LLVM IR to spirv
|
||||
+; and spirv to LLVM IR translation.
|
||||
+
|
||||
+; Original .cl source:
|
||||
+; kernel void test() {
|
||||
+; size_t gid = get_global_id(0);
|
||||
+; }
|
||||
+
|
||||
+; Command line:
|
||||
+; ./clang -cc1 1.cl -triple spir64 -cl-std=cl2.0 -emit-llvm -finclude-default-header -debug-info-kind=line-tables-only -O0
|
||||
+
|
||||
+; RUN: llvm-as %s -o %t.bc
|
||||
+; RUN: llvm-spirv %t.bc -spirv-text -o - | FileCheck %s --check-prefix CHECK-SPIRV
|
||||
+; RUN: llvm-spirv %t.bc -o %t.spv
|
||||
+; RUN: llvm-spirv -r %t.spv -o - | llvm-dis -o - | FileCheck %s
|
||||
+
|
||||
+target datalayout = "e-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256-v512:512-v1024:1024"
|
||||
+target triple = "spir64"
|
||||
+
|
||||
+; CHECK-SPIRV: ExtInst {{.*}} DebugScope
|
||||
+; CHECK-SPIRV-NEXT: Line {{[0-9]+}} 2 16
|
||||
+; CHECK-SPIRV-NEXT: Load {{[0-9]+}} [[LoadRes:[0-9]+]]
|
||||
+; CHECK-SPIRV-NEXT: CompositeExtract {{[0-9]+}} {{[0-9]+}} [[LoadRes]] 0
|
||||
+
|
||||
+; Function Attrs: convergent noinline norecurse nounwind optnone
|
||||
+define spir_kernel void @test() #0 !dbg !7 !kernel_arg_addr_space !2 !kernel_arg_access_qual !2 !kernel_arg_type !2 !kernel_arg_base_type !2 !kernel_arg_type_qual !2 {
|
||||
+entry:
|
||||
+ %gid = alloca i64, align 8
|
||||
+ %call = call spir_func i64 @_Z13get_global_idj(i32 0) #2, !dbg !10
|
||||
+; CHECK: %call = call spir_func i64 @_Z13get_global_idj(i32 0) #1, !dbg [[DBG:![0-9]+]]
|
||||
+ store i64 %call, i64* %gid, align 8, !dbg !11
|
||||
+ ret void, !dbg !12
|
||||
+}
|
||||
+
|
||||
+; Function Attrs: convergent nounwind readnone
|
||||
+declare spir_func i64 @_Z13get_global_idj(i32) #1
|
||||
+
|
||||
+attributes #0 = { convergent noinline norecurse nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "uniform-work-group-size"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
+attributes #1 = { convergent nounwind readnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
||||
+attributes #2 = { convergent nounwind readnone }
|
||||
+
|
||||
+!llvm.dbg.cu = !{!0}
|
||||
+!llvm.module.flags = !{!3, !4}
|
||||
+!opencl.ocl.version = !{!5}
|
||||
+!opencl.spir.version = !{!5}
|
||||
+!llvm.ident = !{!6}
|
||||
+
|
||||
+!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 12.0.0 (https://github.com/llvm/llvm-project.git b5bc56da8aa23dc57db9d286b0591dbcf9b1bdd3)", isOptimized: false, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2, nameTableKind: None)
|
||||
+!1 = !DIFile(filename: "<stdin>", directory: "")
|
||||
+!2 = !{}
|
||||
+!3 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
+!4 = !{i32 1, !"wchar_size", i32 4}
|
||||
+!5 = !{i32 2, i32 0}
|
||||
+!6 = !{!"clang version 12.0.0 (https://github.com/llvm/llvm-project.git b5bc56da8aa23dc57db9d286b0591dbcf9b1bdd3)"}
|
||||
+!7 = distinct !DISubprogram(name: "test", scope: !8, file: !8, line: 1, type: !9, scopeLine: 1, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
|
||||
+!8 = !DIFile(filename: "1.cl", directory: "")
|
||||
+!9 = !DISubroutineType(types: !2)
|
||||
+!10 = !DILocation(line: 2, column: 16, scope: !7)
|
||||
+!11 = !DILocation(line: 2, column: 10, scope: !7)
|
||||
+!12 = !DILocation(line: 3, column: 1, scope: !7)
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From c86c43b70e029b102543e8a85d269cbeb5c00279 Mon Sep 17 00:00:00 2001
|
||||
From: juanrod2 <>
|
||||
Date: Tue, 22 Dec 2020 08:33:08 +0800
|
||||
Subject: [PATCH] Memory leak fix for Managed Static Mutex
|
||||
|
||||
Upstream-Status: Backport [Taken from opencl-clang patches; https://github.com/intel/opencl-clang/blob/ocl-open-100/patches/llvm/0001-Memory-leak-fix-for-Managed-Static-Mutex.patch]
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
|
||||
Cleaning a mutex inside ManagedStatic llvm class.
|
||||
---
|
||||
llvm/lib/Support/ManagedStatic.cpp | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/lib/Support/ManagedStatic.cpp b/llvm/lib/Support/ManagedStatic.cpp
|
||||
index 053493f72fb5..6571580ccecf 100644
|
||||
--- a/llvm/lib/Support/ManagedStatic.cpp
|
||||
+++ b/llvm/lib/Support/ManagedStatic.cpp
|
||||
@@ -76,8 +76,12 @@ void ManagedStaticBase::destroy() const {
|
||||
|
||||
/// llvm_shutdown - Deallocate and destroy all ManagedStatic variables.
|
||||
void llvm::llvm_shutdown() {
|
||||
- std::lock_guard<std::recursive_mutex> Lock(*getManagedStaticMutex());
|
||||
+ getManagedStaticMutex()->lock();
|
||||
|
||||
while (StaticList)
|
||||
StaticList->destroy();
|
||||
+
|
||||
+ getManagedStaticMutex()->unlock();
|
||||
+ delete ManagedStaticMutex;
|
||||
+ ManagedStaticMutex = nullptr;
|
||||
}
|
||||
--
|
||||
2.29.2
|
||||
|
||||
|
|
@ -0,0 +1,812 @@
|
|||
From 27d47f1a17c8921b07acc8cdc26e38cc609de4a9 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Wed, 7 Apr 2021 16:38:38 +0800
|
||||
Subject: [PATCH 2/2] Add cl_khr_extended_subgroup extensions.
|
||||
|
||||
Added extensions and their function declarations into
|
||||
the standard header.
|
||||
|
||||
Patch by Piotr Fusik!
|
||||
|
||||
Tags: #clang
|
||||
|
||||
Upstream-Status: Backport [https://github.com/llvm/llvm-project/commit/4a4402f0d72167477a6252e4c3daf5089ebc8f9a]
|
||||
Signed-off-by: Anastasia Stulova <anastasia.stulova@arm.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
.../include/clang/Basic/OpenCLExtensions.def | 7 +
|
||||
clang/lib/Headers/opencl-c.h | 668 ++++++++++++++++++
|
||||
clang/test/SemaOpenCL/extension-version.cl | 83 +++
|
||||
3 files changed, 758 insertions(+)
|
||||
|
||||
diff --git a/clang/include/clang/Basic/OpenCLExtensions.def b/clang/include/clang/Basic/OpenCLExtensions.def
|
||||
index 608f78a13eef..d1574164f9b2 100644
|
||||
--- a/clang/include/clang/Basic/OpenCLExtensions.def
|
||||
+++ b/clang/include/clang/Basic/OpenCLExtensions.def
|
||||
@@ -74,6 +74,13 @@ OPENCLEXT_INTERNAL(cl_khr_mipmap_image_writes, 200, ~0U)
|
||||
OPENCLEXT_INTERNAL(cl_khr_srgb_image_writes, 200, ~0U)
|
||||
OPENCLEXT_INTERNAL(cl_khr_subgroups, 200, ~0U)
|
||||
OPENCLEXT_INTERNAL(cl_khr_terminate_context, 200, ~0U)
|
||||
+OPENCLEXT_INTERNAL(cl_khr_subgroup_extended_types, 200, ~0U)
|
||||
+OPENCLEXT_INTERNAL(cl_khr_subgroup_non_uniform_vote, 200, ~0U)
|
||||
+OPENCLEXT_INTERNAL(cl_khr_subgroup_ballot, 200, ~0U)
|
||||
+OPENCLEXT_INTERNAL(cl_khr_subgroup_non_uniform_arithmetic, 200, ~0U)
|
||||
+OPENCLEXT_INTERNAL(cl_khr_subgroup_shuffle, 200, ~0U)
|
||||
+OPENCLEXT_INTERNAL(cl_khr_subgroup_shuffle_relative, 200, ~0U)
|
||||
+OPENCLEXT_INTERNAL(cl_khr_subgroup_clustered_reduce, 200, ~0U)
|
||||
|
||||
// Clang Extensions.
|
||||
OPENCLEXT_INTERNAL(cl_clang_storage_class_specifiers, 100, ~0U)
|
||||
diff --git a/clang/lib/Headers/opencl-c.h b/clang/lib/Headers/opencl-c.h
|
||||
index 93a946cec5b1..67d900eb1c3d 100644
|
||||
--- a/clang/lib/Headers/opencl-c.h
|
||||
+++ b/clang/lib/Headers/opencl-c.h
|
||||
@@ -17530,6 +17530,674 @@ double __ovld __conv sub_group_scan_inclusive_max(double x);
|
||||
|
||||
#endif //cl_khr_subgroups cl_intel_subgroups
|
||||
|
||||
+#if defined(cl_khr_subgroup_extended_types)
|
||||
+char __ovld __conv sub_group_broadcast( char value, uint index );
|
||||
+char2 __ovld __conv sub_group_broadcast( char2 value, uint index );
|
||||
+char3 __ovld __conv sub_group_broadcast( char3 value, uint index );
|
||||
+char4 __ovld __conv sub_group_broadcast( char4 value, uint index );
|
||||
+char8 __ovld __conv sub_group_broadcast( char8 value, uint index );
|
||||
+char16 __ovld __conv sub_group_broadcast( char16 value, uint index );
|
||||
+
|
||||
+uchar __ovld __conv sub_group_broadcast( uchar value, uint index );
|
||||
+uchar2 __ovld __conv sub_group_broadcast( uchar2 value, uint index );
|
||||
+uchar3 __ovld __conv sub_group_broadcast( uchar3 value, uint index );
|
||||
+uchar4 __ovld __conv sub_group_broadcast( uchar4 value, uint index );
|
||||
+uchar8 __ovld __conv sub_group_broadcast( uchar8 value, uint index );
|
||||
+uchar16 __ovld __conv sub_group_broadcast( uchar16 value, uint index );
|
||||
+
|
||||
+short __ovld __conv sub_group_broadcast( short value, uint index );
|
||||
+short2 __ovld __conv sub_group_broadcast( short2 value, uint index );
|
||||
+short3 __ovld __conv sub_group_broadcast( short3 value, uint index );
|
||||
+short4 __ovld __conv sub_group_broadcast( short4 value, uint index );
|
||||
+short8 __ovld __conv sub_group_broadcast( short8 value, uint index );
|
||||
+short16 __ovld __conv sub_group_broadcast( short16 value, uint index );
|
||||
+
|
||||
+ushort __ovld __conv sub_group_broadcast( ushort value, uint index );
|
||||
+ushort2 __ovld __conv sub_group_broadcast( ushort2 value, uint index );
|
||||
+ushort3 __ovld __conv sub_group_broadcast( ushort3 value, uint index );
|
||||
+ushort4 __ovld __conv sub_group_broadcast( ushort4 value, uint index );
|
||||
+ushort8 __ovld __conv sub_group_broadcast( ushort8 value, uint index );
|
||||
+ushort16 __ovld __conv sub_group_broadcast( ushort16 value, uint index );
|
||||
+
|
||||
+// scalar int broadcast is part of cl_khr_subgroups
|
||||
+int2 __ovld __conv sub_group_broadcast( int2 value, uint index );
|
||||
+int3 __ovld __conv sub_group_broadcast( int3 value, uint index );
|
||||
+int4 __ovld __conv sub_group_broadcast( int4 value, uint index );
|
||||
+int8 __ovld __conv sub_group_broadcast( int8 value, uint index );
|
||||
+int16 __ovld __conv sub_group_broadcast( int16 value, uint index );
|
||||
+
|
||||
+// scalar uint broadcast is part of cl_khr_subgroups
|
||||
+uint2 __ovld __conv sub_group_broadcast( uint2 value, uint index );
|
||||
+uint3 __ovld __conv sub_group_broadcast( uint3 value, uint index );
|
||||
+uint4 __ovld __conv sub_group_broadcast( uint4 value, uint index );
|
||||
+uint8 __ovld __conv sub_group_broadcast( uint8 value, uint index );
|
||||
+uint16 __ovld __conv sub_group_broadcast( uint16 value, uint index );
|
||||
+
|
||||
+// scalar long broadcast is part of cl_khr_subgroups
|
||||
+long2 __ovld __conv sub_group_broadcast( long2 value, uint index );
|
||||
+long3 __ovld __conv sub_group_broadcast( long3 value, uint index );
|
||||
+long4 __ovld __conv sub_group_broadcast( long4 value, uint index );
|
||||
+long8 __ovld __conv sub_group_broadcast( long8 value, uint index );
|
||||
+long16 __ovld __conv sub_group_broadcast( long16 value, uint index );
|
||||
+
|
||||
+// scalar ulong broadcast is part of cl_khr_subgroups
|
||||
+ulong2 __ovld __conv sub_group_broadcast( ulong2 value, uint index );
|
||||
+ulong3 __ovld __conv sub_group_broadcast( ulong3 value, uint index );
|
||||
+ulong4 __ovld __conv sub_group_broadcast( ulong4 value, uint index );
|
||||
+ulong8 __ovld __conv sub_group_broadcast( ulong8 value, uint index );
|
||||
+ulong16 __ovld __conv sub_group_broadcast( ulong16 value, uint index );
|
||||
+
|
||||
+// scalar float broadcast is part of cl_khr_subgroups
|
||||
+float2 __ovld __conv sub_group_broadcast( float2 value, uint index );
|
||||
+float3 __ovld __conv sub_group_broadcast( float3 value, uint index );
|
||||
+float4 __ovld __conv sub_group_broadcast( float4 value, uint index );
|
||||
+float8 __ovld __conv sub_group_broadcast( float8 value, uint index );
|
||||
+float16 __ovld __conv sub_group_broadcast( float16 value, uint index );
|
||||
+
|
||||
+char __ovld __conv sub_group_reduce_add( char value );
|
||||
+uchar __ovld __conv sub_group_reduce_add( uchar value );
|
||||
+short __ovld __conv sub_group_reduce_add( short value );
|
||||
+ushort __ovld __conv sub_group_reduce_add( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_reduce_min( char value );
|
||||
+uchar __ovld __conv sub_group_reduce_min( uchar value );
|
||||
+short __ovld __conv sub_group_reduce_min( short value );
|
||||
+ushort __ovld __conv sub_group_reduce_min( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_reduce_max( char value );
|
||||
+uchar __ovld __conv sub_group_reduce_max( uchar value );
|
||||
+short __ovld __conv sub_group_reduce_max( short value );
|
||||
+ushort __ovld __conv sub_group_reduce_max( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_scan_inclusive_add( char value );
|
||||
+uchar __ovld __conv sub_group_scan_inclusive_add( uchar value );
|
||||
+short __ovld __conv sub_group_scan_inclusive_add( short value );
|
||||
+ushort __ovld __conv sub_group_scan_inclusive_add( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_scan_inclusive_min( char value );
|
||||
+uchar __ovld __conv sub_group_scan_inclusive_min( uchar value );
|
||||
+short __ovld __conv sub_group_scan_inclusive_min( short value );
|
||||
+ushort __ovld __conv sub_group_scan_inclusive_min( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_scan_inclusive_max( char value );
|
||||
+uchar __ovld __conv sub_group_scan_inclusive_max( uchar value );
|
||||
+short __ovld __conv sub_group_scan_inclusive_max( short value );
|
||||
+ushort __ovld __conv sub_group_scan_inclusive_max( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_scan_exclusive_add( char value );
|
||||
+uchar __ovld __conv sub_group_scan_exclusive_add( uchar value );
|
||||
+short __ovld __conv sub_group_scan_exclusive_add( short value );
|
||||
+ushort __ovld __conv sub_group_scan_exclusive_add( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_scan_exclusive_min( char value );
|
||||
+uchar __ovld __conv sub_group_scan_exclusive_min( uchar value );
|
||||
+short __ovld __conv sub_group_scan_exclusive_min( short value );
|
||||
+ushort __ovld __conv sub_group_scan_exclusive_min( ushort value );
|
||||
+
|
||||
+char __ovld __conv sub_group_scan_exclusive_max( char value );
|
||||
+uchar __ovld __conv sub_group_scan_exclusive_max( uchar value );
|
||||
+short __ovld __conv sub_group_scan_exclusive_max( short value );
|
||||
+ushort __ovld __conv sub_group_scan_exclusive_max( ushort value );
|
||||
+
|
||||
+#if defined(cl_khr_fp16)
|
||||
+// scalar half broadcast is part of cl_khr_subgroups
|
||||
+half2 __ovld __conv sub_group_broadcast( half2 value, uint index );
|
||||
+half3 __ovld __conv sub_group_broadcast( half3 value, uint index );
|
||||
+half4 __ovld __conv sub_group_broadcast( half4 value, uint index );
|
||||
+half8 __ovld __conv sub_group_broadcast( half8 value, uint index );
|
||||
+half16 __ovld __conv sub_group_broadcast( half16 value, uint index );
|
||||
+#endif // cl_khr_fp16
|
||||
+
|
||||
+#if defined(cl_khr_fp64)
|
||||
+// scalar double broadcast is part of cl_khr_subgroups
|
||||
+double2 __ovld __conv sub_group_broadcast( double2 value, uint index );
|
||||
+double3 __ovld __conv sub_group_broadcast( double3 value, uint index );
|
||||
+double4 __ovld __conv sub_group_broadcast( double4 value, uint index );
|
||||
+double8 __ovld __conv sub_group_broadcast( double8 value, uint index );
|
||||
+double16 __ovld __conv sub_group_broadcast( double16 value, uint index );
|
||||
+#endif // cl_khr_fp64
|
||||
+
|
||||
+#endif // cl_khr_subgroup_extended_types
|
||||
+
|
||||
+#if defined(cl_khr_subgroup_non_uniform_vote)
|
||||
+int __ovld sub_group_elect(void);
|
||||
+int __ovld sub_group_non_uniform_all( int predicate );
|
||||
+int __ovld sub_group_non_uniform_any( int predicate );
|
||||
+
|
||||
+int __ovld sub_group_non_uniform_all_equal( char value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( uchar value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( short value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( ushort value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( int value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( uint value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( long value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( ulong value );
|
||||
+int __ovld sub_group_non_uniform_all_equal( float value );
|
||||
+
|
||||
+#if defined(cl_khr_fp16)
|
||||
+int __ovld sub_group_non_uniform_all_equal( half value );
|
||||
+#endif // cl_khr_fp16
|
||||
+
|
||||
+#if defined(cl_khr_fp64)
|
||||
+int __ovld sub_group_non_uniform_all_equal( double value );
|
||||
+#endif // cl_khr_fp64
|
||||
+
|
||||
+#endif // cl_khr_subgroup_non_uniform_vote
|
||||
+
|
||||
+#if defined(cl_khr_subgroup_ballot)
|
||||
+char __ovld sub_group_non_uniform_broadcast( char value, uint index );
|
||||
+char2 __ovld sub_group_non_uniform_broadcast( char2 value, uint index );
|
||||
+char3 __ovld sub_group_non_uniform_broadcast( char3 value, uint index );
|
||||
+char4 __ovld sub_group_non_uniform_broadcast( char4 value, uint index );
|
||||
+char8 __ovld sub_group_non_uniform_broadcast( char8 value, uint index );
|
||||
+char16 __ovld sub_group_non_uniform_broadcast( char16 value, uint index );
|
||||
+
|
||||
+uchar __ovld sub_group_non_uniform_broadcast( uchar value, uint index );
|
||||
+uchar2 __ovld sub_group_non_uniform_broadcast( uchar2 value, uint index );
|
||||
+uchar3 __ovld sub_group_non_uniform_broadcast( uchar3 value, uint index );
|
||||
+uchar4 __ovld sub_group_non_uniform_broadcast( uchar4 value, uint index );
|
||||
+uchar8 __ovld sub_group_non_uniform_broadcast( uchar8 value, uint index );
|
||||
+uchar16 __ovld sub_group_non_uniform_broadcast( uchar16 value, uint index );
|
||||
+
|
||||
+short __ovld sub_group_non_uniform_broadcast( short value, uint index );
|
||||
+short2 __ovld sub_group_non_uniform_broadcast( short2 value, uint index );
|
||||
+short3 __ovld sub_group_non_uniform_broadcast( short3 value, uint index );
|
||||
+short4 __ovld sub_group_non_uniform_broadcast( short4 value, uint index );
|
||||
+short8 __ovld sub_group_non_uniform_broadcast( short8 value, uint index );
|
||||
+short16 __ovld sub_group_non_uniform_broadcast( short16 value, uint index );
|
||||
+
|
||||
+ushort __ovld sub_group_non_uniform_broadcast( ushort value, uint index );
|
||||
+ushort2 __ovld sub_group_non_uniform_broadcast( ushort2 value, uint index );
|
||||
+ushort3 __ovld sub_group_non_uniform_broadcast( ushort3 value, uint index );
|
||||
+ushort4 __ovld sub_group_non_uniform_broadcast( ushort4 value, uint index );
|
||||
+ushort8 __ovld sub_group_non_uniform_broadcast( ushort8 value, uint index );
|
||||
+ushort16 __ovld sub_group_non_uniform_broadcast( ushort16 value, uint index );
|
||||
+
|
||||
+int __ovld sub_group_non_uniform_broadcast( int value, uint index );
|
||||
+int2 __ovld sub_group_non_uniform_broadcast( int2 value, uint index );
|
||||
+int3 __ovld sub_group_non_uniform_broadcast( int3 value, uint index );
|
||||
+int4 __ovld sub_group_non_uniform_broadcast( int4 value, uint index );
|
||||
+int8 __ovld sub_group_non_uniform_broadcast( int8 value, uint index );
|
||||
+int16 __ovld sub_group_non_uniform_broadcast( int16 value, uint index );
|
||||
+
|
||||
+uint __ovld sub_group_non_uniform_broadcast( uint value, uint index );
|
||||
+uint2 __ovld sub_group_non_uniform_broadcast( uint2 value, uint index );
|
||||
+uint3 __ovld sub_group_non_uniform_broadcast( uint3 value, uint index );
|
||||
+uint4 __ovld sub_group_non_uniform_broadcast( uint4 value, uint index );
|
||||
+uint8 __ovld sub_group_non_uniform_broadcast( uint8 value, uint index );
|
||||
+uint16 __ovld sub_group_non_uniform_broadcast( uint16 value, uint index );
|
||||
+
|
||||
+long __ovld sub_group_non_uniform_broadcast( long value, uint index );
|
||||
+long2 __ovld sub_group_non_uniform_broadcast( long2 value, uint index );
|
||||
+long3 __ovld sub_group_non_uniform_broadcast( long3 value, uint index );
|
||||
+long4 __ovld sub_group_non_uniform_broadcast( long4 value, uint index );
|
||||
+long8 __ovld sub_group_non_uniform_broadcast( long8 value, uint index );
|
||||
+long16 __ovld sub_group_non_uniform_broadcast( long16 value, uint index );
|
||||
+
|
||||
+ulong __ovld sub_group_non_uniform_broadcast( ulong value, uint index );
|
||||
+ulong2 __ovld sub_group_non_uniform_broadcast( ulong2 value, uint index );
|
||||
+ulong3 __ovld sub_group_non_uniform_broadcast( ulong3 value, uint index );
|
||||
+ulong4 __ovld sub_group_non_uniform_broadcast( ulong4 value, uint index );
|
||||
+ulong8 __ovld sub_group_non_uniform_broadcast( ulong8 value, uint index );
|
||||
+ulong16 __ovld sub_group_non_uniform_broadcast( ulong16 value, uint index );
|
||||
+
|
||||
+float __ovld sub_group_non_uniform_broadcast( float value, uint index );
|
||||
+float2 __ovld sub_group_non_uniform_broadcast( float2 value, uint index );
|
||||
+float3 __ovld sub_group_non_uniform_broadcast( float3 value, uint index );
|
||||
+float4 __ovld sub_group_non_uniform_broadcast( float4 value, uint index );
|
||||
+float8 __ovld sub_group_non_uniform_broadcast( float8 value, uint index );
|
||||
+float16 __ovld sub_group_non_uniform_broadcast( float16 value, uint index );
|
||||
+
|
||||
+char __ovld sub_group_broadcast_first( char value );
|
||||
+uchar __ovld sub_group_broadcast_first( uchar value );
|
||||
+short __ovld sub_group_broadcast_first( short value );
|
||||
+ushort __ovld sub_group_broadcast_first( ushort value );
|
||||
+int __ovld sub_group_broadcast_first( int value );
|
||||
+uint __ovld sub_group_broadcast_first( uint value );
|
||||
+long __ovld sub_group_broadcast_first( long value );
|
||||
+ulong __ovld sub_group_broadcast_first( ulong value );
|
||||
+float __ovld sub_group_broadcast_first( float value );
|
||||
+
|
||||
+uint4 __ovld sub_group_ballot( int predicate );
|
||||
+int __ovld __cnfn sub_group_inverse_ballot( uint4 value );
|
||||
+int __ovld __cnfn sub_group_ballot_bit_extract( uint4 value, uint index );
|
||||
+uint __ovld __cnfn sub_group_ballot_bit_count( uint4 value );
|
||||
+
|
||||
+uint __ovld sub_group_ballot_inclusive_scan( uint4 value );
|
||||
+uint __ovld sub_group_ballot_exclusive_scan( uint4 value );
|
||||
+uint __ovld sub_group_ballot_find_lsb( uint4 value );
|
||||
+uint __ovld sub_group_ballot_find_msb( uint4 value );
|
||||
+
|
||||
+uint4 __ovld __cnfn get_sub_group_eq_mask(void);
|
||||
+uint4 __ovld __cnfn get_sub_group_ge_mask(void);
|
||||
+uint4 __ovld __cnfn get_sub_group_gt_mask(void);
|
||||
+uint4 __ovld __cnfn get_sub_group_le_mask(void);
|
||||
+uint4 __ovld __cnfn get_sub_group_lt_mask(void);
|
||||
+
|
||||
+#if defined(cl_khr_fp16)
|
||||
+half __ovld sub_group_non_uniform_broadcast( half value, uint index );
|
||||
+half2 __ovld sub_group_non_uniform_broadcast( half2 value, uint index );
|
||||
+half3 __ovld sub_group_non_uniform_broadcast( half3 value, uint index );
|
||||
+half4 __ovld sub_group_non_uniform_broadcast( half4 value, uint index );
|
||||
+half8 __ovld sub_group_non_uniform_broadcast( half8 value, uint index );
|
||||
+half16 __ovld sub_group_non_uniform_broadcast( half16 value, uint index );
|
||||
+
|
||||
+half __ovld sub_group_broadcast_first( half value );
|
||||
+#endif // cl_khr_fp16
|
||||
+
|
||||
+#if defined(cl_khr_fp64)
|
||||
+double __ovld sub_group_non_uniform_broadcast( double value, uint index );
|
||||
+double2 __ovld sub_group_non_uniform_broadcast( double2 value, uint index );
|
||||
+double3 __ovld sub_group_non_uniform_broadcast( double3 value, uint index );
|
||||
+double4 __ovld sub_group_non_uniform_broadcast( double4 value, uint index );
|
||||
+double8 __ovld sub_group_non_uniform_broadcast( double8 value, uint index );
|
||||
+double16 __ovld sub_group_non_uniform_broadcast( double16 value, uint index );
|
||||
+
|
||||
+double __ovld sub_group_broadcast_first( double value );
|
||||
+#endif // cl_khr_fp64
|
||||
+
|
||||
+#endif // cl_khr_subgroup_ballot
|
||||
+
|
||||
+#if defined(cl_khr_subgroup_non_uniform_arithmetic)
|
||||
+char __ovld sub_group_non_uniform_reduce_add( char value );
|
||||
+uchar __ovld sub_group_non_uniform_reduce_add( uchar value );
|
||||
+short __ovld sub_group_non_uniform_reduce_add( short value );
|
||||
+ushort __ovld sub_group_non_uniform_reduce_add( ushort value );
|
||||
+int __ovld sub_group_non_uniform_reduce_add( int value );
|
||||
+uint __ovld sub_group_non_uniform_reduce_add( uint value );
|
||||
+long __ovld sub_group_non_uniform_reduce_add( long value );
|
||||
+ulong __ovld sub_group_non_uniform_reduce_add( ulong value );
|
||||
+float __ovld sub_group_non_uniform_reduce_add( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_reduce_mul( char value );
|
||||
+uchar __ovld sub_group_non_uniform_reduce_mul( uchar value );
|
||||
+short __ovld sub_group_non_uniform_reduce_mul( short value );
|
||||
+ushort __ovld sub_group_non_uniform_reduce_mul( ushort value );
|
||||
+int __ovld sub_group_non_uniform_reduce_mul( int value );
|
||||
+uint __ovld sub_group_non_uniform_reduce_mul( uint value );
|
||||
+long __ovld sub_group_non_uniform_reduce_mul( long value );
|
||||
+ulong __ovld sub_group_non_uniform_reduce_mul( ulong value );
|
||||
+float __ovld sub_group_non_uniform_reduce_mul( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_reduce_min( char value );
|
||||
+uchar __ovld sub_group_non_uniform_reduce_min( uchar value );
|
||||
+short __ovld sub_group_non_uniform_reduce_min( short value );
|
||||
+ushort __ovld sub_group_non_uniform_reduce_min( ushort value );
|
||||
+int __ovld sub_group_non_uniform_reduce_min( int value );
|
||||
+uint __ovld sub_group_non_uniform_reduce_min( uint value );
|
||||
+long __ovld sub_group_non_uniform_reduce_min( long value );
|
||||
+ulong __ovld sub_group_non_uniform_reduce_min( ulong value );
|
||||
+float __ovld sub_group_non_uniform_reduce_min( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_reduce_max( char value );
|
||||
+uchar __ovld sub_group_non_uniform_reduce_max( uchar value );
|
||||
+short __ovld sub_group_non_uniform_reduce_max( short value );
|
||||
+ushort __ovld sub_group_non_uniform_reduce_max( ushort value );
|
||||
+int __ovld sub_group_non_uniform_reduce_max( int value );
|
||||
+uint __ovld sub_group_non_uniform_reduce_max( uint value );
|
||||
+long __ovld sub_group_non_uniform_reduce_max( long value );
|
||||
+ulong __ovld sub_group_non_uniform_reduce_max( ulong value );
|
||||
+float __ovld sub_group_non_uniform_reduce_max( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_inclusive_add( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_inclusive_add( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_inclusive_add( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_inclusive_add( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_add( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_inclusive_add( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_inclusive_add( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_inclusive_add( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_inclusive_add( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_inclusive_mul( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_inclusive_mul( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_inclusive_mul( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_inclusive_mul( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_mul( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_inclusive_mul( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_inclusive_mul( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_inclusive_mul( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_inclusive_mul( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_inclusive_min( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_inclusive_min( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_inclusive_min( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_inclusive_min( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_min( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_inclusive_min( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_inclusive_min( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_inclusive_min( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_inclusive_min( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_inclusive_max( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_inclusive_max( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_inclusive_max( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_inclusive_max( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_max( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_inclusive_max( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_inclusive_max( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_inclusive_max( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_inclusive_max( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_exclusive_add( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_exclusive_add( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_exclusive_add( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_exclusive_add( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_add( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_exclusive_add( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_exclusive_add( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_exclusive_add( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_exclusive_add( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_exclusive_mul( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_exclusive_mul( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_exclusive_mul( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_exclusive_mul( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_mul( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_exclusive_mul( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_exclusive_mul( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_exclusive_mul( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_exclusive_mul( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_exclusive_min( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_exclusive_min( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_exclusive_min( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_exclusive_min( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_min( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_exclusive_min( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_exclusive_min( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_exclusive_min( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_exclusive_min( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_exclusive_max( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_exclusive_max( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_exclusive_max( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_exclusive_max( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_max( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_exclusive_max( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_exclusive_max( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_exclusive_max( ulong value );
|
||||
+float __ovld sub_group_non_uniform_scan_exclusive_max( float value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_reduce_and( char value );
|
||||
+uchar __ovld sub_group_non_uniform_reduce_and( uchar value );
|
||||
+short __ovld sub_group_non_uniform_reduce_and( short value );
|
||||
+ushort __ovld sub_group_non_uniform_reduce_and( ushort value );
|
||||
+int __ovld sub_group_non_uniform_reduce_and( int value );
|
||||
+uint __ovld sub_group_non_uniform_reduce_and( uint value );
|
||||
+long __ovld sub_group_non_uniform_reduce_and( long value );
|
||||
+ulong __ovld sub_group_non_uniform_reduce_and( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_reduce_or( char value );
|
||||
+uchar __ovld sub_group_non_uniform_reduce_or( uchar value );
|
||||
+short __ovld sub_group_non_uniform_reduce_or( short value );
|
||||
+ushort __ovld sub_group_non_uniform_reduce_or( ushort value );
|
||||
+int __ovld sub_group_non_uniform_reduce_or( int value );
|
||||
+uint __ovld sub_group_non_uniform_reduce_or( uint value );
|
||||
+long __ovld sub_group_non_uniform_reduce_or( long value );
|
||||
+ulong __ovld sub_group_non_uniform_reduce_or( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_reduce_xor( char value );
|
||||
+uchar __ovld sub_group_non_uniform_reduce_xor( uchar value );
|
||||
+short __ovld sub_group_non_uniform_reduce_xor( short value );
|
||||
+ushort __ovld sub_group_non_uniform_reduce_xor( ushort value );
|
||||
+int __ovld sub_group_non_uniform_reduce_xor( int value );
|
||||
+uint __ovld sub_group_non_uniform_reduce_xor( uint value );
|
||||
+long __ovld sub_group_non_uniform_reduce_xor( long value );
|
||||
+ulong __ovld sub_group_non_uniform_reduce_xor( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_inclusive_and( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_inclusive_and( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_inclusive_and( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_inclusive_and( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_and( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_inclusive_and( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_inclusive_and( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_inclusive_and( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_inclusive_or( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_inclusive_or( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_inclusive_or( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_inclusive_or( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_or( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_inclusive_or( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_inclusive_or( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_inclusive_or( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_inclusive_xor( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_inclusive_xor( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_inclusive_xor( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_inclusive_xor( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_xor( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_inclusive_xor( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_inclusive_xor( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_inclusive_xor( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_exclusive_and( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_exclusive_and( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_exclusive_and( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_exclusive_and( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_and( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_exclusive_and( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_exclusive_and( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_exclusive_and( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_exclusive_or( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_exclusive_or( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_exclusive_or( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_exclusive_or( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_or( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_exclusive_or( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_exclusive_or( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_exclusive_or( ulong value );
|
||||
+
|
||||
+char __ovld sub_group_non_uniform_scan_exclusive_xor( char value );
|
||||
+uchar __ovld sub_group_non_uniform_scan_exclusive_xor( uchar value );
|
||||
+short __ovld sub_group_non_uniform_scan_exclusive_xor( short value );
|
||||
+ushort __ovld sub_group_non_uniform_scan_exclusive_xor( ushort value );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_xor( int value );
|
||||
+uint __ovld sub_group_non_uniform_scan_exclusive_xor( uint value );
|
||||
+long __ovld sub_group_non_uniform_scan_exclusive_xor( long value );
|
||||
+ulong __ovld sub_group_non_uniform_scan_exclusive_xor( ulong value );
|
||||
+
|
||||
+int __ovld sub_group_non_uniform_reduce_logical_and( int predicate );
|
||||
+int __ovld sub_group_non_uniform_reduce_logical_or( int predicate );
|
||||
+int __ovld sub_group_non_uniform_reduce_logical_xor( int predicate );
|
||||
+
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_logical_and( int predicate );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_logical_or( int predicate );
|
||||
+int __ovld sub_group_non_uniform_scan_inclusive_logical_xor( int predicate );
|
||||
+
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_logical_and( int predicate );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_logical_or( int predicate );
|
||||
+int __ovld sub_group_non_uniform_scan_exclusive_logical_xor( int predicate );
|
||||
+
|
||||
+#if defined(cl_khr_fp16)
|
||||
+half __ovld sub_group_non_uniform_reduce_add( half value );
|
||||
+half __ovld sub_group_non_uniform_reduce_mul( half value );
|
||||
+half __ovld sub_group_non_uniform_reduce_min( half value );
|
||||
+half __ovld sub_group_non_uniform_reduce_max( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_inclusive_add( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_inclusive_mul( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_inclusive_min( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_inclusive_max( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_exclusive_add( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_exclusive_mul( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_exclusive_min( half value );
|
||||
+half __ovld sub_group_non_uniform_scan_exclusive_max( half value );
|
||||
+#endif // cl_khr_fp16
|
||||
+
|
||||
+#if defined(cl_khr_fp64)
|
||||
+double __ovld sub_group_non_uniform_reduce_add( double value );
|
||||
+double __ovld sub_group_non_uniform_reduce_mul( double value );
|
||||
+double __ovld sub_group_non_uniform_reduce_min( double value );
|
||||
+double __ovld sub_group_non_uniform_reduce_max( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_inclusive_add( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_inclusive_mul( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_inclusive_min( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_inclusive_max( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_exclusive_add( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_exclusive_mul( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_exclusive_min( double value );
|
||||
+double __ovld sub_group_non_uniform_scan_exclusive_max( double value );
|
||||
+#endif // cl_khr_fp64
|
||||
+
|
||||
+#endif // cl_khr_subgroup_non_uniform_arithmetic
|
||||
+
|
||||
+#if defined(cl_khr_subgroup_shuffle)
|
||||
+char __ovld sub_group_shuffle( char value, uint index );
|
||||
+uchar __ovld sub_group_shuffle( uchar value, uint index );
|
||||
+short __ovld sub_group_shuffle( short value, uint index );
|
||||
+ushort __ovld sub_group_shuffle( ushort value, uint index );
|
||||
+int __ovld sub_group_shuffle( int value, uint index );
|
||||
+uint __ovld sub_group_shuffle( uint value, uint index );
|
||||
+long __ovld sub_group_shuffle( long value, uint index );
|
||||
+ulong __ovld sub_group_shuffle( ulong value, uint index );
|
||||
+float __ovld sub_group_shuffle( float value, uint index );
|
||||
+
|
||||
+char __ovld sub_group_shuffle_xor( char value, uint mask );
|
||||
+uchar __ovld sub_group_shuffle_xor( uchar value, uint mask );
|
||||
+short __ovld sub_group_shuffle_xor( short value, uint mask );
|
||||
+ushort __ovld sub_group_shuffle_xor( ushort value, uint mask );
|
||||
+int __ovld sub_group_shuffle_xor( int value, uint mask );
|
||||
+uint __ovld sub_group_shuffle_xor( uint value, uint mask );
|
||||
+long __ovld sub_group_shuffle_xor( long value, uint mask );
|
||||
+ulong __ovld sub_group_shuffle_xor( ulong value, uint mask );
|
||||
+float __ovld sub_group_shuffle_xor( float value, uint mask );
|
||||
+
|
||||
+#if defined(cl_khr_fp16)
|
||||
+half __ovld sub_group_shuffle( half value, uint index );
|
||||
+half __ovld sub_group_shuffle_xor( half value, uint mask );
|
||||
+#endif // cl_khr_fp16
|
||||
+
|
||||
+#if defined(cl_khr_fp64)
|
||||
+double __ovld sub_group_shuffle( double value, uint index );
|
||||
+double __ovld sub_group_shuffle_xor( double value, uint mask );
|
||||
+#endif // cl_khr_fp64
|
||||
+
|
||||
+#endif // cl_khr_subgroup_shuffle
|
||||
+
|
||||
+#if defined(cl_khr_subgroup_shuffle_relative)
|
||||
+char __ovld sub_group_shuffle_up( char value, uint delta );
|
||||
+uchar __ovld sub_group_shuffle_up( uchar value, uint delta );
|
||||
+short __ovld sub_group_shuffle_up( short value, uint delta );
|
||||
+ushort __ovld sub_group_shuffle_up( ushort value, uint delta );
|
||||
+int __ovld sub_group_shuffle_up( int value, uint delta );
|
||||
+uint __ovld sub_group_shuffle_up( uint value, uint delta );
|
||||
+long __ovld sub_group_shuffle_up( long value, uint delta );
|
||||
+ulong __ovld sub_group_shuffle_up( ulong value, uint delta );
|
||||
+float __ovld sub_group_shuffle_up( float value, uint delta );
|
||||
+
|
||||
+char __ovld sub_group_shuffle_down( char value, uint delta );
|
||||
+uchar __ovld sub_group_shuffle_down( uchar value, uint delta );
|
||||
+short __ovld sub_group_shuffle_down( short value, uint delta );
|
||||
+ushort __ovld sub_group_shuffle_down( ushort value, uint delta );
|
||||
+int __ovld sub_group_shuffle_down( int value, uint delta );
|
||||
+uint __ovld sub_group_shuffle_down( uint value, uint delta );
|
||||
+long __ovld sub_group_shuffle_down( long value, uint delta );
|
||||
+ulong __ovld sub_group_shuffle_down( ulong value, uint delta );
|
||||
+float __ovld sub_group_shuffle_down( float value, uint delta );
|
||||
+
|
||||
+#if defined(cl_khr_fp16)
|
||||
+half __ovld sub_group_shuffle_up( half value, uint delta );
|
||||
+half __ovld sub_group_shuffle_down( half value, uint delta );
|
||||
+#endif // cl_khr_fp16
|
||||
+
|
||||
+#if defined(cl_khr_fp64)
|
||||
+double __ovld sub_group_shuffle_up( double value, uint delta );
|
||||
+double __ovld sub_group_shuffle_down( double value, uint delta );
|
||||
+#endif // cl_khr_fp64
|
||||
+
|
||||
+#endif // cl_khr_subgroup_shuffle_relative
|
||||
+
|
||||
+#if defined(cl_khr_subgroup_clustered_reduce)
|
||||
+char __ovld sub_group_clustered_reduce_add( char value, uint clustersize );
|
||||
+uchar __ovld sub_group_clustered_reduce_add( uchar value, uint clustersize );
|
||||
+short __ovld sub_group_clustered_reduce_add( short value, uint clustersize );
|
||||
+ushort __ovld sub_group_clustered_reduce_add( ushort value, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_add( int value, uint clustersize );
|
||||
+uint __ovld sub_group_clustered_reduce_add( uint value, uint clustersize );
|
||||
+long __ovld sub_group_clustered_reduce_add( long value, uint clustersize );
|
||||
+ulong __ovld sub_group_clustered_reduce_add( ulong value, uint clustersize );
|
||||
+float __ovld sub_group_clustered_reduce_add( float value, uint clustersize );
|
||||
+
|
||||
+char __ovld sub_group_clustered_reduce_mul( char value, uint clustersize );
|
||||
+uchar __ovld sub_group_clustered_reduce_mul( uchar value, uint clustersize );
|
||||
+short __ovld sub_group_clustered_reduce_mul( short value, uint clustersize );
|
||||
+ushort __ovld sub_group_clustered_reduce_mul( ushort value, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_mul( int value, uint clustersize );
|
||||
+uint __ovld sub_group_clustered_reduce_mul( uint value, uint clustersize );
|
||||
+long __ovld sub_group_clustered_reduce_mul( long value, uint clustersize );
|
||||
+ulong __ovld sub_group_clustered_reduce_mul( ulong value, uint clustersize );
|
||||
+float __ovld sub_group_clustered_reduce_mul( float value, uint clustersize );
|
||||
+
|
||||
+char __ovld sub_group_clustered_reduce_min( char value, uint clustersize );
|
||||
+uchar __ovld sub_group_clustered_reduce_min( uchar value, uint clustersize );
|
||||
+short __ovld sub_group_clustered_reduce_min( short value, uint clustersize );
|
||||
+ushort __ovld sub_group_clustered_reduce_min( ushort value, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_min( int value, uint clustersize );
|
||||
+uint __ovld sub_group_clustered_reduce_min( uint value, uint clustersize );
|
||||
+long __ovld sub_group_clustered_reduce_min( long value, uint clustersize );
|
||||
+ulong __ovld sub_group_clustered_reduce_min( ulong value, uint clustersize );
|
||||
+float __ovld sub_group_clustered_reduce_min( float value, uint clustersize );
|
||||
+
|
||||
+char __ovld sub_group_clustered_reduce_max( char value, uint clustersize );
|
||||
+uchar __ovld sub_group_clustered_reduce_max( uchar value, uint clustersize );
|
||||
+short __ovld sub_group_clustered_reduce_max( short value, uint clustersize );
|
||||
+ushort __ovld sub_group_clustered_reduce_max( ushort value, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_max( int value, uint clustersize );
|
||||
+uint __ovld sub_group_clustered_reduce_max( uint value, uint clustersize );
|
||||
+long __ovld sub_group_clustered_reduce_max( long value, uint clustersize );
|
||||
+ulong __ovld sub_group_clustered_reduce_max( ulong value, uint clustersize );
|
||||
+float __ovld sub_group_clustered_reduce_max( float value, uint clustersize );
|
||||
+
|
||||
+char __ovld sub_group_clustered_reduce_and( char value, uint clustersize );
|
||||
+uchar __ovld sub_group_clustered_reduce_and( uchar value, uint clustersize );
|
||||
+short __ovld sub_group_clustered_reduce_and( short value, uint clustersize );
|
||||
+ushort __ovld sub_group_clustered_reduce_and( ushort value, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_and( int value, uint clustersize );
|
||||
+uint __ovld sub_group_clustered_reduce_and( uint value, uint clustersize );
|
||||
+long __ovld sub_group_clustered_reduce_and( long value, uint clustersize );
|
||||
+ulong __ovld sub_group_clustered_reduce_and( ulong value, uint clustersize );
|
||||
+
|
||||
+char __ovld sub_group_clustered_reduce_or( char value, uint clustersize );
|
||||
+uchar __ovld sub_group_clustered_reduce_or( uchar value, uint clustersize );
|
||||
+short __ovld sub_group_clustered_reduce_or( short value, uint clustersize );
|
||||
+ushort __ovld sub_group_clustered_reduce_or( ushort value, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_or( int value, uint clustersize );
|
||||
+uint __ovld sub_group_clustered_reduce_or( uint value, uint clustersize );
|
||||
+long __ovld sub_group_clustered_reduce_or( long value, uint clustersize );
|
||||
+ulong __ovld sub_group_clustered_reduce_or( ulong value, uint clustersize );
|
||||
+
|
||||
+char __ovld sub_group_clustered_reduce_xor( char value, uint clustersize );
|
||||
+uchar __ovld sub_group_clustered_reduce_xor( uchar value, uint clustersize );
|
||||
+short __ovld sub_group_clustered_reduce_xor( short value, uint clustersize );
|
||||
+ushort __ovld sub_group_clustered_reduce_xor( ushort value, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_xor( int value, uint clustersize );
|
||||
+uint __ovld sub_group_clustered_reduce_xor( uint value, uint clustersize );
|
||||
+long __ovld sub_group_clustered_reduce_xor( long value, uint clustersize );
|
||||
+ulong __ovld sub_group_clustered_reduce_xor( ulong value, uint clustersize );
|
||||
+
|
||||
+int __ovld sub_group_clustered_reduce_logical_and( int predicate, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_logical_or( int predicate, uint clustersize );
|
||||
+int __ovld sub_group_clustered_reduce_logical_xor( int predicate, uint clustersize );
|
||||
+
|
||||
+#if defined(cl_khr_fp16)
|
||||
+half __ovld sub_group_clustered_reduce_add( half value, uint clustersize );
|
||||
+half __ovld sub_group_clustered_reduce_mul( half value, uint clustersize );
|
||||
+half __ovld sub_group_clustered_reduce_min( half value, uint clustersize );
|
||||
+half __ovld sub_group_clustered_reduce_max( half value, uint clustersize );
|
||||
+#endif // cl_khr_fp16
|
||||
+
|
||||
+#if defined(cl_khr_fp64)
|
||||
+double __ovld sub_group_clustered_reduce_add( double value, uint clustersize );
|
||||
+double __ovld sub_group_clustered_reduce_mul( double value, uint clustersize );
|
||||
+double __ovld sub_group_clustered_reduce_min( double value, uint clustersize );
|
||||
+double __ovld sub_group_clustered_reduce_max( double value, uint clustersize );
|
||||
+#endif // cl_khr_fp64
|
||||
+
|
||||
+#endif // cl_khr_subgroup_clustered_reduce
|
||||
+
|
||||
#if defined(cl_intel_subgroups)
|
||||
// Intel-Specific Sub Group Functions
|
||||
float __ovld __conv intel_sub_group_shuffle( float x, uint c );
|
||||
diff --git a/clang/test/SemaOpenCL/extension-version.cl b/clang/test/SemaOpenCL/extension-version.cl
|
||||
index 0e6bbb7d3bcd..86c78143a0eb 100644
|
||||
--- a/clang/test/SemaOpenCL/extension-version.cl
|
||||
+++ b/clang/test/SemaOpenCL/extension-version.cl
|
||||
@@ -333,3 +333,86 @@
|
||||
#endif
|
||||
#pragma OPENCL EXTENSION cl_intel_device_side_avc_motion_estimation : enable
|
||||
|
||||
+#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
||||
+#ifndef cl_khr_subgroup_extended_types
|
||||
+#error "Missing cl_khr_subgroup_extended_types"
|
||||
+#endif
|
||||
+#else
|
||||
+#ifdef cl_khr_subgroup_extended_types
|
||||
+#error "Incorrect cl_khr_subgroup_extended_types define"
|
||||
+#endif
|
||||
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroup_extended_types' - ignoring}}
|
||||
+#endif
|
||||
+#pragma OPENCL EXTENSION cl_khr_subgroup_extended_types : enable
|
||||
+
|
||||
+#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
||||
+#ifndef cl_khr_subgroup_non_uniform_vote
|
||||
+#error "Missing cl_khr_subgroup_non_uniform_vote"
|
||||
+#endif
|
||||
+#else
|
||||
+#ifdef cl_khr_subgroup_non_uniform_vote
|
||||
+#error "Incorrect cl_khr_subgroup_non_uniform_vote define"
|
||||
+#endif
|
||||
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroup_non_uniform_vote' - ignoring}}
|
||||
+#endif
|
||||
+#pragma OPENCL EXTENSION cl_khr_subgroup_non_uniform_vote : enable
|
||||
+
|
||||
+#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
||||
+#ifndef cl_khr_subgroup_ballot
|
||||
+#error "Missing cl_khr_subgroup_ballot"
|
||||
+#endif
|
||||
+#else
|
||||
+#ifdef cl_khr_subgroup_ballot
|
||||
+#error "Incorrect cl_khr_subgroup_ballot define"
|
||||
+#endif
|
||||
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroup_ballot' - ignoring}}
|
||||
+#endif
|
||||
+#pragma OPENCL EXTENSION cl_khr_subgroup_ballot : enable
|
||||
+
|
||||
+#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
||||
+#ifndef cl_khr_subgroup_non_uniform_arithmetic
|
||||
+#error "Missing cl_khr_subgroup_non_uniform_arithmetic"
|
||||
+#endif
|
||||
+#else
|
||||
+#ifdef cl_khr_subgroup_non_uniform_arithmetic
|
||||
+#error "Incorrect cl_khr_subgroup_non_uniform_arithmetic define"
|
||||
+#endif
|
||||
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroup_non_uniform_arithmetic' - ignoring}}
|
||||
+#endif
|
||||
+#pragma OPENCL EXTENSION cl_khr_subgroup_non_uniform_arithmetic : enable
|
||||
+
|
||||
+#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
||||
+#ifndef cl_khr_subgroup_shuffle
|
||||
+#error "Missing cl_khr_subgroup_shuffle"
|
||||
+#endif
|
||||
+#else
|
||||
+#ifdef cl_khr_subgroup_shuffle
|
||||
+#error "Incorrect cl_khr_subgroup_shuffle define"
|
||||
+#endif
|
||||
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroup_shuffle' - ignoring}}
|
||||
+#endif
|
||||
+#pragma OPENCL EXTENSION cl_khr_subgroup_shuffle : enable
|
||||
+
|
||||
+#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
||||
+#ifndef cl_khr_subgroup_shuffle_relative
|
||||
+#error "Missing cl_khr_subgroup_shuffle_relative"
|
||||
+#endif
|
||||
+#else
|
||||
+#ifdef cl_khr_subgroup_shuffle_relative
|
||||
+#error "Incorrect cl_khr_subgroup_shuffle_relative define"
|
||||
+#endif
|
||||
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroup_shuffle_relative' - ignoring}}
|
||||
+#endif
|
||||
+#pragma OPENCL EXTENSION cl_khr_subgroup_shuffle_relative : enable
|
||||
+
|
||||
+#if (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__ >= 200)
|
||||
+#ifndef cl_khr_subgroup_clustered_reduce
|
||||
+#error "Missing cl_khr_subgroup_clustered_reduce"
|
||||
+#endif
|
||||
+#else
|
||||
+#ifdef cl_khr_subgroup_clustered_reduce
|
||||
+#error "Incorrect cl_khr_subgroup_clustered_reduce define"
|
||||
+#endif
|
||||
+// expected-warning@+2{{unsupported OpenCL extension 'cl_khr_subgroup_clustered_reduce' - ignoring}}
|
||||
+#endif
|
||||
+#pragma OPENCL EXTENSION cl_khr_subgroup_clustered_reduce : enable
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
From eeb816d95f0910bd246e37bb2bb3923acf0edf6b Mon Sep 17 00:00:00 2001
|
||||
From: Aleksander Us <aleksander.us@intel.com>
|
||||
Date: Mon, 26 Aug 2019 15:47:41 +0300
|
||||
Subject: [PATCH] [BasicBlockUtils] Add metadata fixing in
|
||||
SplitBlockPredecessors.
|
||||
|
||||
In case when BB is header of some loop and predecessor is latch of
|
||||
this loop, metadata was not attached to newly created basic block.
|
||||
This led to loss of loop metadata for other passes.
|
||||
|
||||
Upstream-Status: Submitted [https://reviews.llvm.org/D66892]
|
||||
|
||||
https://github.com/intel/llvm-patches/commit/8af4449e2d201707f7f2f832b473a0439e255f32
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
lib/Transforms/Utils/BasicBlockUtils.cpp | 23 ++++++++----
|
||||
test/Transforms/LoopSimplify/loop_metadata.ll | 36 +++++++++++++++++++
|
||||
2 files changed, 52 insertions(+), 7 deletions(-)
|
||||
create mode 100644 test/Transforms/LoopSimplify/loop_metadata.ll
|
||||
|
||||
diff --git a/lib/Transforms/Utils/BasicBlockUtils.cpp b/lib/Transforms/Utils/BasicBlockUtils.cpp
|
||||
index 5fa371377c8..3a90ae061fb 100644
|
||||
--- a/lib/Transforms/Utils/BasicBlockUtils.cpp
|
||||
+++ b/lib/Transforms/Utils/BasicBlockUtils.cpp
|
||||
@@ -579,24 +579,33 @@ BasicBlock *llvm::SplitBlockPredecessors(BasicBlock *BB,
|
||||
|
||||
// The new block unconditionally branches to the old block.
|
||||
BranchInst *BI = BranchInst::Create(BB, NewBB);
|
||||
+ bool IsBBHeader = LI && LI->isLoopHeader(BB);
|
||||
+ Loop *BBLoop = LI ? LI->getLoopFor(BB) : nullptr;
|
||||
// Splitting the predecessors of a loop header creates a preheader block.
|
||||
- if (LI && LI->isLoopHeader(BB))
|
||||
+ if (IsBBHeader)
|
||||
// Using the loop start line number prevents debuggers stepping into the
|
||||
// loop body for this instruction.
|
||||
- BI->setDebugLoc(LI->getLoopFor(BB)->getStartLoc());
|
||||
+ BI->setDebugLoc(BBLoop->getStartLoc());
|
||||
else
|
||||
BI->setDebugLoc(BB->getFirstNonPHIOrDbg()->getDebugLoc());
|
||||
|
||||
// Move the edges from Preds to point to NewBB instead of BB.
|
||||
- for (unsigned i = 0, e = Preds.size(); i != e; ++i) {
|
||||
+ for (BasicBlock *Pred : Preds) {
|
||||
+ Instruction *PI = Pred->getTerminator();
|
||||
// This is slightly more strict than necessary; the minimum requirement
|
||||
// is that there be no more than one indirectbr branching to BB. And
|
||||
// all BlockAddress uses would need to be updated.
|
||||
- assert(!isa<IndirectBrInst>(Preds[i]->getTerminator()) &&
|
||||
+ assert(!isa<IndirectBrInst>(PI) &&
|
||||
"Cannot split an edge from an IndirectBrInst");
|
||||
- assert(!isa<CallBrInst>(Preds[i]->getTerminator()) &&
|
||||
- "Cannot split an edge from a CallBrInst");
|
||||
- Preds[i]->getTerminator()->replaceUsesOfWith(BB, NewBB);
|
||||
+ assert(!isa<CallBrInst>(PI) && "Cannot split an edge from a CallBrInst");
|
||||
+ if (IsBBHeader && BBLoop->contains(Pred) && BBLoop->isLoopLatch(Pred)) {
|
||||
+ // Update loop metadata if it exists.
|
||||
+ if (MDNode *LoopMD = PI->getMetadata(LLVMContext::MD_loop)) {
|
||||
+ BI->setMetadata(LLVMContext::MD_loop, LoopMD);
|
||||
+ PI->setMetadata(LLVMContext::MD_loop, nullptr);
|
||||
+ }
|
||||
+ }
|
||||
+ PI->replaceUsesOfWith(BB, NewBB);
|
||||
}
|
||||
|
||||
// Insert a new PHI node into NewBB for every PHI node in BB and that new PHI
|
||||
diff --git a/test/Transforms/LoopSimplify/loop_metadata.ll b/test/Transforms/LoopSimplify/loop_metadata.ll
|
||||
new file mode 100644
|
||||
index 00000000000..c15c92fe3ae
|
||||
--- /dev/null
|
||||
+++ b/test/Transforms/LoopSimplify/loop_metadata.ll
|
||||
@@ -0,0 +1,36 @@
|
||||
+; RUN: opt -S -loop-simplify < %s | FileCheck %s
|
||||
+
|
||||
+; CHECK: for.cond.loopexit:
|
||||
+; CHECK: br label %for.cond, !llvm.loop !0
|
||||
+; CHECK: br i1 %cmp1, label %for.body1, label %for.cond.loopexit
|
||||
+
|
||||
+define void @foo() {
|
||||
+entry:
|
||||
+ br label %for.cond
|
||||
+
|
||||
+for.cond: ; preds = %for.cond1, %entry
|
||||
+ %j = phi i32 [ 0, %entry ], [ %add, %for.cond1 ]
|
||||
+ %cmp = icmp ult i32 %j, 8
|
||||
+ br i1 %cmp, label %for.body, label %for.end
|
||||
+
|
||||
+for.body: ; preds = %for.cond
|
||||
+ %dummy1 = add i32 1, 1
|
||||
+ %add = add nuw nsw i32 %j, 1
|
||||
+ br label %for.cond1
|
||||
+
|
||||
+for.cond1: ; preds = %for.body1, %for.body
|
||||
+ %i.0 = phi i32 [ 1, %for.body ], [ %inc, %for.body1 ]
|
||||
+ %cmp1 = icmp ult i32 %i.0, 8
|
||||
+ br i1 %cmp1, label %for.body1, label %for.cond, !llvm.loop !0
|
||||
+
|
||||
+for.body1: ; preds = %for.cond1
|
||||
+ %dummy2 = add i32 1, 1
|
||||
+ %inc = add nuw nsw i32 %i.0, 1
|
||||
+ br label %for.cond1
|
||||
+
|
||||
+for.end: ; preds = %for.cond
|
||||
+ ret void
|
||||
+}
|
||||
+
|
||||
+!0 = distinct !{!0, !1}
|
||||
+!1 = !{!"llvm.loop.unroll.full"}
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
From 35e218a886f4c066eabd18685240d55270bd5a6d Mon Sep 17 00:00:00 2001
|
||||
From: Aleksander Us <aleksander.us@intel.com>
|
||||
Date: Mon, 26 Aug 2019 15:45:47 +0300
|
||||
Subject: [PATCH] [IndVarSimplify] Do not use SCEV expander for IVCount in
|
||||
LFTR when possible.
|
||||
|
||||
SCEV analysis cannot properly cache instruction with poison flags
|
||||
(for example, add nsw outside of loop will not be reused by expander).
|
||||
This can lead to generating of additional instructions by SCEV expander.
|
||||
|
||||
Example IR:
|
||||
|
||||
...
|
||||
%maxval = add nuw nsw i32 %a1, %a2
|
||||
...
|
||||
for.body:
|
||||
...
|
||||
%cmp22 = icmp ult i32 %ivadd, %maxval
|
||||
br i1 %cmp22, label %for.body, label %for.end
|
||||
...
|
||||
|
||||
SCEV expander will generate copy of %maxval in preheader but without
|
||||
nuw/nsw flags. This can be avoided by explicit check that iv count
|
||||
value gives the same SCEV expressions as calculated by LFTR.
|
||||
|
||||
Upstream-Status: Submitted [https://reviews.llvm.org/D66890]
|
||||
|
||||
https://github.com/intel/llvm-patches/commit/fd6a6c97341a56fd21bc32bc940afea751312e8f
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
lib/Transforms/Scalar/IndVarSimplify.cpp | 12 +++++++++-
|
||||
test/Transforms/IndVarSimplify/add_nsw.ll | 23 ++++++++++++++++++++
|
||||
test/Transforms/IndVarSimplify/lftr-reuse.ll | 9 +++-----
|
||||
test/Transforms/IndVarSimplify/udiv.ll | 1 +
|
||||
4 files changed, 38 insertions(+), 7 deletions(-)
|
||||
create mode 100644 test/Transforms/IndVarSimplify/add_nsw.ll
|
||||
|
||||
diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp
|
||||
index f9fc698a4a9..5e04dac8aa6 100644
|
||||
--- a/lib/Transforms/Scalar/IndVarSimplify.cpp
|
||||
+++ b/lib/Transforms/Scalar/IndVarSimplify.cpp
|
||||
@@ -2375,6 +2375,17 @@ static Value *genLoopLimit(PHINode *IndVar, BasicBlock *ExitingBB,
|
||||
if (UsePostInc)
|
||||
IVLimit = SE->getAddExpr(IVLimit, SE->getOne(IVLimit->getType()));
|
||||
|
||||
+ // If computed limit is equal to old limit then do not use SCEV expander
|
||||
+ // because it can lost NUW/NSW flags and create extra instructions.
|
||||
+ BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator());
|
||||
+ if (ICmpInst *Cmp = dyn_cast<ICmpInst>(BI->getOperand(0))) {
|
||||
+ Value *Limit = Cmp->getOperand(0);
|
||||
+ if (!L->isLoopInvariant(Limit))
|
||||
+ Limit = Cmp->getOperand(1);
|
||||
+ if (SE->getSCEV(Limit) == IVLimit)
|
||||
+ return Limit;
|
||||
+ }
|
||||
+
|
||||
// Expand the code for the iteration count.
|
||||
assert(SE->isLoopInvariant(IVLimit, L) &&
|
||||
"Computed iteration count is not loop invariant!");
|
||||
@@ -2383,7 +2394,6 @@ static Value *genLoopLimit(PHINode *IndVar, BasicBlock *ExitingBB,
|
||||
// SCEV expression (IVInit) for a pointer type IV value (IndVar).
|
||||
Type *LimitTy = ExitCount->getType()->isPointerTy() ?
|
||||
IndVar->getType() : ExitCount->getType();
|
||||
- BranchInst *BI = cast<BranchInst>(ExitingBB->getTerminator());
|
||||
return Rewriter.expandCodeFor(IVLimit, LimitTy, BI);
|
||||
}
|
||||
}
|
||||
diff --git a/test/Transforms/IndVarSimplify/add_nsw.ll b/test/Transforms/IndVarSimplify/add_nsw.ll
|
||||
new file mode 100644
|
||||
index 00000000000..abd1cbb6c51
|
||||
--- /dev/null
|
||||
+++ b/test/Transforms/IndVarSimplify/add_nsw.ll
|
||||
@@ -0,0 +1,23 @@
|
||||
+; RUN: opt -indvars -S %s | FileCheck %s
|
||||
+
|
||||
+target datalayout = "e-p:32:32-i64:64-n8:16:32"
|
||||
+
|
||||
+; CHECK: for.body.preheader:
|
||||
+; CHECK-NOT: add
|
||||
+; CHECK: for.body:
|
||||
+
|
||||
+define void @foo(i32 %a1, i32 %a2) {
|
||||
+entry:
|
||||
+ %maxval = add nuw nsw i32 %a1, %a2
|
||||
+ %cmp = icmp slt i32 %maxval, 1
|
||||
+ br i1 %cmp, label %for.end, label %for.body
|
||||
+
|
||||
+for.body: ; preds = %entry, %for.body
|
||||
+ %j.02 = phi i32 [ 0, %entry ], [ %add31, %for.body ]
|
||||
+ %add31 = add nuw nsw i32 %j.02, 1
|
||||
+ %cmp22 = icmp slt i32 %add31, %maxval
|
||||
+ br i1 %cmp22, label %for.body, label %for.end
|
||||
+
|
||||
+for.end: ; preds = %for.body
|
||||
+ ret void
|
||||
+}
|
||||
diff --git a/test/Transforms/IndVarSimplify/lftr-reuse.ll b/test/Transforms/IndVarSimplify/lftr-reuse.ll
|
||||
index 14ae9738696..509d662b767 100644
|
||||
--- a/test/Transforms/IndVarSimplify/lftr-reuse.ll
|
||||
+++ b/test/Transforms/IndVarSimplify/lftr-reuse.ll
|
||||
@@ -67,11 +67,9 @@ define void @expandOuterRecurrence(i32 %arg) nounwind {
|
||||
; CHECK-NEXT: [[CMP1:%.*]] = icmp slt i32 0, [[SUB1]]
|
||||
; CHECK-NEXT: br i1 [[CMP1]], label [[OUTER_PREHEADER:%.*]], label [[EXIT:%.*]]
|
||||
; CHECK: outer.preheader:
|
||||
-; CHECK-NEXT: [[TMP0:%.*]] = add i32 [[ARG]], -1
|
||||
; CHECK-NEXT: br label [[OUTER:%.*]]
|
||||
; CHECK: outer:
|
||||
-; CHECK-NEXT: [[INDVARS_IV:%.*]] = phi i32 [ [[TMP0]], [[OUTER_PREHEADER]] ], [ [[INDVARS_IV_NEXT:%.*]], [[OUTER_INC:%.*]] ]
|
||||
-; CHECK-NEXT: [[I:%.*]] = phi i32 [ [[I_INC:%.*]], [[OUTER_INC]] ], [ 0, [[OUTER_PREHEADER]] ]
|
||||
+; CHECK-NEXT: [[I:%.*]] = phi i32 [ [[I_INC:%.*]], [[OUTER_INC:%.*]] ], [ 0, [[OUTER_PREHEADER]] ]
|
||||
; CHECK-NEXT: [[SUB2:%.*]] = sub nsw i32 [[ARG]], [[I]]
|
||||
; CHECK-NEXT: [[SUB3:%.*]] = sub nsw i32 [[SUB2]], 1
|
||||
; CHECK-NEXT: [[CMP2:%.*]] = icmp slt i32 0, [[SUB3]]
|
||||
@@ -81,14 +79,13 @@ define void @expandOuterRecurrence(i32 %arg) nounwind {
|
||||
; CHECK: inner:
|
||||
; CHECK-NEXT: [[J:%.*]] = phi i32 [ 0, [[INNER_PH]] ], [ [[J_INC:%.*]], [[INNER]] ]
|
||||
; CHECK-NEXT: [[J_INC]] = add nuw nsw i32 [[J]], 1
|
||||
-; CHECK-NEXT: [[EXITCOND:%.*]] = icmp ne i32 [[J_INC]], [[INDVARS_IV]]
|
||||
+; CHECK-NEXT: [[EXITCOND:%.*]] = icmp ne i32 [[J_INC]], [[SUB3]]
|
||||
; CHECK-NEXT: br i1 [[EXITCOND]], label [[INNER]], label [[OUTER_INC_LOOPEXIT:%.*]]
|
||||
; CHECK: outer.inc.loopexit:
|
||||
; CHECK-NEXT: br label [[OUTER_INC]]
|
||||
; CHECK: outer.inc:
|
||||
; CHECK-NEXT: [[I_INC]] = add nuw nsw i32 [[I]], 1
|
||||
-; CHECK-NEXT: [[INDVARS_IV_NEXT]] = add i32 [[INDVARS_IV]], -1
|
||||
-; CHECK-NEXT: [[EXITCOND1:%.*]] = icmp ne i32 [[I_INC]], [[TMP0]]
|
||||
+; CHECK-NEXT: [[EXITCOND1:%.*]] = icmp ne i32 [[I_INC]], [[SUB1]]
|
||||
; CHECK-NEXT: br i1 [[EXITCOND1]], label [[OUTER]], label [[EXIT_LOOPEXIT:%.*]]
|
||||
; CHECK: exit.loopexit:
|
||||
; CHECK-NEXT: br label [[EXIT]]
|
||||
diff --git a/test/Transforms/IndVarSimplify/udiv.ll b/test/Transforms/IndVarSimplify/udiv.ll
|
||||
index b3f2c2a6a66..3530343ef4a 100644
|
||||
--- a/test/Transforms/IndVarSimplify/udiv.ll
|
||||
+++ b/test/Transforms/IndVarSimplify/udiv.ll
|
||||
@@ -133,6 +133,7 @@ declare i32 @printf(i8* nocapture, ...) nounwind
|
||||
; CHECK-LABEL: @foo(
|
||||
; CHECK: for.body.preheader:
|
||||
; CHECK-NOT: udiv
|
||||
+; CHECK: for.body:
|
||||
|
||||
define void @foo(double* %p, i64 %n) nounwind {
|
||||
entry:
|
||||
--
|
||||
2.18.0
|
||||
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
From a6d4ccf082858e63e139ca06c02a071c343d2657 Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Bocci <andrea.bocci@cern.ch>
|
||||
Date: Sun, 15 Mar 2020 17:35:44 +0100
|
||||
Subject: [PATCH] Fix building in-tree with cmake -DLLVM_LINK_LLVM_DYLIB=ON
|
||||
|
||||
Building in-tree with LLVM 11.0 master with the LLVM_LINK_LLVM_DYLIB
|
||||
cmake flag fails to link with the LLVMSPIRVLib library.
|
||||
|
||||
Add an explicit dependency to force the correct build order and linking.
|
||||
|
||||
Signed-off-by: Andrea Bocci <andrea.bocci@cern.ch>
|
||||
Upstream-Status: Backport
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
---
|
||||
tools/llvm-spirv/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tools/llvm-spirv/CMakeLists.txt b/tools/llvm-spirv/CMakeLists.txt
|
||||
index 9aa96d9c..501c0daf 100644
|
||||
--- a/tools/llvm-spirv/CMakeLists.txt
|
||||
+++ b/tools/llvm-spirv/CMakeLists.txt
|
||||
@@ -14,7 +14,7 @@ add_llvm_tool(llvm-spirv
|
||||
NO_INSTALL_RPATH
|
||||
)
|
||||
|
||||
-if (LLVM_SPIRV_BUILD_EXTERNAL)
|
||||
+if (LLVM_SPIRV_BUILD_EXTERNAL OR LLVM_LINK_LLVM_DYLIB)
|
||||
target_link_libraries(llvm-spirv PRIVATE LLVMSPIRVLib)
|
||||
endif()
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,50 @@
|
|||
From b53fd86ffdeacb9b13624bdb110fd25e8c35cb92 Mon Sep 17 00:00:00 2001
|
||||
From: Feng Zou <feng.zou@intel.com>
|
||||
Date: Mon, 19 Oct 2020 14:43:38 +0800
|
||||
Subject: [PATCH] Remove repo name in LLVM IR
|
||||
|
||||
Upstream-Status: Backport [Taken from opencl-clang patches, https://github.com/intel/opencl-clang/blob/ocl-open-100/patches/llvm/0003-Remove-repo-name-in-LLVM-IR.patch]
|
||||
Signed-off-by: Feng Zou <feng.zou@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
|
||||
---
|
||||
llvm/cmake/modules/VersionFromVCS.cmake | 23 ++++++++++++-----------
|
||||
1 file changed, 12 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/llvm/cmake/modules/VersionFromVCS.cmake b/llvm/cmake/modules/VersionFromVCS.cmake
|
||||
index 1b6519b4b7c..8fd6b23bb34 100644
|
||||
--- a/llvm/cmake/modules/VersionFromVCS.cmake
|
||||
+++ b/llvm/cmake/modules/VersionFromVCS.cmake
|
||||
@@ -33,17 +33,18 @@ function(get_source_info path revision repository)
|
||||
else()
|
||||
set(remote "origin")
|
||||
endif()
|
||||
- execute_process(COMMAND ${GIT_EXECUTABLE} remote get-url ${remote}
|
||||
- WORKING_DIRECTORY ${path}
|
||||
- RESULT_VARIABLE git_result
|
||||
- OUTPUT_VARIABLE git_output
|
||||
- ERROR_QUIET)
|
||||
- if(git_result EQUAL 0)
|
||||
- string(STRIP "${git_output}" git_output)
|
||||
- set(${repository} ${git_output} PARENT_SCOPE)
|
||||
- else()
|
||||
- set(${repository} ${path} PARENT_SCOPE)
|
||||
- endif()
|
||||
+ # Do not show repo name in IR
|
||||
+ # execute_process(COMMAND ${GIT_EXECUTABLE} remote get-url ${remote}
|
||||
+ # WORKING_DIRECTORY ${path}
|
||||
+ # RESULT_VARIABLE git_result
|
||||
+ # OUTPUT_VARIABLE git_output
|
||||
+ # ERROR_QUIET)
|
||||
+ # if(git_result EQUAL 0)
|
||||
+ # string(STRIP "${git_output}" git_output)
|
||||
+ # set(${repository} ${git_output} PARENT_SCOPE)
|
||||
+ # else()
|
||||
+ # set(${repository} ${path} PARENT_SCOPE)
|
||||
+ # endif()
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
--
|
||||
2.18.1
|
||||
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
From 455ce9c25df5313f4a6649cc27075bdfbe25af18 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Wed, 21 Aug 2019 14:35:31 +0800
|
||||
Subject: [PATCH] llvm-spirv: skip building tests
|
||||
|
||||
Some of these need clang to be built and since we're building this in-tree,
|
||||
that leads to problems when compiling libcxx, compiler-rt which aren't built
|
||||
in-tree.
|
||||
|
||||
Instead of using SPIRV_SKIP_CLANG_BUILD to skip clang build and adding this to
|
||||
all components, disable the building of tests altogether.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 10 ----------
|
||||
1 file changed, 10 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b718c00..9805140 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -24,13 +24,6 @@ if(LLVM_SPIRV_BUILD_EXTERNAL)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
- if(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
- set(LLVM_TEST_COMPONENTS
|
||||
- llvm-as
|
||||
- llvm-dis
|
||||
- )
|
||||
- endif(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
-
|
||||
find_package(LLVM 10.0.0 REQUIRED
|
||||
COMPONENTS
|
||||
Analysis
|
||||
@@ -61,9 +54,6 @@ set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
add_subdirectory(lib/SPIRV)
|
||||
add_subdirectory(tools/llvm-spirv)
|
||||
-if(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
- add_subdirectory(test)
|
||||
-endif(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
|
||||
install(
|
||||
FILES
|
||||
--
|
||||
2.7.4
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,50 @@
|
|||
From ff0a6da84b94c16c4519c649f1f7bed3cdf89bbb Mon Sep 17 00:00:00 2001
|
||||
From: Feng Zou <feng.zou@intel.com>
|
||||
Date: Tue, 20 Oct 2020 11:29:04 +0800
|
||||
Subject: [PATCH] Remove repo name in LLVM IR
|
||||
|
||||
Upstream-Status: Backport [Taken from opencl-clang patches, https://github.com/intel/opencl-clang/blob/ocl-open-110/patches/llvm/0002-Remove-repo-name-in-LLVM-IR.patch]
|
||||
Signed-off-by: Feng Zou <feng.zou@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
|
||||
---
|
||||
llvm/cmake/modules/VersionFromVCS.cmake | 23 ++++++++++++-----------
|
||||
1 file changed, 12 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/llvm/cmake/modules/VersionFromVCS.cmake b/llvm/cmake/modules/VersionFromVCS.cmake
|
||||
index 18edbeabe3e..2d965263478 100644
|
||||
--- a/llvm/cmake/modules/VersionFromVCS.cmake
|
||||
+++ b/llvm/cmake/modules/VersionFromVCS.cmake
|
||||
@@ -33,17 +33,18 @@ function(get_source_info path revision repository)
|
||||
else()
|
||||
set(remote "origin")
|
||||
endif()
|
||||
- execute_process(COMMAND ${GIT_EXECUTABLE} remote get-url ${remote}
|
||||
- WORKING_DIRECTORY ${path}
|
||||
- RESULT_VARIABLE git_result
|
||||
- OUTPUT_VARIABLE git_output
|
||||
- ERROR_QUIET)
|
||||
- if(git_result EQUAL 0)
|
||||
- string(STRIP "${git_output}" git_output)
|
||||
- set(${repository} ${git_output} PARENT_SCOPE)
|
||||
- else()
|
||||
- set(${repository} ${path} PARENT_SCOPE)
|
||||
- endif()
|
||||
+ # Do not show repo name in IR
|
||||
+ # execute_process(COMMAND ${GIT_EXECUTABLE} remote get-url ${remote}
|
||||
+ # WORKING_DIRECTORY ${path}
|
||||
+ # RESULT_VARIABLE git_result
|
||||
+ # OUTPUT_VARIABLE git_output
|
||||
+ # ERROR_QUIET)
|
||||
+ # if(git_result EQUAL 0)
|
||||
+ # string(STRIP "${git_output}" git_output)
|
||||
+ # set(${repository} ${git_output} PARENT_SCOPE)
|
||||
+ # else()
|
||||
+ # set(${repository} ${path} PARENT_SCOPE)
|
||||
+ # endif()
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "Git not found. Version cannot be determined.")
|
||||
--
|
||||
2.18.1
|
||||
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
From d362652617c5e840089273df0c6623a9745c92a2 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Wed, 21 Aug 2019 14:35:31 +0800
|
||||
Subject: [PATCH] llvm-spirv: skip building tests
|
||||
|
||||
Some of these need clang to be built and since we're building this in-tree,
|
||||
that leads to problems when compiling libcxx, compiler-rt which aren't built
|
||||
in-tree.
|
||||
|
||||
Instead of using SPIRV_SKIP_CLANG_BUILD to skip clang build and adding this to
|
||||
all components, disable the building of tests altogether.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 10 ----------
|
||||
1 file changed, 10 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ecebb4cb..578ca602 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -25,13 +25,6 @@ if(LLVM_SPIRV_BUILD_EXTERNAL)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
- if(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
- set(LLVM_TEST_COMPONENTS
|
||||
- llvm-as
|
||||
- llvm-dis
|
||||
- )
|
||||
- endif(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
-
|
||||
find_package(LLVM ${BASE_LLVM_VERSION} REQUIRED
|
||||
COMPONENTS
|
||||
Analysis
|
||||
@@ -62,9 +55,6 @@ set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
||||
|
||||
add_subdirectory(lib/SPIRV)
|
||||
add_subdirectory(tools/llvm-spirv)
|
||||
-if(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
- add_subdirectory(test)
|
||||
-endif(LLVM_SPIRV_INCLUDE_TESTS)
|
||||
|
||||
install(
|
||||
FILES
|
||||
--
|
||||
2.26.2
|
||||
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
FILESEXTRAPATHS_prepend_intel-x86-common := "${THISDIR}/files:"
|
||||
|
||||
SPIRV_BRANCH = "${@bb.utils.contains('LLVMVERSION', '10.0.1', 'llvm_release_100', 'llvm_release_110', d)}"
|
||||
|
||||
SPIRV10_SRCREV = "576abae62cecd171992017a4a786e3831221ab8d"
|
||||
SPIRV11_SRCREV = "2a8c1e6c9778deaa720a23e08c293006dc5d56fd"
|
||||
|
||||
SPIRV_SRCREV = "${@bb.utils.contains('LLVMVERSION', '10.0.1', '${SPIRV10_SRCREV}', '${SPIRV11_SRCREV}', d)}"
|
||||
|
||||
SRC_URI_LLVM10 = " \
|
||||
file://llvm10-skip-building-tests.patch;patchdir=llvm/projects/llvm-spirv \
|
||||
file://fix-shared-libs.patch;patchdir=llvm/projects/llvm-spirv \
|
||||
file://BasicBlockUtils-Add-metadata-fixing-in-SplitBlockPre.patch;patchdir=llvm \
|
||||
file://IndVarSimplify-Do-not-use-SCEV-expander-for-IVCount-.patch;patchdir=llvm \
|
||||
file://llvm10-OpenCL-3.0-support.patch \
|
||||
file://0002-Add-cl_khr_extended_subgroup-extensions.patch \
|
||||
file://0001-Memory-leak-fix-for-Managed-Static-Mutex.patch \
|
||||
file://llvm10-Remove-repo-name-in-LLVM-IR.patch \
|
||||
file://0001-Fix-debug-info-of-work-item-builtin-translation-745.patch;patchdir=llvm/projects/llvm-spirv \
|
||||
"
|
||||
|
||||
SRC_URI_LLVM11 = " \
|
||||
file://llvm11-skip-building-tests.patch;patchdir=llvm/projects/llvm-spirv \
|
||||
file://llvm11-OpenCL-3.0-support.patch \
|
||||
file://0001-Memory-leak-fix-for-Managed-Static-Mutex.patch \
|
||||
file://llvm11-Remove-repo-name-in-LLVM-IR.patch \
|
||||
"
|
||||
|
||||
SPIRV_LLVM_SRC_URI = "git://github.com/KhronosGroup/SPIRV-LLVM-Translator.git;protocol=https;branch=${SPIRV_BRANCH};destsuffix=git/llvm/projects/llvm-spirv;name=spirv"
|
||||
|
||||
SPIRV_LLVM_PATCHES = "${@bb.utils.contains('LLVMVERSION', '10.0.1', '${SRC_URI_LLVM10}', '${SRC_URI_LLVM11}', d)}"
|
||||
|
||||
|
||||
SRC_URI_append_intel-x86-common = "${@bb.utils.contains('LLVMVERSION', '12.0.0', '', ' ${SPIRV_LLVM_SRC_URI} ${SPIRV_LLVM_PATCHES} ', d)}"
|
||||
SRCREV_spirv = "${@bb.utils.contains('LLVMVERSION', '12.0.0', '', '${SPIRV_SRCREV}', d)}"
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
From 8c330d0cb5167612296801f0202b0de35e9ca88d Mon Sep 17 00:00:00 2001
|
||||
From: Dongwon Kim <dongwon.kim@intel.com>
|
||||
Date: Sat, 21 Aug 2021 16:09:39 -0700
|
||||
Subject: [PATCH 2/5] Build not able to locate cpp_generation_tool.
|
||||
|
||||
Upstream-Status: Inappropriate [oe specific]
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
|
||||
---
|
||||
shared/source/built_ins/kernels/CMakeLists.txt | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
Index: git/shared/source/built_ins/kernels/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/shared/source/built_ins/kernels/CMakeLists.txt
|
||||
+++ git/shared/source/built_ins/kernels/CMakeLists.txt
|
||||
@@ -122,9 +122,9 @@ function(compile_builtin core_type platf
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUT_FILE_CPP}
|
||||
- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
|
||||
+ COMMAND cpp_generate_tool --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- DEPENDS ${OUTPUT_FILES_BINARIES} $<TARGET_FILE:cpp_generate_tool>
|
||||
+ DEPENDS ${OUTPUT_FILES_BINARIES} cpp_generate_tool
|
||||
)
|
||||
list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}")
|
||||
else()
|
||||
@@ -176,9 +176,9 @@ function(generate_cpp_spirv builtin)
|
||||
endif()
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUT_FILE_CPP}
|
||||
- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
|
||||
+ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool>
|
||||
+ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool
|
||||
)
|
||||
set(OUTPUT_LIST_CPP_FILES ${OUTPUT_LIST_CPP_FILES} ${OUTPUT_FILE_CPP} PARENT_SCOPE)
|
||||
else()
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
From 0006db5f55a9f08bd3452558a53704cd3bbb790f Mon Sep 17 00:00:00 2001
|
||||
From: Dongwon Kim <dongwon.kim@intel.com>
|
||||
Date: Wed, 2 Mar 2022 15:52:45 -0800
|
||||
Subject: [PATCH 3/5] external ocloc
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Dongwon Kim <dongwon.kim@intel.com>
|
||||
---
|
||||
cmake/ocloc_cmd_prefix.cmake | 14 ++++++++------
|
||||
1 file changed, 8 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: git/cmake/ocloc_cmd_prefix.cmake
|
||||
===================================================================
|
||||
--- git.orig/cmake/ocloc_cmd_prefix.cmake
|
||||
+++ git/cmake/ocloc_cmd_prefix.cmake
|
||||
@@ -4,13 +4,15 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
-if(WIN32)
|
||||
- set(ocloc_cmd_prefix ocloc)
|
||||
-else()
|
||||
- if(DEFINED NEO__IGC_LIBRARY_PATH)
|
||||
- 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>)
|
||||
+if(NOT DEFINED ocloc_cmd_prefix)
|
||||
+ if(WIN32)
|
||||
+ set(ocloc_cmd_prefix ocloc)
|
||||
else()
|
||||
- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>)
|
||||
+ if(DEFINED NEO__IGC_LIBRARY_PATH)
|
||||
+ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
|
||||
+ else()
|
||||
+ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>)
|
||||
+ endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
From 32851d269ac0c027730168c04d9ce32d0eb50905 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Wed, 27 May 2020 11:12:09 +0000
|
||||
Subject: [PATCH] intel-compute-runtime: allow to find cpp_generation_tool
|
||||
|
||||
Build not able to locate cpp_generation_tool.
|
||||
|
||||
Upstream-Status: Inappropriate [oe specific]
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
shared/source/built_ins/kernels/CMakeLists.txt | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/shared/source/built_ins/kernels/CMakeLists.txt b/shared/source/built_ins/kernels/CMakeLists.txt
|
||||
index 1b1225077..2e8148c25 100644
|
||||
--- a/shared/source/built_ins/kernels/CMakeLists.txt
|
||||
+++ b/shared/source/built_ins/kernels/CMakeLists.txt
|
||||
@@ -93,9 +93,9 @@ function(compile_builtin gen_type platform_type builtin bits builtin_options mod
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUT_FILE_CPP}
|
||||
- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --platform ${family_name_with_type}
|
||||
+ COMMAND cpp_generate_tool --file ${OUTPUTPATH_BASE}.gen --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --platform ${family_name_with_type}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- DEPENDS ${OUTPUTPATH_BASE}.gen $<TARGET_FILE:cpp_generate_tool>
|
||||
+ DEPENDS ${OUTPUTPATH_BASE}.gen cpp_generate_tool
|
||||
)
|
||||
endfunction()
|
||||
|
||||
@@ -136,9 +136,9 @@ function(generate_cpp_spirv builtin)
|
||||
)
|
||||
add_custom_command(
|
||||
OUTPUT ${OUTPUT_FILE_CPP}
|
||||
- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
|
||||
+ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME}
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool>
|
||||
+ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool
|
||||
)
|
||||
endfunction()
|
||||
|
||||
--
|
||||
2.28.0
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)"
|
||||
DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \
|
||||
is an open source project to converge Intel's development efforts \
|
||||
on OpenCL(TM) compute stacks supporting the GEN graphics hardware \
|
||||
architecture."
|
||||
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=ae27f47fd6755510247c19e547e4c804 \
|
||||
file://third_party/opencl_headers/LICENSE;md5=dcefc90f4c3c689ec0c2489064e7273b"
|
||||
|
||||
SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https \
|
||||
"
|
||||
SRC_URI_append_class-target = " file://allow-to-find-cpp-generation-tool.patch"
|
||||
|
||||
SRCREV = "5a05d7643c4d8cc14e281b686c78101a7a01e8e1"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEPENDS += " intel-graphics-compiler gmmlib"
|
||||
DEPENDS_append_class-target = " intel-compute-runtime-native libva"
|
||||
|
||||
RDEPENDS_${PN} += " intel-graphics-compiler gmmlib"
|
||||
|
||||
inherit cmake pkgconfig
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST_libc-musl = "null"
|
||||
|
||||
EXTRA_OECMAKE = " \
|
||||
-DIGC_DIR=${STAGING_INCDIR}/igc \
|
||||
-DBUILD_TYPE=Release \
|
||||
-DSKIP_UNIT_TESTS=1 \
|
||||
-DCCACHE_ALLOWED=FALSE \
|
||||
"
|
||||
EXTRA_OECMAKE_append_class-target = " \
|
||||
-Dcloc_cmd_prefix=ocloc \
|
||||
"
|
||||
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero"
|
||||
|
||||
do_install_append_class-native() {
|
||||
install -d ${D}${bindir}
|
||||
install ${B}/bin/cpp_generate_tool ${D}${bindir}/
|
||||
}
|
||||
|
||||
FILES_${PN} += " \
|
||||
${libdir}/intel-opencl/libigdrcl.so \
|
||||
${libdir}/libocloc.so \
|
||||
"
|
||||
|
||||
FILES_${PN}-dev = "${includedir}"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)"
|
||||
DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \
|
||||
is an open source project to converge Intel's development efforts \
|
||||
on OpenCL(TM) compute stacks supporting the GEN graphics hardware \
|
||||
architecture."
|
||||
|
||||
LICENSE = "MIT & Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \
|
||||
file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https;branch=releases/25.13 \
|
||||
file://0002-Build-not-able-to-locate-cpp_generation_tool.patch \
|
||||
file://0003-external-ocloc.patch \
|
||||
"
|
||||
|
||||
SRCREV = "a9961bdfaa07250fd52ff930bf8f31fb4e3b7799"
|
||||
|
||||
DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native"
|
||||
|
||||
RDEPENDS:${PN} += " intel-graphics-compiler gmmlib"
|
||||
|
||||
inherit cmake pkgconfig qemu
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
EXTRA_OECMAKE = " \
|
||||
-DIGC_DIR=${STAGING_INCDIR}/igc \
|
||||
-DBUILD_TYPE=Release \
|
||||
-DSKIP_UNIT_TESTS=1 \
|
||||
-DCCACHE_ALLOWED=FALSE \
|
||||
-DNEO_DISABLE_LD_LLD=ON \
|
||||
-DNEO_DISABLE_LD_GOLD=ON \
|
||||
"
|
||||
|
||||
EXTRA_OECMAKE:append:class-target = " \
|
||||
-Docloc_cmd_prefix=ocloc \
|
||||
-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
|
||||
"
|
||||
|
||||
PACKAGECONFIG ??= ""
|
||||
PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero"
|
||||
|
||||
do_configure:prepend:class-target () {
|
||||
# Write out a qemu wrapper that will be used by cmake.
|
||||
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}')])}"
|
||||
cat > ${WORKDIR}/qemuwrapper << EOF
|
||||
#!/bin/sh
|
||||
$qemu_binary "\$@"
|
||||
EOF
|
||||
chmod +x ${WORKDIR}/qemuwrapper
|
||||
}
|
||||
|
||||
FILES:${PN} += " \
|
||||
${libdir}/intel-opencl/libigdrcl.so \
|
||||
${libdir}/libocloc.so \
|
||||
"
|
||||
|
||||
FILES:${PN}-dev = "${includedir}"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From 1b98a931c3bf8daccc48cd618335ff35e3d382da Mon Sep 17 00:00:00 2001
|
||||
From: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Date: Tue, 12 Oct 2021 23:46:42 +0800
|
||||
Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS
|
||||
|
||||
Otherwise it starts failing with:
|
||||
|
||||
| ninja: error: 'IGC/VectorCompiler/lib/BiF/opt', needed by 'IGC/VectorCompiler/lib/BiF/VCBiFPrintfOCL32.opt.bc', missing and no known rule to make it
|
||||
|
||||
We don't need to explicitly make sure opt is built when
|
||||
using prebuilt binaries.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
---
|
||||
IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
|
||||
===================================================================
|
||||
--- git.orig/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
|
||||
+++ git/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake
|
||||
@@ -121,7 +121,7 @@ function(vc_build_bif RES_FILE CMCL_SRC_
|
||||
COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}"
|
||||
COMMAND CMCLTranslatorTool ${OPT_OPAQUE_ARG} -o ${BIF_CMCL_BC_PATH} ${BIF_CLANG_BC_PATH_FINAL}
|
||||
COMMAND ${LLVM_OPT_EXE} ${OPT_OPAQUE_ARG} --O2 -o ${BIF_OPT_BC_PATH} ${BIF_CMCL_BC_PATH}
|
||||
- DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${OPT_BC_DEPENDS})
|
||||
+ DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL})
|
||||
|
||||
add_custom_target(${TARGET_NAME}
|
||||
DEPENDS ${BIF_OPT_BC_PATH}
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
From 048512728eea53b3772a3f80ac9743bfc462487e Mon Sep 17 00:00:00 2001
|
||||
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
Date: Thu, 2 Jan 2025 15:59:27 +0530
|
||||
Subject: [PATCH] Build not able to locate BiFManager-bin
|
||||
|
||||
Upstream-Status: Inappropriate [oe specific]
|
||||
|
||||
Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
---
|
||||
IGC/BiFModule/CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: git/IGC/BiFModule/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/IGC/BiFModule/CMakeLists.txt
|
||||
+++ git/IGC/BiFModule/CMakeLists.txt
|
||||
@@ -655,8 +655,8 @@ set(IGC_BUILD__PROJ__BiFModuleCache_OCL
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.h" "${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bifbc"
|
||||
- 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"
|
||||
- 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>
|
||||
+ 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"
|
||||
+ 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
|
||||
COMMENT "BiF: ${IGC_BUILD__BIF_DIR}/OCLBiFImpl.bc: Spliting output .bc."
|
||||
COMMAND_EXPAND_LISTS
|
||||
)
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,30 +0,0 @@
|
|||
From 251e2854dd206ebf66e5908d3277e4585fe2a63b Mon Sep 17 00:00:00 2001
|
||||
From: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Date: Mon, 9 Jan 2023 11:43:05 +0800
|
||||
Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers
|
||||
|
||||
We clone the SPIRV headers and tools in a different directory to ensure
|
||||
file path substitutions take place.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
---
|
||||
external/SPIRV-Tools/CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: git/external/SPIRV-Tools/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/external/SPIRV-Tools/CMakeLists.txt
|
||||
+++ git/external/SPIRV-Tools/CMakeLists.txt
|
||||
@@ -45,8 +45,8 @@ else() #By default use build from source
|
||||
message(STATUS "[SPIRV-Tools] : Building from source")
|
||||
message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
- set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory
|
||||
- set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools")
|
||||
+ set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory
|
||||
+ set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools")
|
||||
|
||||
set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build")
|
||||
set(IGC_BUILD__SPIRV-Headers_DIR "${SPIRV-Headers_SOURCE_DIR}")
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
From 1641dc87b2ed6b6b87b2cef824e4d66da65b0b30 Mon Sep 17 00:00:00 2001
|
||||
From: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Date: Thu, 19 May 2022 22:50:09 +0800
|
||||
Subject: [PATCH] fix tblgen
|
||||
|
||||
Upstream-Status: Inappropriate [OE specific]
|
||||
---
|
||||
IGC/cmake/igc_llvm.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake
|
||||
index b708cc904..fe4668890 100644
|
||||
--- a/IGC/cmake/igc_llvm.cmake
|
||||
+++ b/IGC/cmake/igc_llvm.cmake
|
||||
@@ -53,7 +53,7 @@ else()
|
||||
set(LLVM_OPT_EXE "opt" CACHE STRING "")
|
||||
|
||||
set(LLVM_TABLEGEN_EXE "llvm-tblgen")
|
||||
- if(CMAKE_CROSSCOMPILING)
|
||||
+ if(TRUE)
|
||||
if(DEFINED LLVM_TABLEGEN)
|
||||
set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN})
|
||||
else()
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From 5501fab763aa2b11437fbdb19e07a11157a7d3e6 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Thu, 6 Feb 2020 14:56:56 +0800
|
||||
Subject: [PATCH] skip execution of ElfPackager
|
||||
|
||||
ElfPackager adds the ability to convert llvm bitcode into elf files for
|
||||
easier partitioning. Skip for now until we start building a native
|
||||
version for this.
|
||||
|
||||
Upstream-Status: Inappropriate [configuration specific]
|
||||
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
IGC/ElfPackager/CMakeLists.txt | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/IGC/ElfPackager/CMakeLists.txt b/IGC/ElfPackager/CMakeLists.txt
|
||||
index 563ac9d6..c6c74ce9 100644
|
||||
--- a/IGC/ElfPackager/CMakeLists.txt
|
||||
+++ b/IGC/ElfPackager/CMakeLists.txt
|
||||
@@ -71,12 +71,12 @@ include_directories (
|
||||
${IGC_SOURCE_DIR}/AdaptorOCL/CLElfLib/
|
||||
)
|
||||
|
||||
-if(NOT ANDROID)
|
||||
- add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
|
||||
- POST_BUILD
|
||||
- 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
|
||||
- )
|
||||
-endif()
|
||||
+#if(NOT ANDROID)
|
||||
+# add_custom_command(TARGET ${IGC_BUILD__PROJ__ElfPackager}
|
||||
+# POST_BUILD
|
||||
+# 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
|
||||
+# )
|
||||
+#endif()
|
||||
|
||||
|
||||
add_dependencies("${IGC_BUILD__PROJ__ElfPackager}" "${IGC_BUILD__PROJ__BiFModule_OCL}")
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -0,0 +1,318 @@
|
|||
From 60136b453bb3a109bfc88c4040b871af9d522ed5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= <zboszor@pr.hu>
|
||||
Date: Thu, 25 Feb 2021 19:40:21 +0100
|
||||
Subject: [PATCH 2/3] Review fixes for LLVM 12 phase 1
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp | 6 +-----
|
||||
IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp | 6 +-----
|
||||
IGC/Compiler/CISACodeGen/AdvMemOpt.cpp | 7 ++-----
|
||||
IGC/Compiler/CISACodeGen/Simd32Profitability.cpp | 7 ++-----
|
||||
IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp | 11 +----------
|
||||
IGC/Compiler/GenTTI.cpp | 9 ++-------
|
||||
IGC/Compiler/Legalizer/InstPromoter.cpp | 8 +-------
|
||||
.../DeviceEnqueueFuncs/TransformBlocks.cpp | 6 +-----
|
||||
.../OpenCLPasses/WIFuncs/WIFuncResolution.cpp | 4 ----
|
||||
IGC/Compiler/Optimizer/Scalarizer.cpp | 2 +-
|
||||
IGC/WrapperLLVM/include/llvmWrapper/IR/DerivedTypes.h | 10 ++++++++++
|
||||
.../include/llvmWrapper/Support/TypeSize.h | 4 +---
|
||||
.../include/llvmWrapper/Transforms/Utils/LoopUtils.h | 8 ++++++++
|
||||
IGC/common/igc_resourceDimTypes.h | 5 ++---
|
||||
14 files changed, 33 insertions(+), 60 deletions(-)
|
||||
|
||||
diff --git a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
|
||||
index 725a1512..12f42be8 100644
|
||||
--- a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
|
||||
+++ b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
|
||||
@@ -1929,11 +1929,7 @@ SPIRVToLLVM::transType(SPIRVType *T) {
|
||||
auto name = isSubgroupAvcINTELTypeOpCode(OC) ?
|
||||
OCLSubgroupINTELTypeOpCodeMap::rmap(OC) :
|
||||
BuiltinOpaqueGenericTypeOpCodeMap::rmap(OC);
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- auto *pST = llvm::StructType::getTypeByName(M->getContext(), name);
|
||||
-#else
|
||||
- auto *pST = M->getTypeByName(name);
|
||||
-#endif
|
||||
+ auto *pST = IGCLLVM::getTypeByName(M, name);
|
||||
pST = pST ? pST : StructType::create(*Context, name);
|
||||
|
||||
return mapType(T, PointerType::get(pST, getOCLOpaqueTypeAddrSpace(OC)));
|
||||
diff --git a/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp b/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp
|
||||
index 91b4623c..f4f0dee5 100644
|
||||
--- a/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp
|
||||
+++ b/IGC/AdaptorOCL/SPIRV/SPIRVUtil.cpp
|
||||
@@ -93,11 +93,7 @@ saveLLVMModule(Module *M, const std::string &OutputFile) {
|
||||
PointerType*
|
||||
getOrCreateOpaquePtrType(Module *M, const std::string &Name,
|
||||
unsigned AddrSpace) {
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- auto OpaqueType = llvm::StructType::getTypeByName(M->getContext(), Name);
|
||||
-#else
|
||||
- auto OpaqueType = M->getTypeByName(Name);
|
||||
-#endif
|
||||
+ auto OpaqueType = IGCLLVM::getTypeByName(M, Name);
|
||||
if (!OpaqueType)
|
||||
OpaqueType = StructType::create(M->getContext(), Name);
|
||||
return PointerType::get(OpaqueType, AddrSpace);
|
||||
diff --git a/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp b/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp
|
||||
index fc45a510..a612a473 100644
|
||||
--- a/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp
|
||||
+++ b/IGC/Compiler/CISACodeGen/AdvMemOpt.cpp
|
||||
@@ -33,6 +33,7 @@ IN THE SOFTWARE.
|
||||
#include <llvm/Support/Debug.h>
|
||||
#include <llvm/Support/raw_ostream.h>
|
||||
#include <llvm/Transforms/Utils/Local.h>
|
||||
+#include "llvmWrapper/Transforms/Utils/LoopUtils.h"
|
||||
#include "common/LLVMWarningsPop.hpp"
|
||||
#include "GenISAIntrinsics/GenIntrinsics.h"
|
||||
#include "Compiler/CISACodeGen/ShaderCodeGen.hpp"
|
||||
@@ -134,11 +135,7 @@ bool AdvMemOpt::runOnFunction(Function& F) {
|
||||
for (auto I = LI->begin(), E = LI->end(); I != E; ++I)
|
||||
for (auto DFI = df_begin(*I), DFE = df_end(*I); DFI != DFE; ++DFI) {
|
||||
Loop* L = *DFI;
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- if (L->isInnermost())
|
||||
-#else
|
||||
- if (L->empty())
|
||||
-#endif
|
||||
+ if (IGCLLVM::isInnermost(L))
|
||||
InnermostLoops.push_back(L);
|
||||
}
|
||||
|
||||
diff --git a/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp b/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp
|
||||
index c1f4a419..5393d4e8 100644
|
||||
--- a/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp
|
||||
+++ b/IGC/Compiler/CISACodeGen/Simd32Profitability.cpp
|
||||
@@ -28,6 +28,7 @@ IN THE SOFTWARE.
|
||||
#include "Compiler/CISACodeGen/Platform.hpp"
|
||||
#include "common/LLVMWarningsPush.hpp"
|
||||
#include <llvmWrapper/IR/DerivedTypes.h>
|
||||
+#include <llvmWrapper/Transforms/Utils/LoopUtils.h>
|
||||
#include <llvm/IR/InstIterator.h>
|
||||
#include <llvm/IR/Operator.h>
|
||||
#include <llvmWrapper/IR/DerivedTypes.h>
|
||||
@@ -995,11 +996,7 @@ static bool hasLongStridedLdStInLoop(Function* F, LoopInfo* LI, WIAnalysis* WI)
|
||||
// Collect innermost simple loop.
|
||||
for (auto I = LI->begin(), E = LI->end(); I != E; ++I) {
|
||||
auto L = *I;
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- if (!L->isInnermost())
|
||||
-#else
|
||||
- if (!L->empty())
|
||||
-#endif
|
||||
+ if (!IGCLLVM::isInnermost(L))
|
||||
continue;
|
||||
if (L->getNumBlocks() != 2)
|
||||
continue;
|
||||
diff --git a/IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp b/IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp
|
||||
index adf992cb..33473c23 100644
|
||||
--- a/IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp
|
||||
+++ b/IGC/Compiler/ConvertMSAAPayloadTo16Bit.cpp
|
||||
@@ -153,21 +153,12 @@ void ConvertMSAAPayloadTo16Bit::visitCallInst(CallInst& I)
|
||||
// In OGL there are uses of ldmcs other then ldms, using vec4float type.
|
||||
// Fix them to use newly created 16bit ldmcs.
|
||||
if (ldmcs->getType()->isVectorTy() &&
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- ldmcs->getType()->getScalarType()->isFloatTy())
|
||||
-#else
|
||||
- ldmcs->getType()->getVectorElementType()->isFloatTy())
|
||||
-#endif
|
||||
+ cast<IGCLLVM::FixedVectorType>(ldmcs->getType())->getElementType()->isFloatTy())
|
||||
{
|
||||
m_builder->SetInsertPoint(ldmcs);
|
||||
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
uint ldmcsNumOfElements = cast<IGCLLVM::FixedVectorType>(ldmcs->getType())->getNumElements();
|
||||
uint new_mcs_callNumOfElements = cast<IGCLLVM::FixedVectorType>(new_mcs_call->getType())->getNumElements();
|
||||
-#else
|
||||
- uint ldmcsNumOfElements = ldmcs->getType()->getVectorNumElements();
|
||||
- uint new_mcs_callNumOfElements = new_mcs_call->getType()->getVectorNumElements();
|
||||
-#endif
|
||||
|
||||
// vec of 16bit ints to vec of 32bit ints
|
||||
Type* new_mcs_callVecType = IGCLLVM::FixedVectorType::get(m_builder->getInt32Ty(), new_mcs_callNumOfElements);
|
||||
diff --git a/IGC/Compiler/GenTTI.cpp b/IGC/Compiler/GenTTI.cpp
|
||||
index 9e4d2f26..53e3ec9e 100644
|
||||
--- a/IGC/Compiler/GenTTI.cpp
|
||||
+++ b/IGC/Compiler/GenTTI.cpp
|
||||
@@ -37,6 +37,7 @@ IN THE SOFTWARE.
|
||||
#include "llvm/Analysis/LoopInfo.h"
|
||||
#include "llvm/Analysis/ScalarEvolution.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
+#include "llvmWrapper/Transforms/Utils/LoopUtils.h"
|
||||
#include "common/LLVMWarningsPop.hpp"
|
||||
|
||||
using namespace llvm;
|
||||
@@ -216,13 +217,7 @@ namespace llvm {
|
||||
|
||||
// Skip non-simple loop.
|
||||
if (L->getNumBlocks() != 1) {
|
||||
- if (IGC_IS_FLAG_ENABLED(EnableAdvRuntimeUnroll) &&
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- L->isInnermost()
|
||||
-#else
|
||||
- L->empty()
|
||||
-#endif
|
||||
- ) {
|
||||
+ if (IGC_IS_FLAG_ENABLED(EnableAdvRuntimeUnroll) && IGCLLVM::isInnermost(L)) {
|
||||
auto countNonPHI = [](BasicBlock* BB) {
|
||||
unsigned Total = BB->size();
|
||||
unsigned PHIs = 0;
|
||||
diff --git a/IGC/Compiler/Legalizer/InstPromoter.cpp b/IGC/Compiler/Legalizer/InstPromoter.cpp
|
||||
index 8fadf89f..63cbccb5 100644
|
||||
--- a/IGC/Compiler/Legalizer/InstPromoter.cpp
|
||||
+++ b/IGC/Compiler/Legalizer/InstPromoter.cpp
|
||||
@@ -398,13 +398,7 @@ bool InstPromoter::visitBitCastInst(BitCastInst& I) {
|
||||
IRB->CreateBitCast(Val, IGCLLVM::FixedVectorType::get(DestTy->getScalarType(), N));
|
||||
|
||||
std::vector<Constant*> Vals;
|
||||
- for (unsigned i = 0;
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- i < cast<IGCLLVM::FixedVectorType>(DestTy)->getNumElements();
|
||||
-#else
|
||||
- i < DestTy->getVectorNumElements();
|
||||
-#endif
|
||||
- i++)
|
||||
+ for (unsigned i = 0; i < cast<IGCLLVM::FixedVectorType>(DestTy)->getNumElements(); i++)
|
||||
Vals.push_back(IRB->getInt32(i));
|
||||
|
||||
Value* Mask = ConstantVector::get(Vals);
|
||||
diff --git a/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp b/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp
|
||||
index 119520ed..a3681b79 100644
|
||||
--- a/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp
|
||||
+++ b/IGC/Compiler/Optimizer/OpenCLPasses/DeviceEnqueueFuncs/TransformBlocks.cpp
|
||||
@@ -952,11 +952,7 @@ namespace //Anonymous
|
||||
{
|
||||
auto ndrangeStructName = "struct.ndrange_t";
|
||||
auto module = _deviceExecCall->getModule();
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
- auto ndrangeTy = llvm::StructType::getTypeByName(module->getContext(), ndrangeStructName);
|
||||
-#else
|
||||
- auto ndrangeTy = module->getTypeByName(ndrangeStructName);
|
||||
-#endif
|
||||
+ auto ndrangeTy = IGCLLVM::getTypeByName(module, ndrangeStructName);
|
||||
if (ndrangeTy == nullptr)
|
||||
{
|
||||
//create struct type
|
||||
diff --git a/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp b/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp
|
||||
index 535d6268..c23c661d 100644
|
||||
--- a/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp
|
||||
+++ b/IGC/Compiler/Optimizer/OpenCLPasses/WIFuncs/WIFuncResolution.cpp
|
||||
@@ -303,11 +303,7 @@ static Value* BuildLoadInst(CallInst& CI, unsigned int Offset, Type* DataType)
|
||||
auto Size = ElemByteSize;
|
||||
if (DataType->isVectorTy())
|
||||
{
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
Size *= cast<IGCLLVM::FixedVectorType>(DataType)->getNumElements();
|
||||
-#else
|
||||
- Size *= DataType->getVectorNumElements();
|
||||
-#endif
|
||||
}
|
||||
unsigned int AlignedOffset = (Offset / ElemByteSize) * ElemByteSize;
|
||||
unsigned int LoadByteSize = (Offset == AlignedOffset) ? Size : Size * 2;
|
||||
diff --git a/IGC/Compiler/Optimizer/Scalarizer.cpp b/IGC/Compiler/Optimizer/Scalarizer.cpp
|
||||
index a4e73a6d..38627553 100644
|
||||
--- a/IGC/Compiler/Optimizer/Scalarizer.cpp
|
||||
+++ b/IGC/Compiler/Optimizer/Scalarizer.cpp
|
||||
@@ -778,7 +778,7 @@ void ScalarizeFunction::scalarizeInstruction(ShuffleVectorInst* SI)
|
||||
|
||||
// Generate array for shuffled scalar values
|
||||
SmallVector<Value*, MAX_INPUT_VECTOR_WIDTH>newVector;
|
||||
- unsigned width = int_cast<unsigned>(dyn_cast<IGCLLVM::FixedVectorType>(SI->getType())->getNumElements());
|
||||
+ unsigned width = int_cast<unsigned>(cast<IGCLLVM::FixedVectorType>(SI->getType())->getNumElements());
|
||||
|
||||
// Generate undef value, which may be needed as some scalar elements
|
||||
UndefValue* undef = UndefValue::get(inputType->getElementType());
|
||||
diff --git a/IGC/WrapperLLVM/include/llvmWrapper/IR/DerivedTypes.h b/IGC/WrapperLLVM/include/llvmWrapper/IR/DerivedTypes.h
|
||||
index a3f5a0b8..6a5407bb 100644
|
||||
--- a/IGC/WrapperLLVM/include/llvmWrapper/IR/DerivedTypes.h
|
||||
+++ b/IGC/WrapperLLVM/include/llvmWrapper/IR/DerivedTypes.h
|
||||
@@ -29,6 +29,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
#include "llvm/Config/llvm-config.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
+#include "llvm/IR/Module.h"
|
||||
|
||||
namespace IGCLLVM
|
||||
{
|
||||
@@ -62,6 +63,15 @@ namespace IGCLLVM
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
+
|
||||
+ inline llvm::StructType *getTypeByName(llvm::Module *M, llvm::StringRef Name) {
|
||||
+#if LLVM_VERSION_MAJOR >= 12
|
||||
+ return llvm::StructType::getTypeByName(M->getContext(), Name);
|
||||
+#else
|
||||
+ return M->getTypeByName(Name);
|
||||
+#endif
|
||||
+ }
|
||||
+
|
||||
}
|
||||
|
||||
#endif
|
||||
diff --git a/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h b/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h
|
||||
index 30e29720..7021820c 100644
|
||||
--- a/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h
|
||||
+++ b/IGC/WrapperLLVM/include/llvmWrapper/Support/TypeSize.h
|
||||
@@ -39,12 +39,10 @@ inline unsigned getElementCount(unsigned EC) { return EC; }
|
||||
inline ElementCount getElementCount(unsigned EC) {
|
||||
return ElementCount(EC, false);
|
||||
}
|
||||
-#elif LLVM_VERSION_MAJOR == 12
|
||||
+#else
|
||||
inline ElementCount getElementCount(unsigned EC) {
|
||||
return ElementCount::get(EC, false);
|
||||
}
|
||||
-#else
|
||||
-#error "unsupported LLVM version"
|
||||
#endif
|
||||
} // namespace IGCLLVM
|
||||
|
||||
diff --git a/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Utils/LoopUtils.h b/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Utils/LoopUtils.h
|
||||
index db47b00b..bce9cfc1 100644
|
||||
--- a/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Utils/LoopUtils.h
|
||||
+++ b/IGC/WrapperLLVM/include/llvmWrapper/Transforms/Utils/LoopUtils.h
|
||||
@@ -41,6 +41,14 @@ namespace IGCLLVM
|
||||
return llvm::InsertPreheaderForLoop(L, DT, LI, nullptr, PreserveLCSSA);
|
||||
}
|
||||
#endif
|
||||
+
|
||||
+ inline bool isInnermost(llvm::Loop *L) {
|
||||
+#if LLVM_VERSION_MAJOR >= 12
|
||||
+ return L->isInnermost();
|
||||
+#else
|
||||
+ return L->empty();
|
||||
+#endif
|
||||
+ }
|
||||
}
|
||||
|
||||
#endif
|
||||
diff --git a/IGC/common/igc_resourceDimTypes.h b/IGC/common/igc_resourceDimTypes.h
|
||||
index d790330f..2d675969 100644
|
||||
--- a/IGC/common/igc_resourceDimTypes.h
|
||||
+++ b/IGC/common/igc_resourceDimTypes.h
|
||||
@@ -67,10 +67,9 @@ namespace IGC
|
||||
resourceDimTypeId == DIM_3D_TYPE || resourceDimTypeId == DIM_CUBE_TYPE || resourceDimTypeId == DIM_CUBE_ARRAY_TYPE));
|
||||
|
||||
#if LLVM_VERSION_MAJOR >= 12
|
||||
- llvm::LLVMContext& llvmCtx = module.getContext();
|
||||
- return llvm::StructType::getTypeByName(llvmCtx, ResourceDimensionTypeName[resourceDimTypeId]);
|
||||
+ return llvm::StructType::getTypeByName(module.getContext(), ResourceDimensionTypeName[resourceDimTypeId]);
|
||||
#else
|
||||
return module.getTypeByName(ResourceDimensionTypeName[resourceDimTypeId]);
|
||||
#endif
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
From c6d333637537263930acb1b6c5dadb0467d745f6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zolt=C3=A1n=20B=C3=B6sz=C3=B6rm=C3=A9nyi?= <zboszor@pr.hu>
|
||||
Date: Fri, 26 Feb 2021 06:39:35 +0100
|
||||
Subject: [PATCH 3/3] Review fixes for LLVM 12 phase 2
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp | 4 ----
|
||||
.../AddressSpaceAliasAnalysis.cpp | 10 +++++-----
|
||||
.../PrivateMemory/PrivateMemoryResolution.cpp | 4 ----
|
||||
IGC/DebugInfo/DebugInfoUtils.hpp | 4 ----
|
||||
IGC/DebugInfo/DwarfDebug.cpp | 8 --------
|
||||
5 files changed, 5 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
|
||||
index 12f42be8..c4f9d1ea 100644
|
||||
--- a/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
|
||||
+++ b/IGC/AdaptorOCL/SPIRV/SPIRVReader.cpp
|
||||
@@ -1576,11 +1576,7 @@ void SPIRVToLLVMDbgTran::transDbgInfo(SPIRVValue *SV, Value *V) {
|
||||
Line->getColumn(), scope, iat);
|
||||
|
||||
if(scope && !isa<DIFile>(scope))
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
I->setDebugLoc(DILocation::get(scope->getContext(), Line->getLine(), Line->getColumn(),
|
||||
-#else
|
||||
- I->setDebugLoc(DebugLoc::get(Line->getLine(), Line->getColumn(),
|
||||
-#endif
|
||||
scope, iat));
|
||||
}
|
||||
}
|
||||
diff --git a/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp b/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp
|
||||
index e9c07b34..b6b779da 100644
|
||||
--- a/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp
|
||||
+++ b/IGC/Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.cpp
|
||||
@@ -23,8 +23,7 @@ IN THE SOFTWARE.
|
||||
============================= end_copyright_notice ===========================*/
|
||||
|
||||
#include "llvm/Config/llvm-config.h"
|
||||
-#include "llvmWrapper/IR/DerivedTypes.h"
|
||||
-#include "llvmWrapper/Analysis/TargetLibraryInfo.h"
|
||||
+#include <llvm/Analysis/TargetLibraryInfo.h>
|
||||
#include "Compiler/Optimizer/OpenCLPasses/AddressSpaceAliasAnalysis/AddressSpaceAliasAnalysis.h"
|
||||
#include "Compiler/CodeGenPublic.h"
|
||||
#include "Compiler/IGCPassSupport.h"
|
||||
@@ -180,11 +179,12 @@ namespace {
|
||||
bool doInitialization(Module& M) override {
|
||||
if(M.size() > 0)
|
||||
{
|
||||
+ Result.reset(new AddressSpaceAAResult(
|
||||
+ getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(
|
||||
#if LLVM_VERSION_MAJOR >= 10
|
||||
- Function &F = *M.begin();
|
||||
+ *M.begin()
|
||||
#endif
|
||||
- Result.reset(new AddressSpaceAAResult(
|
||||
- getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(),
|
||||
+ ),
|
||||
*getAnalysis<CodeGenContextWrapper>().getCodeGenContext()));
|
||||
}
|
||||
return false;
|
||||
diff --git a/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemoryResolution.cpp b/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemoryResolution.cpp
|
||||
index 07f85f4c..98ea616f 100644
|
||||
--- a/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemoryResolution.cpp
|
||||
+++ b/IGC/Compiler/Optimizer/OpenCLPasses/PrivateMemory/PrivateMemoryResolution.cpp
|
||||
@@ -816,11 +816,7 @@ bool PrivateMemoryResolution::resolveAllocaInstructions(bool privateOnStack)
|
||||
// Construct an empty DebugLoc.
|
||||
IF_DEBUG_INFO(DebugLoc entryDebugLoc);
|
||||
// Assign with the function location if available.
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
IF_DEBUG_INFO_IF(DISubprogram *subprogram = m_currFunction->getSubprogram(), entryDebugLoc = DILocation::get(subprogram->getContext(), subprogram->getLine(), 0, subprogram););
|
||||
-#else
|
||||
- IF_DEBUG_INFO_IF(DISubprogram *subprogram = m_currFunction->getSubprogram(), entryDebugLoc = DebugLoc::get(subprogram->getLine(), 0, subprogram););
|
||||
-#endif
|
||||
IF_DEBUG_INFO(entryBuilder.SetCurrentDebugLocation(entryDebugLoc));
|
||||
|
||||
if (privateOnStack)
|
||||
diff --git a/IGC/DebugInfo/DebugInfoUtils.hpp b/IGC/DebugInfo/DebugInfoUtils.hpp
|
||||
index b77a550d..88b30a75 100644
|
||||
--- a/IGC/DebugInfo/DebugInfoUtils.hpp
|
||||
+++ b/IGC/DebugInfo/DebugInfoUtils.hpp
|
||||
@@ -108,11 +108,7 @@ namespace IGC
|
||||
IGCLLVM::DIBuilder Builder(M);
|
||||
llvm::DIGlobalVariable* GV = GVs[j]->getVariable();
|
||||
llvm::DIScope* scopeToUse = GV->getScope();
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
llvm::DILocation* locToUse = llvm::DILocation::get(scopeToUse->getContext(), GV->getLine(), 0, scopeToUse, loc);
|
||||
-#else
|
||||
- llvm::DILocation* locToUse = llvm::DebugLoc::get(GV->getLine(), 0, scopeToUse, loc);
|
||||
-#endif
|
||||
if (llvm::isa<llvm::DICompileUnit>(GV->getScope()))
|
||||
{
|
||||
// Function has no DebugLoc so it is either internal
|
||||
diff --git a/IGC/DebugInfo/DwarfDebug.cpp b/IGC/DebugInfo/DwarfDebug.cpp
|
||||
index bd9f17b7..3d9f0835 100644
|
||||
--- a/IGC/DebugInfo/DwarfDebug.cpp
|
||||
+++ b/IGC/DebugInfo/DwarfDebug.cpp
|
||||
@@ -2102,17 +2102,9 @@ static DebugLoc getFnDebugLoc(DebugLoc DL, const LLVMContext& Ctx)
|
||||
// Check for number of operands since the compatibility is cheap here.
|
||||
if (SP->getNumOperands() > 19)
|
||||
{
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
return DILocation::get(SP->getContext(), SP->getScopeLine(), 0, SP);
|
||||
-#else
|
||||
- return DebugLoc::get(SP->getScopeLine(), 0, SP);
|
||||
-#endif
|
||||
}
|
||||
-#if LLVM_VERSION_MAJOR >= 12
|
||||
return DILocation::get(SP->getContext(), SP->getLine(), 0, SP);
|
||||
-#else
|
||||
- return DebugLoc::get(SP->getLine(), 0, SP);
|
||||
-#endif
|
||||
}
|
||||
|
||||
return DebugLoc();
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From ca136c04d4ac60e3febc8ea2b9c4d4736365a424 Mon Sep 17 00:00:00 2001
|
||||
From 2fa3f2da1179bd5b2eeac82839d386f0111e611c Mon Sep 17 00:00:00 2001
|
||||
From: Lee Chee Yang <chee.yang.lee@intel.com>
|
||||
Date: Wed, 2 Sep 2020 08:28:35 +0800
|
||||
Subject: [PATCH] Improve Reproducibility for src package
|
||||
|
|
@ -13,11 +13,11 @@ Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
|
|||
visa/CMakeLists.txt | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: git/visa/CMakeLists.txt
|
||||
===================================================================
|
||||
--- git.orig/visa/CMakeLists.txt
|
||||
+++ git/visa/CMakeLists.txt
|
||||
@@ -135,8 +135,11 @@ endif()
|
||||
diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt
|
||||
index 981c35d2..d5944370 100644
|
||||
--- a/visa/CMakeLists.txt
|
||||
+++ b/visa/CMakeLists.txt
|
||||
@@ -109,8 +109,11 @@ endif()
|
||||
set(bison_output_file ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp)
|
||||
set(flex_output_file ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp)
|
||||
|
||||
|
|
@ -31,3 +31,6 @@ Index: git/visa/CMakeLists.txt
|
|||
ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser)
|
||||
set(CISAScanner_dependencies)
|
||||
|
||||
--
|
||||
2.28.0
|
||||
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
From 11b923c99cbe3580885ce40c322277fc823107a0 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Tue, 2 Feb 2021 13:39:53 +0800
|
||||
Subject: [PATCH] IGC/VectorCompiler/CMakeLists.txt: link to external
|
||||
LLVMGenXIntrinsics
|
||||
|
||||
By default LLVMGenXIntrinsics is to be build In-tree, but we want to
|
||||
link externally.
|
||||
|
||||
Fix llvm-tblgen path.
|
||||
|
||||
Upstream-Status: Inappropriate [configuration specific]
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
IGC/VectorCompiler/CMakeLists.txt | 32 ++-----------------------------
|
||||
1 file changed, 2 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/IGC/VectorCompiler/CMakeLists.txt b/IGC/VectorCompiler/CMakeLists.txt
|
||||
index 86f343ee..b4268160 100644
|
||||
--- a/IGC/VectorCompiler/CMakeLists.txt
|
||||
+++ b/IGC/VectorCompiler/CMakeLists.txt
|
||||
@@ -53,10 +53,7 @@ if(IGC_BUILD__USING_SYSTEM_LLVM OR (WIN32 AND LLVM_USE_PREBUILT))
|
||||
message(STATUS "[VC] Using system llvm")
|
||||
|
||||
# Need to search for llvm-tblgen
|
||||
- find_program(LLVM_TABLEGEN_EXE "llvm-tblgen"
|
||||
- ${LLVM_TOOLS_BINARY_DIR}
|
||||
- NO_DEFAULT_PATH
|
||||
- )
|
||||
+ find_program(LLVM_TABLEGEN_EXE "llvm-tblgen")
|
||||
if(LLVM_TABLEGEN_EXE-NOTFOUND)
|
||||
message(FATAL_ERROR "[VC] llvm-tblgen is not found")
|
||||
endif()
|
||||
@@ -140,32 +137,7 @@ if(LLVM_ON_WIN32)
|
||||
add_compile_options(/wd4141)
|
||||
endif()
|
||||
|
||||
-if(DEFINED VC_INTRINSICS_SRC)
|
||||
- set(INTRSRC "${VC_INTRINSICS_SRC}/GenXIntrinsics")
|
||||
-endif()
|
||||
-
|
||||
-if(NOT DEFINED INTRSRC)
|
||||
- set(INTRSRC "${CMAKE_CURRENT_SOURCE_DIR}/../../../vc-intrinsics/GenXIntrinsics")
|
||||
-endif()
|
||||
-
|
||||
-message(STATUS "[VC] Using vc-intrinsics source from: ${INTRSRC}")
|
||||
-
|
||||
-# We are using prebuilt SPIRV and building intrinsics.
|
||||
-set(INTRBUILD "${CMAKE_CURRENT_BINARY_DIR}/intrbuild")
|
||||
-add_subdirectory(${INTRSRC} ${INTRBUILD})
|
||||
-# Make separate target for intrinstics headers.
|
||||
-# Ideally, this should be inside intrinsics, but
|
||||
-# this breaks in-tree build of intrinsics with LLVM.
|
||||
-add_library(VCIntrinsicsHeaders INTERFACE)
|
||||
-target_include_directories(VCIntrinsicsHeaders
|
||||
- INTERFACE
|
||||
- ${INTRSRC}/include
|
||||
- ${INTRBUILD}/include
|
||||
- )
|
||||
-add_dependencies(VCIntrinsicsHeaders
|
||||
- GenXIntrinsics
|
||||
- )
|
||||
-
|
||||
+find_package(LLVMGenXIntrinsics REQUIRED)
|
||||
include(cmake/spirv.cmake)
|
||||
include(${IGC_SOURCE_DIR}/cmake/utils.cmake)
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
|
||||
DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
|
||||
llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
|
||||
hardware architecture."
|
||||
|
||||
LICENSE = "MIT & BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
|
||||
file://IGC/Compiler/LegalizationPass.cpp;beginline=1;endline=23;md5=8b19c5999abc484f18232b0905367f9f \
|
||||
file://NOTICES.txt;md5=b12e73994de4fbe0f688cf0bc91512a0"
|
||||
|
||||
SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https; \
|
||||
file://0001-skip-execution-of-ElfPackager.patch \
|
||||
file://link-to-LLVMGenXIntrinsics.patch \
|
||||
file://improve_src_package_reproducibility.patch \
|
||||
file://0001-Fix-build-with-LLVM-12.patch \
|
||||
file://0002-Review-fixes-for-LLVM-12-phase-1.patch \
|
||||
file://0003-Review-fixes-for-LLVM-12-phase-2.patch \
|
||||
"
|
||||
|
||||
SRCREV = "535aaaef03ce338e05e6162118082e6e007e8c10"
|
||||
|
||||
# Used to replace with relative path in reproducibility patch
|
||||
export B
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST_libc-musl = "null"
|
||||
|
||||
DEPENDS += " flex-native bison-native clang opencl-clang vc-intrinsics"
|
||||
DEPENDS_append_class-target = " clang-cross-x86_64"
|
||||
|
||||
RDEPENDS_${PN} += "opencl-clang"
|
||||
|
||||
EXTRA_OECMAKE = "-DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} -DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 -DIGC_BUILD__VC_ENABLED=OFF -DIGC_BUILD__USE_KHRONOS_SPIRV_TRANSLATOR=ON"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$"
|
||||
|
||||
FILES_${PN} += " \
|
||||
${libdir}/igc/NOTICES.txt \
|
||||
"
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)"
|
||||
DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \
|
||||
llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \
|
||||
hardware architecture."
|
||||
|
||||
LICENSE = "MIT & Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \
|
||||
file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \
|
||||
file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880"
|
||||
|
||||
SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/2.10.x \
|
||||
git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/vc-intrinsics;name=vc;nobranch=1 \
|
||||
git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/SPIRV-Tools;name=spirv-tools;branch=main \
|
||||
git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/SPIRV-Headers;name=spirv-headers;branch=main \
|
||||
file://0003-Improve-Reproducibility-for-src-package.patch \
|
||||
file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \
|
||||
file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \
|
||||
file://0001-Build-not-able-to-locate-BiFManager-bin.patch \
|
||||
"
|
||||
|
||||
SRC_URI:append:class-native = " file://0001-fix-tblgen.patch"
|
||||
|
||||
SRCREV_igc = "83925314d4fc32b017fcbfcd73e0667ba833fb8f"
|
||||
SRCREV_vc = "9d255266e1df8f1dc5d11e1fbb03213acfaa4fc7"
|
||||
SRCREV_spirv-tools = "f289d047f49fb60488301ec62bafab85573668cc"
|
||||
SRCREV_spirv-headers = "0e710677989b4326ac974fd80c5308191ed80965"
|
||||
|
||||
SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers"
|
||||
|
||||
# Used to replace with relative path in reproducibility patch
|
||||
export B
|
||||
|
||||
inherit cmake pkgconfig qemu python3native
|
||||
|
||||
CXXFLAGS:append = " -Wno-error=nonnull"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native \
|
||||
python3-pyyaml-native \
|
||||
"
|
||||
|
||||
RDEPENDS:${PN} += "opencl-clang"
|
||||
|
||||
PACKAGECONFIG ??= "vc"
|
||||
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,"
|
||||
|
||||
EXTRA_OECMAKE = " \
|
||||
-DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \
|
||||
-DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \
|
||||
-DIGC_OPTION__LLVM_MODE=Prebuilds \
|
||||
-DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
|
||||
-DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \
|
||||
-DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \
|
||||
-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
"
|
||||
|
||||
do_configure:prepend:class-target () {
|
||||
# Write out a qemu wrapper that will be used by cmake.
|
||||
qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
|
||||
cat > ${WORKDIR}/qemuwrapper << EOF
|
||||
#!/bin/sh
|
||||
$qemu_binary "\$@"
|
||||
EOF
|
||||
chmod +x ${WORKDIR}/qemuwrapper
|
||||
}
|
||||
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>\d+(\.\d+)+)$"
|
||||
|
||||
FILES:${PN} += " \
|
||||
${libdir}/igc2/NOTICES.txt \
|
||||
"
|
||||
|
||||
# libigc.so contains buildpaths
|
||||
INSANE_SKIP:${PN} += "buildpaths"
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From 7fc05c52dd91902fa324a7aac9b90715cfca4717 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Wed, 15 Apr 2020 17:55:32 +0800
|
||||
Subject: [PATCH] Building in-tree with LLVM 10.0 with the LLVM_LINK_LLVM_DYLIB
|
||||
|
||||
Failed to link with the LLVMSPIRVLib library.
|
||||
|
||||
Add an explicit dependency to force the correct build order and linking.
|
||||
|
||||
Reference:
|
||||
https://github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/a6d4ccf082858e63e139ca06c02a071c343d2657
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/intel/opencl-clang/pull/118]
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 51c140d..b8b514e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -208,7 +208,7 @@ link_directories(
|
||||
|
||||
set(OPENCL_CLANG_LINK_LIBS ${CMAKE_DL_LIBS})
|
||||
|
||||
-if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS)
|
||||
+if(NOT LLVMSPIRVLib IN_LIST LLVM_AVAILABLE_LIBS OR (USE_PREBUILT_LLVM AND LLVM_LINK_LLVM_DYLIB))
|
||||
# SPIRV-LLVM-Translator is not included into LLVM as a component.
|
||||
# So, we need to list it here explicitly as an external library
|
||||
list(APPEND OPENCL_CLANG_LINK_LIBS LLVMSPIRVLib)
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
From 5aea653e611b59c70e529a1bd71885a509831557 Mon Sep 17 00:00:00 2001
|
||||
From: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Date: Tue, 1 Aug 2023 11:15:31 +0800
|
||||
Subject: [PATCH] cl_headers/CMakeLists.txt: use clang from native sysroot
|
||||
|
||||
Allow clang to be found in target sysroot for target builds and dont try
|
||||
to compile cross binaries, we do that ourselves.
|
||||
|
||||
Upstream-Status: Inappropriate [oe-specific]
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 8 ++++----
|
||||
cl_headers/CMakeLists.txt | 2 +-
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 5864009..60ba39e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -35,10 +35,10 @@ set(CMAKE_MODULE_PATH
|
||||
|
||||
include(CMakeFunctions)
|
||||
|
||||
-if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
|
||||
- include(CrossCompile)
|
||||
- llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
|
||||
-endif()
|
||||
+#if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
|
||||
+# include(CrossCompile)
|
||||
+# llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
|
||||
+#endif()
|
||||
|
||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(USE_PREBUILT_LLVM ON)
|
||||
diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
|
||||
index 16cabb7..4423536 100644
|
||||
--- a/cl_headers/CMakeLists.txt
|
||||
+++ b/cl_headers/CMakeLists.txt
|
||||
@@ -1,6 +1,6 @@
|
||||
set(CL_HEADERS_LIB cl_headers)
|
||||
if(USE_PREBUILT_LLVM)
|
||||
- find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
|
||||
+ find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR})
|
||||
else()
|
||||
set(CLANG_COMMAND $<TARGET_FILE:clang>)
|
||||
endif()
|
||||
--
|
||||
2.37.3
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
From f3ef79a6301bab0b3a447f07ceb94c39a95009df Mon Sep 17 00:00:00 2001
|
||||
From: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Date: Thu, 2 Apr 2020 08:59:20 +0800
|
||||
Subject: [PATCH] don't redefine LLVM_TABLEGEN_EXE
|
||||
|
||||
Use the value that has been passed by the user.
|
||||
|
||||
Upstream-Status: Submitted
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6893e97..941b0ae 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -137,7 +137,10 @@ endif(NOT USE_PREBUILT_LLVM)
|
||||
set (COMPILE_OPTIONS_TD opencl_clang_options.td)
|
||||
set (COMPILE_OPTIONS_INC opencl_clang_options.inc)
|
||||
|
||||
-set(LLVM_TABLEGEN_EXE "llvm-tblgen")
|
||||
+if(NOT DEFINED LLVM_TABLEGEN_EXE)
|
||||
+ set(LLVM_TABLEGEN_EXE "llvm-tblgen")
|
||||
+endif()
|
||||
+
|
||||
set(LLVM_TARGET_DEFINITIONS ${COMPILE_OPTIONS_TD})
|
||||
if(USE_PREBUILT_LLVM)
|
||||
set(TABLEGEN_ADDITIONAL -I ${LLVM_INCLUDE_DIRS})
|
||||
--
|
||||
2.25.1
|
||||
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
From 43c806ef321b1f677a49d28c89fb7ffecf539c2d Mon Sep 17 00:00:00 2001
|
||||
From: Tim Creech <timothy.m.creech@intel.com>
|
||||
Date: Wed, 28 Jun 2023 03:45:51 -0400
|
||||
Subject: [PATCH 2/2] Request native clang only when cross-compiling (#464)
|
||||
|
||||
* Request native clang only when cross-compiling
|
||||
|
||||
LLVM_USE_HOST_TOOLS may be set if LLVM is configured with
|
||||
LLVM_OPTIMIZED_TABLEGEN, which does not necessarily indicate
|
||||
cross-compilation or that clang will only execute on the target.
|
||||
|
||||
By checking that CMAKE_CROSSCOMPILING is set, we ensure that we only
|
||||
build/use clang again if necessary for host execution.
|
||||
|
||||
* fixup: CMAKE_CROSSCOMPILING implies LLVM_USE_HOST_TOOLS
|
||||
|
||||
Co-authored-by: Wenju He <wenju.he@intel.com>
|
||||
|
||||
* fixup: also use CMAKE_CROSSCOMPILING in top-level CMakeLists.txt
|
||||
|
||||
---------
|
||||
|
||||
Co-authored-by: Wenju He <wenju.he@intel.com>
|
||||
|
||||
Upstream-Status: Backport [https://github.com/intel/opencl-clang/commit/53843eee13cfb2357919ee02714a43bef1af0f86]
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
cl_headers/CMakeLists.txt | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e772de9..5864009 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -35,7 +35,7 @@ set(CMAKE_MODULE_PATH
|
||||
|
||||
include(CMakeFunctions)
|
||||
|
||||
-if(LLVM_USE_HOST_TOOLS AND OPENCL_CLANG_BUILD_EXTERNAL)
|
||||
+if(CMAKE_CROSSCOMPILING AND OPENCL_CLANG_BUILD_EXTERNAL)
|
||||
include(CrossCompile)
|
||||
llvm_create_cross_target(${PROJECT_NAME} NATIVE "" Release)
|
||||
endif()
|
||||
diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
|
||||
index 18296c2..16cabb7 100644
|
||||
--- a/cl_headers/CMakeLists.txt
|
||||
+++ b/cl_headers/CMakeLists.txt
|
||||
@@ -4,7 +4,7 @@ if(USE_PREBUILT_LLVM)
|
||||
else()
|
||||
set(CLANG_COMMAND $<TARGET_FILE:clang>)
|
||||
endif()
|
||||
-if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
|
||||
+if(CMAKE_CROSSCOMPILING AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
|
||||
build_native_tool(clang CLANG_COMMAND)
|
||||
endif()
|
||||
|
||||
--
|
||||
2.37.3
|
||||
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
From b29e00e6fe428a031cf577dfb703cf13eff837f6 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Wed, 15 Apr 2020 18:05:14 +0800
|
||||
Subject: [PATCH 2/2] make sure only static libraries linked for native build
|
||||
|
||||
LINK_COMPONENTS=all isn't working for static libs for out of tree builds. Use
|
||||
LLVM_AVAILABLE_LIBS instead. Reported:
|
||||
|
||||
https://github.com/intel/opencl-clang/issues/114
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 8707487..ad2dbda 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -218,7 +218,7 @@ add_subdirectory(cl_headers)
|
||||
|
||||
set(LLVM_REQUIRES_EH ON)
|
||||
|
||||
-if(USE_PREBUILT_LLVM OR CLANG_LINK_CLANG_DYLIB)
|
||||
+if(false)
|
||||
list(APPEND OPENCL_CLANG_LINK_LIBS clang-cpp)
|
||||
else()
|
||||
list(APPEND OPENCL_CLANG_LINK_LIBS
|
||||
@@ -266,6 +266,7 @@ add_llvm_library(${TARGET_NAME} SHARED
|
||||
all
|
||||
LINK_LIBS
|
||||
${OPENCL_CLANG_LINK_LIBS}
|
||||
+ ${LLVM_AVAILABLE_LIBS}
|
||||
)
|
||||
|
||||
# Configure resource file on Windows
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
SUMMARY = "Common clang is a thin wrapper library around clang"
|
||||
DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
|
||||
to compile OpenCL C kernels to SPIR-V modules."
|
||||
|
||||
LICENSE = "NCSA"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
|
||||
|
||||
SRC_URI = "git://github.com/intel/opencl-clang.git;branch=${BRANCH};protocol=https \
|
||||
file://0002-Request-native-clang-only-when-cross-compiling-464.patch \
|
||||
file://0001-cl_headers-CMakeLists.txt-use-clang-from-native-sysr.patch \
|
||||
"
|
||||
|
||||
inherit cmake
|
||||
DEPENDS += "clang"
|
||||
DEPENDS:append:class-target = " opencl-clang-native"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
DEPENDS += " spirv-llvm-translator"
|
||||
|
||||
EXTRA_OECMAKE += "\
|
||||
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
|
||||
-DCMAKE_SKIP_RPATH=TRUE \
|
||||
-DPREFERRED_LLVM_VERSION=${LLVMVERSION} \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
"
|
||||
|
||||
do_install:append:class-native() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 ${B}/bin/linux_resource_linker ${D}${bindir}/
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
SUMMARY = "Common clang is a thin wrapper library around clang"
|
||||
DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
|
||||
to compile OpenCL C kernels to SPIR-V modules."
|
||||
|
||||
LICENSE = "NCSA"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
|
||||
|
||||
SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-100;protocol=https \
|
||||
file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \
|
||||
file://0001-Building-in-tree-with-LLVM-10.0-with-the-LLVM_LINK_L.patch \
|
||||
"
|
||||
SRC_URI_append_class-native = " file://0002-make-sure-only-static-libraries-linked-for-native-bu.patch"
|
||||
|
||||
SRCREV = "c8cd72e32b6abc18ce6da71c357ea45ba78b52f0"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake
|
||||
DEPENDS += "clang"
|
||||
DEPENDS_append_class-target = " opencl-clang-native"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST_libc-musl = "null"
|
||||
|
||||
EXTRA_OECMAKE += "\
|
||||
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
|
||||
-DCMAKE_SKIP_RPATH=TRUE \
|
||||
"
|
||||
|
||||
do_install_append_class-native() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
SUMMARY = "Common clang is a thin wrapper library around clang"
|
||||
DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
|
||||
to compile OpenCL C kernels to SPIR-V modules."
|
||||
|
||||
LICENSE = "NCSA"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
|
||||
|
||||
SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-110;protocol=https \
|
||||
file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \
|
||||
"
|
||||
SRC_URI_append_class-native = " file://0002-make-sure-only-static-libraries-linked-for-native-bu.patch"
|
||||
|
||||
SRCREV = "c67648d41df00ea8ee9d701d17299b86f86f0321"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake
|
||||
DEPENDS += "clang"
|
||||
DEPENDS_append_class-target = " opencl-clang-native"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST_libc-musl = "null"
|
||||
|
||||
EXTRA_OECMAKE += "\
|
||||
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
|
||||
-DCMAKE_SKIP_RPATH=TRUE \
|
||||
-DPREFERRED_LLVM_VERSION="11.1.0" \
|
||||
"
|
||||
|
||||
do_install_append_class-native() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
SUMMARY = "Common clang is a thin wrapper library around clang"
|
||||
DESCRIPTION = "Common clang has OpenCL-oriented API and is capable \
|
||||
to compile OpenCL C kernels to SPIR-V modules."
|
||||
|
||||
LICENSE = "NCSA"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=e8a15bf1416762a09ece07e44c79118c"
|
||||
|
||||
SRC_URI = "git://github.com/intel/opencl-clang.git;branch=ocl-open-120;protocol=https \
|
||||
file://0001-don-t-redefine-LLVM_TABLEGEN_EXE.patch \
|
||||
"
|
||||
|
||||
SRCREV = "cea544b04460a47848e585bfe75cd774c0324b45"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake
|
||||
DEPENDS += " clang spirv-llvm-translator"
|
||||
DEPENDS_append_class-target = " opencl-clang-native"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST_libc-musl = "null"
|
||||
|
||||
EXTRA_OECMAKE += "\
|
||||
-DLLVM_TABLEGEN_EXE=${STAGING_BINDIR_NATIVE}/llvm-tblgen \
|
||||
-DCMAKE_SKIP_RPATH=TRUE \
|
||||
-DPREFERRED_LLVM_VERSION="12.0.0" \
|
||||
"
|
||||
|
||||
do_install_append_class-native() {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 ${B}/linux_linker/linux_resource_linker ${D}${bindir}/
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
require opencl-clang.inc
|
||||
|
||||
SRCREV = "60fd799cc58755c16d951f9ebfde6d0f9b8554dd"
|
||||
|
||||
BRANCH = "ocl-open-150"
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
SUMMARY = "VC Intrinsics"
|
||||
DESCRIPTION = "VC Intrinsics project contains a set of new intrinsics on \
|
||||
top of core LLVM IR instructions that represent SIMD semantics of a program \
|
||||
targeting GPU"
|
||||
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://License.md;md5=c18ea6bb4786a26bf4eee88a7424a408"
|
||||
|
||||
SRC_URI = "git://github.com/intel/vc-intrinsics.git;protocol=https; \
|
||||
"
|
||||
SRCREV = "77974f5a32e19475125531483bede9ee23935257"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST_libc-musl = "null"
|
||||
|
||||
DEPENDS += " clang"
|
||||
|
||||
EXTRA_OECMAKE = "-DLLVM_DIR=${STAGING_LIBDIR}"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
SUMMARY = "OpenVINO Model Optimzer"
|
||||
DESCRIPTION = "Model Optimizer is a cross-platform command-line tool that \
|
||||
facilitates the transition between the training and deployment \
|
||||
environment, performs static model analysis, and adjusts deep \
|
||||
learning models for optimal execution on end-point target devices."
|
||||
HOMEPAGE = "https://01.org/openvinotoolkit"
|
||||
|
||||
SRC_URI = "git://github.com/openvinotoolkit/openvino.git;protocol=https;branch=releases/2021/3;lfs=0 \
|
||||
"
|
||||
SRCREV = "18e83a217702c650280c6abfc43f3285a3aadb61"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
|
||||
|
||||
CVE_PRODUCT = "intel:openvino"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
do_install() {
|
||||
mkdir -p ${D}${datadir}/openvino/model-optimizer
|
||||
cp -r model-optimizer ${D}${datadir}/openvino/
|
||||
}
|
||||
|
||||
RDEPENDS_${PN} += " \
|
||||
python3-numpy \
|
||||
python3-protobuf \
|
||||
python3-defusedxml \
|
||||
python3-networkx \
|
||||
python3-test-generator \
|
||||
bash \
|
||||
"
|
||||
|
||||
FILES_${PN} += "${datadir}/openvino"
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From 439af27f7641185933d7810b6c4eb17086438df3 Mon Sep 17 00:00:00 2001
|
||||
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
Date: Mon, 19 May 2025 17:50:40 +0530
|
||||
Subject: [PATCH] LMS : fix build issue with gcc 15
|
||||
|
||||
include cstdint header to resolve the below error with gcc 15
|
||||
|
||||
| In file included from /lms/2406.0.0.0/git/MEIClient/src/MEICommand.cpp:11:
|
||||
| /lms/2406.0.0.0/git/MEIClient/Include/MEICommand.h:40:54: error: 'uint8_t' was not declared in this scope
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/intel/lms/pull/23]
|
||||
|
||||
Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
---
|
||||
MEIClient/Include/MEICommand.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/MEIClient/Include/MEICommand.h b/MEIClient/Include/MEICommand.h
|
||||
index 6192d26..5332e44 100644
|
||||
--- a/MEIClient/Include/MEICommand.h
|
||||
+++ b/MEIClient/Include/MEICommand.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#define __MEI_COMMAND_H__
|
||||
#include "heci.h"
|
||||
#include "MEIClientException.h"
|
||||
+#include <cstdint>
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
From e1f6129390706044112496b6f10baee5b604b4c8 Mon Sep 17 00:00:00 2001
|
||||
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
Date: Wed, 23 Jul 2025 23:48:41 +0800
|
||||
Subject: [PATCH] cmake: Bump required CMake version to 3.5 to allow builds
|
||||
with CMake 4+
|
||||
|
||||
This enables builds with CMake 4+, fixing:
|
||||
|
||||
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
|
||||
Compatibility with CMake < 3.5 has been removed from CMake.
|
||||
|
||||
Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
|
||||
to tell CMake that the project requires at least <min> but has been
|
||||
updated to work with policies introduced by <max> or earlier.
|
||||
|
||||
Or, add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to try configuring anyway.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
---
|
||||
CIM_Framework/openwsman/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CIM_Framework/openwsman/CMakeLists.txt b/CIM_Framework/openwsman/CMakeLists.txt
|
||||
index 6e54c66..e2ffa5f 100644
|
||||
--- a/CIM_Framework/openwsman/CMakeLists.txt
|
||||
+++ b/CIM_Framework/openwsman/CMakeLists.txt
|
||||
@@ -6,7 +6,7 @@ PROJECT(openwsman)
|
||||
|
||||
# 2.6 minimum because of CMP0005 (escaping defines)
|
||||
# 2.8.12 minimum because CMake 3.19.7 says so
|
||||
-cmake_minimum_required(VERSION 2.8.12)
|
||||
+cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
include(CTest)
|
||||
enable_testing()
|
||||
--
|
||||
2.37.3
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
SUMMARY = "Intel(R) Local Managability Service"
|
||||
DESCRIPTION = "Intel Local Manageability Service allows applications \
|
||||
to access the Intel Active Management Technology (AMT) firmware via \
|
||||
the Intel Management Engine Interface (MEI)."
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93"
|
||||
|
||||
COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
|
||||
|
||||
COMPATIBLE_HOST_libc-musl = "null"
|
||||
|
||||
inherit cmake systemd features_check
|
||||
|
||||
DEPENDS = "metee ace xerces-c libnl libxml2 glib-2.0 glib-2.0-native"
|
||||
|
||||
EXTRA_OECMAKE += "-DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3"
|
||||
|
||||
# Enable either connman or networkmanager or none but not both.
|
||||
PACKAGECONFIG ??= "connman"
|
||||
PACKAGECONFIG[connman] = "-DNETWORK_CN=ON, -DNETWORK_CN=OFF, connman"
|
||||
PACKAGECONFIG[networkmanager] = "-DNETWORK_NM=ON, -DNETWORK_NM=OFF, networkmanager"
|
||||
|
||||
REQUIRED_DISTRO_FEATURES= "systemd"
|
||||
|
||||
FILES_${PN} += "${datadir}/dbus-1/system-services/*.service"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
SYSTEMD_SERVICE_${PN} = "lms.service"
|
||||
|
||||
SRC_URI = "git://github.com/intel/lms.git \
|
||||
"
|
||||
SRCREV = "e0ebda9d1e7884b51293b71c1bcda511a7942e1a"
|
||||
|
||||
do_install_append() {
|
||||
install -d ${D}${systemd_system_unitdir}
|
||||
install -m 0644 ${B}/UNS/lms.service ${D}${systemd_system_unitdir}
|
||||
}
|
||||
|
||||
RDEPENDS_${PN} += "ace"
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
SUMMARY = "Intel(R) Local Managability Service"
|
||||
DESCRIPTION = "Intel Local Manageability Service allows applications \
|
||||
to access the Intel Active Management Technology (AMT) firmware via \
|
||||
the Intel Management Engine Interface (MEI)."
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=2ee41112a44fe7014dce33e26468ba93"
|
||||
|
||||
COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
|
||||
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
inherit cmake systemd features_check python3native
|
||||
|
||||
DEPENDS = "metee ace xerces-c libnl libxml2 glib-2.0 glib-2.0-native pkgconfig-native python3-packaging-native"
|
||||
|
||||
# Enable either connman or networkmanager or none but not both.
|
||||
PACKAGECONFIG ??= "connman"
|
||||
PACKAGECONFIG[connman] = "-DNETWORK_CN=ON, -DNETWORK_CN=OFF, connman"
|
||||
PACKAGECONFIG[networkmanager] = "-DNETWORK_NM=ON, -DNETWORK_NM=OFF, networkmanager"
|
||||
|
||||
REQUIRED_DISTRO_FEATURES = "systemd"
|
||||
|
||||
EXTRA_OECMAKE += " \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
"
|
||||
|
||||
FILES:${PN} += "${datadir}/dbus-1/system-services/*.service"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "lms.service"
|
||||
|
||||
SRC_URI = "git://github.com/intel/lms.git;branch=master;protocol=https \
|
||||
file://0001-LMS-fix-build-issue-with-gcc-15.patch \
|
||||
file://0001-cmake-Bump-required-CMake-version-to-3.5-to-allow-bu.patch \
|
||||
"
|
||||
SRCREV = "388f115b2aeb3ea11499971c65f828daefd32c47"
|
||||
|
||||
do_install:append() {
|
||||
install -d ${D}${sysconfdir}/lms
|
||||
install -d ${D}${systemd_system_unitdir}
|
||||
install -m 0644 ${B}/UNS/lms.service ${D}${systemd_system_unitdir}
|
||||
install -d ${D}${sysconfdir}/udev/rules.d
|
||||
install -m 0644 ${S}/UNS/linux_scripts/70-mei-wdt.rules ${D}${sysconfdir}/udev/rules.d/70-mei-wdt.rules
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} += "ace"
|
||||
|
||||
CVE_STATUS[CVE-2018-1000535] = "cpe-incorrect: This CVE is for a different LMS - Lan Management System."
|
||||
|
|
@ -7,21 +7,20 @@ compensation using available cooling methods."
|
|||
HOMEPAGE = "https://github.com/01org/thermal_daemon"
|
||||
|
||||
DEPENDS = "dbus dbus-glib dbus-glib-native libxml2 glib-2.0 glib-2.0-native upower libevdev"
|
||||
DEPENDS += "autoconf-archive-native"
|
||||
|
||||
LICENSE = "GPL-2.0-only"
|
||||
LICENSE = "GPLv2"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=ea8831610e926e2e469075b52bf08848"
|
||||
|
||||
SRC_URI = "git://github.com/intel/thermal_daemon/;branch=master;protocol=https \
|
||||
SRC_URI = "git://github.com/intel/thermal_daemon/ \
|
||||
"
|
||||
|
||||
SRCREV = "df3b9ab0ffe780c4fbad7750987eff76f659cfd5"
|
||||
SRCREV = "d6f89c9e8afdb449a442646da46f3140634175c1"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit pkgconfig autotools systemd gtk-doc
|
||||
|
||||
# gtkdocsize runs before autotools do_configure and it copies gtk-doc.m4 and fails
|
||||
# to copy becuase there is no m4 dir yet.
|
||||
do_configure:prepend () {
|
||||
do_configure_prepend () {
|
||||
mkdir -p ${S}/m4
|
||||
}
|
||||
|
||||
|
|
@ -29,13 +28,13 @@ EXTRA_OECONF = " \
|
|||
--with-systemdsystemunitdir=${systemd_system_unitdir} \
|
||||
"
|
||||
|
||||
FILES:${PN} += "${datadir}/dbus-1"
|
||||
FILES_${PN} += "${datadir}/dbus-1/system-services/*.service"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "thermald.service"
|
||||
SYSTEMD_SERVICE_${PN} = "thermald.service"
|
||||
|
||||
COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
|
||||
|
||||
CONFFILES:${PN} = " \
|
||||
CONFFILES_${PN} = " \
|
||||
${sysconfdir}/thermald/thermal-conf.xml \
|
||||
${sysconfdir}/thermald/thermal-cpu-cdev-order.xml \
|
||||
"
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
From deccc0c69c2c8759c52885be8bdda54d3cee481c Mon Sep 17 00:00:00 2001
|
||||
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
Date: Sun, 11 Dec 2022 22:34:15 +0800
|
||||
Subject: [PATCH] Add print function to print test run status in ptest format
|
||||
|
||||
Upstream-Status: Inappropriate [OE ptest specific]
|
||||
|
||||
Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
---
|
||||
run_tests.py | 16 ++++++++++++++++
|
||||
1 file changed, 16 insertions(+)
|
||||
|
||||
diff --git a/run_tests.py b/run_tests.py
|
||||
index 1cd796dd..e3ffd1ab 100755
|
||||
--- a/run_tests.py
|
||||
+++ b/run_tests.py
|
||||
@@ -327,6 +327,9 @@ def run_test(testname, host, target):
|
||||
else:
|
||||
ispc_exe_rel = add_prefix(host.ispc_cmd, host, target)
|
||||
|
||||
+ # to reslove the error '.rodata' can not be used when making a PIE object
|
||||
+ ispc_exe_rel = ispc_exe_rel + " --pic"
|
||||
+
|
||||
# is this a test to make sure an error is issued?
|
||||
want_error = (filename.find("tests_errors") != -1)
|
||||
if want_error == True:
|
||||
@@ -795,6 +798,17 @@ def check_compiler_exists(compiler_exe):
|
||||
return
|
||||
error("missing the required compiler: %s \n" % compiler_exe, 1)
|
||||
|
||||
+def print_test_run_status(results):
|
||||
+ for fstatus in results:
|
||||
+ if (fstatus[1] == Status.Success):
|
||||
+ print( "%s: %s" % ("PASS", fstatus[0]))
|
||||
+ elif (fstatus[1] == Status.Compfail):
|
||||
+ print( "%s: %s" % ("FAIL", fstatus[0]))
|
||||
+ elif (fstatus[1] == Status.Runfail):
|
||||
+ print( "%s: %s" % ("FAIL", fstatus[0]))
|
||||
+ elif (fstatus[1] == Status.Skip):
|
||||
+ print( "%s: %s" % ("SKIP", fstatus[0]))
|
||||
+
|
||||
def print_result(status, results, s, run_tests_log, csv):
|
||||
title = StatusStr[status]
|
||||
file_list = [fname for fname, fstatus in results if status == fstatus]
|
||||
@@ -938,6 +952,8 @@ def run_tests(options1, args, print_version):
|
||||
pass_rate = -1
|
||||
print_debug("PASSRATE (%d/%d) = %d%% \n\n" % (len(run_succeed_files), total_tests_executed, pass_rate), s, run_tests_log)
|
||||
|
||||
+ print_test_run_status(results)
|
||||
+
|
||||
for status in Status:
|
||||
print_result(status, results, s, run_tests_log, options.csv)
|
||||
fails = [status != Status.Compfail and status != Status.Runfail for _, status in results]
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From 7beff95c11071170eb27b6fa7d0cc77588caee8e Mon Sep 17 00:00:00 2001
|
||||
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
Date: Tue, 26 Jul 2022 15:25:10 +0800
|
||||
Subject: [PATCH] Fix QA Issues
|
||||
|
||||
Stop ispc from inserting host file path in generated headers which leads to reproducibility problems.
|
||||
|
||||
Upstream-Status: Inappropriate [OE build specific]
|
||||
|
||||
Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
---
|
||||
src/module.cpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/module.cpp b/src/module.cpp
|
||||
index e2084d2e..e2626865 100644
|
||||
--- a/src/module.cpp
|
||||
+++ b/src/module.cpp
|
||||
@@ -2555,7 +2555,7 @@ bool Module::writeHeader(const char *fn) {
|
||||
perror("fopen");
|
||||
return false;
|
||||
}
|
||||
- fprintf(f, "//\n// %s\n// (Header automatically generated by the ispc compiler.)\n", fn);
|
||||
+ fprintf(f, "//\n// \n// (Header automatically generated by the ispc compiler.)\n");
|
||||
fprintf(f, "// DO NOT EDIT THIS FILE.\n//\n\n");
|
||||
|
||||
// Create a nice guard string from the filename, turning any
|
||||
@@ -2677,7 +2677,7 @@ bool Module::writeDispatchHeader(DispatchHeaderInfo *DHI) {
|
||||
FILE *f = DHI->file;
|
||||
|
||||
if (DHI->EmitFrontMatter) {
|
||||
- fprintf(f, "//\n// %s\n// (Header automatically generated by the ispc compiler.)\n", DHI->fn);
|
||||
+ fprintf(f, "//\n// \n// (Header automatically generated by the ispc compiler.)\n");
|
||||
fprintf(f, "// DO NOT EDIT THIS FILE.\n//\n\n");
|
||||
}
|
||||
// Create a nice guard string from the filename, turning any
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
From 16a2c22339287122d2c25d8bb33a5a51b4e6ee51 Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Thu, 24 Feb 2022 20:01:11 +0530
|
||||
Subject: [PATCH] cmake: don't build for 32-bit targets
|
||||
|
||||
Error log:
|
||||
| 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
|
||||
| #include <bits/long-double-32.h>
|
||||
| ^~~~~~~~~~~~~~~~~~~~~~~
|
||||
| 1 error generated.
|
||||
|
||||
Remove SYSTEM include search path and set -isysroot dir path
|
||||
for root dir for cross compilation.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
cmake/GenerateBuiltins.cmake | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/cmake/GenerateBuiltins.cmake b/cmake/GenerateBuiltins.cmake
|
||||
index f84494ed..d90cb1ec 100644
|
||||
--- a/cmake/GenerateBuiltins.cmake
|
||||
+++ b/cmake/GenerateBuiltins.cmake
|
||||
@@ -253,7 +253,7 @@ function(builtin_to_cpp bit os_name arch supported_archs supported_oses resultFi
|
||||
# In this case headers will be installed in /usr/arm-linux-gnueabihf/include and will not be picked up
|
||||
# by clang by default. So the following line adds such path explicitly. If this path doesn't exist and
|
||||
# the headers can be found in other locations, this should not be a problem.
|
||||
- set(includePath -isystem/usr/${debian_triple}/include)
|
||||
+ set(includePath -isysroot${SYSROOT_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -339,7 +339,7 @@ function (generate_target_builtins resultList)
|
||||
set(regular_targets ${ARGN})
|
||||
list(FILTER regular_targets EXCLUDE REGEX wasm)
|
||||
foreach (ispc_target ${regular_targets})
|
||||
- foreach (bit 32 64)
|
||||
+ foreach (bit 64)
|
||||
foreach (os_name ${TARGET_OS_LIST_FOR_LL})
|
||||
target_ll_to_cpp(target-${ispc_target} ${bit} ${os_name} output${os_name}${bit})
|
||||
list(APPEND tmpList ${output${os_name}${bit}})
|
||||
@@ -405,7 +405,7 @@ function (generate_common_builtins resultList)
|
||||
endif()
|
||||
|
||||
message (STATUS "ISPC will be built with support of ${supported_oses} for ${supported_archs}")
|
||||
- foreach (bit 32 64)
|
||||
+ foreach (bit 64)
|
||||
foreach (os_name "windows" "linux" "freebsd" "macos" "android" "ios" "ps4" "web")
|
||||
foreach (arch "x86" "arm" "wasm")
|
||||
builtin_to_cpp(${bit} ${os_name} ${arch} "${supported_archs}" "${supported_oses}" res${bit}${os_name}${arch})
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/sh
|
||||
python3 run_tests.py
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
SUMMARY = "Intel(R) Implicit SPMD Program Compiler"
|
||||
DESCRIPTION = "ispc is a compiler for a variant of the C programming language, \
|
||||
with extensions for single program, multiple data programming."
|
||||
HOMEPAGE = "https://github.com/ispc/ispc"
|
||||
|
||||
LICENSE = "BSD-3-Clause & Apache-2.0-with-LLVM-exception"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=da5ecffdd210b3cf776b32b41c182e87 \
|
||||
file://third-party-programs.txt;md5=2061218c7be521556719c8b504bf9ddd"
|
||||
|
||||
inherit cmake python3native ptest
|
||||
|
||||
SRC_URI = "git://github.com/ispc/ispc.git;protocol=https;branch=main \
|
||||
file://0002-cmake-don-t-build-for-32-bit-targets.patch \
|
||||
file://0001-Fix-QA-Issues.patch \
|
||||
file://0001-Add-print-function-to-print-test-run-status-in-ptest.patch \
|
||||
file://run-ptest \
|
||||
"
|
||||
|
||||
SRCREV = "d394222aef59e4759b06e39ec160e4aba6ee5f40"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
|
||||
DEPENDS += " clang-native bison-native flex-native"
|
||||
DEPENDS:append:class-target = " clang"
|
||||
RDEPENDS:${PN}-ptest += " python3-multiprocessing"
|
||||
|
||||
PACKAGECONFIG ??= "tbb"
|
||||
PACKAGECONFIG[tbb] = "-DISPCRT_BUILD_TASK_MODEL=TBB, -DISPCRT_BUILD_TASK_MODEL=OpenMP, tbb"
|
||||
|
||||
YFLAGS = '-d -t -v -y --file-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}'
|
||||
|
||||
do_configure:prepend() {
|
||||
sed -i -e 's#\${BISON_EXECUTABLE}.*#\${BISON_EXECUTABLE} ${YFLAGS} #g' ${S}/CMakeLists.txt
|
||||
sed -i -e 's#\${FLEX_EXECUTABLE}.*#\${FLEX_EXECUTABLE} \-L #g' ${S}/CMakeLists.txt
|
||||
}
|
||||
|
||||
do_install_ptest() {
|
||||
cp -rf ${S}/run_tests.py ${D}${PTEST_PATH}
|
||||
cp -rf ${S}/common.py ${D}${PTEST_PATH}
|
||||
cp -rf ${S}/tests ${D}${PTEST_PATH}
|
||||
cp -rf ${S}/test_static.isph ${D}${PTEST_PATH}
|
||||
cp -rf ${S}/fail_db.txt ${D}${PTEST_PATH}
|
||||
cp -rf ${S}/test_static.cpp ${D}${PTEST_PATH}
|
||||
}
|
||||
|
||||
EXTRA_OECMAKE += " \
|
||||
-DISPC_INCLUDE_TESTS=OFF \
|
||||
-DISPC_INCLUDE_EXAMPLES=OFF \
|
||||
-DARM_ENABLED=OFF \
|
||||
-DISPC_CROSS=ON \
|
||||
-DISPC_ANDROID_TARGET=OFF \
|
||||
-DISPC_FREEBSD_TARGET=OFF \
|
||||
-DISPC_WINDOWS_TARGET=OFF \
|
||||
-DISPC_IOS_TARGET=OFF \
|
||||
-DISPC_PS_TARGET=OFF \
|
||||
-DSYSROOT_DIR=${STAGING_DIR} \
|
||||
-DCLANG_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang \
|
||||
-DCLANGPP_EXECUTABLE=${STAGING_BINDIR_NATIVE}/clang++ \
|
||||
-DLLVM_AS_EXECUTABLE=${STAGING_BINDIR_NATIVE}/llvm-as \
|
||||
"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -1,10 +1,11 @@
|
|||
SUMMARY = "oneAPI Level Zero Specification Headers and Loader"
|
||||
HOMEPAGE = "https://github.com/oneapi-src/level-zero"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=97957beb2f7808ffa247e5d93e6442cc"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=8956dfdba7f8169c4005d1e9753ffddc"
|
||||
|
||||
SRC_URI = "git://github.com/oneapi-src/level-zero.git;protocol=https;branch=master"
|
||||
SRCREV = "9536683855b17a21508e5b54ba358225d6a976da"
|
||||
SRC_URI = "git://github.com/oneapi-src/level-zero.git;protocol=https"
|
||||
SRCREV = "0d30b1fa712253c68bfdfa3863d380df4301b8a4"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake
|
||||
DEPENDS += "opencl-headers"
|
||||
|
|
@ -13,7 +14,7 @@ UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
|
|||
|
||||
PACKAGES =+ "${PN}-headers ${PN}-samples ${PN}-loader"
|
||||
|
||||
do_install:append () {
|
||||
do_install_append () {
|
||||
install -d ${D}${bindir} ${D}${libdir}
|
||||
install -m 755 ${B}/bin/zello* ${D}${bindir}
|
||||
|
||||
|
|
@ -21,12 +22,10 @@ do_install:append () {
|
|||
}
|
||||
|
||||
|
||||
FILES:${PN}-headers = "${includedir}"
|
||||
FILES:${PN}-samples = "${bindir} ${libdir}/libze_null* ${libdir}/libze_validation*"
|
||||
FILES:${PN}-loader = "${libdir}"
|
||||
FILES_${PN}-headers = "${includedir}"
|
||||
FILES_${PN}-samples = "${bindir} ${libdir}/libze_null* ${libdir}/libze_validation*"
|
||||
FILES_${PN}-loader = "${libdir}"
|
||||
|
||||
# PN-loader (non -dev/-dbg/nativesdk- package) contains symlink .so
|
||||
INSANE_SKIP:${PN}-loader = "dev-so"
|
||||
INSANE_SKIP:${PN}-samples = "dev-so"
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
INSANE_SKIP_${PN}-loader = "dev-so"
|
||||
INSANE_SKIP_${PN}-samples = "dev-so"
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
From b57297c14d94dac9bdef7570b7b33d70b10171f3 Mon Sep 17 00:00:00 2001
|
||||
From: Jozef Wludzik <jozef.wludzik@intel.com>
|
||||
Date: Tue, 26 Mar 2024 14:43:29 +0100
|
||||
Subject: [PATCH 1/2] Fix the compilation warning when using gcc-13 (#25)
|
||||
|
||||
Added missing headers. Fixed compilation error about casting from
|
||||
unsigned to signed int.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/intel/linux-npu-driver/commit/4bcbf2abe94eb4d9c083bd616b58e309a82d008a]
|
||||
|
||||
Signed-off-by: Jozef Wludzik <jozef.wludzik@intel.com>
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp | 7 ++++---
|
||||
umd/vpu_driver/include/umd_common.hpp | 1 +
|
||||
validation/umd-test/umd_prime_buffers.h | 9 +++++++--
|
||||
validation/umd-test/utilities/data_handle.h | 1 +
|
||||
4 files changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp b/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp
|
||||
index f206ebe..682e5b4 100644
|
||||
--- a/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp
|
||||
+++ b/umd/level_zero_driver/ext/source/graph/vcl_symbols.hpp
|
||||
@@ -5,12 +5,13 @@
|
||||
*
|
||||
*/
|
||||
|
||||
-#include <dlfcn.h>
|
||||
-#include <memory>
|
||||
-
|
||||
#include "vpux_driver_compiler.h"
|
||||
#include "vpu_driver/source/utilities/log.hpp"
|
||||
|
||||
+#include <array>
|
||||
+#include <dlfcn.h>
|
||||
+#include <memory>
|
||||
+
|
||||
class Vcl {
|
||||
public:
|
||||
static Vcl &sym() {
|
||||
diff --git a/umd/vpu_driver/include/umd_common.hpp b/umd/vpu_driver/include/umd_common.hpp
|
||||
index 0c874a3..5ad9be2 100644
|
||||
--- a/umd/vpu_driver/include/umd_common.hpp
|
||||
+++ b/umd/vpu_driver/include/umd_common.hpp
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#include <cstdint>
|
||||
#include <limits>
|
||||
#include <linux/kernel.h>
|
||||
#include <stdexcept>
|
||||
diff --git a/validation/umd-test/umd_prime_buffers.h b/validation/umd-test/umd_prime_buffers.h
|
||||
index 6f7c7de..ab4814c 100644
|
||||
--- a/validation/umd-test/umd_prime_buffers.h
|
||||
+++ b/validation/umd-test/umd_prime_buffers.h
|
||||
@@ -6,12 +6,17 @@
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
+
|
||||
+#include "umd_test.h"
|
||||
+
|
||||
#include <fcntl.h>
|
||||
-#include <linux/kernel.h>
|
||||
#include <linux/dma-buf.h>
|
||||
#include <linux/dma-heap.h>
|
||||
+#include <linux/kernel.h>
|
||||
+#include <stdint.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/mman.h>
|
||||
+#include <unistd.h>
|
||||
|
||||
#define ALLIGN_TO_PAGE(x) __ALIGN_KERNEL((x), (UmdTest::PAGE_SIZE))
|
||||
|
||||
@@ -60,7 +65,7 @@ class PrimeBufferHelper {
|
||||
return false;
|
||||
|
||||
bufferFd = heapAlloc.fd;
|
||||
- buffers.insert({heapAlloc.fd, {size, nullptr}});
|
||||
+ buffers.insert({static_cast<int>(heapAlloc.fd), {size, nullptr}});
|
||||
return true;
|
||||
}
|
||||
|
||||
diff --git a/validation/umd-test/utilities/data_handle.h b/validation/umd-test/utilities/data_handle.h
|
||||
index d6e0ec0..5d937b2 100644
|
||||
--- a/validation/umd-test/utilities/data_handle.h
|
||||
+++ b/validation/umd-test/utilities/data_handle.h
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
#include <linux/kernel.h>
|
||||
+#include <stdint.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
From 561e3b5edc0ec3d8835aaf8ef8e5c9e8f9b53061 Mon Sep 17 00:00:00 2001
|
||||
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
Date: Wed, 28 May 2025 13:35:18 +0800
|
||||
Subject: [PATCH] linux-npu-driver : fix multilib install issue
|
||||
|
||||
Upstream-Status: Inappropriate [oe specific]
|
||||
|
||||
Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
---
|
||||
firmware/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/firmware/CMakeLists.txt b/firmware/CMakeLists.txt
|
||||
index 0c093ca..ba346a0 100644
|
||||
--- a/firmware/CMakeLists.txt
|
||||
+++ b/firmware/CMakeLists.txt
|
||||
@@ -12,7 +12,7 @@ target_include_directories(${PROJECT_NAME} INTERFACE include)
|
||||
file(GLOB FIRMWARE_BINARIES ${CMAKE_CURRENT_SOURCE_DIR}/bin/*.bin)
|
||||
if (FIRMWARE_BINARIES)
|
||||
install(FILES ${FIRMWARE_BINARIES}
|
||||
- DESTINATION /lib/firmware/updates/intel/vpu/
|
||||
+ DESTINATION ${CMAKE_INSTALL_FIRMWARE_DIR}/firmware/updates/intel/vpu/
|
||||
PERMISSIONS OWNER_READ
|
||||
COMPONENT fw-npu)
|
||||
endif()
|
||||
--
|
||||
2.37.3
|
||||
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
From a9f51fd88effb7d324609e692ca7da576d6dad2e Mon Sep 17 00:00:00 2001
|
||||
From: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
Date: Tue, 28 May 2024 10:23:42 +0800
|
||||
Subject: [PATCH 2/2] Fix compilation failure with GCC-14
|
||||
|
||||
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'?
|
||||
| 65 | associatedJobs.erase(std::remove_if(associatedJobs.begin(),
|
||||
| | ^~~~~~~~~
|
||||
| | remove_cv
|
||||
|
||||
| umd/vpu_driver/source/command/vpu_command.cpp: In member function 'void VPU::VPUCommand::appendAssociateBufferObject(VPU::VPUBufferObject*)':
|
||||
| umd/vpu_driver/source/command/vpu_command.cpp:126:20: error: 'find' is not a member of 'std'; did you mean 'bind'?
|
||||
| 126 | auto it = std::find(bufferObjects.begin(), bufferObjects.end(), bo);
|
||||
| | ^~~~
|
||||
| | bind
|
||||
|
||||
| umd/vpu_driver/source/command/vpu_command_buffer.cpp: In member function 'bool VPU::VPUCommandBuffer::addCommand(VPU::VPUCommand*, uint64_t&, uint64_t&)':
|
||||
| umd/vpu_driver/source/command/vpu_command_buffer.cpp:185:24: error: 'find' is not a member of 'std'; did you mean 'bind'?
|
||||
| 185 | auto it = std::find(bufferHandles.begin(), bufferHandles.end(), bo->getHandle());
|
||||
| | ^~~~
|
||||
| | bind
|
||||
|
||||
| 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'?
|
||||
| 301 | std::max_element(stride_begin + TENSOR_5D_STRIDE_C, stride_end));
|
||||
| | ^~~~~~~~~~~
|
||||
| | tuple_element
|
||||
| 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'?
|
||||
| 315 | auto max_stride_val = *std::max_element(stride_begin + TENSOR_4D_STRIDE_C, stride_end);
|
||||
| | ^~~~~~~~~~~
|
||||
|
||||
| umd/level_zero_driver/tools/source/metrics/metric.cpp: In member function 'void L0::MetricContext::deactivateMetricGroups(int)':
|
||||
| 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'?
|
||||
| 275 | activatedMetricGroups.erase(std::remove_if(activatedMetricGroups.begin(),
|
||||
| | ^~~~~~~~~
|
||||
| | remove_cv
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/intel/linux-npu-driver/pull/30]
|
||||
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
umd/level_zero_driver/core/source/event/event.cpp | 1 +
|
||||
umd/level_zero_driver/ext/source/graph/elf_parser.cpp | 1 +
|
||||
umd/level_zero_driver/tools/source/metrics/metric.cpp | 1 +
|
||||
umd/vpu_driver/source/command/vpu_command.cpp | 1 +
|
||||
umd/vpu_driver/source/command/vpu_command_buffer.cpp | 1 +
|
||||
5 files changed, 5 insertions(+)
|
||||
|
||||
diff --git a/umd/level_zero_driver/core/source/event/event.cpp b/umd/level_zero_driver/core/source/event/event.cpp
|
||||
index a92248f..196d176 100644
|
||||
--- a/umd/level_zero_driver/core/source/event/event.cpp
|
||||
+++ b/umd/level_zero_driver/core/source/event/event.cpp
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <level_zero/ze_api.h>
|
||||
#include <thread>
|
||||
+#include <algorithm>
|
||||
|
||||
namespace L0 {
|
||||
|
||||
diff --git a/umd/level_zero_driver/ext/source/graph/elf_parser.cpp b/umd/level_zero_driver/ext/source/graph/elf_parser.cpp
|
||||
index a1c8e14..dfbd61d 100644
|
||||
--- a/umd/level_zero_driver/ext/source/graph/elf_parser.cpp
|
||||
+++ b/umd/level_zero_driver/ext/source/graph/elf_parser.cpp
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <vpux_headers/metadata.hpp>
|
||||
#include <vpux_elf/types/vpu_extensions.hpp>
|
||||
#include <vpux_elf/utils/error.hpp>
|
||||
+#include <algorithm>
|
||||
|
||||
namespace L0 {
|
||||
|
||||
diff --git a/umd/level_zero_driver/tools/source/metrics/metric.cpp b/umd/level_zero_driver/tools/source/metrics/metric.cpp
|
||||
index b67750f..9497311 100644
|
||||
--- a/umd/level_zero_driver/tools/source/metrics/metric.cpp
|
||||
+++ b/umd/level_zero_driver/tools/source/metrics/metric.cpp
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "level_zero_driver/tools/source/metrics/metric.hpp"
|
||||
#include "vpu_driver/source/utilities/log.hpp"
|
||||
+#include <algorithm>
|
||||
|
||||
namespace L0 {
|
||||
|
||||
diff --git a/umd/vpu_driver/source/command/vpu_command.cpp b/umd/vpu_driver/source/command/vpu_command.cpp
|
||||
index f4ca23f..75331d9 100644
|
||||
--- a/umd/vpu_driver/source/command/vpu_command.cpp
|
||||
+++ b/umd/vpu_driver/source/command/vpu_command.cpp
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
+#include <algorithm>
|
||||
|
||||
namespace VPU {
|
||||
|
||||
diff --git a/umd/vpu_driver/source/command/vpu_command_buffer.cpp b/umd/vpu_driver/source/command/vpu_command_buffer.cpp
|
||||
index c4ad052..bbb80ec 100644
|
||||
--- a/umd/vpu_driver/source/command/vpu_command_buffer.cpp
|
||||
+++ b/umd/vpu_driver/source/command/vpu_command_buffer.cpp
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "vpu_driver/source/command/vpu_command_buffer.hpp"
|
||||
#include "vpu_driver/source/command/vpu_copy_command.hpp"
|
||||
#include "vpu_driver/source/utilities/log.hpp"
|
||||
+#include <algorithm>
|
||||
|
||||
namespace VPU {
|
||||
|
||||
--
|
||||
2.43.0
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
SUMMARY = "User Mode Driver for Intel® NPU device"
|
||||
HOMEPAGE = "https://github.com/intel/linux-npu-driver"
|
||||
LICENSE = "MIT & Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=7b256470048be42466f7d10e1d6482e6 \
|
||||
file://third-party-programs.txt;md5=0ae40d7f1ef3bbd509197e427fdd7e70 \
|
||||
file://third_party/vpux_elf/LICENSE;md5=5f51ea09f42b161b3013558e48d0fb20 \
|
||||
file://third_party/level-zero/LICENSE;md5=97957beb2f7808ffa247e5d93e6442cc \
|
||||
"
|
||||
|
||||
SRC_URI = "git://github.com/intel/linux-npu-driver.git;protocol=https;name=linux-npu-driver;branch=main;lfs=1 \
|
||||
git://github.com/openvinotoolkit/npu_plugin_elf.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/third_party/vpux_elf;name=vpux-elf;nobranch=1 \
|
||||
git://github.com/jbeder/yaml-cpp.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/third_party/yaml-cpp;name=yaml-cpp;nobranch=1 \
|
||||
git://github.com/intel/level-zero-npu-extensions.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/third_party/level-zero-npu-extensions;name=lzvext;nobranch=1 \
|
||||
git://github.com/google/googletest.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/third_party/googletest;name=googletest;nobranch=1 \
|
||||
git://github.com/oneapi-src/level-zero.git;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/third_party/level-zero;name=level-zero;nobranch=1 \
|
||||
file://0001-linux-npu-driver-fix-multilib-install-issue.patch \
|
||||
"
|
||||
|
||||
SRCREV_linux-npu-driver = "59845101f5445e66dcc691f4f8be6371700fbdf5"
|
||||
SRCREV_vpux-elf = "4b0a4a06ae09c0c3a973f8f18761c549ec2309eb"
|
||||
SRCREV_yaml-cpp = "f7320141120f720aecc4c32be25586e7da9eb978"
|
||||
SRCREV_lzvext = "8cf113bd4a4568f6555d81f316504d7ac3b82ee8"
|
||||
SRCREV_googletest = "b514bdc898e2951020cbdca1304b75f5950d1f59"
|
||||
SRCREV_level-zero = "e3b6efdd91d67bb03024b266094afabd39e213bf"
|
||||
SRCREV_FORMAT = "linux-npu-driver_vpux-elf_yaml-cpp_lzvext_googletest_level-zero"
|
||||
|
||||
inherit cmake
|
||||
|
||||
|
||||
# Fix warning _FORTIFY_SOURCE requires compiling with optimization (-O)
|
||||
EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release "
|
||||
EXTRA_OECMAKE += " -DCMAKE_CXX_FLAGS_RELEASE=-O2 "
|
||||
|
||||
EXTRA_OECMAKE += " -DCMAKE_INSTALL_FIRMWARE_DIR=${nonarch_base_libdir}"
|
||||
EXTRA_OECMAKE += " -DCMAKE_POLICY_VERSION_MINIMUM=3.5"
|
||||
|
||||
DEPENDS = "level-zero dpkg-native pkgconfig-native"
|
||||
|
||||
PACKAGES =+ "${PN}-firmware ${PN}-tests"
|
||||
|
||||
FILES:${PN}-firmware = "${nonarch_base_libdir}/firmware/updates/intel/vpu/*"
|
||||
FILES:${PN}-tests = "${bindir}"
|
||||
|
||||
INSANE_SKIP:${PN} += "buildpaths"
|
||||
INSANE_SKIP:${PN}-dbg += "buildpaths"
|
||||
INSANE_SKIP:${PN}-tests += "buildpaths"
|
||||
INSANE_SKIP:${PN}-firmware += "buildpaths"
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
SUMMARY = "Intel® oneAPI DPC++/C++ Compiler runtime files"
|
||||
DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \
|
||||
that help your applications run faster on Intel® 64 architectures with support \
|
||||
for the latest C, C++, and SYCL language standards. This compiler produces \
|
||||
optimized code that can run significantly faster by taking advantage of the \
|
||||
ever-increasing core count and vector register width in Intel® Xeon® processors \
|
||||
and compatible processors."
|
||||
|
||||
HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html"
|
||||
|
||||
LICENSE = "EULA"
|
||||
|
||||
COMPILERMAINVER = "2024.0"
|
||||
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://opt/intel/oneapi/licensing/${COMPILERMAINVER}/licensing/${COMPILERMAINVER}/license.htm;md5=5ff64c6ff3ef98089ed69360e7a84c39 \
|
||||
"
|
||||
COMPILERDOTVER = "2024.0.0-49406"
|
||||
DEVUTILITVERSION = "2024.0-2024.0.0-49320"
|
||||
SRC_URI = " \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=dpcpp-runtime \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=dpcpp-common \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-shared-runtime \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-vars-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=common-vars \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=openmp \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=openmp-common \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-licensing-${COMPILERMAINVER}-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=license \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dev-utilities-${DEVUTILITVERSION}_amd64.deb;subdir=${BPN};name=dev-utils \
|
||||
"
|
||||
|
||||
SRC_URI[dpcpp-runtime.sha256sum] = "e24f0ba69daf3f66ceaf23d5e632f183cdb90bac69f65407fdb4407fc9034f33"
|
||||
SRC_URI[dpcpp-common.sha256sum] = "f5a3db6a725598224edf1099260955aee3e36beadcaed2af5b8b453e873a82fa"
|
||||
SRC_URI[compiler-shared-runtime.sha256sum] = "bce010cbe076259ddd3feb8e69792869e22fccd5b4e2c9af9e815826f2c1a394"
|
||||
SRC_URI[common-vars.sha256sum] = "368553c99db1b52060b8225355336778be0b00e5991d0f769c42f891c6328750"
|
||||
SRC_URI[openmp.sha256sum] = "154ff1e81adfdc872ba1d47bd860de70d62188417c7128422435dfd0ceca62fe"
|
||||
SRC_URI[openmp-common.sha256sum] = "8217001d78311cbef97dd139e684c6767932b532309c3843ba57d7894d15c07d"
|
||||
SRC_URI[license.sha256sum] = "9f9c8a12fc0bc82ab5b71e118e66745eff23f42224eba304068225b366cd74b6"
|
||||
SRC_URI[dev-utils.sha256sum] = "c675d960a5abca361cead9217d6e74adee499ee0a095c4e44092bd710b304d50"
|
||||
|
||||
S = "${UNPACKDIR}/${BPN}"
|
||||
|
||||
inherit bin_package
|
||||
|
||||
RDEPENDS:${PN} += "virtual-opencl-icd zlib tbb level-zero-loader bash tcsh"
|
||||
SKIP_FILEDEPS:${PN} = '1'
|
||||
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
# doesn't have GNU_HASH (didn't pass LDFLAGS?)
|
||||
INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped staticdev rpaths arch useless-rpaths file-rdeps"
|
||||
|
||||
FILES_SOLIBSDEV = ""
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
SUMMARY = "Intel® oneAPI DPC++/C++ Compiler"
|
||||
DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \
|
||||
that help your applications run faster on Intel® 64 architectures with support \
|
||||
for the latest C, C++, and SYCL language standards. This compiler produces \
|
||||
optimized code that can run significantly faster by taking advantage of the \
|
||||
ever-increasing core count and vector register width in Intel® Xeon® processors \
|
||||
and compatible processors."
|
||||
|
||||
HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html"
|
||||
|
||||
LICENSE = "EULA"
|
||||
|
||||
COMPILERMAINVER = "2024.0"
|
||||
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://opt/intel/oneapi/compiler/${COMPILERMAINVER}/share/doc/compiler/credist.txt;md5=b41f55af9f479b9570fc35b955d5ba1a \
|
||||
"
|
||||
|
||||
SRC_URI = " \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dpcpp-cpp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=icx-compiler \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-linker \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=shared-common \
|
||||
"
|
||||
|
||||
SRC_URI[icx-compiler.sha256sum] = "0dcbac766d5a1519d4cf393f5a85e71d19024fef65f77638f3f849796b62cd82"
|
||||
SRC_URI[compiler-linker.sha256sum] = "e00faea6d797934d62143e4aa70b727ce30f80fdf30769d22122b3051140c236"
|
||||
SRC_URI[shared-common.sha256sum] = "cf490a4a790f349da79e618359598d3b32312ca3b2639e5d4c84e1cfa2745558"
|
||||
|
||||
S = "${UNPACKDIR}/${BPN}"
|
||||
|
||||
inherit bin_package
|
||||
|
||||
RDEPENDS:${PN} += "intel-oneapi-dpcpp-cpp-runtime"
|
||||
SKIP_FILEDEPS:${PN} = '1'
|
||||
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
# doesn't have GNU_HASH (didn't pass LDFLAGS?)
|
||||
INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped file-rdeps staticdev rpaths arch useless-rpaths"
|
||||
|
||||
FILES_SOLIBSDEV = ""
|
||||
|
||||
EXCLUDE_FROM_SHLIBS = "1"
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
SUMMARY = "Collection of high-performance ray tracing kernels"
|
||||
DESCRIPTION = "A collection of high-performance ray tracing kernels \
|
||||
intended to graphics application engineers that want to improve the \
|
||||
performance of their application."
|
||||
HOMEPAGE = "https://github.com/embree/embree"
|
||||
|
||||
LICENSE = "Apache-2.0 & BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
|
||||
file://third-party-programs.txt;md5=f989f5b74cfff0d45d3ccf0e1366cbdc \
|
||||
file://common/math/transcendental.h;beginline=6;endline=8;md5=73380bb2ab6613b30b8464f114bd0ca8"
|
||||
|
||||
inherit pkgconfig cmake
|
||||
|
||||
SRC_URI = "git://github.com/embree/embree.git;protocol=https;branch=master"
|
||||
SRCREV = "5730b150471602d6dc02d9b7d8a4a6ce9ceffe16"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
DEPENDS = "tbb jpeg libpng glfw ispc-native"
|
||||
|
||||
EXTRA_OECMAKE += " \
|
||||
-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=OFF \
|
||||
-DEMBREE_MAX_ISA=DEFAULT \
|
||||
-DEMBREE_TUTORIALS=OFF \
|
||||
-DEMBREE_ISPC_SUPPORT=ON \
|
||||
-DEMBREE_ZIP_MODE=OFF \
|
||||
"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
DESCRIPTION = "Intel® Integrated Performance Primitives are production-ready \
|
||||
building blocks for cross-platform performance. Develop high-performance vision, \
|
||||
signal, security, and storage applications with this multithreaded software library."
|
||||
HOMEPAGE = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/ipp.html"
|
||||
|
||||
LICENSE = "ISSL"
|
||||
|
||||
MAXVER = "2021.10"
|
||||
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://opt/intel/oneapi/ipp/${MAXVER}/share/doc/ipp/licensing/license.txt;md5=d7cdc92ed6c4de1263da879599ddc3e2 \
|
||||
file://opt/intel/oneapi/ipp/${MAXVER}/share/doc/ipp/licensing/third-party-programs.txt;md5=22bd13987911dcf790907041b43081f3 \
|
||||
"
|
||||
SRC_URI = " \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-${MAXVER}-${PV}_amd64.deb;subdir=${BPN};name=ipp \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-common-devel-${MAXVER}-${PV}_all.deb;subdir=${BPN};name=headers \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-ipp-common-${MAXVER}-${PV}_all.deb;subdir=${BPN};name=env \
|
||||
"
|
||||
|
||||
SRC_URI[ipp.sha256sum] = "b51e45c6e691aa46c7136b0ab61f5abe346388433e017a30cf53fd23e92bea07"
|
||||
SRC_URI[headers.sha256sum] = "342f37ab2f82bc9f4498435f848ee660591c2488b44d988bf6ee96b2a71fd005"
|
||||
SRC_URI[env.sha256sum] = "731e8c28a3b8b757730cd874d0941de2eb744856128f24ade59d36c12b415bf6"
|
||||
|
||||
S = "${UNPACKDIR}/${BPN}"
|
||||
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
inherit bin_package
|
||||
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
INHIBIT_DEFAULT_DEPS = ""
|
||||
|
||||
RDEPENDS:${PN} += "tbb setup-intel-oneapi-env"
|
||||
INSANE_SKIP:${PN} += "ldflags dev-so"
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
SUMMARY = "Intel® oneAPI Math Kernel Library (oneMKL)"
|
||||
DESCRIPTION = "The Intel® oneAPI Math Kernel Library (oneMKL) is a computing \
|
||||
math library of highly optimized and extensively parallelized routines \
|
||||
for applications that require maximum performance. oneMKL contains \
|
||||
the high-performance optimizations from the full Intel® Math Kernel Library \
|
||||
for CPU architectures (with C/Fortran programming language interfaces)\
|
||||
and adds to them a set of DPC++ programming language interfaces for \
|
||||
achieving performance on various CPU architectures \
|
||||
and Intel Graphics Technology for certain key functionalities."
|
||||
HOMEPAGE = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html"
|
||||
|
||||
LICENSE = "ISSL"
|
||||
|
||||
MKLMAINVER = "2024.0"
|
||||
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/license.txt;md5=8510d21bf355a76e378c3216c3929ccd \
|
||||
file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-benchmarks.txt;md5=cb98e1a1f14c05ea85a979ea8982e7a4 \
|
||||
file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-ipp.txt;md5=a4b2bf15e38f5c1267cdafed18bc0b09 \
|
||||
file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-openmp.txt;md5=6b3c1aa2a11393060074c0346ce21e49 \
|
||||
file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-safestring.txt;md5=c3aeee91c6d35a0f0753aed6c2633b82 \
|
||||
file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs.txt;md5=27de873e4084d62530fe828406b33ca9 \
|
||||
"
|
||||
|
||||
SRC_URI = " \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=runtime \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-devel-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-devel \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-devel-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=devel \
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-vars \
|
||||
"
|
||||
|
||||
SRC_URI[runtime.sha256sum] = "10a86e24051d6ef4a80fd839c570e629190638a3c0ac9bcca99ab855f534b959"
|
||||
SRC_URI[common-devel.sha256sum] = "adbf0ea946f63946d29b7f9c750c38a42ea7a65d8c81655b268aa2c7bb908192"
|
||||
SRC_URI[devel.sha256sum] = "fab2a6f15e18bfd9b4d425f2703e4e98928c57f52c4feebc9ed886f097062e84"
|
||||
SRC_URI[common-vars.sha256sum] = "ec2b67813739fa4a2895f63479a41acba2174afe2d0cb8a0c1c9119d1317d8ef"
|
||||
|
||||
S = "${UNPACKDIR}/${BPN}"
|
||||
|
||||
inherit bin_package
|
||||
|
||||
do_install:append () {
|
||||
install -d ${D}${bindir}
|
||||
(cd ${D}${bindir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/bin/* .)
|
||||
install -d ${D}${libdir}
|
||||
(cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.so* .)
|
||||
(cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.a* .)
|
||||
install -d ${D}${libdir}/pkgconfig
|
||||
(cd ${D}${libdir}/pkgconfig ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/pkgconfig/* .)
|
||||
install -d ${D}${libdir}/cmake
|
||||
(cd ${D}${libdir}/cmake ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/cmake/* .)
|
||||
|
||||
install -d ${D}${includedir}
|
||||
find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read srcdir; do
|
||||
install -d ${D}${includedir}/$srcdir
|
||||
(cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcdir/* ./$srcdir/)
|
||||
done
|
||||
|
||||
find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type f -printf '%f\n' | while read srcfile; do
|
||||
(cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcfile .)
|
||||
done
|
||||
}
|
||||
|
||||
AUTO_LIBNAME_PKGS = ""
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
RDEPENDS:${PN} += "bash tbb intel-oneapi-dpcpp-cpp-runtime setup-intel-oneapi-env virtual-opencl-icd"
|
||||
INSANE_SKIP:${PN} = "ldflags textrel dev-so staticdev arch already-stripped"
|
||||
|
||||
FILES:${PN}-staticdev += "/opt/intel/oneapi/mkl/${MKLMAINVER}/lib/*.a*"
|
||||
|
||||
SKIP_FILEDEPS:${PN} = '1'
|
||||
|
||||
SYSROOT_DIRS += "/opt"
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
SUMMARY = "Intel® Open Image Denoise"
|
||||
DESCRIPTION = "Intel Open Image Denoise is an open source library of \
|
||||
high-performance, high-quality denoising filters for images \
|
||||
rendered with ray tracing. Intel Open Image Denoise is part \
|
||||
of the Intel® oneAPI Rendering Toolkit"
|
||||
HOMEPAGE = "https://www.openimagedenoise.org/"
|
||||
|
||||
LICENSE = "Apache-2.0 & BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
|
||||
file://external/mkl-dnn/LICENSE;md5=b48e3de3bfd47c27882a0d85b20823f5 \
|
||||
file://external/mkl-dnn/src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \
|
||||
file://external/mkl-dnn/src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \
|
||||
file://weights/LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
SRC_URI = "https://github.com/OpenImageDenoise/${BPN}/releases/download/v${PV}/${BP}.src.tar.gz\
|
||||
"
|
||||
SRC_URI[sha256sum] = "ce144ba582ff36563d9442ee07fa2a4d249bc85aa93e5b25fc527ff4ee755ed6"
|
||||
|
||||
inherit cmake
|
||||
|
||||
DEPENDS += "tbb ispc-native"
|
||||
|
||||
do_install:append() {
|
||||
chrpath -d ${D}${bindir}/* ${D}${libdir}/*${SOLIBS}
|
||||
}
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://github.com/OpenImageDenoise/oidn/releases"
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
SUMMARY = "Intel(R) Open Volume Kernel Library"
|
||||
DESCRIPTION = "Intel(R) Open Volume Kernel Library (Intel(R) Open VKL) is a \
|
||||
collection of high-performance volume computation kernels. The target users \
|
||||
of Open VKL are graphics application engineers who want to improve the \
|
||||
performance of their volume rendering applications by leveraging Open VKL’s \
|
||||
performance-optimized kernels, which include volume traversal and sampling \
|
||||
functionality for a variety of volumetric data formats. The kernels are optimized \
|
||||
for the latest Intel(R) processors with support for SSE, AVX, AVX2, and AVX-512 \
|
||||
instructions."
|
||||
HOMEPAGE = "https://www.openvkl.org/"
|
||||
|
||||
LICENSE = "Apache-2.0 & BSD-3-Clause & MIT & Zlib"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57 \
|
||||
file://third-party-programs.txt;md5=69ec7caf49616c471161b921f53d5ec0 \
|
||||
file://testing/external/half.hpp;beginline=1;endline=17;md5=4b60058493630c3bd0ef145470f04a7b"
|
||||
|
||||
inherit pkgconfig cmake
|
||||
|
||||
SRC_URI = "git://github.com/openvkl/openvkl.git;protocol=https;branch=master \
|
||||
"
|
||||
SRCREV = "8c6ba526813b871a624cb9d73d4cbb689ac7f4ce"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
DEPENDS = "ispc ispc-native rkcommon embree"
|
||||
|
||||
EXTRA_OECMAKE += " \
|
||||
-DISPC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/ispc \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
"
|
||||
EXTRA_OECMAKE:intel-corei7-64 += " \
|
||||
-DOPENVKL_ISA_AVX=OFF \
|
||||
-DOPENVKL_ISA_AVX2=OFF \
|
||||
-DOPENVKL_ISA_AVX512SKX=OFF \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
"
|
||||
|
||||
PACKAGES =+ "${PN}-examples"
|
||||
FILES:${PN}-examples = "\
|
||||
${bindir} \
|
||||
"
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
From 09e6b6615d9a16e9555eff9d569356e32bd26aa4 Mon Sep 17 00:00:00 2001
|
||||
From: benradel <86351445+benradel@users.noreply.github.com>
|
||||
Date: Wed, 23 Jun 2021 11:56:03 +0200
|
||||
Subject: [PATCH] Fix GCC11 Compile Error in benchmark_register.h
|
||||
|
||||
Fix GCC11 compilation error due to missing header "limits" in benchmark_register.h
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/ospray/ospray/pull/484/files]
|
||||
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
|
||||
---
|
||||
apps/common/external/benchmark/src/benchmark_register.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/apps/common/external/benchmark/src/benchmark_register.h b/apps/common/external/benchmark/src/benchmark_register.h
|
||||
index 61377d742..8f1bb7795 100644
|
||||
--- a/apps/common/external/benchmark/src/benchmark_register.h
|
||||
+++ b/apps/common/external/benchmark/src/benchmark_register.h
|
||||
@@ -2,6 +2,7 @@
|
||||
#define BENCHMARK_REGISTER_H
|
||||
|
||||
#include <vector>
|
||||
+#include <limits>
|
||||
|
||||
#include "check.h"
|
||||
|
||||
--
|
||||
2.32.0
|
||||
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
SUMMARY = "Intel OSPray, Ray Tracing based Rendering Engine"
|
||||
DESCRIPTION = "Intel OSPRay is an open source, scalable, and portable ray \
|
||||
tracing engine for high-performance, high-fidelity visualization on \
|
||||
Intel Architecture CPUs."
|
||||
HOMEPAGE = "https://www.ospray.org/"
|
||||
|
||||
LICENSE = "Apache-2.0 & BSD-3-Clause & MIT & Zlib"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1dece7821bf3fd70fe1309eaa37d52a2 \
|
||||
file://third-party-programs.txt;md5=e37b77e3bd997abccc359c710fb1f1db \
|
||||
"
|
||||
|
||||
inherit pkgconfig cmake
|
||||
|
||||
SRC_URI = "git://github.com/ospray/ospray.git;protocol=https;branch=master;name=ospray \
|
||||
git://github.com/nothings/stb;protocol=https;destsuffix=${BB_GIT_DEFAULT_DESTSUFFIX}/apps/common/external/stb_image/stb;name=stb;nobranch=1 \
|
||||
"
|
||||
SRCREV_ospray ?= "85af2929937d516997451cbd52d352cf93125ed2"
|
||||
SRCREV_stb ?= "af1a5bc36dff44f0a019df21c271db697d51f1a6"
|
||||
SRCREV_FORMAT = "ospray_stb"
|
||||
|
||||
COMPATIBLE_HOST = '(x86_64).*-linux'
|
||||
COMPATIBLE_HOST:libc-musl = "null"
|
||||
|
||||
DEPENDS = "rkcommon ispc ispc-native openvkl embree"
|
||||
|
||||
EXTRA_OECMAKE += " \
|
||||
-DISPC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/ispc \
|
||||
-DOSPRAY_ENABLE_APPS_BENCHMARK=OFF \
|
||||
-DOSPRAY_ENABLE_APPS_TESTING=OFF \
|
||||
-DOSPRAY_ENABLE_APPS_EXAMPLES=OFF \
|
||||
"
|
||||
|
||||
PACKAGES =+ "${PN}-apps"
|
||||
FILES:${PN}-apps = "\
|
||||
${bindir} \
|
||||
"
|
||||
|
||||
UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$"
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
From f0885d7d97e98ad586bbacf5edf7fa4022b425b9 Mon Sep 17 00:00:00 2001
|
||||
From: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
Date: Mon, 11 Aug 2025 14:00:50 +0800
|
||||
Subject: [PATCH] use fully-qualified rkcommon::math::rsqrt to avoid overload
|
||||
ambiguity
|
||||
|
||||
Explicitly calling rkcommon::math::rsqrt() prevents conflict with the
|
||||
standard rsqrt(double) declared in bits/mathcalls.h, fixing the build
|
||||
error in Quaternion tests.
|
||||
|
||||
Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/RenderKit/rkcommon/pull/16]
|
||||
---
|
||||
tests/math/test_Quaternion.cpp | 2 +-
|
||||
tests/math/test_rkmath.cpp | 4 ++--
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tests/math/test_Quaternion.cpp b/tests/math/test_Quaternion.cpp
|
||||
index 760d815..f527824 100644
|
||||
--- a/tests/math/test_Quaternion.cpp
|
||||
+++ b/tests/math/test_Quaternion.cpp
|
||||
@@ -187,7 +187,7 @@ template <typename T>
|
||||
inline void test_slerp()
|
||||
{
|
||||
typename T::Scalar two = 2;
|
||||
- REQUIRE(CmpT(slerp(.5f, T(1, 0, 0, 0), T(0, 1, 0, 0)), T(rsqrt(two), rsqrt(two), 0, 0)));
|
||||
+ REQUIRE(CmpT(slerp(.5f, T(1, 0, 0, 0), T(0, 1, 0, 0)), T(rkcommon::math::rsqrt(two), rkcommon::math::rsqrt(two), 0, 0)));
|
||||
}
|
||||
|
||||
TEST_CASE("Quaternion functions", "[quat]")
|
||||
diff --git a/tests/math/test_rkmath.cpp b/tests/math/test_rkmath.cpp
|
||||
index 7f66532..fd18df4 100644
|
||||
--- a/tests/math/test_rkmath.cpp
|
||||
+++ b/tests/math/test_rkmath.cpp
|
||||
@@ -49,8 +49,8 @@ TEST_CASE("rkmath rcp_safe function", "[rkmath]")
|
||||
template <typename T>
|
||||
inline void test_rsqrt()
|
||||
{
|
||||
- REQUIRE(CmpT<T>(rsqrt(T(1)), T(1)));
|
||||
- REQUIRE(CmpT<T>(rsqrt(T(4)), T(.5)));
|
||||
+ REQUIRE(CmpT<T>(rkcommon::math::rsqrt(T(1)), T(1)));
|
||||
+ REQUIRE(CmpT<T>(rkcommon::math::rsqrt(T(4)), T(.5)));
|
||||
}
|
||||
|
||||
TEST_CASE("rkmath rsqrt function", "[rkmath]")
|
||||
--
|
||||
2.37.3
|
||||
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
SUMMARY = "rkcommon - C++/CMake infrastructure"
|
||||
DESCRIPTION = "A common set of C++ infrastructure and CMake utilities \
|
||||
used by various components of Intel® oneAPI Rendering Toolkit."
|
||||
HOMEPAGE = "https://github.com/ospray/rkcommon"
|
||||
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
|
||||
|
||||
inherit pkgconfig cmake
|
||||
|
||||
SRC_URI = "git://github.com/ospray/rkcommon.git;protocol=https;branch=master \
|
||||
file://0001-use-fully-qualified-rkcommon-math-rsqrt-to-avoid-ove.patch \
|
||||
"
|
||||
SRCREV = "4a00047ae5a3ac705b6b33b4a7574588d91e7953"
|
||||
|
||||
DEPENDS = "tbb"
|
||||
|
||||
EXTRA_OECMAKE += " -DBUILD_TESTING=OFF"
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
From ef56be8e6bf2ea273cbeb960f3131164e7b517b6 Mon Sep 17 00:00:00 2001
|
||||
From: Anuj Mittal <anuj.mittal@intel.com>
|
||||
Date: Wed, 18 May 2022 12:24:03 +0800
|
||||
Subject: [PATCH] CMakeLists: disable Werror
|
||||
|
||||
gcc12 highlights minor warnings that cause the build to fail. Ignore
|
||||
those until they aren't fixed upstream.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
|
||||
---
|
||||
CMakeLists.txt | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 418483f7..c019fea0 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -146,7 +146,7 @@ else()
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -fno-strict-aliasing -D_FORTIFY_SOURCE=2")
|
||||
if(LNX_BUILD)
|
||||
#A few warnings yet to resolve under esx
|
||||
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror")
|
||||
+ #set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Werror")
|
||||
endif()
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb")
|
||||
@@ -791,4 +791,4 @@ if(ESX_BUILD)
|
||||
include(CMake/esx.cmake)
|
||||
endif()
|
||||
|
||||
-add_subdirectory(src/os/nvm_api_sample)
|
||||
\ No newline at end of file
|
||||
+add_subdirectory(src/os/nvm_api_sample)
|
||||
--
|
||||
2.35.3
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user