Mercurial > hg > CbC > CbC_llvm
view utils/findsym.pl @ 109:6916f1d3a436
meu
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 01 Feb 2016 03:02:03 +0900 (2016-01-31) |
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; }