94b2861243
Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
44 lines
1018 B
Perl
Executable File
44 lines
1018 B
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
use strict;
|
|
|
|
my $outfile = shift || usage ();
|
|
my $soname = shift || usage ();
|
|
my $dllname = shift || usage ();
|
|
my @symbols = ();
|
|
my %excludes = ();
|
|
my $cmd = "nm -D $soname";
|
|
|
|
@excludes {qw(
|
|
mono_class_setup_vtable_general_new mono_debugger_init mono_debugger_main
|
|
mono_once mono_pthread_key_for_tls
|
|
mono_gc_pthread_create mono_gc_pthread_detach mono_gc_pthread_join
|
|
mono_gc_pthread_exit
|
|
mono_file_map_fileio mono_file_unmap_fileio
|
|
mono_file_map_set_allocator
|
|
)} = ();
|
|
|
|
open (SYMS, "$cmd |") || die "Cannot run \$cmd': $!\n";
|
|
while (<SYMS>) {
|
|
next unless / T (mono_.*)/;
|
|
next if exists $excludes {$1};
|
|
push @symbols, $1;
|
|
}
|
|
close (SYMS);
|
|
push @symbols, "MonoFixupCorEE";
|
|
@symbols = sort @symbols;
|
|
|
|
open (OUT, ">$outfile") || die "Cannot open '$outfile': $!\n";
|
|
print OUT "; file generated by create-windef.pl\n";
|
|
print OUT "EXPORTS\n";
|
|
print OUT join ("\n", @symbols);
|
|
print OUT "\n";
|
|
|
|
close (OUT);
|
|
|
|
sub usage {
|
|
print "Usage: create-windef.pl output_file soname dllname\n";
|
|
exit (1);
|
|
}
|
|
|