From: tgingold Date: Fri, 12 Jan 2007 23:22:29 +0000 (+0000) Subject: Disp dependencies in error in case of circular dependency X-Git-Tag: edk2-stable201903~23632 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=b991a45139b0b5a0b5082b63fa27cf8ef8e6fd1b Disp dependencies in error in case of circular dependency git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2245 6f19259b-4bc3-4df7-8a09-765794883524 --- diff --git a/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java b/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java index 37c54f50af..042f0447ef 100644 --- a/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java +++ b/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java @@ -231,17 +231,28 @@ public class AutogenLibOrder { // // Append the remaining library instance to the end of sorted list // + boolean HasError = false; for (int i = 0; i < libInstanceList.length; ++i) { - if (libInstanceConsumedBy.get(libInstanceList[i]).size() > 0 && libInstanceList[i].hasConstructor()) { + HashSet consumedBy = libInstanceConsumedBy.get(libInstanceList[i]); + if (consumedBy.size() > 0 && libInstanceList[i].hasConstructor()) { EdkLog.log(EdkLog.EDK_ERROR, libInstanceList[i].getName() + " with constructor has a circular dependency!"); - throw new AutoGenException("Circular dependency in library instances is found!"); + ModuleIdentification[] consumedByList = consumedBy.toArray(new ModuleIdentification[consumedBy.size()]); + for (int j = 0; j < consumedByList.length; ++j) { + EdkLog.log(EdkLog.EDK_ERROR, + " consumed by " + consumedByList[j].getName()); + } + HasError = true; } if (!orderList.contains(libInstanceList[i])) { orderList.add(libInstanceList[i]); } } + if (HasError) { + throw new AutoGenException("Circular dependency in library instances is found!"); + } + return orderList; } }