summaryrefslogtreecommitdiffstats
path: root/translate.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'translate.cxx')
-rw-r--r--translate.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/translate.cxx b/translate.cxx
index 4a6a10b5..1ddc1778 100644
--- a/translate.cxx
+++ b/translate.cxx
@@ -5106,9 +5106,18 @@ translate_pass (systemtap_session& s)
s.op->newline() << "#ifndef MAXNESTING";
s.op->newline() << "#define MAXNESTING 10";
s.op->newline() << "#endif";
+
+ // Strings are used for storing backtraces, they are larger on 64bit
+ // so raise the size on 64bit architectures. PR10486
+ s.op->newline() << "#include <asm/types.h>";
s.op->newline() << "#ifndef MAXSTRINGLEN";
- s.op->newline() << "#define MAXSTRINGLEN 128";
+ s.op->newline() << "#if BITS_PER_LONG == 32";
+ s.op->newline() << "#define MAXSTRINGLEN 256";
+ s.op->newline() << "#else";
+ s.op->newline() << "#define MAXSTRINGLEN 512";
+ s.op->newline() << "#endif";
s.op->newline() << "#endif";
+
s.op->newline() << "#ifndef MAXACTION";
s.op->newline() << "#define MAXACTION 1000";
s.op->newline() << "#endif";