source: icGREP/icgrep-devel/llvm-3.6.1.src/utils/findsym.pl @ 4721

Last change on this file since 4721 was 4279, checked in by cameron, 5 years ago

Upgrade to LLVM 3.5

  • Property svn:executable set to *
File size: 832 bytes
Line 
1#!/usr/bin/perl -w
2#
3# Program:  findsym.pl
4#
5# Synopsis: Generate a list of the libraries in which a symbol is defined or
6#           referenced.
7#
8# Syntax:   findsym.pl <directory_with_libraries_in_it> <symbol>
9#
10
11# Give first option a name.
12my $Directory = $ARGV[0];
13my $Symbol = $ARGV[1];
14
15# Open the directory and read its contents, sorting by name and differentiating
16# by whether its a library (.a) or an object file (.o)
17opendir DIR,$Directory;
18my @files = readdir DIR;
19closedir DIR;
20@objects = grep(/l?i?b?LLVM.*\.[oa]$/,sort(@files));
21
22# Gather definitions from the libraries
23foreach $lib (@objects) {
24  my $head = 0;
25  open SYMS, 
26    "nm $Directory/$lib | grep '$Symbol' | sort --key=3 | uniq |";
27  while (<SYMS>) {
28    if (!$head) { print "$lib:\n"; $head = 1; }
29    chomp($_);
30    print "  $_\n";
31  }
32  close SYMS;
33}
Note: See TracBrowser for help on using the repository browser.