summaryrefslogtreecommitdiff
path: root/meta-arm/meta-gem5/recipes-devtools/gem5/gem5-m5ops/0001-util-m5ops-optional-extra-build-flags.patch
blob: b446a2fe012cf2fe27f1c430a1bfb9768fc40512 (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
From 32e35a2f179d1b036d2eb699d77f869f7787f36b Mon Sep 17 00:00:00 2001
From: Adrian Herrera <adrian.herrera@arm.com>
Date: Tue, 8 Dec 2020 20:12:55 +0000
Subject: [PATCH] util: m5ops, optional extra build flags

This increases compilation control for users. Main use case is building
m5ops as part of an image distribution. Specifying a different sysroot
or dynamic linker may be required when the cross toolchain is built as
part of the process.

Change-Id: Icbd3faa92ea6e084fc4a9b2db83129bce73faf21
Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/38416
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>

Upstream-Status: Accepted [https://gem5-review.googlesource.com/c/public/gem5/+/38416]
Expected version: v20.2
---
 util/m5/SConstruct | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/util/m5/SConstruct b/util/m5/SConstruct
index bbae8d9bbf..a37573d763 100644
--- a/util/m5/SConstruct
+++ b/util/m5/SConstruct
@@ -136,16 +136,24 @@ for root, dirs, files in os.walk(abspath(src_dir)):
         #
         # This also considers scons command line settings which may look like
         # environment variables, but are set after "scons" on the command line.
-        def get_abi_opt(name, default):
+        def _extract_abi_opt_val(name, default):
             var_name = env.subst('${ABI}.%s' % name)
-            env[name] = os.environ.get(
-                    var_name, ARGUMENTS.get(var_name, default))
+            return os.environ.get(var_name, ARGUMENTS.get(var_name, default))
+        def get_abi_opt(name, default):
+            env[name] = _extract_abi_opt_val(name, default)
+        def append_abi_opt(name):
+            env.Append(**{ name: _extract_abi_opt_val(name, '') })
 
         # Process the ABI's settings in the SConsopts file, storing them
         # in a copy of the primary environment.
         env.SConscript(Dir(root).File('SConsopts'),
                        exports=[ 'env', 'get_abi_opt' ])
 
+        # The user can pass extra build flags for each ABI
+        append_abi_opt('CCFLAGS')
+        append_abi_opt('CXXFLAGS')
+        append_abi_opt('LINKFLAGS')
+
         # Once all the options have been configured, set up build targets for
         # this abi.
         abi_dir = build_dir.Dir(env.subst('${ABI}'))
-- 
2.17.1