poky/meta/classes/allarch.bbclass
Richard Purdie c48097ece9 allarch: Fix interaction with qemu class
The qemu class declares functions which are architecture specific. If a user such
as meson is used in an allarch recipe, this leads to sstate which is machine
specific. To fix this, remove the architecture specific part, since there are no
binaries in allarch classes, this change shouldn't break anything.

(From OE-Core rev: 049879ba842d89f268b8e3a4e26410d13bc54158)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-01-07 23:10:26 +00:00

66 lines
2.7 KiB
Plaintext

#
# This class is used for architecture independent recipes/data files (usually scripts)
#
python allarch_package_arch_handler () {
if bb.data.inherits_class("native", d) or bb.data.inherits_class("nativesdk", d) \
or bb.data.inherits_class("crosssdk", d):
return
variants = d.getVar("MULTILIB_VARIANTS")
if not variants:
d.setVar("PACKAGE_ARCH", "all" )
}
addhandler allarch_package_arch_handler
allarch_package_arch_handler[eventmask] = "bb.event.RecipePreFinalise"
python () {
# Allow this class to be included but overridden - only set
# the values if we're still "all" package arch.
if d.getVar("PACKAGE_ARCH") == "all":
# No need for virtual/libc or a cross compiler
d.setVar("INHIBIT_DEFAULT_DEPS","1")
# Set these to a common set of values, we shouldn't be using them other that for WORKDIR directory
# naming anyway
d.setVar("baselib", "lib")
d.setVar("TARGET_ARCH", "allarch")
d.setVar("TARGET_OS", "linux")
d.setVar("TARGET_CC_ARCH", "none")
d.setVar("TARGET_LD_ARCH", "none")
d.setVar("TARGET_AS_ARCH", "none")
d.setVar("TARGET_FPU", "")
d.setVar("TARGET_PREFIX", "")
# Expand PACKAGE_EXTRA_ARCHS since the staging code needs this
# (this removes any dependencies from the hash perspective)
d.setVar("PACKAGE_EXTRA_ARCHS", d.getVar("PACKAGE_EXTRA_ARCHS"))
d.setVar("SDK_ARCH", "none")
d.setVar("SDK_CC_ARCH", "none")
d.setVar("TARGET_CPPFLAGS", "none")
d.setVar("TARGET_CFLAGS", "none")
d.setVar("TARGET_CXXFLAGS", "none")
d.setVar("TARGET_LDFLAGS", "none")
d.setVar("POPULATESYSROOTDEPS", "")
# Avoid this being unnecessarily different due to nuances of
# the target machine that aren't important for "all" arch
# packages.
d.setVar("LDFLAGS", "")
# No need to do shared library processing or debug symbol handling
d.setVar("EXCLUDE_FROM_SHLIBS", "1")
d.setVar("INHIBIT_PACKAGE_DEBUG_SPLIT", "1")
d.setVar("INHIBIT_PACKAGE_STRIP", "1")
# These multilib values shouldn't change allarch packages so exclude them
d.appendVarFlag("emit_pkgdata", "vardepsexclude", " MULTILIB_VARIANTS")
d.appendVarFlag("write_specfile", "vardepsexclude", " MULTILIBS")
d.appendVarFlag("do_package", "vardepsexclude", " package_do_shlibs")
elif bb.data.inherits_class('packagegroup', d) and not bb.data.inherits_class('nativesdk', d):
bb.error("Please ensure recipe %s sets PACKAGE_ARCH before inherit packagegroup" % d.getVar("FILE"))
}
def qemu_wrapper_cmdline(data, rootfs_path, library_paths):
return 'false'