From 133a5b838306e25b469cc514ba2ea92b4e6ce4b5 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Tue, 4 Dec 2018 13:52:19 -0800 Subject: [PATCH] meson: Override C++ standard to gnu++11 when building with altivec on ppc64 Otherwise there will be symbol collisions for the vector name. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108943 Distro Bug: https://bugs.gentoo.org/673622 Fixes: 42ea0631f108d82554339530d6c88aa1b448af1e ("meson: build clover") Acked-by: Matt Turner --- meson.build | 9 +++++++++ src/gallium/state_trackers/clover/meson.build | 3 +++ 2 files changed, 12 insertions(+) diff --git a/meson.build b/meson.build index 9ecb8ea20ca..3e4afcef130 100644 --- a/meson.build +++ b/meson.build @@ -648,6 +648,7 @@ if get_option('power8') != 'false' endif _opencl = get_option('gallium-opencl') +clover_cpp_std = [] if _opencl != 'disabled' if not with_gallium error('OpenCL Clover implementation requires at least one gallium driver.') @@ -656,6 +657,14 @@ if _opencl != 'disabled' dep_clc = dependency('libclc') with_gallium_opencl = true with_opencl_icd = _opencl == 'icd' + + if host_machine.cpu_family().startswith('ppc') and cpp.compiles(''' + #if !defined(__VEC__) || !defined(__ALTIVEC__) + #error "AltiVec not enabled" + #endif''', + name : 'Altivec') + clover_cpp_std += ['cpp_std=gnu++11'] + endif else dep_clc = null_dep with_gallium_opencl = false diff --git a/src/gallium/state_trackers/clover/meson.build b/src/gallium/state_trackers/clover/meson.build index 1a09d8f2ca9..a6729af2fb8 100644 --- a/src/gallium/state_trackers/clover/meson.build +++ b/src/gallium/state_trackers/clover/meson.build @@ -30,6 +30,7 @@ libcltgsi = static_library( files('tgsi/compiler.cpp', 'tgsi/invocation.hpp'), include_directories : clover_incs, cpp_args : [cpp_vis_args], + override_options : clover_cpp_std, ) libclllvm = static_library( @@ -56,6 +57,7 @@ libclllvm = static_library( )), ], dependencies : [dep_llvm, dep_elf], + override_options : clover_cpp_std, ) clover_files = files( @@ -119,4 +121,5 @@ libclover = static_library( include_directories : clover_incs, cpp_args : [clover_cpp_args, cpp_vis_args], link_with : [libcltgsi, libclllvm], + override_options : clover_cpp_std, ) -- 2.30.2