summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-11 09:00:36 +0000
committerjwang36 <jwang36@6f19259b-4bc3-4df7-8a09-765794883524>2007-01-11 09:00:36 +0000
commitd919bb8cf91225ad4df49bdf50cd37795aadc7e6 (patch)
treeff1c21397c19e309659eb243365e599037f346d5 /Tools
parent957407060b0b7f78a5303699e237ab1dbcc3cacd (diff)
downloadedk2-d919bb8cf91225ad4df49bdf50cd37795aadc7e6.zip
edk2-d919bb8cf91225ad4df49bdf50cd37795aadc7e6.tar.gz
edk2-d919bb8cf91225ad4df49bdf50cd37795aadc7e6.tar.bz2
Added a workaround to fix the library instance constructor sequence issue.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2221 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'Tools')
-rw-r--r--Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java12
1 files changed, 11 insertions, 1 deletions
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 11469a6..8fb1be5 100644
--- a/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java
+++ b/Tools/Java/Source/GenBuild/org/tianocore/build/autogen/AutogenLibOrder.java
@@ -223,8 +223,18 @@ public class AutogenLibOrder {
// Append the remaining library instance to the end of sorted list
//
for (int i = 0; i < libInstanceList.length; ++i) {
+ if (libInstanceConsumedBy.get(libInstanceList[i]).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!");
+ }
+
if (!orderList.contains(libInstanceList[i])) {
- orderList.add(libInstanceList[i]);
+ if (libInstanceList[i].getName().equals("UefiBootServicesTableLib")) {
+ orderList.addFirst(libInstanceList[i]);
+ } else {
+ orderList.add(libInstanceList[i]);
+ }
}
}
return orderList;