meta-intel/classes
Yogesh Tyagi 1cd9b78e1b classes: add oneapi-vendor-compat bbclass
The Intel oneAPI DPC++/C++ compiler binaries (icx, icpx) shipped by
meta-intel as prebuilt installers have a fixed default -target triple
baked into the LLVM driver. As of the 2025.3.x bundle the triple is
'x86_64-unknown-linux-gnu' (LLVM's portable default); prior 2024.x
bundles used 'x86_64-oe-linux' (matching the OpenEmbedded nodistro
default of TARGET_VENDOR=oe). icx also emits 'x86_64-linux-gnu' (the
Debian/Ubuntu host triple) in some search paths.

Yocto distros set TARGET_VENDOR differently: poky uses 'poky'
(TARGET_SYS=x86_64-poky-linux), nodistro uses 'oe', etc. The result
is a vendor-triple mismatch: icx looks for crtbeginS.o /
bits/c++config.h and similar files under one triple while they are
installed at another.

Until Intel either ships per-vendor variants or the meta-intel oneAPI
recipes patch the prebuilt binaries, install a set of compatibility
symlinks at rootfs time so every spelling of the multilib vendor
triple resolves to the same files on the image. The alias set is
configurable via ONEAPI_VENDOR_TRIPLE_ALIASES; entries that already
match the native target triple are skipped, so the class is a no-op
on images whose native vendor matches every alias.

Usage: add to IMAGE_CLASSES in a distro / local config that consumes
the Intel oneAPI compiler:

    IMAGE_CLASSES += "oneapi-vendor-compat"

Signed-off-by: Yogesh Tyagi <yogesh.tyagi@intel.com>
2026-04-29 21:15:11 +08:00
..
oneapi-vendor-compat.bbclass classes: add oneapi-vendor-compat bbclass 2026-04-29 21:15:11 +08:00