mirror of
https://git.yoctoproject.org/poky
synced 2026-04-23 00:32:12 +02:00
insane: Recognise BPF as a valid EM_MACHINE type
BPF Linux ELF objects are generated with kernel-selftests with >= 4.18 kernel and when clang is enabled which packages BPF objects into packages, therefore recongnise this as a valid ELF target Add a selftest for BPF Do not flag BPF objects in target, since they pretty much will be ok for most of kernels architectures we care do support BPF (From OE-Core rev: 3667a8ec016bae3f8026ef7b4c895546804f6368) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -301,8 +301,10 @@ def package_qa_check_arch(path,name,d, elf, messages):
|
||||
|
||||
# Check the architecture and endiannes of the binary
|
||||
is_32 = (("virtual/kernel" in provides) or bb.data.inherits_class("module", d)) and \
|
||||
(target_os == "linux-gnux32" or target_os == "linux-muslx32" or target_os == "linux-gnu_ilp32" or re.match('mips64.*32', d.getVar('DEFAULTTUNE')))
|
||||
if not ((machine == elf.machine()) or is_32):
|
||||
(target_os == "linux-gnux32" or target_os == "linux-muslx32" or \
|
||||
target_os == "linux-gnu_ilp32" or re.match('mips64.*32', d.getVar('DEFAULTTUNE')))
|
||||
is_bpf = (oe.qa.elf_machine_to_string(elf.machine()) == "BPF")
|
||||
if not ((machine == elf.machine()) or is_32 or is_bpf):
|
||||
package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \
|
||||
(oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d)))
|
||||
elif not ((bits == elf.abiSize()) or is_32):
|
||||
|
||||
@@ -158,7 +158,8 @@ def elf_machine_to_string(machine):
|
||||
0x2A: "SuperH",
|
||||
0x32: "IA-64",
|
||||
0x3E: "x86-64",
|
||||
0xB7: "AArch64"
|
||||
0xB7: "AArch64",
|
||||
0xF7: "BPF"
|
||||
}[machine]
|
||||
except:
|
||||
return "Unknown (%s)" % repr(machine)
|
||||
|
||||
@@ -15,6 +15,7 @@ class TestElf(TestCase):
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x32), "IA-64")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x3E), "x86-64")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0xB7), "AArch64")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0xF7), "BPF")
|
||||
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0x00), "Unknown (0)")
|
||||
self.assertEqual(oe.qa.elf_machine_to_string(0xDEADBEEF), "Unknown (3735928559)")
|
||||
|
||||
Reference in New Issue
Block a user