summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2018-12-04 09:28:10 -0800
committerDylan Baker <dylan@pnwbakers.com>2018-12-18 09:17:54 -0800
commite430a034b9d2be626557931cd29808a3161889f1 (patch)
tree29c4d9a6ae02f5e3758ec3f546815cf8e21954dd
parent3feda3cf3574cb48e7b42e9e80328069591d7859 (diff)
meson: Fix ppc64 little endian detection
Old versions of meson returned ppc64le as the cpu_family for little endian power8 cpus, versions >=0.48 don't do this, so the check wouldn't work in that case. This generalizes the check to work for both old and new versions of meson. Fixes: 34bbb24ce7702658cdc4e9d34a650e169716c39e ("meson: Add support for ppc assembly/optimizations") Reviewed-by: Eric Engestrom <eric.engestrom@intel.com>
-rw-r--r--meson.build9
1 files changed, 7 insertions, 2 deletions
diff --git a/meson.build b/meson.build
index fe647f682c1..92dedb4e349 100644
--- a/meson.build
+++ b/meson.build
@@ -627,7 +627,12 @@ if with_gallium_st_nine
endif
if get_option('power8') != 'false'
- if host_machine.cpu_family() == 'ppc64le'
+ # on old versions of meson the cpu family would return as ppc64le on little
+ # endian power8, this was changed in 0.48 such that the family would always
+ # be ppc64 regardless of endianness, and the the machine.endian() value
+ # should be checked. Since we support versions < 0.48 we need to use
+ # startswith.
+ if host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
if cc.get_id() == 'gcc' and cc.version().version_compare('< 4.8')
error('Altivec is not supported with gcc version < 4.8.')
endif
@@ -968,7 +973,7 @@ if with_asm
with_asm_arch = 'sparc'
pre_args += ['-DUSE_SPARC_ASM']
endif
- elif host_machine.cpu_family() == 'ppc64le'
+ elif host_machine.cpu_family().startswith('ppc64') and host_machine.endian() == 'little'
if system_has_kms_drm
with_asm_arch = 'ppc64le'
pre_args += ['-DUSE_PPC64LE_ASM']