RFR: JDK-8065576: Enable pipefail in the shell used by make to better detect build errors

Erik Joelsson erik.joelsson at oracle.com
Wed Nov 26 14:56:14 UTC 2014


Hello,

Please review this build reliability fix. In JDK-8065138, we would have 
caught the error much faster if the build had failed instead of silently 
generating bad output. To avoid this in the future, this patch activates 
pipefail and errexit in the shell, when available. This means that long 
command lines, consisting of multiple commands, chained together either 
by pipes or ';', will fail the build regardless of which of the sub 
commands that failed. Currently, all but the last command would be ignored.

Since these features my not always be available in all versions of bash, 
I added a check to configure for each of them and only enable them if 
they are available. I also had to fix some instances where we have 
'grep' and 'find' returning non zero without it being an error.

Thanks to Martin who suggested this in the first place.

Bug: https://bugs.openjdk.java.net/browse/JDK-8065576
Webrev: http://cr.openjdk.java.net/~erikj/8065576/webrev.root.01/

/Erik




More information about the build-dev mailing list