diff options
Diffstat (limited to 'meta/classes/insane.bbclass')
-rw-r--r-- | meta/classes/insane.bbclass | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 29687d0a39..1d73778255 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass | |||
@@ -515,6 +515,8 @@ def package_qa_check_arch(path,name,d, elf, messages): | |||
515 | """ | 515 | """ |
516 | Check if archs are compatible | 516 | Check if archs are compatible |
517 | """ | 517 | """ |
518 | import re | ||
519 | |||
518 | if not elf: | 520 | if not elf: |
519 | return | 521 | return |
520 | 522 | ||
@@ -543,12 +545,12 @@ def package_qa_check_arch(path,name,d, elf, messages): | |||
543 | = package_qa_get_machine_dict(d)[target_os][target_arch] | 545 | = package_qa_get_machine_dict(d)[target_os][target_arch] |
544 | 546 | ||
545 | # Check the architecture and endiannes of the binary | 547 | # Check the architecture and endiannes of the binary |
546 | if not ((machine == elf.machine()) or \ | 548 | is_32 = (("virtual/kernel" in provides) or bb.data.inherits_class("module", d)) and \ |
547 | ((("virtual/kernel" in provides) or bb.data.inherits_class("module", d) ) and (target_os == "linux-gnux32" or target_os == "linux-gnun32"))): | 549 | (target_os == "linux-gnux32" or re.match('mips64.*32', d.getVar('DEFAULTTUNE', True))) |
550 | if not ((machine == elf.machine()) or is_32): | ||
548 | package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \ | 551 | package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \ |
549 | (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d))) | 552 | (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d))) |
550 | elif not ((bits == elf.abiSize()) or \ | 553 | elif not ((bits == elf.abiSize()) or is_32): |
551 | ((("virtual/kernel" in provides) or bb.data.inherits_class("module", d) ) and (target_os == "linux-gnux32" or target_os == "linux-gnun32"))): | ||
552 | package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \ | 554 | package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \ |
553 | (bits, elf.abiSize(), bpn, package_qa_clean_path(path,d))) | 555 | (bits, elf.abiSize(), bpn, package_qa_clean_path(path,d))) |
554 | elif not littleendian == elf.isLittleEndian(): | 556 | elif not littleendian == elf.isLittleEndian(): |