Mesa (master): meson: Override C++ standard to gnu++11 when building with altivec on ppc64

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Dec 28 19:08:51 UTC 2018


Module: Mesa
Branch: master
Commit: 133a5b838306e25b469cc514ba2ea92b4e6ce4b5
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=133a5b838306e25b469cc514ba2ea92b4e6ce4b5

Author: Dylan Baker <dylan at pnwbakers.com>
Date:   Tue Dec  4 13:52:19 2018 -0800

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 <mattst88 at gmail.com>

---

 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 9ecb8ea20c..3e4afcef13 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 1a09d8f2ca..a6729af2fb 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,
 )




More information about the mesa-commit mailing list