Modular Run-Time Images build fails with JDK8u25 as bootstrap JDK
Phil Race
philip.race at oracle.com
Sat Dec 6 21:22:56 UTC 2014
yep lots of people have reported this/seen this
-phil.
On 12/6/14 1:03 PM, Stuart Marks wrote:
> [Adding build-dev to let them know others are seeing this. I'm not on
> jigsaw-dev though so this might not make it there.]
>
> Hi Peter,
>
> I ran into this myself the other day and had a wrestling match with
> it. There's a bug in the build system on this:
>
> https://bugs.openjdk.java.net/browse/JDK-8066761
>
> My understanding is that this has to do with timestamps on the
> checked-out source files vs. the class files in the boot JDK. With
> 8u20 as boot, all the class files are out of date w.r.t. the source
> files so everything is rebuilt. With 8u25, some class files might be
> newer than the source files, if you've been using the same source tree
> for a long time (as many of us have).
>
> The workaround is to touch all the source files in the jdk repo before
> doing a clean build:
>
> $ cd jdk; hg manifest | xargs touch
>
> or do
>
> $ cd jdk; hg update null; hg update tip
>
> to re-checkout all the files.
>
> The root cause seems to be inadvertent dependency checks against
> classes in the boot JDK, which cause the build to mix in old class
> files from the boot JDK. Obviously if you do a fresh build, everything
> ought to be out of date, regardless of which boot JDK is in use.
>
> s'marks
>
> On 12/6/14 11:20 AM, Peter Levart wrote:
>> Hi,
>>
>> I thought I might inform you that recent checkout of JDK9 (with
>> modular RT images) fails to build with JDK8u25 as bootstrap JDK. With
>> JDK8u20 it works correctly. Tried on Linux and Windows. The
>> configuration on Linux is:
>>
>> Configuration summary:
>> * Debug level: release
>> * HS debug level: product
>> * JDK variant: normal
>> * JVM variants: server
>> * OpenJDK target: OS: linux, CPU architecture: x86, address length: 64
>>
>> Tools summary:
>> * Boot JDK: java version "1.8.0_25" Java(TM) SE Runtime
>> Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM
>> (build 25.25-b02, mixed mode) (at /home/peter/Apps64/jdk1.8.0)
>> * Toolchain: gcc (GNU Compiler Collection)
>> * C Compiler: Version 4.8.3 (at /usr/bin/gcc)
>> * C++ Compiler: Version 4.8.3 (at /usr/bin/g++)
>>
>> Build performance summary:
>> * Cores to use: 7
>> * Memory limit: 15757 MB
>>
>>
>> Here's the build session:
>>
>> [peter at cube jdk9-dev]$ make CONF=linux-x86_64-normal-server-release
>> images
>> Building 'linux-x86_64-normal-server-release' (matching
>> CONF=linux-x86_64-normal-server-release)
>> Building OpenJDK for target 'images' in configuration
>> 'linux-x86_64-normal-server-release'
>>
>> Compiling 1 files for BUILD_TOOLS_LANGTOOLS
>> Compiling 20 properties into resource bundles for jdk.compiler
>> Compiling 10 properties into resource bundles for jdk.javadoc
>> Compiling 5 properties into resource bundles for jdk.dev
>> Compiling 818 files for BUILD_INTERIM_LANGTOOLS
>> warning: [options] bootstrap class path not set in conjunction with
>> -source 1.6
>> warning: [options] bootstrap class path not set in conjunction with
>> -source 1.6
>> 1 warning
>> 1 warning
>> warning: [options] bootstrap class path not set in conjunction with
>> -source 1.6
>> Note: Some input files use unchecked or unsafe operations.
>> Note: Recompile with -Xlint:unchecked for details.
>> 1 warning
>> Warning: generation and use of skeletons and static stubs for JRMP
>> is deprecated. Skeletons are unnecessary, and static stubs have
>> been superseded by dynamically generated stubs. Users are
>> encouraged to migrate away from using rmic to generate skeletons and
>> static
>> stubs. See the documentation for java.rmi.server.UnicastRemoteObject.
>> Creating buildtools/interim_langtools.jar
>> Compiling 198 files for BUILD_INTERIM_RMIC
>> Compiling 23 files for BUILD_INTERIM_JIMAGE
>> Compiling 6 files for BUILD_TOOLS_CORBA
>> Compiling 141 files for BUILD_IDLJ
>> /home/peter/work/hg/jdk9-dev/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java:230:
>> error: cannot find symbol
>> LambdaForm form2 = mh.editor().filterArgumentForm(1+i,
>> BasicType.basicType(newType));
>> ^
>> symbol: method editor()
>> location: variable mh of type BoundMethodHandle
>> /home/peter/work/hg/jdk9-dev/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java:231:
>> error: cannot find symbol
>> mh = mh.copyWithExtendL(midType, form2, fn);
>> ^
>> symbol: method copyWithExtendL(MethodType,LambdaForm,MethodHandle)
>> location: variable mh of type BoundMethodHandle
>> /home/peter/work/hg/jdk9-dev/jdk/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java:250:
>> error: cannot find symbol
>> LambdaForm form2 =
>> mh.editor().filterReturnForm(BasicType.basicType(newType), false);
>> ^
>> symbol: method editor()
>> location: variable mh of type BoundMethodHandle
>>
>> ...etc...
>>
>>
>> It seems that something changed between JDK8u20 and JDK8u25 regarding
>> bootclasspath handling of javac as the above errors suggest that JDK9
>> sources are being compiled against JDK8 classes.
>>
>>
>> Regards, Peter
>>
>>
>
More information about the compiler-dev
mailing list