summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-07-26 17:10:54 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-07-26 17:10:54 +0000
commit5fd1180d71da1df0b5feeda926b706d121061f14 (patch)
tree48fe7deec2846068c760b8949ec1c4cc8f1dddcf
parent1c937fe25746fbe78e6cc367382cb81006632b19 (diff)
downloadllvm-5fd1180d71da1df0b5feeda926b706d121061f14.tar.gz
Make changes necessary for stopping the build if a cyclic library
dependency is found. The find-cycles.pl script now exits with a return code that equals the number of cycles found. The Makefile was changed to ignore the status code of find-cycles.pl. This should be removed once the libraries are free of cyclic dependencies. llvm-svn: 29290
-rw-r--r--llvm/tools/llvm-config/Makefile2
-rwxr-xr-xllvm/tools/llvm-config/find-cycles.pl4
2 files changed, 4 insertions, 2 deletions
diff --git a/llvm/tools/llvm-config/Makefile b/llvm/tools/llvm-config/Makefile
index 16d8ba739feb..2f8998eb8b2c 100644
--- a/llvm/tools/llvm-config/Makefile
+++ b/llvm/tools/llvm-config/Makefile
@@ -39,7 +39,7 @@ $(LibDeps): $(GenLibDeps) $(LibDir) $(wildcard $(LibDir)/*.a $(LibDir)/*.o)
# don't have to process them at runtime.
$(FinalLibDeps): find-cycles.pl $(LibDeps)
$(Echo) "Finding cyclic dependencies between LLVM libraries."
- $(Verb) $(PERL) $< < $(LibDeps) > $@
+ -$(Verb) $(PERL) $< < $(LibDeps) > $@
# Rerun our configure substitutions as needed.
ConfigInIn = $(PROJ_SRC_DIR)/llvm-config.in.in
diff --git a/llvm/tools/llvm-config/find-cycles.pl b/llvm/tools/llvm-config/find-cycles.pl
index a280887217ab..eec79c95c959 100755
--- a/llvm/tools/llvm-config/find-cycles.pl
+++ b/llvm/tools/llvm-config/find-cycles.pl
@@ -40,6 +40,7 @@ find_all_cycles();
# Print out the finished cycles, with their dependencies.
my @output;
+my $cycles_found = 0;
foreach my $cycle (@CYCLES) {
my @modules = sort keys %{$cycle};
@@ -57,6 +58,7 @@ foreach my $cycle (@CYCLES) {
# Warn about possible linker problems.
my @archives = grep(/\.a$/, @modules);
if (@archives > 1) {
+ $cycles_found = $cycles_found + 1;
print STDERR "find-cycles.pl: Circular dependency between *.a files:\n";
print STDERR "find-cycles.pl: ", join(' ', @archives), "\n";
print STDERR "find-cycles.pl: Some linkers may have problems.\n";
@@ -68,7 +70,7 @@ foreach my $cycle (@CYCLES) {
join(' ', sort keys %dependencies) . "\n");
}
print sort @output;
-
+exit $cycles_found;
#==========================================================================
# Depedency Cycle Support