From 98d10e5fd2868d0d9ec9117f832a63f8ae75d75b Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Mon, 15 Nov 2021 13:32:03 +0100 Subject: [PATCH] Cygwin: dllfixdbg: create .gnu_debuglink section in the right spot A recent change in binutils marks the .gnu_debuglink_overlay section as debug section. When dllfixdbg calls objcopy -g, the section is removed and the --add-gnu-debuglink option on the same command line appends the section consequentially at the end of the sections. This in turn breaks Windows Version info and, potentially, raising the cygheap size at runtime. Fix this by adding an explicit --keep-section=.gnu_debuglink_overlay to the objcopy command line. Signed-off-by: Corinna Vinschen --- winsup/cygwin/dllfixdbg | 2 +- winsup/cygwin/release/3.3.3 | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/dllfixdbg b/winsup/cygwin/dllfixdbg index 70a496584..a2f1210fd 100755 --- a/winsup/cygwin/dllfixdbg +++ b/winsup/cygwin/dllfixdbg @@ -16,7 +16,7 @@ my @objcopy = ((shift)); my $dll = shift; my $dbg = shift; xit 0, @objcopy, '-R', '.gnu_debuglink_overlay', '--add-gnu-debuglink=/dev/null', '--only-keep-debug', $dll, $dbg; -xit 0, @objcopy, '-g', '--add-gnu-debuglink=' . $dbg, $dll; +xit 0, @objcopy, '-g', '--keep-section=.gnu_debuglink_overlay', '--add-gnu-debuglink=' . $dbg, $dll; open(OBJDUMP, '-|', "$objdump --headers $dll"); my %section; while () { diff --git a/winsup/cygwin/release/3.3.3 b/winsup/cygwin/release/3.3.3 index d04265181..2ad28d465 100644 --- a/winsup/cygwin/release/3.3.3 +++ b/winsup/cygwin/release/3.3.3 @@ -9,3 +9,6 @@ Bug Fixes fstatat and other ...at calls. "X:/" still is handled as absolute path. Addresses: https://cygwin.com/pipermail/cygwin/2021-November/249837.html + +- Fix showing DLL version info from native Windows tools. + Addresses: https://cygwin.com/pipermail/cygwin/2021-November/249867.html