In gdb.btrace/rn-dl-bind.exp we test that we can reverse-step over
recorded dynamic linking. The test covers specific behaviour to support
_dl_runtime_resolve calling the resolved function by returning to it.
This would normally mess up stepping as we'd end up with backtraces that
contain the same functions but different frame ids.
Since GDB needs to recognize a return from _dl_runtime_resolve, the test
only passes when debug information for _dl_runtime_resolve is available.
The test requires that symbols are bound lazily. Otherwise, we won't
record dynamic linking and the test will be fairly pointless.
Recent GCC pass -z now by default to bind symbols eagerly. Add -z lazy to
the test's ldflags to enforce lazy binding.
+2021-03-03 Markus Metzger <markus.t.metzger@intel.com>
+
+ * gdb.btrace/rn-dl-bind.exp: Add ldflags=-Wl,-z,lazy.
+
2021-03-03 Markus Metzger <markus.t.metzger@intel.com>
* gdb.btrace/non-stop.exp: Adjust expected source lines.
}
standard_testfile
-if [prepare_for_testing "failed to prepare" $testfile $srcfile {c++ debug}] {
+if [prepare_for_testing "failed to prepare" $testfile $srcfile \
+ {c++ debug ldflags=-Wl,-z,lazy}] {
return -1
}