summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/sanity.bbclass29
1 files changed, 29 insertions, 0 deletions
diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index 06e95e3562..8cdb06e185 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -309,6 +309,31 @@ def check_sanity_validmachine(sanity_data):
309 309
310 return messages 310 return messages
311 311
312# Checks if necessary to add option march to host gcc
313def check_gcc_march(sanity_data):
314 result = False
315
316 # Check if -march not in BUILD_CFLAGS
317 if sanity_data.getVar("BUILD_CFLAGS",True).find("-march") < 0:
318
319 # Construct a test file
320 f = file("gcc_test.c", "w")
321 f.write("int main (){ __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4; return 0;}\n")
322 f.close()
323 import commands
324
325 # Check if GCC could work without march
326 status,result = commands.getstatusoutput("${BUILD_PREFIX}gcc gcc_test.c -o gcc_test")
327 if status != 0:
328 # Check if GCC could work with march
329 status,result = commands.getstatusoutput("${BUILD_PREFIX}gcc -march=native gcc_test.c -o gcc_test")
330 if status == 0:
331 result = True
332
333 os.remove("gcc_test.c")
334 os.remove("gcc_test")
335
336 return result
312 337
313def check_sanity(sanity_data): 338def check_sanity(sanity_data):
314 import subprocess 339 import subprocess
@@ -416,6 +441,10 @@ def check_sanity(sanity_data):
416 if not check_app_exists("qemu-arm", sanity_data): 441 if not check_app_exists("qemu-arm", sanity_data):
417 messages = messages + "qemu-native was in ASSUME_PROVIDED but the QEMU binaries (qemu-arm) can't be found in PATH" 442 messages = messages + "qemu-native was in ASSUME_PROVIDED but the QEMU binaries (qemu-arm) can't be found in PATH"
418 443
444 if check_gcc_march(sanity_data):
445 messages = messages + "Your gcc version is older than 4.5, please add the following param to local.conf\n \
446 BUILD_CFLAGS_append = \" -march=native\"\n"
447
419 paths = sanity_data.getVar('PATH', True).split(":") 448 paths = sanity_data.getVar('PATH', True).split(":")
420 if "." in paths or "" in paths: 449 if "." in paths or "" in paths:
421 messages = messages + "PATH contains '.' or '' (empty element), which will break the build, please remove this.\n" 450 messages = messages + "PATH contains '.' or '' (empty element), which will break the build, please remove this.\n"