diff options
Diffstat (limited to 'winsup/cygwin/analyze_sigfe')
-rwxr-xr-x | winsup/cygwin/analyze_sigfe | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/winsup/cygwin/analyze_sigfe b/winsup/cygwin/analyze_sigfe deleted file mode 100755 index 0b9b7219f..000000000 --- a/winsup/cygwin/analyze_sigfe +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/perl -s -# Copyright 2006 Red Hat, Inc. -# -# This file is part of Cygwin. -# -# This software is a copyrighted work licensed under the terms of the -# Cygwin license. Please consult the file "CYGWIN_LICENSE" for -# details. - -# This will do a crude test to see if the (NO)?SIGFE stuff is used properly -# in cygwin.din. It is not perfect so do not use it to do a wholesale replacement. -# -# Input is the output of 'objdump --disassemble --demangle cygwin0.dll'. -# -use strict; -use vars qw'$v'; -sub star($); - -my %funcs; -my $func = ''; - -$| = 1; -while (<>) { - /^610.....\s+<([^\(>]+).*?:/o and do { - $func = $1; - $funcs{$func} = {} unless defined $funcs{$func}; - next; - }; - $func and /call\s+\S+\s+<([^\(>]+)/o and do { - my $called = $1; - $funcs{$func}{$called} = 1; - if ($called =~ /^[A-Z].*@/o || ($called = $funcs{$called}{-uses_kernel})) { - $funcs{$func}{-uses_kernel} ||= $called; - my @a = ($func); - while (my $f = shift @a) { - for my $k (keys %funcs) { - if ($funcs{$k}{$f} && !$funcs{$k}{-uses_kernel}) { - $funcs{$k}{-uses_kernel} = $called; - push(@a, $k); - } - } - } - } - next; - }; -} - -if ($v) { - for my $k (sort keys %funcs) { - print star($funcs{$k}), $k, $funcs{$k}{-uses_kernel} ? " ($funcs{$k}{-uses_kernel})\n" : "\n"; - my $indent = ' '; - for (sort keys %{$funcs{$k}}) { - next if /^-/o; - print $indent, $_, star($funcs{$k}); - $indent = ' '; - } - print "\n"; - } -} - -open(DIN, '<', 'cygwin.din') or die "$0: couldn't open cygwin.din - $!\n"; -while (<DIN>) { - my $line = $_; - /^LIBRARY\s+/o and next; - /^\s*$/ and next; - /^EXPORTS/o and next; - / DATA$/o and next; - my $sigfe = (/\s+((?:NO)?SIGFE)\s*$/o)[0] !~ /^NO/o; - s/\s+((?:NO)?SIGFE)\s*$//o; - my $func = (/\s+=\s+(\S+)/o)[0] || (/^\s*(\S+)/o)[0]; - if (!defined($funcs{$func})) { - warn "hmm. couldn't find $func in disassembled output\n"; - } elsif (!!$funcs{$func}{-uses_kernel} != $sigfe) { - warn "mismatch detected: $line"; - } -} - -sub star($) { - return $_[0]->{-uses_kernel} ? '*' : ''; -} |