Mercurial > hg > CbC > CbC_llvm
view utils/findsym.pl @ 121:803732b1fca8
LLVM 5.0
author | kono |
---|---|
date | Fri, 27 Oct 2017 17:07:41 +0900 |
parents | 95c75e76d11b |
children |
line wrap: on
line source
#!/usr/bin/perl -w # # Program: findsym.pl # # Synopsis: Generate a list of the libraries in which a symbol is defined or # referenced. # # Syntax: findsym.pl <directory_with_libraries_in_it> <symbol> # # Give first option a name. my $Directory = $ARGV[0]; my $Symbol = $ARGV[1]; # Open the directory and read its contents, sorting by name and differentiating # by whether its a library (.a) or an object file (.o) opendir DIR,$Directory; my @files = readdir DIR; closedir DIR; @objects = grep(/l?i?b?LLVM.*\.[oa]$/,sort(@files)); # Gather definitions from the libraries foreach $lib (@objects) { my $head = 0; open SYMS, "nm $Directory/$lib | grep '$Symbol' | sort --key=3 | uniq |"; while (<SYMS>) { if (!$head) { print "$lib:\n"; $head = 1; } chomp($_); print " $_\n"; } close SYMS; }