Nikos Nikoleris has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/15235
Change subject: scons: Disable partial linking on Mac OS
......................................................................
scons: Disable partial linking on Mac OS
Up until Apple LLVM version 10.0.0 (clang-1000.11.45.5), partial
linked objects do not expose symbols that are marked with the hidden
visibility and consequently building gem5 on Mac OS fails. As a
workaround, we disable partial linking, however, we may want to
revisit in the future.
Change-Id: I0a26dae082bf723c2bd49d90e4497e44ecab9c41
Signed-off-by: Nikos Nikoleris <[email protected]>
---
M src/SConscript
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/SConscript b/src/SConscript
index 361479d..dc284b1 100755
--- a/src/SConscript
+++ b/src/SConscript
@@ -1268,23 +1268,34 @@
if 'all' in needed_envs:
needed_envs += target_types
+disable_partial = False
+if env['PLATFORM'] == 'darwin':
+ # Up until Apple LLVM version 10.0.0 (clang-1000.11.45.5), partial
+ # linked objects do not expose symbols that are marked with the
+ # hidden visibility and consequently building gem5 on Mac OS
+ # fails. As a workaround, we disable partial linking, however, we
+ # may want to revisit in the future.
+ disable_partial = True
+
# Debug binary
if 'debug' in needed_envs:
makeEnv(env, 'debug', '.do',
CCFLAGS = Split(ccflags['debug']),
CPPDEFINES = ['DEBUG', 'TRACING_ON=1'],
- LINKFLAGS = Split(ldflags['debug']))
+ LINKFLAGS = Split(ldflags['debug']),
+ disable_partial=disable_partial)
# Optimized binary
if 'opt' in needed_envs:
makeEnv(env, 'opt', '.o',
CCFLAGS = Split(ccflags['opt']),
CPPDEFINES = ['TRACING_ON=1'],
- LINKFLAGS = Split(ldflags['opt']))
+ LINKFLAGS = Split(ldflags['opt']),
+ disable_partial=disable_partial)
# "Fast" binary
if 'fast' in needed_envs:
- disable_partial = \
+ disable_partial = disable_partial and \
env.get('BROKEN_INCREMENTAL_LTO', False) and \
GetOption('force_lto')
makeEnv(env, 'fast', '.fo', strip = True,
@@ -1298,11 +1309,13 @@
makeEnv(env, 'prof', '.po',
CCFLAGS = Split(ccflags['prof']),
CPPDEFINES = ['NDEBUG', 'TRACING_ON=0'],
- LINKFLAGS = Split(ldflags['prof']))
+ LINKFLAGS = Split(ldflags['prof']),
+ disable_partial=disable_partial)
# Profiled binary using google-pprof
if 'perf' in needed_envs:
makeEnv(env, 'perf', '.gpo',
CCFLAGS = Split(ccflags['perf']),
CPPDEFINES = ['NDEBUG', 'TRACING_ON=0'],
- LINKFLAGS = Split(ldflags['perf']))
+ LINKFLAGS = Split(ldflags['perf']),
+ disable_partial=disable_partial)
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/15235
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I0a26dae082bf723c2bd49d90e4497e44ecab9c41
Gerrit-Change-Number: 15235
Gerrit-PatchSet: 1
Gerrit-Owner: Nikos Nikoleris <[email protected]>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev