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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29290 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2006-07-26 17:10:54 +00:00
parent 44b60ec455
commit dd3f6aa91f
2 changed files with 4 additions and 2 deletions

View File

@ -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

View File

@ -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