summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2006-11-08 15:05:54 -0500
committerAli Saidi <saidi@eecs.umich.edu>2006-11-08 15:05:54 -0500
commit100f9bfb0b87cfd393226efe714eb9259b978aff (patch)
treece4d0b512c1c8313cd759d79b2c0db35d46e393a
parentf7a35c33d70d99c1276a70c2ed1a86719e64973b (diff)
downloadgem5-100f9bfb0b87cfd393226efe714eb9259b978aff.tar.xz
DWARF2 symbol support seems to be broken on Solaris. Use stabs+
align the character arrays that are used by placement-new for classes lest we have an unaligned fault on SPARC/Solaris src/SConscript: DWARF2 symbol support seems to be broken on Solaris. Use stabs+ src/base/statistics.hh: align the character arrays that are used by placement-new for classes lest we have an unaligned fault on SPARC/Solaris --HG-- extra : convert_revision : bc875a4fdfb4553062d3278537bc32a5ab9b6cca
-rw-r--r--src/SConscript9
-rw-r--r--src/base/statistics.hh4
2 files changed, 10 insertions, 3 deletions
diff --git a/src/SConscript b/src/SConscript
index d938d533f..8d2c8566b 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -399,8 +399,15 @@ def makeEnv(label, objsfx, strip = False, **kwargs):
envList.append(newEnv)
# Debug binary
+# Solaris seems to have some issue with DWARF2 debugging information, it's ok
+# with stabs though
+if sys.platform == 'sunos5':
+ debug_flag = '-gstabs+'
+else:
+ debug_flag = '-ggdb3'
+
makeEnv('debug', '.do',
- CCFLAGS = Split('-g3 -gdwarf-2 -O0'),
+ CCFLAGS = Split('%s -O0' % debug_flag),
CPPDEFINES = 'DEBUG')
# Optimized binary
diff --git a/src/base/statistics.hh b/src/base/statistics.hh
index 59f219c07..577ea5eab 100644
--- a/src/base/statistics.hh
+++ b/src/base/statistics.hh
@@ -696,7 +696,7 @@ class ScalarBase : public DataAccess
protected:
/** The storage of this stat. */
- char storage[sizeof(Storage)];
+ char storage[sizeof(Storage)] __attribute__ ((aligned (8)));
/** The parameters for this stat. */
Params params;
@@ -1637,7 +1637,7 @@ class DistBase : public DataAccess
protected:
/** The storage for this stat. */
- char storage[sizeof(Storage)];
+ char storage[sizeof(Storage)] __attribute__ ((aligned (8)));
/** The parameters for this stat. */
Params params;