# HG changeset patch # User never # Date 1213312381 25200 # Node ID 8b48a7bd2bf7e7f0a4cb1ccfd5fb327d044a1b12 # Parent 99bf1609e2a5f12dc01cf36f79a524eedb593264 6697238: missing dependencies for precompiled headers with platform dependent includes Reviewed-by: kvn diff -r 99bf1609e2a5 -r 8b48a7bd2bf7 src/share/tools/MakeDeps/Database.java --- a/src/share/tools/MakeDeps/Database.java Thu Jun 12 09:47:55 2008 -0700 +++ b/src/share/tools/MakeDeps/Database.java Thu Jun 12 16:13:01 2008 -0700 @@ -36,6 +36,7 @@ private FileList outerFiles; private FileList indivIncludes; private FileList grandInclude; // the results for the grand include file + private HashMap platformDepFiles; private long threshold; private int nOuterFiles; private int nPrecompiledFiles; @@ -57,6 +58,7 @@ outerFiles = new FileList("outerFiles", plat); indivIncludes = new FileList("IndivIncludes", plat); grandInclude = new FileList(plat.getGIFileTemplate().nameOfList(), plat); + platformDepFiles = new HashMap(); threshold = t; nOuterFiles = 0; @@ -209,6 +211,10 @@ FileList p = allFiles.listForFile(includer); p.setPlatformDependentInclude(pdName.dirPreStemSuff()); + // Record the implicit include of this file so that the + // dependencies for precompiled headers can mention it. + platformDepFiles.put(newIncluder, includer); + // Add an implicit dependency on platform // specific file for the generic file @@ -408,6 +414,12 @@ for (Iterator iter = grandInclude.iterator(); iter.hasNext(); ) { FileList list = (FileList) iter.next(); gd.println(list.getName() + " \\"); + String platformDep = platformDepFiles.get(list.getName()); + if (platformDep != null) { + // make sure changes to the platform dependent file will + // cause regeneration of the pch file. + gd.println(platformDep + " \\"); + } } gd.println(); gd.println();