On 2019-01-30 02:18, Erik Joelsson wrote:
Hello,
Some recent build failures reminded me of this issue and increased the
need to fix it ASAP to be able to diagnose them.
GenerateLinkOptData.gmk runs a java tool to generate data which is
later used to optimize the JDK image with jlink. The problem here is
that the tool needs to print some of that data on stdout, which the
build captures as one build artifact, and will print some "garbage" on
stderr if things go well. So currently we just hide all that output
from the build log. Because of this, if something goes wrong, we won't
see the error.
This patch tries to capture the stderr output and only print it (along
with stdout) if the java command fails.
Bug: https://bugs.openjdk.java.net/browse/JDK-8204564
Webrev: http://cr.openjdk.java.net/~erikj/8204564/webrev.01/
Good idea, but could you please include some more information in the
case of failure? The classlist data generation gets a lot of blame when
the real cause is that the JDK is stillborn.
Something like:
|| ( exitcode=$$? && $(ECHO) "ERROR: Classlist file
generation failed. This is typically a sign that the newly built JDK is
broken, and not of an error in the Classlist generation." && $(ECHO)
"Classlist stderr: " &&
$(CAT) $(LINK_OPT_DIR)/stderr && $(ECHO) "Classlist trace file:" &&
$(CAT) $(JLI_TRACE_FILE) \
&& exit $$exitcode )
but with better line breaks :)
/Magnus
/Erik