summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--testsuite/systemtap.context/backtrace.tcl4
-rw-r--r--testsuite/systemtap.exelib/ustack.tcl7
-rw-r--r--testsuite/systemtap.string/str_replace.exp4
-rw-r--r--translate.cxx11
4 files changed, 17 insertions, 9 deletions
diff --git a/testsuite/systemtap.context/backtrace.tcl b/testsuite/systemtap.context/backtrace.tcl
index 975e6c4d..d401d89f 100644
--- a/testsuite/systemtap.context/backtrace.tcl
+++ b/testsuite/systemtap.context/backtrace.tcl
@@ -5,8 +5,8 @@ set m4 0
set m5 0
set m6 0
-#spawn stap -d kernel -d systemtap_test_module1 -DMAXSTRINGLEN=256 $srcdir/$subdir/backtrace.stp
-spawn stap -DMAXSTRINGLEN=256 $srcdir/$subdir/backtrace.stp
+#spawn stap -d kernel -d systemtap_test_module1 $srcdir/$subdir/backtrace.stp
+spawn stap $srcdir/$subdir/backtrace.stp
#exp_internal 1
expect {
-timeout 60
diff --git a/testsuite/systemtap.exelib/ustack.tcl b/testsuite/systemtap.exelib/ustack.tcl
index a670213a..257d0b9f 100644
--- a/testsuite/systemtap.exelib/ustack.tcl
+++ b/testsuite/systemtap.exelib/ustack.tcl
@@ -31,11 +31,8 @@ set main 0
set main_func 0
set lib_main 0
set lib_func 0
-# Needs extra space since on 64bit the last ubacktrace string is
-# 7 entries * (16 hex + 2 for 0x + 1 space) = 133 chars.
-# Default MAXSTRINGLEN is 128 chars.
-send_log "Running: stap -DMAXSTRINGLEN=133 $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe\n"
-spawn stap -DMAXSTRINGLEN=133 $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe
+send_log "Running: stap $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe\n"
+spawn stap $srcdir/$subdir/ustack.stp $testexe $testlib -c $testexe
wait
expect {
diff --git a/testsuite/systemtap.string/str_replace.exp b/testsuite/systemtap.string/str_replace.exp
index 4eedf1c6..e6526ef9 100644
--- a/testsuite/systemtap.string/str_replace.exp
+++ b/testsuite/systemtap.string/str_replace.exp
@@ -10,5 +10,7 @@ Result = hello tap
Result = hello system tap
Result =
Result = }
-stap_run2 $srcdir/$subdir/$test.stp
+
+# Expect strings to be cut off if they are too long.
+stap_run2 $srcdir/$subdir/$test.stp -DMAXSTRINGLEN=128
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";