From 8d59af356f68fa960cb3e69551d5a8b87d6a71b0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sat, 4 Oct 2008 18:03:46 +0000 Subject: Make GenLibDeps.pl more robust in the face of broken piping problems. Patch by Kenneth Boyd! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57057 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/GenLibDeps.pl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'utils') diff --git a/utils/GenLibDeps.pl b/utils/GenLibDeps.pl index 35811b4e3c..21853d5350 100755 --- a/utils/GenLibDeps.pl +++ b/utils/GenLibDeps.pl @@ -114,6 +114,32 @@ sub gen_one_entry { } } close UNDEFS; + unless(keys %DepLibs) { + # above failed + open UNDEFS, "$nmPath -g -u $Directory/$lib |"; + while () { + # to bypass non-working sed + if (' ' eq substr($_,0,2) and index($_,'U ')) { + $_ = substr($_,index($_,'U ')+2) + }; + $_ = substr($_,index($_,' *U ')+5) if -1!=index($_,' *U '); + + chomp; + my $lib_printed = 0; + if (defined($libdefs{$_}) && $libdefs{$_} ne $lib) { + $DepLibs{$libdefs{$_}} = [] unless exists $DepLibs{$libdefs{$_}}; + push(@{$DepLibs{$libdefs{$_}}}, $_); + } elsif (defined($objdefs{$_}) && $objdefs{$_} ne $lib) { + my $libroot = $lib; + $libroot =~ s/lib(.*).a/$1/; + if ($objdefs{$_} ne "$libroot.o") { + $DepLibs{$objdefs{$_}} = [] unless exists $DepLibs{$objdefs{$_}}; + push(@{$DepLibs{$objdefs{$_}}}, $_); + } + } + } + } + for my $key (sort keys %DepLibs) { if ($FLAT) { print " $key"; -- cgit v1.2.3