public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gdb] gdb-17.2-rebase-f44: backport fix to gdb.base/break-main-file-remove-fail
@ 2026-06-28 0:00 Bruno Larsen
0 siblings, 0 replies; only message in thread
From: Bruno Larsen @ 2026-06-28 0:00 UTC (permalink / raw)
To: git-commits
A new commit has been pushed.
Repo : rpms/gdb
Branch : gdb-17.2-rebase-f44
Commit : eff447ffe14179b9ef31173908b67695502a1370
Author : Bruno Larsen <blarsen@redhat.com>
Date : 2022-10-18T12:10:01+02:00
Stats : +113/-2 in 5 file(s)
URL : https://src.fedoraproject.org/rpms/gdb/c/eff447ffe14179b9ef31173908b67695502a1370?branch=gdb-17.2-rebase-f44
Log:
backport fix to gdb.base/break-main-file-remove-fail
---
diff --git a/_gdb.spec.Patch.include b/_gdb.spec.Patch.include
index dca185a..a32e678 100644
--- a/_gdb.spec.Patch.include
+++ b/_gdb.spec.Patch.include
@@ -309,3 +309,7 @@ Patch073: gdb-rhbz1553104-s390x-arch12-test.patch
Patch074: gdb-backport-readline_support.patch
+# [gdb/testsuite] Use prototype to call libc functions
+# (Tom de Vries)
+Patch075: gdb-backport-fix-break-main-file-remove-fail.patch
+
diff --git a/_gdb.spec.patch.include b/_gdb.spec.patch.include
index affe771..f5bd893 100644
--- a/_gdb.spec.patch.include
+++ b/_gdb.spec.patch.include
@@ -72,3 +72,4 @@
%patch072 -p1
%patch073 -p1
%patch074 -p1
+%patch075 -p1
diff --git a/_patch_order b/_patch_order
index 356ca91..cb69eba 100644
--- a/_patch_order
+++ b/_patch_order
@@ -72,3 +72,4 @@ gdb-libexec-add-index.patch
gdb-rhbz1398387-tab-crash-test.patch
gdb-rhbz1553104-s390x-arch12-test.patch
gdb-backport-readline_support.patch
+gdb-backport-fix-break-main-file-remove-fail.patch
diff --git a/gdb-backport-fix-break-main-file-remove-fail.patch b/gdb-backport-fix-break-main-file-remove-fail.patch
new file mode 100644
index 0000000..970d8b2
--- /dev/null
+++ b/gdb-backport-fix-break-main-file-remove-fail.patch
@@ -0,0 +1,101 @@
+From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
+From: Bruno Larsen <blarsen@redhat.com>
+Date: Tue, 18 Oct 2022 11:10:41 +0200
+Subject: gdb-backport-fix-break-main-file-remove-fail.patch
+
+;; [gdb/testsuite] Use prototype to call libc functions
+;; (Tom de Vries)
+
+On openSUSE Tumbleweed (using glibc 2.36), I run into:
+...
+(gdb) print /d (int) munmap (4198400, 4096)^M
+Invalid cast.^M
+(gdb) FAIL: gdb.base/break-main-file-remove-fail.exp: cmdline: \
+ get integer valueof "(int) munmap (4198400, 4096)"
+...
+
+The problem is that after starting the executable, the symbol has type
+"void (*) (void)":
+...
+(gdb) p munmap
+$1 = {<text variable, no debug info>} 0x401030 <munmap@plt>
+(gdb) start
+ ...
+(gdb) p munmap
+$2 = {void (void)} 0x7ffff7feb9a0 <__GI_munmap>
+...
+which causes the "Invalid cast" error.
+
+Looking at the debug info for glibc for symbol __GI_munmap:
+...
+ <0><189683>: Abbrev Number: 1 (DW_TAG_compile_unit)
+ <189691> DW_AT_name : ../sysdeps/unix/syscall-template.S
+ <189699> DW_AT_producer : GNU AS 2.39.0
+<1><1896ae>: Abbrev Number: 2 (DW_TAG_subprogram)
+ <1896af> DW_AT_name : __GI___munmap
+ <1896b3> DW_AT_external : 1
+ <1896b4> DW_AT_low_pc : 0x10cad0
+ <1896bc> DW_AT_high_pc : 37
+...
+that's probably caused by this bit (or similar bits for other munmap aliases).
+
+This is fixed in gas on trunk by commit 5578fbf672e ("GAS: Add a return type
+tag to DWARF DIEs generated for function symbols").
+
+Work around this (for say gas 2.39) by explicitly specifying the prototype for
+munmap.
+
+Likewise for getpid in a couple of other test-cases.
+
+Tested on x86_64-linux.
+
+diff --git a/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp b/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
+--- a/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
++++ b/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
+@@ -87,7 +87,9 @@ proc test_remove_bp { initial_load } {
+ # should warn the user about it.
+ set pagesize [get_integer_valueof "pg_size" 0]
+ set align_addr [expr $bp_addr - $bp_addr % $pagesize]
+- set munmap [get_integer_valueof "(int) munmap ($align_addr, $pagesize)" -1]
++ set munmap_prototype "int (*) (void *, size_t)"
++ set munmap_expr "(($munmap_prototype) munmap) ($align_addr, $pagesize)"
++ set munmap [get_integer_valueof $munmap_expr -1]
+
+ if {$munmap != 0} {
+ unsupported "can't munmap foo's page"
+diff --git a/gdb/testsuite/gdb.base/dprintf-detach.exp b/gdb/testsuite/gdb.base/dprintf-detach.exp
+--- a/gdb/testsuite/gdb.base/dprintf-detach.exp
++++ b/gdb/testsuite/gdb.base/dprintf-detach.exp
+@@ -52,7 +52,7 @@ proc dprintf_detach_test { breakpoint_always_inserted dprintf_style disconnected
+ # Get PID of test program.
+ set inferior_pid -1
+ set test "get inferior process ID"
+- gdb_test_multiple "call (int) getpid ()" $test {
++ gdb_test_multiple "call ((int (*) (void)) getpid) ()" $test {
+ -re ".* = ($decimal).*$gdb_prompt $" {
+ set inferior_pid $expect_out(1,string)
+ pass $test
+diff --git a/gdb/testsuite/gdb.base/info-os.exp b/gdb/testsuite/gdb.base/info-os.exp
+--- a/gdb/testsuite/gdb.base/info-os.exp
++++ b/gdb/testsuite/gdb.base/info-os.exp
+@@ -39,7 +39,7 @@ if ![runto_main] then {
+ # Get PID of test program.
+ set inferior_pid ""
+ set test "get inferior process ID"
+-gdb_test_multiple "call (int) getpid()" $test {
++gdb_test_multiple "call ((int (*) (void)) getpid) ()" $test {
+ -re ".* = ($decimal).*$gdb_prompt $" {
+ set inferior_pid $expect_out(1,string)
+ pass $test
+diff --git a/gdb/testsuite/gdb.threads/siginfo-threads.exp b/gdb/testsuite/gdb.threads/siginfo-threads.exp
+--- a/gdb/testsuite/gdb.threads/siginfo-threads.exp
++++ b/gdb/testsuite/gdb.threads/siginfo-threads.exp
+@@ -41,7 +41,7 @@ gdb_breakpoint [gdb_get_line_number "break-at-exit"]
+
+ set test "get pid"
+ set pid ""
+-gdb_test_multiple "p (int) getpid ()" $test {
++gdb_test_multiple "p ((int (*) (void))getpid) ()" $test {
+ -re " = (\[0-9\]+)\r\n$gdb_prompt $" {
+ set pid $expect_out(1,string)
+ pass $test
diff --git a/gdb.spec b/gdb.spec
index 13ee14c..093d672 100644
--- a/gdb.spec
+++ b/gdb.spec
@@ -51,7 +51,7 @@ Version: 12.1
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 7%{?dist}
+Release: 8%{?dist}
License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL
# Do not provide URL for snapshots as the file lasts there only for 2 days.
@@ -1189,7 +1189,11 @@ fi
%endif
%changelog
-* Wed Oct 18 2022 Bruno Larsen - 12.1-7
+* Tue Oct 18 2022 Bruno Larsen - 12.1-8
+- Backport fix to gdb.base/break-main-file-remove-fail.exp
+ (Tom de Vries)
+
+* Tue Oct 18 2022 Bruno Larsen - 12.1-7
- Remove patch gdb-6.3-test-dtorfix.
Was upstreamed, will be back in the next rebase.
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-28 0:00 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-28 0:00 [rpms/gdb] gdb-17.2-rebase-f44: backport fix to gdb.base/break-main-file-remove-fail Bruno Larsen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox