Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-07-14 23:33:55 +0400
committerChristopher Faylor <me@cgf.cx>2006-07-14 23:33:55 +0400
commitebc223f182d9c276c715c9a3683a7302f4c98fe6 (patch)
treed5ef4d5fa8889c198891592503ebdc4582c50eb5 /winsup/cygwin/dllfixdbg
parent62f94a893e01ac6542ec798bc7967da105c05e4c (diff)
* cygwin.sc: Make sure there's something in the cygheap.
* dllfixdbg: Accommodate newer binutils which put the gnu_debuglink at the end rather than at the beginning.
Diffstat (limited to 'winsup/cygwin/dllfixdbg')
-rwxr-xr-xwinsup/cygwin/dllfixdbg4
1 files changed, 3 insertions, 1 deletions
diff --git a/winsup/cygwin/dllfixdbg b/winsup/cygwin/dllfixdbg
index 909d11355..4ffc4e6ce 100755
--- a/winsup/cygwin/dllfixdbg
+++ b/winsup/cygwin/dllfixdbg
@@ -24,9 +24,10 @@ while (<OBJDUMP>) {
my ($idx, $name, $size, $vma, $lma, $fileoff, $algn) = /^\s*(\d+)\s+(\.\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s*$/;
if ($name eq '.gnu_debuglink') {
push(@objcopy, '--set-section-flag', '.gnu_debuglink=contents,readonly,debug,noload');
+ $idx = $section{'.gnu_debuglink'}{-idx} if defined($section{'.gnu_debuglink'}{-idx});
} elsif ($name eq '.gnu_debuglink_overlay') {
push (@objcopy, '-R', '.gnu_debuglink_overlay');
- $section{'.gnu_debuglink'}{-idx} = $idx if $section{'.gnu_debuglink'};
+ $section{'.gnu_debuglink'}{-idx} = $idx;
next;
}
defined($idx) and
@@ -53,6 +54,7 @@ for my $k (sort {$section{$a}{-idx} <=> $section{$b}{-idx}} keys %section) {
}
$vma = align($vma + $section{$k}{-size}, $section{$k}{-algn});
}
+
warn "$0: ERROR final VMA (" . sprintf("0x%08x", $vma) . ") not on 64K boundary\n" if $vma != align($vma, 64 * 1024);
push(@objcopy, $dll, @ARGV);
xit 1, @objcopy;