Christopher Faylor wrote:
That would be fine with me. OTOH, if the dllfixdbg isn't doing the right thing for gdb couldn't it be adapted to include the required sections?
Yep. Here is a patch that does that. Testsuite shows no changes, I could build cygwin in cygwin with this, and gdb doesn't complain anymore. Also tested that the cygheap can grow as much as the previous version. >objdump.exe -h new-cygwin1.dll new-cygwin1.dll: file format pei-i386 Sections: Idx Name Size VMA LMA File off Algn 0 .text 001350d4 61001000 61001000 00000400 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE, DATA 1 .autoload_text 000013d8 61137000 61137000 00135600 2**2 CONTENTS, ALLOC, LOAD, CODE 2 .data 0000b51c 61139000 61139000 00136a00 2**4 CONTENTS, ALLOC, LOAD, DATA 3 .rdata 0004fb80 61145000 61145000 00142000 2**4 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .bss 00009530 61195000 61195000 00000000 2**4 ALLOC 5 .edata 00008487 6119f000 6119f000 00191c00 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 6 .rsrc 00000420 611a8000 611a8000 0019a200 2**2 CONTENTS, ALLOC, LOAD, DATA 7 .reloc 00013434 611a9000 611a9000 0019a800 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 8 .cygwin_dll_common 00017ae4 611bd000 611bd000 001ade00 2**2 CONTENTS, ALLOC, LOAD, DATA, SHARED 9 .gnu_debuglink 00000010 611d5000 611d5000 001c5a00 2**2 CONTENTS, READONLY, DEBUGGING, EXCLUDE 10 .idata 0000a000 611d6000 611d6000 001c5c00 2**2 CONTENTS, ALLOC, LOAD, DATA 11 .cygheap 000a0000 611e0000 611e0000 00000000 2**2 ALLOC >objdump.exe -h cygwin1.dbg cygwin1.dbg: file format pei-i386 Sections: Idx Name Size VMA LMA File off Algn 0 .text 001350d4 61001000 61001000 00000000 2**4 ALLOC, LOAD, READONLY, CODE, DATA 1 .autoload_text 000013d8 61137000 61137000 00000000 2**2 ALLOC, LOAD, CODE 2 .data 0000b51c 61139000 61139000 00000000 2**4 ALLOC, LOAD, DATA 3 .rdata 0004fb80 61145000 61145000 00000000 2**4 ALLOC, LOAD, READONLY, DATA 4 .bss 00009530 61195000 61195000 00000000 2**4 ALLOC 5 .edata 00008487 6119f000 6119f000 00000000 2**2 ALLOC, LOAD, READONLY, DATA 6 .rsrc 00000420 611a8000 611a8000 00000000 2**2 ALLOC, LOAD, DATA 7 .reloc 00013434 611a9000 611a9000 00000000 2**2 ALLOC, LOAD, READONLY, DATA 8 .cygwin_dll_common 00017ae4 611bd000 611bd000 00000000 2**2 ALLOC, LOAD, DATA, SHARED 9 .idata 0000a000 611d6000 611d6000 00000000 2**2 ALLOC, LOAD, DATA 10 .cygheap 000a0000 611e0000 611e0000 00000000 2**2 ALLOC 11 .stab 00212ce8 61280000 61280000 00000380 2**2 CONTENTS, READONLY, DEBUGGING, EXCLUDE 12 .stabstr 006b00a6 61493000 61493000 00213180 2**0 CONTENTS, READONLY, DEBUGGING, EXCLUDE Cheers, Pedro Alves
2007-11-07 Pedro Alves <[EMAIL PROTECTED]> * dllfixdbg: Pass --only-keep-debug to objcopy, instead of selecting the sections manually. --- winsup/cygwin/dllfixdbg | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) Index: src/winsup/cygwin/dllfixdbg =================================================================== --- src.orig/winsup/cygwin/dllfixdbg 2007-11-07 23:44:00.000000000 +0000 +++ src/winsup/cygwin/dllfixdbg 2007-11-07 23:44:38.000000000 +0000 @@ -1,5 +1,5 @@ #!/usr/bin/perl -# Copyright 2006 Red Hat, Inc. +# Copyright 2006, 2007 Red Hat, Inc. # # This file is part of Cygwin. # @@ -16,10 +16,8 @@ my $objdump = shift; my @objcopy = ((shift)); my $dll = shift; my $dbg = shift; -xit 0, @objcopy, '-j', '.stab', '-j', '.stabstr', '-j', '.debug_aranges', - '-j', '.debug_pubnames', '-j', '.debug_info', '-j', '.debug_abbrev', - '-j', '.debug_line', '-j', '.debug_frame', '-j', '.debug_str', '-j', - '.debug_loc', '-j', '.debug_macinfo', '-j', '.debug_ranges', $dll, $dbg; +xit 0, @objcopy, '--only-keep-debug', $dll, $dbg; +xit 0, @objcopy, '-R', '.gnu_debuglink_overlay', $dbg; xit 0, @objcopy, '-g', '--add-gnu-debuglink=' . $dbg, $dll; open(OBJDUMP, '-|', "$objdump --headers $dll"); my %section;