problem with latest updates

Kurt Miller kurt at intricatesoftware.com
Thu Apr 7 20:09:22 PDT 2011


Hi Henri,

I have submitted a correction that fixes the following build errors:

On 3/4/11 7:28 AM, Henri Gomez wrote:
> Hi to all,
>
> I see the change in mercurial and started a new build from my Jenkins CI.
> I got the following errors :
>
>     [javac] /Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-i586/workspace/langtools/src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java:326:
> cannot find symbol
>     [javac]         if (!Files.exists(path))
>     [javac]                   ^
>     [javac]   symbol:   method exists(Path)
>     [javac]   location: class Files
...
>     [javac] /Users/henri/Documents/jenkins/data/jobs/openjdk-1.7-bsdport-i586/workspace/langtools/src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java:376:
> cannot find symbol
>     [javac]                 Path name = dir.getFileName();
>     [javac]                                ^
>     [javac]   symbol:   method getFileName()
>     [javac]   location: class Path

The problem is that the detection for when to use
langtools stub files wasn't complete. It can detect
if you are using a 1.6 jdk to bootstrap but it can't detect
if you are using an older 1.7 jdk to build. There is
information about how langtools build works in
Jonathan Gibbons blog page here:

http://blogs.sun.com/jjg/entry/building_javac_for_jdk7

I have expanded the test which detects for a recent jdk
so that the stub files are built if building with an older
1.7 jdk. With this fix I can now build on PPC again with
an older 1.7 jdk.

I've cc'ed the langtools list so the fix can be considered
upstream.

diff -r 1769d2cbff79 make/build.xml
--- a/make/build.xml    Mon Apr 04 19:17:16 2011 -0700
+++ b/make/build.xml    Thu Apr 07 22:43:27 2011 -0400
@@ -186,9 +186,14 @@
</condition>

<condition property="boot.java.provides.latest.jdk">
- <available
-            ignoresystemclasses="true"
-            classpath="${boot.java.home}/jre/lib/rt.jar" 
classname="java.nio.file.Path"/>
+ <and>
+ <available
+                ignoresystemclasses="true"
+                classpath="${boot.java.home}/jre/lib/rt.jar" 
classname="java.nio.file.Path"/>
+ <hasmethod
+                classpath="${boot.java.home}/jre/lib/rt.jar"
+                classname="java.nio.file.Path" method="getFileName"/>
+ </and>
</condition>

<condition property="bootstrap.exclude.files" value="" 
else="${require.latest.jdk.files}">

Regards,
-Kurt



More information about the compiler-dev mailing list