|
Jan Kratochvil |
e7956a1 |
https://bugzilla.redhat.com/show_bug.cgi?id=632259
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
commit 90b1513f9291220ad2d0314fc8c327219873bc25
|
|
Jan Kratochvil |
e7956a1 |
commit 86dd523433b348f0740848dec5842e63037ae6b3
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc.exp b/gdb/testsuite/gdb.base/gnu-ifunc.exp
|
|
Jan Kratochvil |
e7956a1 |
index 8ecf558..a14d8d0 100644
|
|
Jan Kratochvil |
e7956a1 |
--- a/gdb/testsuite/gdb.base/gnu-ifunc.exp
|
|
Jan Kratochvil |
e7956a1 |
+++ b/gdb/testsuite/gdb.base/gnu-ifunc.exp
|
|
Jan Kratochvil |
e7956a1 |
@@ -18,12 +18,17 @@ if {[skip_shlib_tests]} {
|
|
Jan Kratochvil |
e7956a1 |
}
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
set testfile "gnu-ifunc"
|
|
Jan Kratochvil |
e7956a1 |
+set executable ${testfile}
|
|
Jan Kratochvil |
e7956a1 |
set srcfile ${testfile}.c
|
|
Jan Kratochvil |
e7956a1 |
-set binfile ${objdir}/${subdir}/${testfile}
|
|
Jan Kratochvil |
e7956a1 |
+set binfile ${objdir}/${subdir}/${executable}
|
|
Jan Kratochvil |
e7956a1 |
+set staticexecutable ${executable}-static
|
|
Jan Kratochvil |
e7956a1 |
+set staticbinfile ${objdir}/${subdir}/${staticexecutable}
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
set libfile "${testfile}-lib"
|
|
Jan Kratochvil |
e7956a1 |
set libsrc ${libfile}.c
|
|
Jan Kratochvil |
e7956a1 |
set lib_so ${objdir}/${subdir}/${libfile}.so
|
|
Jan Kratochvil |
e7956a1 |
+# $lib_o must not have {debug}, it would override the gnu-ifunc ELF markers.
|
|
Jan Kratochvil |
e7956a1 |
+set lib_o ${objdir}/${subdir}/${libfile}.o
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
# We need DWARF for the "final" function as we "step" into the function and GDB
|
|
Jan Kratochvil |
e7956a1 |
# would step-over the "final" function if there would be no line number debug
|
|
Jan Kratochvil |
e7956a1 |
@@ -47,14 +52,16 @@ if [get_compiler_info ${binfile}] {
|
|
Jan Kratochvil |
e7956a1 |
}
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
if { [gdb_compile_shlib ${srcdir}/${subdir}/$libsrc $lib_so $lib_opts] != ""
|
|
Jan Kratochvil |
e7956a1 |
- || [gdb_compile ${srcdir}/${subdir}/$srcfile $binfile executable $exec_opts] != ""} {
|
|
Jan Kratochvil |
e7956a1 |
+ || [gdb_compile ${srcdir}/${subdir}/$srcfile $binfile executable $exec_opts] != ""
|
|
Jan Kratochvil |
e7956a1 |
+ || [gdb_compile ${srcdir}/${subdir}/$libsrc $lib_o object {}] != ""
|
|
Jan Kratochvil |
e7956a1 |
+ || [gdb_compile "${srcdir}/${subdir}/$srcfile $lib_o" $staticbinfile executable {debug}] != ""} {
|
|
Jan Kratochvil |
e7956a1 |
untested "Could not compile either $libsrc or $srcfile."
|
|
Jan Kratochvil |
e7956a1 |
return -1
|
|
Jan Kratochvil |
e7956a1 |
}
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
# Start with a fresh gdb.
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
-clean_restart $testfile
|
|
Jan Kratochvil |
e7956a1 |
+clean_restart $executable
|
|
Jan Kratochvil |
e7956a1 |
gdb_load_shlibs ${lib_so}
|
|
Jan Kratochvil |
e7956a1 |
|
|
Jan Kratochvil |
e7956a1 |
if ![runto_main] then {
|
|
Jan Kratochvil |
e7956a1 |
@@ -108,3 +115,16 @@ gdb_test_multiple $test $test {
|
|
Jan Kratochvil |
e7956a1 |
}
|
|
Jan Kratochvil |
e7956a1 |
}
|
|
Jan Kratochvil |
e7956a1 |
gdb_test "info sym $expect_out(1,string)" "gnu_ifunc in section .*" "info sym <gnu_ifunc-address>"
|
|
Jan Kratochvil |
e7956a1 |
+
|
|
Jan Kratochvil |
e7956a1 |
+
|
|
Jan Kratochvil |
e7956a1 |
+# Test statically linked ifunc resolving during inferior start.
|
|
Jan Kratochvil |
e7956a1 |
+# https://bugzilla.redhat.com/show_bug.cgi?id=624967
|
|
Jan Kratochvil |
e7956a1 |
+
|
|
Jan Kratochvil |
e7956a1 |
+if ![target_info exists gdb_stub] {
|
|
Jan Kratochvil |
e7956a1 |
+ clean_restart $staticexecutable
|
|
Jan Kratochvil |
e7956a1 |
+
|
|
Jan Kratochvil |
e7956a1 |
+ gdb_breakpoint "gnu_ifunc"
|
|
Jan Kratochvil |
e7956a1 |
+ gdb_breakpoint "main"
|
|
Jan Kratochvil |
e7956a1 |
+ gdb_run_cmd
|
|
Jan Kratochvil |
e7956a1 |
+ gdb_test "" "Breakpoint \[0-9\]*, main .*" "static gnu_ifunc"
|
|
Jan Kratochvil |
e7956a1 |
+}
|