From: bradford barr Date: Mon, 7 Aug 2017 18:17:09 +0000 (-0400) Subject: Fix Yocto cross-compiles X-Git-Tag: submit/tizen/20180223.063230~9^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8d418ab9d1bcd80aacaf1be45721e2bd59c8c835;p=platform%2Fupstream%2Farmcl.git Fix Yocto cross-compiles Yocto defines it's compilers in the environment complete with some arch flags. For example: ``` CC="arm-poky-linux-gnueabi-gcc \ -march=armv7-a \ -mfloat-abi=hard \ -mfpu=neon \ -mtune=cortex-a9 \ --sysroot=/home/ubuntu/device/build/tmp/sysroots/pico-imx6" ``` The SConstruct file would fail to find the compiler because it was calling python's subprocess.check_output which expects the first argument of the list to be _only_ the name of the executable. This patch allows the SConstruct script to check the version of the compiler even with funny environment variables. Instead of appending to the compiler string and passing `shell=True` to subprocess, split `env['CXX']` into an array and append `-dumpversion` to that array. Python warns against the use of `shell=True` in subprocess calls. --- diff --git a/SConstruct b/SConstruct index 3927e3a..c86a256 100644 --- a/SConstruct +++ b/SConstruct @@ -142,7 +142,7 @@ env['RANLIB'] = prefix + "ranlib" if not GetOption("help"): try: - compiler_ver = subprocess.check_output([env['CXX'], "-dumpversion"]).strip() + compiler_ver = subprocess.check_output(env['CXX'].split() + ["-dumpversion"]).strip() except OSError: print("ERROR: Compiler '%s' not found" % env['CXX']) Exit(1)