-
Bug
-
Resolution: Fixed
-
P2
-
13
-
None
-
b16
Since JDK-8221764, the bootcycle build fails with the following:
Building target 'bootcycle-images' in configuration 'linux-x64'
Boot cycle build step 2: Building a new JDK image using previously built image
/usr/bin/tee: /home/erik/hg/jdk-bootcycle/build/linux-x64/bootcycle-build/build.log: No such file or directory
This indicates that the OUTPUTDIR/bootcycle-build directory has not been created when tee tries to open the file. Before the offending change, tee was run in an asynchronous sub shell so we just ignored the errors, which were printed like this:
Boot cycle build step 2: Building a new JDK image using previously built image
/usr/bin/tee: /home/erik/hg/jdk/build/linux-x64/bootcycle-build/build.log: No such file or directory
Building target 'product-images' in configuration 'linux-x64'
/usr/bin/tee: /home/erik/hg/jdk/build/linux-x64/bootcycle-build/build.log: No such file or directory
Now the first line that tries to pipe to tee uses the new BUILD_LOG_PIPE_SIMPLE which is just a simple pipe to tee, and so it fails the command.
I think the proper fix is to add an explicit mkdir of the bootcycle outputdir in the bootcycle-images target in Main.gmk. Init.gmk expects the outputdir to exist already so it would not fit well to put the mkdir there.
Building target 'bootcycle-images' in configuration 'linux-x64'
Boot cycle build step 2: Building a new JDK image using previously built image
/usr/bin/tee: /home/erik/hg/jdk-bootcycle/build/linux-x64/bootcycle-build/build.log: No such file or directory
This indicates that the OUTPUTDIR/bootcycle-build directory has not been created when tee tries to open the file. Before the offending change, tee was run in an asynchronous sub shell so we just ignored the errors, which were printed like this:
Boot cycle build step 2: Building a new JDK image using previously built image
/usr/bin/tee: /home/erik/hg/jdk/build/linux-x64/bootcycle-build/build.log: No such file or directory
Building target 'product-images' in configuration 'linux-x64'
/usr/bin/tee: /home/erik/hg/jdk/build/linux-x64/bootcycle-build/build.log: No such file or directory
Now the first line that tries to pipe to tee uses the new BUILD_LOG_PIPE_SIMPLE which is just a simple pipe to tee, and so it fails the command.
I think the proper fix is to add an explicit mkdir of the bootcycle outputdir in the bootcycle-images target in Main.gmk. Init.gmk expects the outputdir to exist already so it would not fit well to put the mkdir there.
- relates to
-
JDK-8221764 Reduce make Init.gmk logging overhead
-
- Resolved
-