From patchwork Sun Feb 6 21:53:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3334 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD701C433EF for ; Sun, 6 Feb 2022 21:53:22 +0000 (UTC) Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by mx.groups.io with SMTP id smtpd.web12.14507.1644184401876582665 for ; Sun, 06 Feb 2022 13:53:22 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Vp9Oohbr; spf=pass (domain: gmail.com, ip: 209.85.218.42, mailfrom: alex.kanavin@gmail.com) Received: by mail-ej1-f42.google.com with SMTP id y3so15717940ejf.2 for ; Sun, 06 Feb 2022 13:53:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=O3LsnS1NqggL8LGa0CxXwM1H6D2fgmpOO932NW5EgwU=; b=Vp9OohbrguWukG6iHWCdinth7swfu3JIY/Hm2xJrBONJtlAaUm01JlqE589lgjKlsS CMMXv97o26NlHfUibzQFXYeaXjikjjhWnzTzv5/335tCK/HIqxrevLZvHB5rdcCvrXYu vzYc7y9cB/LgZm4Rm7AIzzsZAMmn3qY6gt3rDf54RRTVG9XAZtu1hbKOZ4Eol+zhuuOZ jFRMtcVqNUiP5kJ4n5iIenWEWrxR2IoNrT4HXM1XWYGMyX9Z36IDviPpqwKjbiJrHlva u8G9zODBCzaKBcusq938Tg/JEuITgRVog6svtHAILC7WQmVdlz+K9pjVL5vpHidtxYfo U11g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=O3LsnS1NqggL8LGa0CxXwM1H6D2fgmpOO932NW5EgwU=; b=oIMg2hw8eJgeaCWDuvSJ6Yh4CF8GWY8MAagaHR8ljEJZ/hXXZ5z42hdhSOxFop9iSc e28AJE71W9sMdLoFtB9JxXCt4/GZbikIZ3TMQpZ55mE1dIv3rGOJq+zeqPf+P4KUZceO JCNx68DaNKC2BabpFDXOX1BIpSO9C3eDlt2BE00PN8dUMn3fdn6VNH3tcAf7lQm759iA +BGespFh2GcwJFDF6Xbq2N9O8BzADkDhhKqDrj/VXLNT8omBFH7JaHrlOoDQcez04d+W Su8prsYU5/rihXcf1+CtNoMcNELaGNauglwxjXJqf1b1Msnff0dh8YKck6xNgEopHRmC Z0vw== X-Gm-Message-State: AOAM533/eBlSHMFdUtMGfLF1bLJFVXdqGvHEYd148qFd+ZMrIfq0dtY/ oe8/FzVR5kIlZSuYgGO/WXPMNVY9EdY= X-Google-Smtp-Source: ABdhPJyOVauSCS5PL5VJp19oRg5iCgY7Kyw2pgHvtFeTqjMqTR03f5/eSaVEe+OyUZFnl9p/BpOXYQ== X-Received: by 2002:a17:906:7712:: with SMTP id q18mr7457950ejm.434.1644184400046; Sun, 06 Feb 2022 13:53:20 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:19 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 1/8] mesa: fold mesa-gl variant into the main recipe using mcextend class Date: Sun, 6 Feb 2022 22:53:09 +0100 Message-Id: <20220206215316.367469-1-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:22 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161413 This reduces friction in version updates and allows fully automated ones. There was a concern that using mcextend this way may clash with proper multiconfig setups; I have tweaked the multiconfig selftest to include mesa packages in both multiconfig images, and ran the test with preferred provider set to mesa, and then to mesa-gl - all passed. Signed-off-by: Alexander Kanavin --- meta/recipes-graphics/mesa/mesa-gl_21.3.5.bb | 16 - meta/recipes-graphics/mesa/mesa.inc | 316 ----------------- meta/recipes-graphics/mesa/mesa_21.3.5.bb | 337 ++++++++++++++++++- 3 files changed, 336 insertions(+), 333 deletions(-) delete mode 100644 meta/recipes-graphics/mesa/mesa-gl_21.3.5.bb delete mode 100644 meta/recipes-graphics/mesa/mesa.inc diff --git a/meta/recipes-graphics/mesa/mesa-gl_21.3.5.bb b/meta/recipes-graphics/mesa/mesa-gl_21.3.5.bb deleted file mode 100644 index 142bb743b1..0000000000 --- a/meta/recipes-graphics/mesa/mesa-gl_21.3.5.bb +++ /dev/null @@ -1,16 +0,0 @@ -require mesa.inc - -SUMMARY += " (OpenGL only, no EGL/GLES)" - -PROVIDES = "virtual/libgl virtual/mesa" - -S = "${WORKDIR}/mesa-${PV}" - -# At least one DRI rendering engine is required to build mesa. -# When no X11 is available, use osmesa for the rendering engine. -PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" -PACKAGECONFIG:class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" - -# 21.0.0 version fails to build when any driver is enabled in DRIDRIVERS -# ./mesa-21.0.0/meson.build:519:4: ERROR: Problem encountered: building dri drivers require at least one windowing system -DRIDRIVERS ?= "" diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc deleted file mode 100644 index e8093f5665..0000000000 --- a/meta/recipes-graphics/mesa/mesa.inc +++ /dev/null @@ -1,316 +0,0 @@ -SUMMARY = "A free implementation of the OpenGL API" -DESCRIPTION = "Mesa is an open-source implementation of the OpenGL specification - \ -a system for rendering interactive 3D graphics. \ -A variety of device drivers allows Mesa to be used in many different environments \ -ranging from software emulation to complete hardware acceleration for modern GPUs. \ -Mesa is used as part of the overall Direct Rendering Infrastructure and X.org \ -environment." - -HOMEPAGE = "http://mesa3d.org" -BUGTRACKER = "https://bugs.freedesktop.org" -SECTION = "x11" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://docs/license.rst;md5=17a4ea65de7a9ab42437f3131e616a7f" - -PE = "2" - -SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ - file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \ - file://0002-meson.build-make-TLS-ELF-optional.patch \ - file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ - file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \ - file://0001-util-format-Check-for-NEON-before-using-it.patch \ - file://0001-v3dv-account-for-64bit-time_t-on-32bit-arches.patch \ - " - -SRC_URI[sha256sum] = "d93b2a9d2464ee856d7637a07dff6b7cd950f295ad58518bb959f76882cf4a4c" - -UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" - -#because we cannot rely on the fact that all apps will use pkgconfig, -#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER -do_install:append() { - if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then - sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h - fi -} - -DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native" -EXTRANATIVEPATH += "chrpath-native" -PROVIDES = " \ - ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ - virtual/mesa \ - " - -inherit meson pkgconfig python3native gettext features_check - -BBCLASSEXTEND = "native nativesdk" - -ANY_OF_DISTRO_FEATURES:class-target = "opengl vulkan" - -PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}" - -export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm${MESA_LLVM_RELEASE}/llvm-config" -export YOCTO_ALTERNATE_MULTILIB_NAME = "${base_libdir}" -export LLVM_CONFIG = "${STAGING_BINDIR_NATIVE}/llvm-config${MESA_LLVM_RELEASE}" -export WANT_LLVM_RELEASE = "${MESA_LLVM_RELEASE}" - -MESA_LLVM_RELEASE ?= "${LLVMVERSION}" - -# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug' -# by default the upstream mesa sources build a debug release -# here we assume the user will want a release build by default -MESA_BUILD_TYPE ?= "release" -def check_buildtype(d): - _buildtype = d.getVar('MESA_BUILD_TYPE') - if _buildtype not in ['release', 'debug']: - bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype) - if _buildtype == 'debug': - return 'debugoptimized' - return 'plain' -MESON_BUILDTYPE = "${@check_buildtype(d)}" - -EXTRA_OEMESON = " \ - -Dshared-glapi=enabled \ - -Dgallium-opencl=disabled \ - -Dglx-read-only-text=true \ - -Dplatforms='${@",".join("${PLATFORMS}".split())}' \ -" - -def strip_comma(s): - return s.strip(',') - -PACKAGECONFIG:class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland vulkan', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium virgl', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ - elf-tls \ - " -PACKAGECONFIG:class-native ?= "gbm gallium egl opengl elf-tls x11" -PACKAGECONFIG:class-nativesdk ?= "gbm gallium egl opengl elf-tls x11" - -PACKAGECONFIG:remove:libc-musl = "elf-tls" - -# "gbm" requires "dri", "opengl" -PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" - -X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr" -# "x11" requires "opengl" -PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" -PACKAGECONFIG[elf-tls] = "-Delf-tls=true, -Delf-tls=false" -PACKAGECONFIG[xvmc] = "-Dgallium-xvmc=enabled,-Dgallium-xvmc=disabled,libxvmc" -PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" - -# "dri" requires "opengl" -PACKAGECONFIG[dri] = "-Ddri-drivers=${@strip_comma('${DRIDRIVERS}')}, -Ddri-drivers='', xorgproto libdrm" -PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled, xorgproto libxshmfence" - -# Vulkan drivers need dri3 enabled -# amd could be enabled as well but requires gallium-llvm with llvm >= 3.9 -VULKAN_DRIVERS = "" -VULKAN_DRIVERS:append:x86:class-target = ",intel" -VULKAN_DRIVERS:append:x86-64:class-target = ",intel" -VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" -VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" -PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers=''," - -PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" - -# "gles" requires "opengl" -PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled" - -# "egl" requires "dri", "opengl" -PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled" - -PACKAGECONFIG[broadcom] = "" -PACKAGECONFIG[etnaviv] = "" -PACKAGECONFIG[freedreno] = "" -PACKAGECONFIG[kmsro] = "" -PACKAGECONFIG[vc4] = "" -PACKAGECONFIG[v3d] = "" - -GALLIUMDRIVERS = "swrast" -# gallium swrast was found to crash Xorg on startup in x32 qemu -GALLIUMDRIVERS:x86-x32 = "" -GALLIUMDRIVERS:append:x86:class-target = ",i915,iris,crocus" -GALLIUMDRIVERS:append:x86-64:class-target = ",i915,iris,crocus" - -GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" -GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" -GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}" -GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" -GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" - -# radeonsi requires LLVM -GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" -GALLIUMDRIVERS_LLVM = "r300,nouveau${GALLIUMDRIVERS_RADEONSI}" -GALLIUMDRIVERS_LLVM:append:x86:class-target = ",svga" -GALLIUMDRIVERS_LLVM:append:x86-64:class-target = ",svga" - -PACKAGECONFIG[r600] = "" -PACKAGECONFIG[virgl] = "" - -GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}" -GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}" -GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}" - -PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm" -PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm${MESA_LLVM_RELEASE} llvm-native \ - elfutils" -PACKAGECONFIG[xa] = "-Dgallium-xa=enabled, -Dgallium-xa=disabled" -PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" - -PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau" - -PACKAGECONFIG[lima] = "" -GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" - -PACKAGECONFIG[panfrost] = "" -GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" - -PACKAGECONFIG[osmesa] = "-Dosmesa=true,-Dosmesa=false" - -PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" - -PACKAGECONFIG[lmsensors] = "-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors" - -# llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2) -FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer" - -CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS" -CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS" - -# Remove the mesa dependency on mesa-dev, as mesa is empty -RDEPENDS:${PN}-dev = "" - -# Khronos documentation says that include/GLES2/gl2ext.h can be used for -# OpenGL ES 3 specification as well as for OpenGL ES 2. -# There can be applications including GLES2/gl2ext.h instead of GLES3/gl3ext.h -# meaning we should probably bring in GLES2/gl2ext.h if someone asks for -# development package of libgles3. -RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev" - -PACKAGES =+ "libegl-mesa libegl-mesa-dev \ - libosmesa libosmesa-dev \ - libgl-mesa libgl-mesa-dev \ - libglapi libglapi-dev \ - libgbm libgbm-dev \ - libgles1-mesa libgles1-mesa-dev \ - libgles2-mesa libgles2-mesa-dev \ - libgles3-mesa libgles3-mesa-dev \ - libxatracker libxatracker-dev \ - mesa-megadriver mesa-vulkan-drivers \ - mesa-vdpau-drivers \ - " - -do_install:append () { - # Drivers never need libtool .la files - rm -f ${D}${libdir}/dri/*.la - rm -f ${D}${libdir}/egl/*.la - rm -f ${D}${libdir}/gallium-pipe/*.la - rm -f ${D}${libdir}/gbm/*.la - - # it was packaged in libdricore9.1.3-1 and preventing upgrades when debian.bbclass was used - chrpath --delete ${D}${libdir}/dri/*_dri.so || true - - # libwayland-egl has been moved to wayland 1.15+ - rm -f ${D}${libdir}/libwayland-egl* - rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc -} - -# For the packages that make up the OpenGL interfaces, inject variables so that -# they don't get Debian-renamed (which would remove the -mesa suffix), and -# RPROVIDEs/RCONFLICTs on the generic libgl name. -python __anonymous() { - pkgconfig = (d.getVar('PACKAGECONFIG') or "").split() - suffix = "" - if "-native" in d.getVar("PN"): - suffix = "-native" - for p in (("egl", "libegl", "libegl1"), - ("dri", "libgl", "libgl1"), - ("gles", "libgles1", "libglesv1-cm1"), - ("gles", "libgles2", "libglesv2-2"), - ("gles", "libgles3",)): - if not p[0] in pkgconfig: - continue - mlprefix = d.getVar("MLPREFIX") - fullp = mlprefix + p[1] + "-mesa" + suffix - mlprefix = d.getVar("MLPREFIX") - pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:]) - d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") - d.appendVar("RREPLACES:" + fullp, pkgs) - d.appendVar("RPROVIDES:" + fullp, pkgs) - d.appendVar("RCONFLICTS:" + fullp, pkgs) - - d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}mesa-megadriver" + suffix) - - # For -dev, the first element is both the Debian and original name - fullp = mlprefix + p[1] + "-mesa-dev" + suffix - pkgs = " " + mlprefix + p[1] + "-dev" + suffix - d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") - d.appendVar("RREPLACES:" + fullp, pkgs) - d.appendVar("RPROVIDES:" + fullp, pkgs) - d.appendVar("RCONFLICTS:" + fullp, pkgs) -} - -python mesa_populate_packages() { - pkgs = ['mesa', 'mesa-dev', 'mesa-dbg'] - for pkg in pkgs: - d.setVar("RPROVIDES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) - d.setVar("RCONFLICTS:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) - d.setVar("RREPLACES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) - - import re - dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri") - if os.path.isdir(dri_drivers_root): - dri_pkgs = sorted(os.listdir(dri_drivers_root)) - lib_name = d.expand("${MLPREFIX}mesa-megadriver") - for p in dri_pkgs: - m = re.match(r'^(.*)_dri\.so$', p) - if m: - pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1)) - d.appendVar("RPROVIDES:%s" % lib_name, pkg_name) - d.appendVar("RCONFLICTS:%s" % lib_name, pkg_name) - d.appendVar("RREPLACES:%s" % lib_name, pkg_name) - - pipe_drivers_root = os.path.join(d.getVar('libdir'), "gallium-pipe") - do_split_packages(d, pipe_drivers_root, r'^pipe_(.*)\.so$', 'mesa-driver-pipe-%s', 'Mesa %s pipe driver', extra_depends='') -} - -PACKAGESPLITFUNCS:prepend = "mesa_populate_packages " - -PACKAGES_DYNAMIC += "^mesa-driver-.*" -PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native" - -FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d/00-mesa-defaults.conf" -FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan" -FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*" -FILES:libegl-mesa = "${libdir}/libEGL.so.*" -FILES:libgbm = "${libdir}/libgbm.so.*" -FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*" -FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*" -FILES:libgl-mesa = "${libdir}/libGL.so.*" -FILES:libglapi = "${libdir}/libglapi.so.*" -FILES:libosmesa = "${libdir}/libOSMesa.so.*" -FILES:libxatracker = "${libdir}/libxatracker.so.*" - -FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan ${libdir}/vdpau/*.so" -FILES:libegl-mesa-dev = "${libdir}/libEGL.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" -FILES:libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" -FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc" -FILES:libglapi-dev = "${libdir}/libglapi.*" -FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc" -FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc" -FILES:libgles3-mesa-dev = "${includedir}/GLES3" -FILES:libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc" -FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \ - ${includedir}/xa_tracker.h ${includedir}/xa_composite.h ${includedir}/xa_context.h \ - ${libdir}/pkgconfig/xatracker.pc" - -# Fix upgrade path from mesa to mesa-megadriver -RREPLACES:mesa-megadriver = "mesa" -RCONFLICTS:mesa-megadriver = "mesa" -RPROVIDES:mesa-megadriver = "mesa" diff --git a/meta/recipes-graphics/mesa/mesa_21.3.5.bb b/meta/recipes-graphics/mesa/mesa_21.3.5.bb index 4cb7e80eb5..e4f20f6e24 100644 --- a/meta/recipes-graphics/mesa/mesa_21.3.5.bb +++ b/meta/recipes-graphics/mesa/mesa_21.3.5.bb @@ -1,5 +1,340 @@ -require ${BPN}.inc +SUMMARY = "A free implementation of the OpenGL API" +DESCRIPTION = "Mesa is an open-source implementation of the OpenGL specification - \ +a system for rendering interactive 3D graphics. \ +A variety of device drivers allows Mesa to be used in many different environments \ +ranging from software emulation to complete hardware acceleration for modern GPUs. \ +Mesa is used as part of the overall Direct Rendering Infrastructure and X.org \ +environment." + +HOMEPAGE = "http://mesa3d.org" +BUGTRACKER = "https://bugs.freedesktop.org" +SECTION = "x11" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://docs/license.rst;md5=17a4ea65de7a9ab42437f3131e616a7f" + +PE = "2" + +SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \ + file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \ + file://0002-meson.build-make-TLS-ELF-optional.patch \ + file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ + file://0001-futex.h-Define-__NR_futex-if-it-does-not-exist.patch \ + file://0001-util-format-Check-for-NEON-before-using-it.patch \ + file://0001-v3dv-account-for-64bit-time_t-on-32bit-arches.patch \ + " + +SRC_URI[sha256sum] = "d93b2a9d2464ee856d7637a07dff6b7cd950f295ad58518bb959f76882cf4a4c" + +UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" + +#because we cannot rely on the fact that all apps will use pkgconfig, +#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER +do_install:append() { + if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then + sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h + fi +} + +DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native" +EXTRANATIVEPATH += "chrpath-native" +PROVIDES = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ + virtual/mesa \ + " + +inherit meson pkgconfig python3native gettext features_check + +BBCLASSEXTEND = "native nativesdk" + +ANY_OF_DISTRO_FEATURES:class-target = "opengl vulkan" + +PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}" + +export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm${MESA_LLVM_RELEASE}/llvm-config" +export YOCTO_ALTERNATE_MULTILIB_NAME = "${base_libdir}" +export LLVM_CONFIG = "${STAGING_BINDIR_NATIVE}/llvm-config${MESA_LLVM_RELEASE}" +export WANT_LLVM_RELEASE = "${MESA_LLVM_RELEASE}" + +MESA_LLVM_RELEASE ?= "${LLVMVERSION}" + +# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug' +# by default the upstream mesa sources build a debug release +# here we assume the user will want a release build by default +MESA_BUILD_TYPE ?= "release" +def check_buildtype(d): + _buildtype = d.getVar('MESA_BUILD_TYPE') + if _buildtype not in ['release', 'debug']: + bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype) + if _buildtype == 'debug': + return 'debugoptimized' + return 'plain' +MESON_BUILDTYPE = "${@check_buildtype(d)}" + +EXTRA_OEMESON = " \ + -Dshared-glapi=enabled \ + -Dgallium-opencl=disabled \ + -Dglx-read-only-text=true \ + -Dplatforms='${@",".join("${PLATFORMS}".split())}' \ +" + +def strip_comma(s): + return s.strip(',') + +PACKAGECONFIG:class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland vulkan', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium virgl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \ + elf-tls \ + " +PACKAGECONFIG:class-native ?= "gbm gallium egl opengl elf-tls x11" +PACKAGECONFIG:class-nativesdk ?= "gbm gallium egl opengl elf-tls x11" + +PACKAGECONFIG:remove:libc-musl = "elf-tls" + +# "gbm" requires "dri", "opengl" +PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" + +X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr" +# "x11" requires "opengl" +PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}" +PACKAGECONFIG[elf-tls] = "-Delf-tls=true, -Delf-tls=false" +PACKAGECONFIG[xvmc] = "-Dgallium-xvmc=enabled,-Dgallium-xvmc=disabled,libxvmc" +PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm wayland-protocols" + +# "dri" requires "opengl" +PACKAGECONFIG[dri] = "-Ddri-drivers=${@strip_comma('${DRIDRIVERS}')}, -Ddri-drivers='', xorgproto libdrm" +PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled, xorgproto libxshmfence" + +# Vulkan drivers need dri3 enabled +# amd could be enabled as well but requires gallium-llvm with llvm >= 3.9 +VULKAN_DRIVERS = "" +VULKAN_DRIVERS:append:x86:class-target = ",intel" +VULKAN_DRIVERS:append:x86-64:class-target = ",intel" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +VULKAN_DRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" +PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers=''," + +PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" + +# "gles" requires "opengl" +PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled, -Dgles1=disabled -Dgles2=disabled" + +# "egl" requires "dri", "opengl" +PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled" + +PACKAGECONFIG[broadcom] = "" +PACKAGECONFIG[etnaviv] = "" +PACKAGECONFIG[freedreno] = "" +PACKAGECONFIG[kmsro] = "" +PACKAGECONFIG[vc4] = "" +PACKAGECONFIG[v3d] = "" + +GALLIUMDRIVERS = "swrast" +# gallium swrast was found to crash Xorg on startup in x32 qemu +GALLIUMDRIVERS:x86-x32 = "" +GALLIUMDRIVERS:append:x86:class-target = ",i915,iris,crocus" +GALLIUMDRIVERS:append:x86-64:class-target = ",i915,iris,crocus" + +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'kmsro', ',kmsro', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'vc4', ',vc4', '', d)}" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'v3d', ',v3d', '', d)}" + +# radeonsi requires LLVM +GALLIUMDRIVERS_RADEONSI = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '', d)}" +GALLIUMDRIVERS_LLVM = "r300,nouveau${GALLIUMDRIVERS_RADEONSI}" +GALLIUMDRIVERS_LLVM:append:x86:class-target = ",svga" +GALLIUMDRIVERS_LLVM:append:x86-64:class-target = ",svga" + +PACKAGECONFIG[r600] = "" +PACKAGECONFIG[virgl] = "" + +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}" + +PACKAGECONFIG[gallium] = "-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')}, -Dgallium-drivers='', libdrm" +PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled -Dshared-llvm=enabled, -Dllvm=disabled, llvm${MESA_LLVM_RELEASE} llvm-native \ + elfutils" +PACKAGECONFIG[xa] = "-Dgallium-xa=enabled, -Dgallium-xa=disabled" +PACKAGECONFIG[va] = "-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial" + +PACKAGECONFIG[vdpau] = "-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau" + +PACKAGECONFIG[lima] = "" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" + +PACKAGECONFIG[panfrost] = "" +GALLIUMDRIVERS:append ="${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" + +PACKAGECONFIG[osmesa] = "-Dosmesa=true,-Dosmesa=false" + +PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind" + +PACKAGECONFIG[lmsensors] = "-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors" + +# llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2) +FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer" + +CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS" +CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS" + +# Remove the mesa dependency on mesa-dev, as mesa is empty +RDEPENDS:${PN}-dev = "" + +# Khronos documentation says that include/GLES2/gl2ext.h can be used for +# OpenGL ES 3 specification as well as for OpenGL ES 2. +# There can be applications including GLES2/gl2ext.h instead of GLES3/gl3ext.h +# meaning we should probably bring in GLES2/gl2ext.h if someone asks for +# development package of libgles3. +RDEPENDS:libgles3-mesa-dev += "libgles2-mesa-dev" + +PACKAGES =+ "libegl-mesa libegl-mesa-dev \ + libosmesa libosmesa-dev \ + libgl-mesa libgl-mesa-dev \ + libglapi libglapi-dev \ + libgbm libgbm-dev \ + libgles1-mesa libgles1-mesa-dev \ + libgles2-mesa libgles2-mesa-dev \ + libgles3-mesa libgles3-mesa-dev \ + libxatracker libxatracker-dev \ + mesa-megadriver mesa-vulkan-drivers \ + mesa-vdpau-drivers \ + " + +do_install:append () { + # Drivers never need libtool .la files + rm -f ${D}${libdir}/dri/*.la + rm -f ${D}${libdir}/egl/*.la + rm -f ${D}${libdir}/gallium-pipe/*.la + rm -f ${D}${libdir}/gbm/*.la + + # it was packaged in libdricore9.1.3-1 and preventing upgrades when debian.bbclass was used + chrpath --delete ${D}${libdir}/dri/*_dri.so || true + + # libwayland-egl has been moved to wayland 1.15+ + rm -f ${D}${libdir}/libwayland-egl* + rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc +} + +# For the packages that make up the OpenGL interfaces, inject variables so that +# they don't get Debian-renamed (which would remove the -mesa suffix), and +# RPROVIDEs/RCONFLICTs on the generic libgl name. +python __anonymous() { + pkgconfig = (d.getVar('PACKAGECONFIG') or "").split() + suffix = "" + if "-native" in d.getVar("PN"): + suffix = "-native" + for p in (("egl", "libegl", "libegl1"), + ("dri", "libgl", "libgl1"), + ("gles", "libgles1", "libglesv1-cm1"), + ("gles", "libgles2", "libglesv2-2"), + ("gles", "libgles3",)): + if not p[0] in pkgconfig: + continue + mlprefix = d.getVar("MLPREFIX") + fullp = mlprefix + p[1] + "-mesa" + suffix + mlprefix = d.getVar("MLPREFIX") + pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:]) + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) + + d.appendVar("RRECOMMENDS:" + fullp, " ${MLPREFIX}mesa-megadriver" + suffix) + + # For -dev, the first element is both the Debian and original name + fullp = mlprefix + p[1] + "-mesa-dev" + suffix + pkgs = " " + mlprefix + p[1] + "-dev" + suffix + d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1") + d.appendVar("RREPLACES:" + fullp, pkgs) + d.appendVar("RPROVIDES:" + fullp, pkgs) + d.appendVar("RCONFLICTS:" + fullp, pkgs) +} + +python mesa_populate_packages() { + pkgs = ['mesa', 'mesa-dev', 'mesa-dbg'] + for pkg in pkgs: + d.setVar("RPROVIDES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RCONFLICTS:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + d.setVar("RREPLACES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1)) + + import re + dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri") + if os.path.isdir(dri_drivers_root): + dri_pkgs = sorted(os.listdir(dri_drivers_root)) + lib_name = d.expand("${MLPREFIX}mesa-megadriver") + for p in dri_pkgs: + m = re.match(r'^(.*)_dri\.so$', p) + if m: + pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1)) + d.appendVar("RPROVIDES:%s" % lib_name, pkg_name) + d.appendVar("RCONFLICTS:%s" % lib_name, pkg_name) + d.appendVar("RREPLACES:%s" % lib_name, pkg_name) + + pipe_drivers_root = os.path.join(d.getVar('libdir'), "gallium-pipe") + do_split_packages(d, pipe_drivers_root, r'^pipe_(.*)\.so$', 'mesa-driver-pipe-%s', 'Mesa %s pipe driver', extra_depends='') +} + +PACKAGESPLITFUNCS:prepend = "mesa_populate_packages " + +PACKAGES_DYNAMIC += "^mesa-driver-.*" +PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native" + +FILES:mesa-megadriver = "${libdir}/dri/* ${datadir}/drirc.d/00-mesa-defaults.conf" +FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so ${datadir}/vulkan" +FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*" +FILES:libegl-mesa = "${libdir}/libEGL.so.*" +FILES:libgbm = "${libdir}/libgbm.so.*" +FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*" +FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*" +FILES:libgl-mesa = "${libdir}/libGL.so.*" +FILES:libglapi = "${libdir}/libglapi.so.*" +FILES:libosmesa = "${libdir}/libOSMesa.so.*" +FILES:libxatracker = "${libdir}/libxatracker.so.*" + +FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc ${includedir}/vulkan ${libdir}/vdpau/*.so" +FILES:libegl-mesa-dev = "${libdir}/libEGL.* ${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc" +FILES:libgbm-dev = "${libdir}/libgbm.* ${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h" +FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL ${libdir}/pkgconfig/gl.pc" +FILES:libglapi-dev = "${libdir}/libglapi.*" +FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.* ${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc" +FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.* ${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc" +FILES:libgles3-mesa-dev = "${includedir}/GLES3" +FILES:libosmesa-dev = "${libdir}/libOSMesa.* ${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc" +FILES:libxatracker-dev = "${libdir}/libxatracker.so ${libdir}/libxatracker.la \ + ${includedir}/xa_tracker.h ${includedir}/xa_composite.h ${includedir}/xa_context.h \ + ${libdir}/pkgconfig/xatracker.pc" + +# Fix upgrade path from mesa to mesa-megadriver +RREPLACES:mesa-megadriver = "mesa" +RCONFLICTS:mesa-megadriver = "mesa" +RPROVIDES:mesa-megadriver = "mesa" + +# basic mesa recipe DRIDRIVERS ??= "" DRIDRIVERS:append:x86:class-target = ",r100,r200,nouveau,i965" DRIDRIVERS:append:x86-64:class-target = ",r100,r200,nouveau,i965" +# mesa-gl variant +inherit mcextend + +BBCLASSEXTEND += "mcextend:gl" + +S:virtclass-mcextend-gl = "${WORKDIR}/mesa-${PV}" + +SUMMARY:append:virtclass-mcextend-gl = " (OpenGL only, no EGL/GLES)" + +PROVIDES:virtclass-mcextend-gl = "virtual/libgl virtual/mesa" + +# At least one DRI rendering engine is required to build mesa. +# When no X11 is available, use osmesa for the rendering engine. +PACKAGECONFIG:virtclass-mcextend-gl = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa gallium', d)}" + +# 21.0.0 version fails to build when any driver is enabled in DRIDRIVERS +# ./mesa-21.0.0/meson.build:519:4: ERROR: Problem encountered: building dri drivers require at least one windowing system +DRIDRIVERS:virtclass-mcextend-gl = "" From patchwork Sun Feb 6 21:53:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3333 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A869AC433F5 for ; Sun, 6 Feb 2022 21:53:23 +0000 (UTC) Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) by mx.groups.io with SMTP id smtpd.web10.14430.1644184402408701962 for ; Sun, 06 Feb 2022 13:53:22 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=bpFSRNTZ; spf=pass (domain: gmail.com, ip: 209.85.208.47, mailfrom: alex.kanavin@gmail.com) Received: by mail-ed1-f47.google.com with SMTP id da4so3928363edb.4 for ; Sun, 06 Feb 2022 13:53:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Oz6lB3aefLz4NSlN76l56rKqVUNqPJxx8upxS07zDJ0=; b=bpFSRNTZRKRZ5Ja4+P/6Zs2FWC4U/FouMxtA4D37f8KiHw6mD+DRqqsuT7H7TNIEaG +8ZYn8YvFKQdQL13M+Kk4RD1h6s+w4pTBr6Su+PwEsUpkHTJpHFcEac0irjFjxlvS3OL GuY44m33mYvGGdvB2FSw5OJcJ37pZ/1VTQYqGTW0Nvpm3e2nNekGlYxHzD0/BuXtlP3r oj+KWQI7S/VvRwkyG1+HZ3KftJiYs88gNU8/Awm8YBl5Vh953Hh5SDHMkFOJBNb84p1L MDJLNTVyu71JQNPGNj2EOxH7IIdzj4tFIuXn2fCcI5+Xl+e3EtmQKhnqzhHwRZHfXBVm v8uA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Oz6lB3aefLz4NSlN76l56rKqVUNqPJxx8upxS07zDJ0=; b=we8l740LK2Qr5f1oH7ydkuOBIJ4dAG4Newwk1hMffINujaKGhv/pFn0Earb8KacUXc q1PHHDbsp85kXv6tOsPoniQDvCVDQMWcGbBerWbfTLuCn8FHU9Nr2A23MRye+H+5EGhE ZRSb5gMf22QMdHSEL3/YFjvzDVDl84hZvO6QljiSZIDG8soEdwG09r/zF0WfpDYXqtV9 ibWgXTeb30R5r3Nq68+3AY2I1Si+9qIQLH7lE1ZID1nHnqACruAmMDXice6DhCpyh5AO PeOi/MCEoSK0fXix0hiJgzH/GL4CYlEm5PSJiQEJSAmjzJNedM/LO65pHrcEW29kGTvf bGFA== X-Gm-Message-State: AOAM530hA3DWTk3JdykkEaaZBfqJ2skjXEJ4NK/1XE+DCECw7kdM5IND sywaEnuGQ05fqtBYlnt52R65fsHpqU0= X-Google-Smtp-Source: ABdhPJwuILMgKA6L04bNMg9CdWf/lNoXFsbmoJsDWd0ixfwlSOiXB3ZBu3JMWPHFqY8gH4t0824ghg== X-Received: by 2002:a05:6402:910:: with SMTP id g16mr2013134edz.245.1644184400842; Sun, 06 Feb 2022 13:53:20 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:20 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 2/8] gdb: update 11.1 -> 11.2 Date: Sun, 6 Feb 2022 22:53:10 +0100 Message-Id: <20220206215316.367469-2-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220206215316.367469-1-alex@linutronix.de> References: <20220206215316.367469-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:23 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161414 Simplyfy .inc structure: merge gdb.inc into gdb_11.2.bb, rename gdb-${PV}.inc to gdb.inc. This will allow easier automatic updates. Drop upstreamed patch. Signed-off-by: Alexander Kanavin --- meta/recipes-devtools/gdb/gdb-11.1.inc | 19 -- ...ian_11.1.bb => gdb-cross-canadian_11.2.bb} | 2 +- .../{gdb-cross_11.1.bb => gdb-cross_11.2.bb} | 2 +- meta/recipes-devtools/gdb/gdb.inc | 27 +- ...erver-register-set-selection-dynamic.patch | 317 ------------------ .../gdb/{gdb_11.1.bb => gdb_11.2.bb} | 13 +- 6 files changed, 31 insertions(+), 349 deletions(-) delete mode 100644 meta/recipes-devtools/gdb/gdb-11.1.inc rename meta/recipes-devtools/gdb/{gdb-cross-canadian_11.1.bb => gdb-cross-canadian_11.2.bb} (71%) rename meta/recipes-devtools/gdb/{gdb-cross_11.1.bb => gdb-cross_11.2.bb} (50%) delete mode 100644 meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch rename meta/recipes-devtools/gdb/{gdb_11.1.bb => gdb_11.2.bb} (80%) diff --git a/meta/recipes-devtools/gdb/gdb-11.1.inc b/meta/recipes-devtools/gdb/gdb-11.1.inc deleted file mode 100644 index 5364a880e3..0000000000 --- a/meta/recipes-devtools/gdb/gdb-11.1.inc +++ /dev/null @@ -1,19 +0,0 @@ -LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ - file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ - file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674" - -SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \ - file://0001-make-man-install-relative-to-DESTDIR.patch \ - file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \ - file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \ - file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \ - file://0006-use-asm-sgidefs.h.patch \ - file://0007-Change-order-of-CFLAGS.patch \ - file://0008-resolve-restrict-keyword-conflict.patch \ - file://0009-Fix-invalid-sigprocmask-call.patch \ - file://0010-gdbserver-ctrl-c-handling.patch \ - file://0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch \ - " -SRC_URI[sha256sum] = "cccfcc407b20d343fb320d4a9a2110776dd3165118ffd41f4b1b162340333f94" diff --git a/meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb b/meta/recipes-devtools/gdb/gdb-cross-canadian_11.2.bb similarity index 71% rename from meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb rename to meta/recipes-devtools/gdb/gdb-cross-canadian_11.2.bb index 301035940c..4ab2b7156d 100644 --- a/meta/recipes-devtools/gdb/gdb-cross-canadian_11.1.bb +++ b/meta/recipes-devtools/gdb/gdb-cross-canadian_11.2.bb @@ -1,3 +1,3 @@ require gdb-common.inc require gdb-cross-canadian.inc -require gdb-${PV}.inc +require gdb.inc diff --git a/meta/recipes-devtools/gdb/gdb-cross_11.1.bb b/meta/recipes-devtools/gdb/gdb-cross_11.2.bb similarity index 50% rename from meta/recipes-devtools/gdb/gdb-cross_11.1.bb rename to meta/recipes-devtools/gdb/gdb-cross_11.2.bb index 50cf159fdb..3b654a2f0d 100644 --- a/meta/recipes-devtools/gdb/gdb-cross_11.1.bb +++ b/meta/recipes-devtools/gdb/gdb-cross_11.2.bb @@ -1,2 +1,2 @@ require gdb-cross.inc -require gdb-${PV}.inc +require gdb.inc diff --git a/meta/recipes-devtools/gdb/gdb.inc b/meta/recipes-devtools/gdb/gdb.inc index 2c95ed3ca0..cf801b192b 100644 --- a/meta/recipes-devtools/gdb/gdb.inc +++ b/meta/recipes-devtools/gdb/gdb.inc @@ -1,11 +1,18 @@ -require gdb-common.inc - -inherit gettext pkgconfig - -#LDFLAGS:append = " -s" -#export CFLAGS:append=" -L${STAGING_LIBDIR}" - -# cross-canadian must not see this -PACKAGES =+ "gdbserver" -FILES:gdbserver = "${bindir}/gdbserver" +LICENSE = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \ + file://COPYING3;md5=d32239bcb673463ab874e80d47fae504 \ + file://COPYING3.LIB;md5=6a6a8e020838b23406c81b19c1d46df6 \ + file://COPYING.LIB;md5=9f604d8a4f8e74f4f5140845a21b6674" +SRC_URI = "${GNU_MIRROR}/gdb/gdb-${PV}.tar.xz \ + file://0001-make-man-install-relative-to-DESTDIR.patch \ + file://0002-mips-linux-nat-Define-_ABIO32-if-not-defined.patch \ + file://0003-ppc-ptrace-Define-pt_regs-uapi_pt_regs-on-GLIBC-syst.patch \ + file://0005-Dont-disable-libreadline.a-when-using-disable-static.patch \ + file://0006-use-asm-sgidefs.h.patch \ + file://0007-Change-order-of-CFLAGS.patch \ + file://0008-resolve-restrict-keyword-conflict.patch \ + file://0009-Fix-invalid-sigprocmask-call.patch \ + file://0010-gdbserver-ctrl-c-handling.patch \ + " +SRC_URI[sha256sum] = "1497c36a71881b8671a9a84a0ee40faab788ca30d7ba19d8463c3cc787152e32" diff --git a/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch b/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch deleted file mode 100644 index 6fc1859391..0000000000 --- a/meta/recipes-devtools/gdb/gdb/0011-AArch64-Make-gdbserver-register-set-selection-dynamic.patch +++ /dev/null @@ -1,317 +0,0 @@ -From eb79b2318066cafb75ffdce310e3bbd44f7c79e3 Mon Sep 17 00:00:00 2001 -From: Luis Machado -Date: Fri, 29 Oct 2021 14:54:36 -0300 -Subject: [PATCH] [AArch64] Make gdbserver register set selection dynamic - -The current register set selection mechanism for AArch64 is static, based -on a pre-populated array of register sets. - -This means that we might potentially probe register sets that are not -available. This is OK if the kernel errors out during ptrace, but probing the -tag_ctl register, for example, does not result in a ptrace error if the kernel -supports the tagged address ABI but not MTE (PR 28355). - -Making the register set selection dynamic, based on feature checks, solves -this and simplifies the code a bit. It allows us to list all of the register -sets only once, and pick and choose based on HWCAP/HWCAP2 or other properties. - -gdb/ChangeLog: - -2021-11-03 Luis Machado - - PR gdb/28355 - - * arch/aarch64.h (struct aarch64_features): New struct. - -gdbserver/ChangeLog: - -2021-11-03 Luis Machado - - PR gdb/28355 - - * linux-aarch64-low.cc (is_sve_tdesc): Remove. - (aarch64_target::low_arch_setup): Rework to adjust the register sets. - (aarch64_regsets): Update to list all register sets. - (aarch64_regsets_info, regs_info_aarch64): Replace NULL with nullptr. - (aarch64_sve_regsets, aarch64_sve_regsets_info) - (regs_info_aarch64_sve): Remove. - (aarch64_adjust_register_sets): New. - (aarch64_target::get_regs_info): Remove references to removed structs. - (initialize_low_arch): Likewise. - -[ChangeLog entry stripped so that patch applies cleanly] -Upstream-Status: Accepted ---- - -diff --git a/gdb/arch/aarch64.h b/gdb/arch/aarch64.h -index 0eb702c5b5e..95edb664b55 100644 ---- a/gdb/arch/aarch64.h -+++ b/gdb/arch/aarch64.h -@@ -22,6 +22,15 @@ - - #include "gdbsupport/tdesc.h" - -+/* Holds information on what architectural features are available. This is -+ used to select register sets. */ -+struct aarch64_features -+{ -+ bool sve = false; -+ bool pauth = false; -+ bool mte = false; -+}; -+ - /* Create the aarch64 target description. A non zero VQ value indicates both - the presence of SVE and the Vector Quotient - the number of 128bit chunks in - an SVE Z register. HAS_PAUTH_P indicates the presence of the PAUTH -diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc -index daccfef746e..9a8cb4169a7 100644 ---- a/gdbserver/linux-aarch64-low.cc -+++ b/gdbserver/linux-aarch64-low.cc -@@ -196,16 +196,6 @@ is_64bit_tdesc (void) - return register_size (regcache->tdesc, 0) == 8; - } - --/* Return true if the regcache contains the number of SVE registers. */ -- --static bool --is_sve_tdesc (void) --{ -- struct regcache *regcache = get_thread_regcache (current_thread, 0); -- -- return tdesc_contains_feature (regcache->tdesc, "org.gnu.gdb.aarch64.sve"); --} -- - static void - aarch64_fill_gregset (struct regcache *regcache, void *buf) - { -@@ -680,40 +670,6 @@ aarch64_target::low_new_fork (process_info *parent, - *child->priv->arch_private = *parent->priv->arch_private; - } - --/* Matches HWCAP_PACA in kernel header arch/arm64/include/uapi/asm/hwcap.h. */ --#define AARCH64_HWCAP_PACA (1 << 30) -- --/* Implementation of linux target ops method "low_arch_setup". */ -- --void --aarch64_target::low_arch_setup () --{ -- unsigned int machine; -- int is_elf64; -- int tid; -- -- tid = lwpid_of (current_thread); -- -- is_elf64 = linux_pid_exe_is_elf_64_file (tid, &machine); -- -- if (is_elf64) -- { -- uint64_t vq = aarch64_sve_get_vq (tid); -- unsigned long hwcap = linux_get_hwcap (8); -- unsigned long hwcap2 = linux_get_hwcap2 (8); -- bool pauth_p = hwcap & AARCH64_HWCAP_PACA; -- /* MTE is AArch64-only. */ -- bool mte_p = hwcap2 & HWCAP2_MTE; -- -- current_process ()->tdesc -- = aarch64_linux_read_description (vq, pauth_p, mte_p); -- } -- else -- current_process ()->tdesc = aarch32_linux_read_description (); -- -- aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread)); --} -- - /* Wrapper for aarch64_sve_regs_copy_to_reg_buf. */ - - static void -@@ -730,21 +686,36 @@ aarch64_sve_regs_copy_from_regcache (struct regcache *regcache, void *buf) - return aarch64_sve_regs_copy_from_reg_buf (regcache, buf); - } - -+/* Array containing all the possible register sets for AArch64/Linux. During -+ architecture setup, these will be checked against the HWCAP/HWCAP2 bits for -+ validity and enabled/disabled accordingly. -+ -+ Their sizes are set to 0 here, but they will be adjusted later depending -+ on whether each register set is available or not. */ - static struct regset_info aarch64_regsets[] = - { -+ /* GPR registers. */ - { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS, -- sizeof (struct user_pt_regs), GENERAL_REGS, -+ 0, GENERAL_REGS, - aarch64_fill_gregset, aarch64_store_gregset }, -+ /* Floating Point (FPU) registers. */ - { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_FPREGSET, -- sizeof (struct user_fpsimd_state), FP_REGS, -+ 0, FP_REGS, - aarch64_fill_fpregset, aarch64_store_fpregset - }, -+ /* Scalable Vector Extension (SVE) registers. */ -+ { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_SVE, -+ 0, EXTENDED_REGS, -+ aarch64_sve_regs_copy_from_regcache, aarch64_sve_regs_copy_to_regcache -+ }, -+ /* PAC registers. */ - { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_PAC_MASK, -- AARCH64_PAUTH_REGS_SIZE, OPTIONAL_REGS, -- NULL, aarch64_store_pauthregset }, -+ 0, OPTIONAL_REGS, -+ nullptr, aarch64_store_pauthregset }, -+ /* Tagged address control / MTE registers. */ - { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_TAGGED_ADDR_CTRL, -- AARCH64_LINUX_SIZEOF_MTE, OPTIONAL_REGS, aarch64_fill_mteregset, -- aarch64_store_mteregset }, -+ 0, OPTIONAL_REGS, -+ aarch64_fill_mteregset, aarch64_store_mteregset }, - NULL_REGSET - }; - -@@ -752,47 +723,95 @@ static struct regsets_info aarch64_regsets_info = - { - aarch64_regsets, /* regsets */ - 0, /* num_regsets */ -- NULL, /* disabled_regsets */ -+ nullptr, /* disabled_regsets */ - }; - - static struct regs_info regs_info_aarch64 = - { -- NULL, /* regset_bitmap */ -- NULL, /* usrregs */ -+ nullptr, /* regset_bitmap */ -+ nullptr, /* usrregs */ - &aarch64_regsets_info, - }; - --static struct regset_info aarch64_sve_regsets[] = -+/* Given FEATURES, adjust the available register sets by setting their -+ sizes. A size of 0 means the register set is disabled and won't be -+ used. */ -+ -+static void -+aarch64_adjust_register_sets (const struct aarch64_features &features) - { -- { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_PRSTATUS, -- sizeof (struct user_pt_regs), GENERAL_REGS, -- aarch64_fill_gregset, aarch64_store_gregset }, -- { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_SVE, -- SVE_PT_SIZE (AARCH64_MAX_SVE_VQ, SVE_PT_REGS_SVE), EXTENDED_REGS, -- aarch64_sve_regs_copy_from_regcache, aarch64_sve_regs_copy_to_regcache -- }, -- { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_PAC_MASK, -- AARCH64_PAUTH_REGS_SIZE, OPTIONAL_REGS, -- NULL, aarch64_store_pauthregset }, -- { PTRACE_GETREGSET, PTRACE_SETREGSET, NT_ARM_TAGGED_ADDR_CTRL, -- AARCH64_LINUX_SIZEOF_MTE, OPTIONAL_REGS, aarch64_fill_mteregset, -- aarch64_store_mteregset }, -- NULL_REGSET --}; -+ struct regset_info *regset; - --static struct regsets_info aarch64_sve_regsets_info = -- { -- aarch64_sve_regsets, /* regsets. */ -- 0, /* num_regsets. */ -- NULL, /* disabled_regsets. */ -- }; -+ for (regset = aarch64_regsets; regset->size >= 0; regset++) -+ { -+ switch (regset->nt_type) -+ { -+ case NT_PRSTATUS: -+ /* General purpose registers are always present. */ -+ regset->size = sizeof (struct user_pt_regs); -+ break; -+ case NT_FPREGSET: -+ /* This is unavailable when SVE is present. */ -+ if (!features.sve) -+ regset->size = sizeof (struct user_fpsimd_state); -+ break; -+ case NT_ARM_SVE: -+ if (features.sve) -+ regset->size = SVE_PT_SIZE (AARCH64_MAX_SVE_VQ, SVE_PT_REGS_SVE); -+ break; -+ case NT_ARM_PAC_MASK: -+ if (features.pauth) -+ regset->size = AARCH64_PAUTH_REGS_SIZE; -+ break; -+ case NT_ARM_TAGGED_ADDR_CTRL: -+ if (features.mte) -+ regset->size = AARCH64_LINUX_SIZEOF_MTE; -+ break; -+ default: -+ gdb_assert_not_reached ("Unknown register set found."); -+ } -+ } -+} - --static struct regs_info regs_info_aarch64_sve = -- { -- NULL, /* regset_bitmap. */ -- NULL, /* usrregs. */ -- &aarch64_sve_regsets_info, -- }; -+/* Matches HWCAP_PACA in kernel header arch/arm64/include/uapi/asm/hwcap.h. */ -+#define AARCH64_HWCAP_PACA (1 << 30) -+ -+/* Implementation of linux target ops method "low_arch_setup". */ -+ -+void -+aarch64_target::low_arch_setup () -+{ -+ unsigned int machine; -+ int is_elf64; -+ int tid; -+ -+ tid = lwpid_of (current_thread); -+ -+ is_elf64 = linux_pid_exe_is_elf_64_file (tid, &machine); -+ -+ if (is_elf64) -+ { -+ struct aarch64_features features; -+ -+ uint64_t vq = aarch64_sve_get_vq (tid); -+ features.sve = (vq > 0); -+ /* A-profile PAC is 64-bit only. */ -+ features.pauth = linux_get_hwcap (8) & AARCH64_HWCAP_PACA; -+ /* A-profile MTE is 64-bit only. */ -+ features.mte = linux_get_hwcap2 (8) & HWCAP2_MTE; -+ -+ current_process ()->tdesc -+ = aarch64_linux_read_description (vq, features.pauth, features.mte); -+ -+ /* Adjust the register sets we should use for this particular set of -+ features. */ -+ aarch64_adjust_register_sets (features); -+ } -+ else -+ current_process ()->tdesc = aarch32_linux_read_description (); -+ -+ aarch64_linux_get_debug_reg_capacity (lwpid_of (current_thread)); -+} - - /* Implementation of linux target ops method "get_regs_info". */ - -@@ -802,9 +821,7 @@ aarch64_target::get_regs_info () - if (!is_64bit_tdesc ()) - return ®s_info_aarch32; - -- if (is_sve_tdesc ()) -- return ®s_info_aarch64_sve; -- -+ /* AArch64 64-bit registers. */ - return ®s_info_aarch64; - } - -@@ -3294,5 +3311,4 @@ initialize_low_arch (void) - initialize_low_arch_aarch32 (); - - initialize_regsets_info (&aarch64_regsets_info); -- initialize_regsets_info (&aarch64_sve_regsets_info); - } --- -2.27.0 - diff --git a/meta/recipes-devtools/gdb/gdb_11.1.bb b/meta/recipes-devtools/gdb/gdb_11.2.bb similarity index 80% rename from meta/recipes-devtools/gdb/gdb_11.1.bb rename to meta/recipes-devtools/gdb/gdb_11.2.bb index e73e3a2c5c..9c6db4ca2c 100644 --- a/meta/recipes-devtools/gdb/gdb_11.1.bb +++ b/meta/recipes-devtools/gdb/gdb_11.2.bb @@ -1,5 +1,15 @@ +require gdb-common.inc + +inherit gettext pkgconfig + +#LDFLAGS:append = " -s" +#export CFLAGS:append=" -L${STAGING_LIBDIR}" + +# cross-canadian must not see this +PACKAGES =+ "gdbserver" +FILES:gdbserver = "${bindir}/gdbserver" + require gdb.inc -require gdb-${PV}.inc inherit python3-dir @@ -26,3 +36,4 @@ EOF chmod +x ${WORKDIR}/python fi } + From patchwork Sun Feb 6 21:53:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3335 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5768C4332F for ; Sun, 6 Feb 2022 21:53:24 +0000 (UTC) Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by mx.groups.io with SMTP id smtpd.web09.14363.1644184403163082510 for ; Sun, 06 Feb 2022 13:53:23 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=F1LfNYBb; spf=pass (domain: gmail.com, ip: 209.85.218.50, mailfrom: alex.kanavin@gmail.com) Received: by mail-ej1-f50.google.com with SMTP id j14so13104017ejy.6 for ; Sun, 06 Feb 2022 13:53:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xwLkBYLsdE+2FitukB4SsRRFAYuo4XBOEg8u7APTgR4=; b=F1LfNYBbatW8EpC/a5kml9xrT1lNL0QT6XEoclHIQUjCnphQJQsPEVKgqiA4HH8vLw DI5oYUwfr+UuUsFAh1gWgU/fInRaZyN+dO5P2xSXcRjg1WFAYnQqbEqtnRyc9/EbaI2r jx7aHC/rjoOu6Uf1YPo6auwSql0uJxSngQ0pBf2ePNorPoCzQmolFMwX6Mc9mekPSICu Q6k7fEMw0WvEn9vRhmZEr86/QPaXUetw4TBvgEB+oj/v1Yjz46QIJksNMBngPoSSQtK3 BexCfo7nnnn695z/+i+gZSiZwS2F9A622SHBo/w+rXWETTMuyBIAs/uXD4z2uZEK98KQ e3Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xwLkBYLsdE+2FitukB4SsRRFAYuo4XBOEg8u7APTgR4=; b=01vrvrkapCaUchMSaWDOU/Z//GPVZZUVoTciUFTOlsUFCZkTcA4Hlud4lANxgXhFXj 0rqP+7C1t8irKCmWyYsj/WiMkrW0qcqf4X/Y6KYeup8Xy9tSj5v68khl8v+HoGizbmcy ELeRwTnC/2V50EIF/Enwj3f07O+mZloBEvuohpW5MDiwn7lrz5OKlE1OuXDL+26mmHVg CiJ4MskeYdcpoM+B4+cI4INwkRJC/d2vlTSmPe0yndt9SrtK46s/hTdjvNp2BfRD2znz b5Ab3Umd0BqRwM5tpZ4WywbZkFw3MkpsckuAQ10xX06SVItRs7d74oNhtSdtzzJvY0Cf 1gew== X-Gm-Message-State: AOAM532liZckuzHiRYzmPqbKSB/WHsetj2+c/+5iMEjtPhoUc1YfCWLW yIJ2WrXapB4eyfh5KVL1brGto0DBeYI= X-Google-Smtp-Source: ABdhPJy7EuLLiNaGX/QErTpmdUNzaCi/5kAnKGILSDl8hMrFRfVsd8whck8dbmfB+nKppWXjLuqMOA== X-Received: by 2002:a17:907:7e85:: with SMTP id qb5mr7587092ejc.557.1644184401579; Sun, 06 Feb 2022 13:53:21 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:21 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 3/8] insane.bbclass: use multiprocessing for collecting 'objdump -p' output Date: Sun, 6 Feb 2022 22:53:11 +0100 Message-Id: <20220206215316.367469-3-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220206215316.367469-1-alex@linutronix.de> References: <20220206215316.367469-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161415 This was prompted by ltp's unreasonably long package_qa times; it has a massive amount of executables and insane runs objdump for all of them, serially. This reduces the time from 4 minutes to 1m20s on my machine. Signed-off-by: Alexander Kanavin --- meta/classes/insane.bbclass | 22 ++++++++++++++++++++-- meta/lib/oe/qa.py | 6 ++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 11532ecd08..a13a947bcf 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass @@ -684,6 +684,10 @@ def package_qa_recipe(warnfuncs, errorfuncs, pn, d): return len(errors) == 0 +def prepopulate_objdump_p(elf, d): + output = elf.run_objdump("-p", d) + return (elf.name, output) + # Walk over all files in a directory and call func def package_qa_walk(warnfuncs, errorfuncs, package, d): #if this will throw an exception, then fix the dict above @@ -692,18 +696,32 @@ def package_qa_walk(warnfuncs, errorfuncs, package, d): warnings = {} errors = {} + elves = {} for path in pkgfiles[package]: elf = None if os.path.isfile(path): elf = oe.qa.ELFFile(path) try: elf.open() + elf.close() except oe.qa.NotELFFileError: elf = None + if elf: + elves[path] = elf + + results = oe.utils.multiprocess_launch(prepopulate_objdump_p, elves.values(), d, extraargs=(d,)) + for item in results: + elves[item[0]].set_objdump("-p", item[1]) + + for path in pkgfiles[package]: + if path in elves: + elves[path].open() for func in warnfuncs: - func(path, package, d, elf, warnings) + func(path, package, d, elves.get(path), warnings) for func in errorfuncs: - func(path, package, d, elf, errors) + func(path, package, d, elves.get(path), errors) + if path in elves: + elves[path].close() for w in warnings: oe.qa.handle_error(w, warnings[w], d) diff --git a/meta/lib/oe/qa.py b/meta/lib/oe/qa.py index efab7e8564..89acd3ead0 100644 --- a/meta/lib/oe/qa.py +++ b/meta/lib/oe/qa.py @@ -48,6 +48,9 @@ class ELFFile: return self def __exit__(self, exc_type, exc_value, traceback): + self.close() + + def close(self): if self.data: self.data.close() @@ -128,6 +131,9 @@ class ELFFile: """ return self.getShort(ELFFile.E_MACHINE) + def set_objdump(self, cmd, output): + self.objdump_output[cmd] = output + def run_objdump(self, cmd, d): import bb.process import sys From patchwork Sun Feb 6 21:53:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3336 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FFE2C433FE for ; Sun, 6 Feb 2022 21:53:24 +0000 (UTC) Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) by mx.groups.io with SMTP id smtpd.web12.14508.1644184403933710960 for ; Sun, 06 Feb 2022 13:53:24 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Nt9DdR6O; spf=pass (domain: gmail.com, ip: 209.85.218.47, mailfrom: alex.kanavin@gmail.com) Received: by mail-ej1-f47.google.com with SMTP id a8so36452694ejc.8 for ; Sun, 06 Feb 2022 13:53:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=L+Kr78ipKWTNbQarp80O48le4mmtKuRGz6ar8F5ergs=; b=Nt9DdR6OOdWYrYXo49h7OV7NcbmRx7Yyd8yfWHwDuuc9dCZCR9Yp1bU9Ha882X4QUx 7x+eCeN/QxfgpuhJ9rG3xZtmxdLoDrfwOgfsvlbXjOJnm08HPw0fpXHNt35um4YPILaM YjZWjeMofPx/VgqXfFwgnet4rW3tg7f9jgearFk4fPBKUIJQMGL6Klg/Blk9bU0H3K4P C4Ouw7Q+7/eddeKN+5odBZ6ixT1jLNqzya47Cua1rz4/o1F5qSpWQxfQyMxqLBvWEL+g JuGKmkm5jjedaPn9iVlnHhaWKpThWAmVCNECtgitWl+UIPpTK6wJXHSxZtgfbagEIbjf mK5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=L+Kr78ipKWTNbQarp80O48le4mmtKuRGz6ar8F5ergs=; b=COVw7lXLVDZF1kH/7Qs9HgvUUdqYrulCE8PNH33cpoCaJRzLgFyfiAjDRanutI03lC r0tlDsN50jXszfnrT9XbZVaXLbJ2swLxpGyCRF4V0PtrGA9ydzszXly1BO07cbjJ8A/U 5K9qypm1r3Vufi0MTZOvWAt5zIkMZrYWUwUr67oLl3gSPIo9TTn/2T19Rm0JDQeLw4uv CgTp0zRIa9/Sc7n0g+LIOXxSjQ0E8yjDizkXmaZ3tUHAcUTep4w0q54GxcvCjrsHA7d8 970/n9/p9qjizkYnrP0lw8Anc1CB3Bq3WP4Or8o7j4ZIehE1dF2UnghIN17W4lPNnFK5 oWdg== X-Gm-Message-State: AOAM533D69rzb8JrzDm2KFNE2sCWQkM5J+aT5HuX9LUKCMF97ciDy2ws 7Bvs5eccjwTr7GXK31a6sKVzrpX6lQY= X-Google-Smtp-Source: ABdhPJxHc5Z6CRiWgTY00n2Y0D9zOhuanlAQsP6269fT86l6o4Tib+I/+BcRERGhTqqjVWlZ09vuuA== X-Received: by 2002:a17:906:4d2:: with SMTP id g18mr7751318eja.133.1644184402411; Sun, 06 Feb 2022 13:53:22 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:22 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 4/8] llvm: update 12.0.1 -> 13.0.1 Date: Sun, 6 Feb 2022 22:53:12 +0100 Message-Id: <20220206215316.367469-4-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220206215316.367469-1-alex@linutronix.de> References: <20220206215316.367469-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:24 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161416 Signed-off-by: Alexander Kanavin --- meta/conf/distro/include/tcmode-default.inc | 2 +- meta/recipes-devtools/llvm/llvm_git.bb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index 161142cec5..372f8fe59a 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc @@ -26,7 +26,7 @@ QEMUVERSION ?= "6.2%" GOVERSION ?= "1.17%" # This can not use wildcards like 8.0.% since it is also used in mesa to denote # llvm version being used, so always bump it with llvm recipe version bump -LLVMVERSION ?= "12.0.1" +LLVMVERSION ?= "13.0.1" RUSTVERSION ?= "1.58%" PREFERRED_VERSION_gcc ?= "${GCCVERSION}" diff --git a/meta/recipes-devtools/llvm/llvm_git.bb b/meta/recipes-devtools/llvm/llvm_git.bb index d9efa53499..9400bf0821 100644 --- a/meta/recipes-devtools/llvm/llvm_git.bb +++ b/meta/recipes-devtools/llvm/llvm_git.bb @@ -19,7 +19,7 @@ inherit cmake pkgconfig PROVIDES += "llvm${PV}" -PV = "12.0.1" +PV = "13.0.1" MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}" @@ -27,7 +27,7 @@ LLVM_RELEASE = "${PV}" LLVM_DIR = "llvm${LLVM_RELEASE}" BRANCH = "release/${MAJOR_VERSION}.x" -SRCREV = "fed41342a82f5a3a9201819a82bf7a48313e296b" +SRCREV = "75e33f71c2dae584b13a7d1186ae0a038ba98838" SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \ file://0006-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;striplevel=2 \ file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \ From patchwork Sun Feb 6 21:53:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3337 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7B07C43217 for ; Sun, 6 Feb 2022 21:53:25 +0000 (UTC) Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) by mx.groups.io with SMTP id smtpd.web09.14364.1644184404484068360 for ; Sun, 06 Feb 2022 13:53:24 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=fytxugYe; spf=pass (domain: gmail.com, ip: 209.85.208.47, mailfrom: alex.kanavin@gmail.com) Received: by mail-ed1-f47.google.com with SMTP id cz16so7664461edb.8 for ; Sun, 06 Feb 2022 13:53:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bGJuodjA8v4dDLiMdV5+f4n+JdNhtoj0NwYzxyKQVm0=; b=fytxugYeoA3MihhGwkdwgD3dK3fNWTqFIig1AMMyyHwnaGKpgJU6MwPPDFb9i4Tt2y ZxMzKGTFcgNT8RPuyPPozqKAs6HKVGCLMWLa/fneKpY2ogECWOwXn416GhiRxNz1Yjj9 aAY9ABuLCtHwdLpULP2551rjuNGkQ8vAuaYKpVxdbkz7pVrTZtmRT6e0le6mX1aQJQV7 l/trtlNSt08bKKAUyDfREq4pvNFvXR6u8E1AhHd5cfgk1Fc7lrypUh/ai6gpCrJcaZy/ OhBmfIjrxz5Qjft5q6WVTrO2CbdY7hzFC6TDZXqAsatoC4k8kXmYp21koNM/VH77yUM8 wDOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bGJuodjA8v4dDLiMdV5+f4n+JdNhtoj0NwYzxyKQVm0=; b=xEP7e/cLffepy/7N37PMnuSJRQXkQxi5CJ5ivu5cbTLdL5IID4HSeGHc+0aPw3BN9f 2UBn1l6AJypwTPLSzKoHPIkOJt7BSikHiORg6bHtCTu1EXjIIuB9KkbSGzGBOKRF6MWn GFRhkErEMcBet/AXEm+/t3FRPxPZIwRbjZgbvssbx063p8M0ePjsm1hQtT5c9M7cC0n0 zA7wfecX6K63j8yDR5zU+lE58lOVtlS/tg87r1emZnUgC7Zuk4P76RP9uF5SZ8ORM4wX YOPqcDspgRsEXGqSQa5uINDHDpUq1/+X+jGiD/KwMAhYEPzKKrUiHK9MxLHjuvh0KNo4 b39w== X-Gm-Message-State: AOAM532cuJsPz9MXIxx3CCsAaNinJ/tpWIfzbea0vsEp/nN5Y6Un+ecj lGjhD4L3uYivXXJckDdRJHFd1yBNFcA= X-Google-Smtp-Source: ABdhPJyYS/p9YAEZDV7eH1n7tNqby0yqG1M2eR3tGOD5tUr/Y7lJeBFrmlQIuFRnTYrxAglWRMTffA== X-Received: by 2002:a05:6402:2747:: with SMTP id z7mr10620186edd.227.1644184403124; Sun, 06 Feb 2022 13:53:23 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:22 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 5/8] python3-numpy: update 1.22.1 -> 1.22.2 Date: Sun, 6 Feb 2022 22:53:13 +0100 Message-Id: <20220206215316.367469-5-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220206215316.367469-1-alex@linutronix.de> References: <20220206215316.367469-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:25 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161417 Replace an ad hoc fix via patch with an upstream one. Signed-off-by: Alexander Kanavin --- ...y-core-setup.py-disable-svml-for-now.patch | 29 ------------------- ...umpy_1.22.1.bb => python3-numpy_1.22.2.bb} | 7 +++-- 2 files changed, 5 insertions(+), 31 deletions(-) delete mode 100644 meta/recipes-devtools/python/python3-numpy/0001-numpy-core-setup.py-disable-svml-for-now.patch rename meta/recipes-devtools/python/{python3-numpy_1.22.1.bb => python3-numpy_1.22.2.bb} (93%) diff --git a/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-setup.py-disable-svml-for-now.patch b/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-setup.py-disable-svml-for-now.patch deleted file mode 100644 index 66e322116a..0000000000 --- a/meta/recipes-devtools/python/python3-numpy/0001-numpy-core-setup.py-disable-svml-for-now.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0f0601e79f9ce7614d157284523e6cd8af2259d5 Mon Sep 17 00:00:00 2001 -From: Alexander Kanavin -Date: Wed, 5 Jan 2022 12:12:47 +0100 -Subject: [PATCH] numpy/core/setup.py: disable svml for now - -The check really doesn't work in cross compiling, -as it is using host python to see what arch we're -building on. Issue reported upstream: -https://github.com/numpy/numpy/issues/20736 - -Upstream-Status: Inappropriate [needs upstream fix] -Signed-off-by: Alexander Kanavin ---- - numpy/core/setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/numpy/core/setup.py b/numpy/core/setup.py -index a5f423d..945f2dd 100644 ---- a/numpy/core/setup.py -+++ b/numpy/core/setup.py -@@ -70,7 +70,7 @@ def can_link_svml(): - """ - machine = platform.machine() - system = platform.system() -- return "x86_64" in machine and system == "Linux" -+ return False - - def check_svml_submodule(svmlpath): - if not os.path.exists(svmlpath + "/README.md"): diff --git a/meta/recipes-devtools/python/python3-numpy_1.22.1.bb b/meta/recipes-devtools/python/python3-numpy_1.22.2.bb similarity index 93% rename from meta/recipes-devtools/python/python3-numpy_1.22.1.bb rename to meta/recipes-devtools/python/python3-numpy_1.22.2.bb index b79ce61fbf..ba0a777551 100644 --- a/meta/recipes-devtools/python/python3-numpy_1.22.1.bb +++ b/meta/recipes-devtools/python/python3-numpy_1.22.2.bb @@ -11,9 +11,8 @@ SRC_URI = "https://github.com/${SRCNAME}/${SRCNAME}/releases/download/v${PV}/${S file://0001-Don-t-search-usr-and-so-on-for-libraries-by-default-.patch \ file://0001-numpy-core-Define-RISCV-32-support.patch \ file://run-ptest \ - file://0001-numpy-core-setup.py-disable-svml-for-now.patch \ " -SRC_URI[sha256sum] = "dd1968402ae20dfd59b34acd799b494be340c774f6295e9bf1c2b9842a5e416d" +SRC_URI[sha256sum] = "093d513a460fd94f94c16193c3ef29b2d69a33e482071e3d6d6e561a700587a6" UPSTREAM_CHECK_URI = "https://github.com/numpy/numpy/releases" UPSTREAM_CHECK_REGEX = "(?P\d+(\.\d+)+)\.tar" @@ -26,6 +25,10 @@ S = "${WORKDIR}/numpy-${PV}" CLEANBROKEN = "1" +do_compile:prepend() { + export NPY_DISABLE_SVML=1 +} + FILES:${PN}-staticdev += "${PYTHON_SITEPACKAGES_DIR}/numpy/core/lib/*.a ${PYTHON_SITEPACKAGES_DIR}/numpy/random/lib/*.a" # install what is needed for numpy.test() From patchwork Sun Feb 6 21:53:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3338 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A7890C4321E for ; Sun, 6 Feb 2022 21:53:26 +0000 (UTC) Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) by mx.groups.io with SMTP id smtpd.web09.14366.1644184405285969411 for ; Sun, 06 Feb 2022 13:53:25 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=d4LnGHqd; spf=pass (domain: gmail.com, ip: 209.85.218.50, mailfrom: alex.kanavin@gmail.com) Received: by mail-ej1-f50.google.com with SMTP id og43so12519245ejc.0 for ; Sun, 06 Feb 2022 13:53:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=pQU8DYNZ7xjQxdMFYZDNqNdvCM+07b5LD8ImkErQ6qo=; b=d4LnGHqdt2gmV9/XJs+FM+S3ZbdTy3LbCbKiBDHszAtmU7xt16XtqBB+kilQ9F9gBK k41ngT6iEX/TFlrLq+H7Bx2XCstDyASMjPGRKo/6pW25CvsgWE94wo8QP7L5YlsyB6BB Ycx1oD8HvAzLscKrW8aZlsUbZ7RKUcN+bU5J21Fx/X9u35wSLH+doLtCFM26GQuIGnL8 px+iX/NWyfsgBByPsQ4tzjxVsz+/JI+90i1nYOl14v93w6VxP42WJ9nhCR/g0pu4j2+T 4B+Am0O08uLdCSUc95NyjWFtBc0PCkvbqzbw+LTE85I41I9pCFqnJk8tcYfyQhYfnt5A 4dIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=pQU8DYNZ7xjQxdMFYZDNqNdvCM+07b5LD8ImkErQ6qo=; b=nnN1oyOSVneyMQLvmoLTIIe/HzHrxyX36k0pBU34gvgr8cj6ONeCVs26yGNQl7vDIS 4f65pNPXI8REMCV1MIwUlCz5CgWXSD0b7lCo2MTkdVCgEiAUda6I8SUBsxTEfpxtMbCW 45XYQe8tHiuR9n6kLVQkOyZSSL17+yVFlsm+432BrBWfUslNBUFQ9w2h7c+dT2XRabom rhdfM6zy/+9++5JuJd79OmFfv/Z7ISPPHsJc6fJNfxCUXy+S9xINvCcsE1FDUs4y3mWG xmv9PdxnVXiwCsqKNaZwGzJiCYKCxrNeuANjMwwefyKZsqTGq0OqP+888uzOa6HICME3 L5Bw== X-Gm-Message-State: AOAM5331ZMY36mYbbr68lDe4H1/KQh2YOAjoLVEG/wG+sYNhwXAWVoNU 20vuuRpz2Z4laUJkWs9qngI7vuaT6OM= X-Google-Smtp-Source: ABdhPJyoOv+ehXsQ8e4JKrKFuKGmIz5DQZ5Pla+BC460gF6r1H2cWowGEoYnsOHVEihgd2ajAs/QsA== X-Received: by 2002:a17:907:1b1a:: with SMTP id mp26mr7503633ejc.450.1644184403854; Sun, 06 Feb 2022 13:53:23 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:23 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 6/8] runqemu: preload uninative libraries when host gl drivers are in use Date: Sun, 6 Feb 2022 22:53:14 +0100 Message-Id: <20220206215316.367469-6-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220206215316.367469-1-alex@linutronix.de> References: <20220206215316.367469-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161418 Some of the host distributions build the drivers in a way (RPATH/RUNPATH) that tricks uninative loader into loading pieces of the host libc, if the same pieces haven't been previously loaded by native binaries. Mixing the two libc versions leads to failures. This change ensures that the correct (uninative) versions are always in use. Signed-off-by: Alexander Kanavin --- meta/classes/qemuboot.bbclass | 2 +- scripts/runqemu | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass index cc1cbce69d..229bd88527 100644 --- a/meta/classes/qemuboot.bbclass +++ b/meta/classes/qemuboot.bbclass @@ -109,7 +109,7 @@ def qemuboot_vars(d): build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE', 'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME', 'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE', - 'STAGING_DIR_HOST', 'SERIAL_CONSOLES'] + 'STAGING_DIR_HOST', 'SERIAL_CONSOLES', 'UNINATIVE_LOADER'] return build_vars + [k for k in d.keys() if k.startswith('QB_')] do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}" diff --git a/scripts/runqemu b/scripts/runqemu index 4e05c1bb15..d60cb2e152 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -461,6 +461,14 @@ class BaseConfig(object): raise RunQemuError("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.") os.environ['LIBGL_DRIVERS_PATH'] = dripath.decode('utf-8').strip() + # This preloads uninative libc pieces and therefore ensures that RPATH/RUNPATH + # in host mesa drivers doesn't trick uninative into loading host libc. + preload_items = ['libdl.so.2', 'librt.so.1', 'libpthread.so.0'] + uninative_path = os.path.dirname(self.get("UNINATIVE_LOADER")) + if os.path.exists(uninative_path): + preload_paths = [os.path.join(uninative_path, i) for i in preload_items] + os.environ['LD_PRELOAD'] = " ".join(preload_paths) + def check_args(self): for debug in ("-d", "--debug"): if debug in sys.argv: From patchwork Sun Feb 6 21:53:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3339 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A58A2C43219 for ; Sun, 6 Feb 2022 21:53:26 +0000 (UTC) Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by mx.groups.io with SMTP id smtpd.web11.14175.1644184406049643446 for ; Sun, 06 Feb 2022 13:53:26 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=WPX432p7; spf=pass (domain: gmail.com, ip: 209.85.218.51, mailfrom: alex.kanavin@gmail.com) Received: by mail-ej1-f51.google.com with SMTP id s13so36499260ejy.3 for ; Sun, 06 Feb 2022 13:53:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=X6yU64S3Mg5sCFr1Nz74j46JcmCdewtGEzlfCSHCN74=; b=WPX432p7L8X7vUwaBTiHu0t/UkUqVkbyBInhkiwSljt72l2ZAu1vffcfgjKwo7WN51 kywk0mIUu6wnrgtCvKTRbcRbj9jCrpkfPpjZIX3j8AGDjXnL0/EDJJdmGm4PiYAz+jmi QBhO8GOTWtuivT9SGaqjmkdTqGX4JeJEvQjq6vwLjtuLbGs6jMQIpE3gYTAinH2di8e+ tlTl4muBd1s8gbTrukNbEmpSQxi1gsdYtFNrMqlxE7WE5Yvf9p7G8/wOfelYYfKfeuFi w7zvUiwZ8s4DXbJq4NoZSTTEw9qlTBfkAjEIn2mxC3dBcqhvLa756EOFev058+YkNWG6 EIkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=X6yU64S3Mg5sCFr1Nz74j46JcmCdewtGEzlfCSHCN74=; b=TKWuIGP8dt2ctb1/LbLZQewszGYMR9Rok60Cj133MGC2yS1oYzaOJ6BgNG8grfpwE9 jgQbzRrPVPZ2g82fDNeax1gJhIgIRlZ8KKoLYPF3FYyeeU1pqm5CqUOyAoL/GLaQ62Y0 2dZu0K6Qzv4L2F1notvQ75/fmwtwyZMcdKHx11JLf2yd2eOXqdKOgg6qJLNdVz3Eiwhk nFR/gLRjSgTi9s7YCB9H0+MOVucvKEmwTul6AVdVx+JyQYeCd5JATFSJ5npZ7Rprrco/ Nohl7WCPUjVM6/x9chAizecr+yjHckWLf0zKrdiNmhe/Lc55aChXf5+i2irjw0p/WaYH tfLQ== X-Gm-Message-State: AOAM533Sk9Odz0MgE8hyVpcmdL53SmjFfrH8DwUSpBSxZMH9r5Qabm6/ ru0mZy8MZa2hmyczb3U2G0h504tZJV8= X-Google-Smtp-Source: ABdhPJxJBAVsuHh6vPqCzJiWJPO4v3gAbmYSyocN/OhoIAzAdb5r9n93PHDcaFjsuhpr/qkmCAfLeQ== X-Received: by 2002:a17:907:f9c:: with SMTP id kb28mr684593ejc.213.1644184404644; Sun, 06 Feb 2022 13:53:24 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:24 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 7/8] qemu: replace a gtk wrapper with directly setting environment from runqemu Date: Sun, 6 Feb 2022 22:53:15 +0100 Message-Id: <20220206215316.367469-7-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220206215316.367469-1-alex@linutronix.de> References: <20220206215316.367469-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161419 The wrapper is executed by host bash, and host bash refuses to run when pseudo libc is preloaded via LD_PRELOAD (which is the case when gl is enabled). Only the fontconfig setting is carried over as local testing showed that only that is necessary for the gui to look ok nowadays; adjust further if necessary. Signed-off-by: Alexander Kanavin --- meta/recipes-devtools/qemu/qemu-native.inc | 4 ---- meta/recipes-devtools/qemu/qemu.inc | 11 ----------- meta/recipes-devtools/qemu/qemu_6.2.0.bb | 4 ---- scripts/runqemu | 1 + 4 files changed, 1 insertion(+), 19 deletions(-) diff --git a/meta/recipes-devtools/qemu/qemu-native.inc b/meta/recipes-devtools/qemu/qemu-native.inc index 5d3ba3486c..d9acc613f9 100644 --- a/meta/recipes-devtools/qemu/qemu-native.inc +++ b/meta/recipes-devtools/qemu/qemu-native.inc @@ -5,7 +5,3 @@ inherit native EXTRA_OEMAKE:append = " LD='${LD}' AR='${AR}' OBJCOPY='${OBJCOPY}' LDFLAGS='${LDFLAGS}'" LDFLAGS:append = " -fuse-ld=bfd" - -do_install:append() { - ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} -} diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc index 843de3337a..325118cfb3 100644 --- a/meta/recipes-devtools/qemu/qemu.inc +++ b/meta/recipes-devtools/qemu/qemu.inc @@ -138,17 +138,6 @@ do_install:append() { } # END of qemu-mips workaround -make_qemu_wrapper() { - gdk_pixbuf_module_file=`pkg-config --variable=gdk_pixbuf_cache_file gdk-pixbuf-2.0` - - for tool in `ls ${D}${bindir}/qemu-system-*`; do - create_wrapper $tool \ - GDK_PIXBUF_MODULE_FILE=$gdk_pixbuf_module_file \ - FONTCONFIG_PATH=/etc/fonts \ - GTK_THEME=Adwaita - done -} - # Disable kvm/virgl/mesa on targets that do not support it PACKAGECONFIG:remove:darwin = "kvm virglrenderer glx gtk+" PACKAGECONFIG:remove:mingw32 = "kvm virglrenderer glx gtk+" diff --git a/meta/recipes-devtools/qemu/qemu_6.2.0.bb b/meta/recipes-devtools/qemu/qemu_6.2.0.bb index c9a53e3b05..062ed32b01 100644 --- a/meta/recipes-devtools/qemu/qemu_6.2.0.bb +++ b/meta/recipes-devtools/qemu/qemu_6.2.0.bb @@ -12,10 +12,6 @@ EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}" EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" -do_install:append:class-nativesdk() { - ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} -} - PACKAGECONFIG ??= " \ fdt sdl kvm pie \ ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \ diff --git a/scripts/runqemu b/scripts/runqemu index d60cb2e152..5c108ec23a 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -1377,6 +1377,7 @@ class BaseConfig(object): if self.sdl == True: self.qemu_opt += 'sdl,' elif self.gtk == True: + os.environ['FONTCONFIG_PATH'] = '/etc/fonts' self.qemu_opt += 'gtk,' if self.gl == True: From patchwork Sun Feb 6 21:53:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 3340 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4BE9C433F5 for ; Sun, 6 Feb 2022 21:53:27 +0000 (UTC) Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by mx.groups.io with SMTP id smtpd.web12.14510.1644184406771566141 for ; Sun, 06 Feb 2022 13:53:27 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=aQVwAx3e; spf=pass (domain: gmail.com, ip: 209.85.208.41, mailfrom: alex.kanavin@gmail.com) Received: by mail-ed1-f41.google.com with SMTP id cf2so9910478edb.9 for ; Sun, 06 Feb 2022 13:53:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Q+I5ag18iHbvWbfvNQ5PusJTiYQjnA6CksmInx42pjY=; b=aQVwAx3eHjSwjRH97NxAqAedIi41pI421RPbnkU3bPKIHQmlIiLao25s27XK7nax8T wCC/wyLBz5+eAuNpJtqNjotJjlZ99z4Jo+mphE26GDWIOLR9GuoivzVPRWcpcYHPKfbT JGuy9cE0/dDlRPCckb4As0M+iMnCpvm5gxpgoF+tiiW0oltKIsN8TlNGV32+UJiU7ME2 FMxtD4iyVKgIgtf9PIFiSXaLndt49BtX5c/zwsuq3HB8cPZ+GeF0Ln8eacrP8TGiT3bS QAm3PKsFZpPzy8pBSlJN+poPjLMWvFF9g/0XlJOS0ci/T4UbQZ+bz/rRyr1VBdun3bt8 iHXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Q+I5ag18iHbvWbfvNQ5PusJTiYQjnA6CksmInx42pjY=; b=KwPngL3EQyQquCEEf0N5qykatdLtwxD1WjVGS/foLAT7YOOGWLd9v2NnCJ5kwxkhpZ 0sSTtS1FwlxMCUudJl7kTw+cxHrh06cU8+6ohUFNnfUbYmlP+rBDvRnDbUnGqE848JTT rrYQWa4xsH3ha/K3sYw70h8IZSIIIV1FaqnP/9lOFp/rmJmjP9aifxQYI3QRcvV6gBQW Nbse0vdzkxg+Gj17/I9q2Pd/Br68VNPwBHQX0j/eBAMsBGT7xdmbtQWTaMwzb4OJJdqb k4UuFwV4z0eQ0Lzm3YepOl4KZVyrSQNS6+ExBU+bxvPTIwdrAHpCdHpkfa3dSDqGZWuX N0jQ== X-Gm-Message-State: AOAM530ZFScSqY8Ek4DmsCQRo71HH2wtmliI7UeQP9ixg7l5d4nGsq3i TUGH789zXed3BcvcLEwuAgmYN2QrjJs= X-Google-Smtp-Source: ABdhPJz+FJbP3f0As/oQpmFaAzRozHINt9o79sayF1E4neE1h0nOIRhCJwwpsEMrN0YjrmtD+bibJw== X-Received: by 2002:a50:e603:: with SMTP id y3mr8243173edm.270.1644184405344; Sun, 06 Feb 2022 13:53:25 -0800 (PST) Received: from nereus.lab.linutronix.de. (ip-109-090-143-203.um36.pools.vodafone-ip.de. [109.90.143.203]) by smtp.gmail.com with ESMTPSA id j11sm1191927ejb.110.2022.02.06.13.53.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Feb 2022 13:53:24 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-core@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 8/8] sstate: additional debugging when fetch fails occur Date: Sun, 6 Feb 2022 22:53:16 +0100 Message-Id: <20220206215316.367469-8-alex@linutronix.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220206215316.367469-1-alex@linutronix.de> References: <20220206215316.367469-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Sun, 06 Feb 2022 21:53:27 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/161420 Autobuilder has been showing things like: Checking sstate mirror object availability...ERROR: SState: cannot test file://universal/d9/bc/sstate:xz-native:x86_64-linux:5.2.5:r0:x86_64:8:d9bced04b194d5fc8d778eb8a0d674fa7375a42c8c50a9237e6d7672e9e7a00c_deploy_source_date_epoch.tar.zst: TimeoutError('timed out') ERROR: SState: cannot test file://37/a0/sstate:libgcc-initial:core2-64-poky-linux:11.2.0:r0:core2-64:8:37a0a5aec105a0822df098f15ff2b67d0e7220204742b5d2b1f7958dda6fa5ce_deploy_source_date_epoch.tar.zst: TimeoutError('timed out') ERROR: SState: cannot test file://universal/11/a4/sstate:libpciaccess-native:x86_64-linux:0.16:r0:x86_64:8:11a4d6c3a2e147ef7dd5f31c0ff2a91271dad49b561d8aa24849115081cf1842_deploy_source_date_epoch.tar.zst: TimeoutError('timed out') done. which is not helpful. To find out what really happened and where, the original traceback is needed too. Signed-off-by: Alexander Kanavin --- meta/classes/sstate.bbclass | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass index 85d0ee2e6a..475ce40c6b 100644 --- a/meta/classes/sstate.bbclass +++ b/meta/classes/sstate.bbclass @@ -1000,9 +1000,9 @@ def sstate_checkhashes(sq_data, d, siginfo=False, currentcount=0, summary=True, found.add(tid) missed.remove(tid) except bb.fetch2.FetchError as e: - bb.debug(2, "SState: Unsuccessful fetch test for %s (%s)" % (srcuri, repr(e))) + bb.debug(2, "SState: Unsuccessful fetch test for %s (%s)\n%s" % (srcuri, repr(e), e.__traceback__)) except Exception as e: - bb.error("SState: cannot test %s: %s" % (srcuri, repr(e))) + bb.error("SState: cannot test %s: %s\n%s" % (srcuri, repr(e), e.__traceback__)) if progress: bb.event.fire(bb.event.ProcessProgress(msg, len(tasklist) - thread_worker.tasks.qsize()), d)