From 2e82c9355f9d42076b3da7694ed025c1c8617309 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 8 Aug 2005 13:53:05 +0000 Subject: [PATCH] * cygwin.sc: Use simpler method to align .cygheap. * dllfixdbg: Just copy .stab and .stabstr sections when making cygwin1.dbg, rather than relying on objcopy to keep only the debug sections since objcopy seems to get it wrong. * dtable.cc (build_fh_pc): Check setting fh to fhandler_nodevice for NULL, too. --- winsup/cygwin/ChangeLog | 12 ++++++++++++ winsup/cygwin/cygwin.sc | 2 +- winsup/cygwin/dllfixdbg | 2 +- winsup/cygwin/dtable.cc | 13 ++++++------- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index b999c27d1..3765e09dd 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,15 @@ +2005-08-08 Christopher Faylor + + * cygwin.sc: Use simpler method to align .cygheap. + * dllfixdbg: Just copy .stab and .stabstr sections when making + cygwin1.dbg, rather than relying on objcopy to keep only the debug + sections since objcopy seems to get it wrong. + +2005-08-08 Corinna Vinschen + + * dtable.cc (build_fh_pc): Check setting fh to fhandler_nodevice for + NULL, too. + 2005-08-08 Corinna Vinschen * ftw.c: Include winsup.h. diff --git a/winsup/cygwin/cygwin.sc b/winsup/cygwin/cygwin.sc index 1bfbd794a..cc2b9e6c6 100644 --- a/winsup/cygwin/cygwin.sc +++ b/winsup/cygwin/cygwin.sc @@ -106,7 +106,7 @@ SECTIONS { __cygheap_mid = .; *(.cygheap) - . = ALIGN(512 * 1024, 0x10000); + . = ALIGN(512 * 1024); } __cygheap_end = ABSOLUTE(.); __cygheap_end1 = __cygheap_mid + SIZEOF(.cygheap); diff --git a/winsup/cygwin/dllfixdbg b/winsup/cygwin/dllfixdbg index 1e467d37c..8d66988fa 100755 --- a/winsup/cygwin/dllfixdbg +++ b/winsup/cygwin/dllfixdbg @@ -8,7 +8,7 @@ my $objdump = shift; my @objcopy = ((shift)); my $dll = shift; my $dbg = shift; -xit 0, @objcopy, '--only-keep-debug', $dll, $dbg; +xit 0, @objcopy, '-j', '.stab', '-j', '.stabstr', $dll, $dbg; xit 0, @objcopy, '-g', '--add-gnu-debuglink=' . $dbg, $dll; open(OBJDUMP, '-|', "$objdump --headers $dll"); my %section; diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc index 4164740ee..220d28cc7 100644 --- a/winsup/cygwin/dtable.cc +++ b/winsup/cygwin/dtable.cc @@ -473,14 +473,13 @@ build_fh_pc (path_conv& pc) } } - if (!fh) - set_errno (EMFILE); + if (fh == fh_unset) + fh = cnew (fhandler_nodevice) (); + + if (fh) + fh->set_name (pc); else - { - if (fh == fh_unset) - fh = cnew (fhandler_nodevice) (); - fh->set_name (pc); - } + set_errno (EMFILE); debug_printf ("fh %p", fh); return fh;