From: Alexander Kanavin <[email protected]> Please see https://bugzilla.yoctoproject.org/show_bug.cgi?id=16087 for the tricky, unpleasant details. This is addressing an issue with recent Fedora distributions where they can contaminate sstate with native executables that don't work when transferred onto alma/rocky 8/9.
[YOCTO #16087] Signed-off-by: Alexander Kanavin <[email protected]> --- meta/classes-global/base.bbclass | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/meta/classes-global/base.bbclass b/meta/classes-global/base.bbclass index cf303c237a..22b427a521 100644 --- a/meta/classes-global/base.bbclass +++ b/meta/classes-global/base.bbclass @@ -111,6 +111,22 @@ def get_lic_checksum_file_list(d): bb.fatal(d.getVar('PN') + ": LIC_FILES_CHKSUM contains an invalid URL: " + url) return " ".join(filelist) +# Please see https://bugzilla.yoctoproject.org/show_bug.cgi?id=16087 for details +# This can be removed after host distributions with kernels < 5.18 +# (e.g. rhel 8/9 and derivatives) are taken out of testing and support. +def write_ld_wrapper(srctool, desttool): + wrapper = "#!/bin/sh\n{} --no-rosegment $@".format(srctool) + + stdout, _ = bb.process.run("{} --help".format(srctool)) + if "--no-rosegment" in stdout: + with open(desttool, 'w') as f: + f.write(wrapper) + import stat + st = os.stat(desttool) + os.chmod(desttool, st.st_mode | stat.S_IEXEC) + else: + os.symlink(srctool, desttool) + def setup_hosttools_dir(dest, toolsvar, d, fatal=True): tools = d.getVar(toolsvar).split() origbbenv = d.getVar("BB_ORIGENV", False) @@ -139,7 +155,10 @@ def setup_hosttools_dir(dest, toolsvar, d, fatal=True): if os.path.islink(srctool) and os.path.basename(os.readlink(srctool)) == 'ccache': srctool = bb.utils.which(path, tool, executable=True, direction=1) if srctool: - os.symlink(srctool, desttool) + if tool == "ld" or tool.startswith("ld."): + write_ld_wrapper(srctool, desttool) + else: + os.symlink(srctool, desttool) else: notfound.append(tool) -- 2.47.3
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#230620): https://lists.openembedded.org/g/openembedded-core/message/230620 Mute This Topic: https://lists.openembedded.org/mt/117670731/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
