diff options
author | ryker <> | 1998-10-05 20:13:15 +0000 |
---|---|---|
committer | ryker <> | 1998-10-05 20:13:15 +0000 |
commit | 536c76cbb863bab152f19842ab88772c01e922c7 (patch) | |
tree | dfecec371a097b73d605aae665887946d9982219 /src/lib/libcrypto/util/src-dep.pl | |
download | openbsd-536c76cbb863bab152f19842ab88772c01e922c7.tar.gz openbsd-536c76cbb863bab152f19842ab88772c01e922c7.tar.bz2 openbsd-536c76cbb863bab152f19842ab88772c01e922c7.zip |
Import of SSLeay-0.9.0b with RSA and IDEA stubbed + OpenBSD build
functionality for shared libs.
Note that routines such as sslv2_init and friends that use RSA will
not work due to lack of RSA in this library.
Needs documentation and help from ports for easy upgrade to full
functionality where legally possible.
Diffstat (limited to 'src/lib/libcrypto/util/src-dep.pl')
-rw-r--r-- | src/lib/libcrypto/util/src-dep.pl | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/src/lib/libcrypto/util/src-dep.pl b/src/lib/libcrypto/util/src-dep.pl new file mode 100644 index 0000000000..91242f7bb6 --- /dev/null +++ b/src/lib/libcrypto/util/src-dep.pl | |||
@@ -0,0 +1,147 @@ | |||
1 | #!/usr/bin/perl | ||
2 | |||
3 | # we make up an array of | ||
4 | # $file{function_name}=filename; | ||
5 | # $unres{filename}="func1 func2 ...." | ||
6 | $debug=1; | ||
7 | #$nm_func="parse_linux"; | ||
8 | $nm_func="parse_solaris"; | ||
9 | |||
10 | foreach (@ARGV) | ||
11 | { | ||
12 | &$nm_func($_); | ||
13 | } | ||
14 | |||
15 | foreach $file (sort keys %unres) | ||
16 | { | ||
17 | @a=split(/\s+/,$unres{$file}); | ||
18 | %ff=(); | ||
19 | foreach $func (@a) | ||
20 | { | ||
21 | $f=$file{$func}; | ||
22 | $ff{$f}=1 if $f ne ""; | ||
23 | } | ||
24 | |||
25 | foreach $a (keys %ff) | ||
26 | { $we_need{$file}.="$a "; } | ||
27 | } | ||
28 | |||
29 | foreach $file (sort keys %we_need) | ||
30 | { | ||
31 | # print " $file $we_need{$file}\n"; | ||
32 | foreach $bit (split(/\s+/,$we_need{$file})) | ||
33 | { push(@final,&walk($bit)); } | ||
34 | |||
35 | foreach (@final) { $fin{$_}=1; } | ||
36 | @final=""; | ||
37 | foreach (sort keys %fin) | ||
38 | { push(@final,$_); } | ||
39 | |||
40 | print "$file: @final\n"; | ||
41 | } | ||
42 | |||
43 | sub walk | ||
44 | { | ||
45 | local($f)=@_; | ||
46 | local(@a,%seen,@ret,$r); | ||
47 | |||
48 | @ret=""; | ||
49 | $f =~ s/^\s+//; | ||
50 | $f =~ s/\s+$//; | ||
51 | return "" if ($f =~ "^\s*$"); | ||
52 | |||
53 | return(split(/\s/,$done{$f})) if defined ($done{$f}); | ||
54 | |||
55 | return if $in{$f} > 0; | ||
56 | $in{$f}++; | ||
57 | push(@ret,$f); | ||
58 | foreach $r (split(/\s+/,$we_need{$f})) | ||
59 | { | ||
60 | push(@ret,&walk($r)); | ||
61 | } | ||
62 | $in{$f}--; | ||
63 | $done{$f}=join(" ",@ret); | ||
64 | return(@ret); | ||
65 | } | ||
66 | |||
67 | sub parse_linux | ||
68 | { | ||
69 | local($name)=@_; | ||
70 | |||
71 | open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n"; | ||
72 | while (<IN>) | ||
73 | { | ||
74 | chop; | ||
75 | next if /^\s*$/; | ||
76 | if (/^[^[](.*):$/) | ||
77 | { | ||
78 | $file=$1; | ||
79 | $file="$1.c" if /\[(.*).o\]/; | ||
80 | print STDERR "$file\n"; | ||
81 | $we_need{$file}=" "; | ||
82 | next; | ||
83 | } | ||
84 | |||
85 | @a=split(/\s*\|\s*/); | ||
86 | next unless $#a == 7; | ||
87 | next unless $a[4] eq "GLOB"; | ||
88 | if ($a[6] eq "UNDEF") | ||
89 | { | ||
90 | $unres{$file}.=$a[7]." "; | ||
91 | } | ||
92 | else | ||
93 | { | ||
94 | if ($file{$a[7]} ne "") | ||
95 | { | ||
96 | print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n"; | ||
97 | } | ||
98 | else | ||
99 | { | ||
100 | $file{$a[7]}=$file; | ||
101 | } | ||
102 | } | ||
103 | } | ||
104 | close(IN); | ||
105 | } | ||
106 | |||
107 | sub parse_solaris | ||
108 | { | ||
109 | local($name)=@_; | ||
110 | |||
111 | open(IN,"nm $name|") || die "unable to run 'nn $name':$!\n"; | ||
112 | while (<IN>) | ||
113 | { | ||
114 | chop; | ||
115 | next if /^\s*$/; | ||
116 | if (/^(\S+):$/) | ||
117 | { | ||
118 | $file=$1; | ||
119 | #$file="$1.c" if $file =~ /^(.*).o$/; | ||
120 | print STDERR "$file\n"; | ||
121 | $we_need{$file}=" "; | ||
122 | next; | ||
123 | } | ||
124 | @a=split(/\s*\|\s*/); | ||
125 | next unless $#a == 7; | ||
126 | next unless $a[4] eq "GLOB"; | ||
127 | if ($a[6] eq "UNDEF") | ||
128 | { | ||
129 | $unres{$file}.=$a[7]." "; | ||
130 | print STDERR "$file needs $a[7]\n" if $debug; | ||
131 | } | ||
132 | else | ||
133 | { | ||
134 | if ($file{$a[7]} ne "") | ||
135 | { | ||
136 | print STDERR "duplicate definition of $a[7],\n$file{$a[7]} and $file \n"; | ||
137 | } | ||
138 | else | ||
139 | { | ||
140 | $file{$a[7]}=$file; | ||
141 | print STDERR "$file has $a[7]\n" if $debug; | ||
142 | } | ||
143 | } | ||
144 | } | ||
145 | close(IN); | ||
146 | } | ||
147 | |||