From ea75a720d1263666c9316902127a844a1b23092f Mon Sep 17 00:00:00 2001 From: Richard Ipsum Date: Mon, 4 Nov 2013 16:28:06 +0000 Subject: Add armhf detection --- morphlib/util.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/morphlib/util.py b/morphlib/util.py index 04df0633..6748fc47 100644 --- a/morphlib/util.py +++ b/morphlib/util.py @@ -388,6 +388,23 @@ def parse_environment_pairs(env, pairs): return dict(env.items() + extra_env.items()) +def has_hardware_fp(): # pragma: no cover + ''' + This function returns whether the binary /proc/self/exe is compiled + with hardfp _not_ whether the platform is hardfp. + + We expect the binaries on our build platform to be compiled with + hardfp. + + This is not ideal but at the time of writing this is the only + reliable way to decide whether our architecture is a hardfp + architecture. + ''' + + output = subprocess.check_output(['readelf', '-A', '/proc/self/exe']) + return 'Tag_ABI_VFP_args: VFP registers' in output + + def get_host_architecture(): # pragma: no cover '''Get the canonical Morph name for the host's architecture.''' @@ -406,6 +423,9 @@ def get_host_architecture(): # pragma: no cover if machine not in table: raise morphlib.Error('Unknown host architecture %s' % machine) + if machine == 'armv7l' and has_hardware_fp(): + return 'armv7lhf' + return table[machine] -- cgit v1.2.1