summarylogtreecommitdiffstats
path: root/0030-meson-force-C-2011-for-thread_local.patch
blob: 6228be698e176de43ab5d90b685f01abe1ad76dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From 64fd6d58d12c5376901cf40dfc47d49c32662029 Mon Sep 17 00:00:00 2001
From: Brendan King <Brendan.King@imgtec.com>
Date: Mon, 24 Jun 2019 09:35:39 +0100
Subject: [PATCH] meson: force C++ 2011 for "thread_local"

For some combinations of Meson and the GNU C++ compiler, Meson does
not add '-std=c++11' to the command line arguments, resulting in
compilation errors, due to the use of the "thread_local" keyword (a
C++ 2011 feature). If the C++ compiler doesn't understand the
"thread_local" keyword by default, add '-std=c++11' to the compiler
command line arguments.

---
 meson.build | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/meson.build b/meson.build
index ce81c7d..b4d5b84 100644
--- a/meson.build
+++ b/meson.build
@@ -41,6 +41,12 @@ endif
 cc = meson.get_compiler('c')
 cpp = meson.get_compiler('cpp')
 
+if not cpp.compiles('thread_local int x = 0;', name : 'thread_local')
+  if cpp.has_argument('-std=c++11')
+     add_project_arguments('-std=c++11', language : 'cpp')
+  endif
+endif
+
 null_dep = dependency('', required : false)
 
 if get_option('layout') != 'mirror'