- Fedora patch fixups update: * fixup-2-gdb-rhbz1156192-recursive-dlopen-test.patch - Fedora patch fixups added: * fixup-gdb-test-ivy-bridge.patch - Add xz to BuildRequires for testsuite flavour. - Add note on mpfr-devel for SLE-11. - Backport from master: * gdb-testsuite-fix-failure-in-gdb-base-step-over-no-symbols-exp.patch - Patch to be upstreamed: * gdb-testsuite-fix-control-flow-in-gdb-reverse-insn-reverse-exp.patch - Patch updated: * gdb-testsuite-gdb-tui-new-layout-exp-partly-require-tcl86.patch - Patch updated: * gdb-testsuite-gdb-tui-new-layout-exp-partly-require-tcl86.patch - Patch to be upstreamed: * gdb-testsuite-gdb-base-morestack-exp-no-clang.patch * gdb-testsuite-handle-sigill-in-gdb-reverse-insn-reverse-exp.patch * gdb-testsuite-fix-gdb-reverse-insn-reverse-x86-c-for-m32.patch * gdb-testsuite-gdb-tui-new-layout-exp-partly-require-tcl86.patch * gdb-tui-enable-work-around-libncurses-segfault.patch - Backport from master dropped: * gdb-testsuite-fix-unbalanced-braces-in-gdb-tui-new-layout-exp.patch - Fedora patch fixups updated: * fixup-2-gdb-archer-vla-tests.patch - Fedora patch fixups added: * fixup-2-gdb-rhbz1156192-recursive-dlopen-test.patch - Testsuite patch: * gdb-testsuite-disable-selftests-for-factory.patch - Backport from master: * gdb-symtab-read-cu-base-address-for-enqueued-cu.patch * gdb-symtab-use-early-continue-in-find_pc_sect_compunit.patch * gdb-fix-section-matching-in-find_pc_sect_compunit.patch * gdb-symtab-fix-language-of-frame-without-debug-info.patch - Patch to be upstreamed: * gdb-symtab-set-default-dwarf-max-cache-age-1000.patch - BuildRequire curl for debuginfod test-case. - Patch to be upstreamed: * gdb-don-t-return-non-existing-path-in-debuginfod-source-query.patch * gdb-fix-assert-in-process-event-stop-test.patch * gdb-fix-filename-in-not-in-executable-format-error.patch * gdb-handle-no-upper-bound-in-value-subscript.patch * gdb-fortran-handle-dw-at-string-length-with-loclistptr.patch - Testsuite patch: * gdb-testsuite-fix-gdb-server-ext-run-exp-for-obs.patch - Fedora patch fixups added: * fixup-gdb-rhbz1156192-recursive-dlopen-test.patch - Fedora patch fixups updated: * fixup-gdb-btrobust.patch * fixup-2-gdb-archer-vla-tests.patch - Add missing patch command for: * gdb-fortran-fix-print-dynamic-array.patch - Fix patch application on SLE-11: * gdb-testsuite-detect-gdb-prompt-after-monitor-exit.patch - Disable xz-devel and binutils-gold for SLE-10. - More enabling of gdbserver for riscv64. - Backport from master: * gdb-testsuite-fix-unbalanced-braces-in-gdb-tui-new-layout-exp.patch * gdb-testsuite-catch-condition-evaluation-errors-in-gdb-assert.patch * gdb-testsuite-detect-gdb-prompt-after-monitor-exit.patch * gdb-testsuite-fix-gdb-dlang-watch-loc-exp-on-ppc64.patch - Patch to be upstreamed: * gdb-fortran-fix-print-dynamic-array.patch - Enable gdbserver for riscv64. - Restrict BuildRequires libdebuginfod to Factory and supporting archs. - Rebase to 10.1 release (as in fedora 33 @ 6c8ccd6). * Debuginfod support. * Multi-target debugging support. * Multithreaded symbol loading enabled by default. * New command set exec-file-mismatch. * New command tui new-layout. * Alias command can now specify default args for an alias. - Update libipt to v2.0.2. - Fedora-specific patches dropped: * gdb-6.8-bz466901-backtrace-full-prelinked.patch - Broken/obsolete fedora patches dropped: * gdb-bz533176-fortran-omp-step.patch * gdb-6.5-BEA-testsuite.patch * gdb-6.7-charsign-test.patch - Obsoleted fedora patches dropped: * gdb-6.3-attach-see-vdso-test.patch * gdb-6.3-inferior-notification-20050721.patch * gdb-6.5-gcore-buffer-limit-test.patch * gdb-6.5-missed-trap-on-step-test.patch * gdb-rhbz1818011-bfd-gcc10-error.patch - Fedora patches updated: * gdb-6.3-gstack-20050411.patch * gdb-6.3-test-self-20050110.patch * gdb-6.5-bz185337-resolve-tls-without-debuginfo-v2.patch * gdb-6.5-bz218379-solib-trampoline-lookup-lock-fix.patch * gdb-6.6-buildid-locate-core-as-arg.patch * gdb-6.6-buildid-locate-rpm-librpm-workaround.patch * gdb-6.6-buildid-locate-rpm-scl.patch * gdb-6.6-buildid-locate-rpm.patch * gdb-6.6-buildid-locate-solib-missing-ids.patch * gdb-6.6-buildid-locate.patch * gdb-6.7-testsuite-stable-results.patch * gdb-6.8-quit-never-aborts.patch * gdb-archer-pie-addons-keep-disabled.patch * gdb-archer-pie-addons.patch * gdb-archer-vla-tests.patch * gdb-attach-fail-reasons-5of5.patch * gdb-bz1219747-attach-kills.patch * gdb-bz533176-fortran-omp-step.patch * gdb-container-rh-pkg.patch * gdb-fedora-libncursesw.patch * gdb-gnat-dwarf-crash-3of3.patch * gdb-jit-reader-multilib.patch * gdb-linux_perf-bundle.patch * gdb-moribund-utrace-workaround.patch * gdb-runtest-pie-override.patch * gdb-vla-intel-fix-print-char-array.patch * gdb-vla-intel-fortran-strides.patch * gdb-vla-intel-fortran-vla-strings.patch * gdb-vla-intel-stringbt-fix.patch * gdb-vla-intel-tests.patch - Fedora patches added: * gdb-config.patch - Obsoleted patched dropped: * gdb-testsuite-avoid-pagination-in-attach-32.exp.patch * gdb-fix-toplevel-types-with-fdebug-types-section.patch * gdb-fix-range-loop-index-in-find_method.patch * gdb-fix-python3.9-related-runtime-problems.patch * gdb-fix-unused-function-error.patch * gdb-fix-the-thread-pool.c-compilation.patch * gdb-aarch64-fix-erroneous-use-of-spu-architecture-bfd.patch * gdb-fix-debug-agent-odr-bool-int.patch * gdbserver-fix-build-with-make-3.81.patch * gdb-threads-fix-hang-in-stop_all_threads-after-killing-inferior.patch - Fedora patch fixups added: * fixup-gdb-6.3-test-pie-20050107.patch * fixup-gdb-6.5-sharedlibrary-path.patch * fixup-gdb-6.6-buildid-locate.patch * fixup-gdb-6.8-bz442765-threaded-exec-test.patch * fixup-gdb-archer-vla-tests.patch * fixup-gdb-base-gnu-ifunc-strstr-workaround-exp.patch * fixup-gdb-btrobust.patch * fixup-gdb-bz634108-solib_address.patch * fixup-gdb-dts-rhel6-python-compat.patch * fixup-gdb-gnat-dwarf-crash-3of3.patch * fixup-gdb-vla-intel-fortran-vla-strings.patch * fixup-gdb-vla-intel-tests.patch * fixup-gdb-6.3-threaded-watchpoints2-20050225.patch - Patches renamed: * gdb-testsuite-fix-perror-in-gdb.opt-fortran-string.exp.patch to fixup-2-gdb-archer-vla-tests.patch - Patches updated: * gdb-testsuite-ada-pie.patch - Backport from master: * gdb-testsuite-prevent-pagination-in-gdb-internalflags.patch OBS-URL: https://build.opensuse.org/request/show/851545 OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=263
124 lines
3.8 KiB
Diff
124 lines
3.8 KiB
Diff
[gdb/testsuite] Fix gdb.dlang/watch-loc.exp on ppc64
|
|
|
|
On ppc64, we run into:
|
|
...
|
|
/tmp/ccKXURmw.s: Assembler messages:^M
|
|
/tmp/ccKXURmw.s:99: Error: can't resolve \
|
|
`_Dmain_end' {.text section} - `_Dmain' {.opd section}^M
|
|
compiler exited with status 1
|
|
...
|
|
|
|
The unresolvable entity comes from the .debug_aranges section hardcoded in
|
|
watch-loc.c:
|
|
...
|
|
" .4byte _Dmain \n" // Address
|
|
" .4byte _Dmain_end - _Dmain \n" // Length
|
|
...
|
|
where _Dmain is the function label for function _Dmain, and _Dmain_end is a
|
|
label after function _Dmain:
|
|
...
|
|
int _Dmain (void)
|
|
{
|
|
asm ("_Dmain_label: .globl _Dmain_label");
|
|
return 0;
|
|
}
|
|
|
|
asm ("_Dmain_end: .globl _Dmain_end");
|
|
...
|
|
|
|
The problem is that the two labels are not in the same section, because _Dmain
|
|
ends up in the .opd section, which "contains the official procedure
|
|
descriptors. A pointer to a function shall reference a procedure descriptor in
|
|
this section."
|
|
|
|
Fix this by using function_range instead to get the length.
|
|
|
|
Also, fix the address part to not use _Dmain, but instead use the function
|
|
start as returned by function_range.
|
|
|
|
Tested on x86_64-linux.
|
|
|
|
gdb/testsuite/ChangeLog:
|
|
|
|
2020-09-16 Tom de Vries <tdevries@suse.de>
|
|
|
|
PR testsuite/26617
|
|
* gdb.dlang/watch-loc.c: Only add .debug_aranges if
|
|
WITH_DEBUG_SECTIONS is defined.
|
|
(xstr, str): New macro.
|
|
(.debug_aranges): Use DMAIN_START_0/1/2 and DMAIN_LENGTH
|
|
to get start and size of _Dmain.
|
|
* gdb.dlang/watch-loc.exp: Pass DMAIN_START_0/1/2 and DMAIN_LENGTH
|
|
using additional_flags.
|
|
|
|
---
|
|
gdb/testsuite/ChangeLog | 11 +++++++++++
|
|
gdb/testsuite/gdb.dlang/watch-loc.c | 8 ++++++--
|
|
gdb/testsuite/gdb.dlang/watch-loc.exp | 17 ++++++++++++++++-
|
|
3 files changed, 33 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/gdb/testsuite/gdb.dlang/watch-loc.c b/gdb/testsuite/gdb.dlang/watch-loc.c
|
|
index de594f35ae6..0a58f27d9fa 100644
|
|
--- a/gdb/testsuite/gdb.dlang/watch-loc.c
|
|
+++ b/gdb/testsuite/gdb.dlang/watch-loc.c
|
|
@@ -36,6 +36,9 @@ main (void)
|
|
return _Dmain ();
|
|
}
|
|
|
|
+#ifdef WITH_DEBUG_SECTIONS
|
|
+#define xstr(s) str(s)
|
|
+#define str(s) #s
|
|
/* The .debug_names-based index support depends on .debug_aranges
|
|
generated by GCC. (.gdb_index includes a gdb-generated map
|
|
instead.) */
|
|
@@ -52,10 +55,11 @@ asm (
|
|
" .byte 0 \n" // Size of Segment Descriptor
|
|
" .2byte 0 \n" // Pad to 16 byte boundary
|
|
" .2byte 0 \n"
|
|
-" .4byte _Dmain \n" // Address
|
|
-" .4byte _Dmain_end - _Dmain \n" // Length
|
|
+" .4byte " xstr(DMAIN_START_0) xstr(DMAIN_START_1) xstr(DMAIN_START_2) "\n" // Address
|
|
+" .4byte " xstr(DMAIN_LENGTH) "\n" // Length
|
|
" .4byte 0 \n"
|
|
" .4byte 0 \n"
|
|
".Laranges_end: \n"
|
|
" .popsection \n"
|
|
);
|
|
+#endif
|
|
diff --git a/gdb/testsuite/gdb.dlang/watch-loc.exp b/gdb/testsuite/gdb.dlang/watch-loc.exp
|
|
index d65f3c674fd..dcd93789ce4 100644
|
|
--- a/gdb/testsuite/gdb.dlang/watch-loc.exp
|
|
+++ b/gdb/testsuite/gdb.dlang/watch-loc.exp
|
|
@@ -27,6 +27,10 @@ if {![dwarf2_support]} {
|
|
|
|
standard_testfile watch-loc.c watch-loc-dw.S
|
|
|
|
+lassign [function_range _Dmain ${srcdir}/${subdir}/${srcfile}] \
|
|
+ dmain_start dmain_length
|
|
+
|
|
+
|
|
# Make some DWARF for the test.
|
|
set asm_file [standard_output_file $srcfile2]
|
|
Dwarf::assemble $asm_file {
|
|
@@ -62,8 +66,19 @@ Dwarf::assemble $asm_file {
|
|
}
|
|
}
|
|
|
|
+set dmain_start_list [split $dmain_start]
|
|
+set dmain_start_0 [lindex $dmain_start_list 0]
|
|
+set dmain_start_1 [lindex $dmain_start_list 1]
|
|
+set dmain_start_2 [lindex $dmain_start_list 2]
|
|
+
|
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
|
- [list $srcfile $asm_file] {nodebug}] } {
|
|
+ [list $srcfile $asm_file] \
|
|
+ "nodebug \
|
|
+ additional_flags=-DWITH_DEBUG_SECTIONS \
|
|
+ additional_flags=-DDMAIN_START_0=$dmain_start_0 \
|
|
+ additional_flags=-DDMAIN_START_1=$dmain_start_1 \
|
|
+ additional_flags=-DDMAIN_START_2=$dmain_start_2 \
|
|
+ additional_flags=-DDMAIN_LENGTH=$dmain_length"] } {
|
|
return -1
|
|
}
|
|
|