POSIX compliant grep invocation in OpenJDK configure script
David Holmes
david.holmes at oracle.com
Fri Nov 1 03:33:13 UTC 2013
Hi Matthew,
This code has in fact already been changed:
changeset: 895:067355edfbf8
user: vinnie
date: Wed Oct 30 17:31:01 2013 +0000
summary: 8027567: JDK 8 build failure: the correct version of GNU
make is being rejected
diff -r d832f6171acd -r 067355edfbf8 common/autoconf/basics.m4
--- a/common/autoconf/basics.m4
+++ b/common/autoconf/basics.m4
@@ -514,7 +514,7 @@
if test "x$IS_GNU_MAKE" = x; then
AC_MSG_NOTICE([Found potential make at $MAKE_CANDIDATE, however,
this is not GNU Make. Ignoring.])
else
- IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP
'\(3\.8[[12]]\)\|\(4\.\)'`
+ IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -e
'3\.8[[12]]' -e '4\.'`
if test "x$IS_MODERN_MAKE" = x; then
AC_MSG_NOTICE([Found GNU make at $MAKE_CANDIDATE, however this
is not version 3.81 or later. (it is: $MAKE_VERSION_
STRING). Ignoring.])
else
The change was pushed via the tl forest.
Thanks,
David
On 1/11/2013 1:03 PM, Matthew Dempsky wrote:
> [I tried sending this yesterday, but it got stuck in the moderation queue;
> I've cancelled that attempt and subscribed to build-dev, so I'm posting it
> again.]
>
> According to POSIX Issue
> 7<http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html>,
> only Extended Regular Expressions (EREs) support pattern alternation; Basic
> Regular Expressions (BREs) do not. GNU grep (and apparently grep on
> Solaris and OS X) support \| for alternation in BREs, but grep on OpenBSD
> does not. This causes the GNU make version check in configure to
> incorrectly fail on OpenBSD.
>
> The easy fix is to use the standardized -E
> option<http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html>
> to
> have grep use EREs instead of BREs. This works with GNU and OpenBSD grep,
> and according to online manuals should work with Solaris and OS X grep too.
>
> I've never submitted a patch to OpenJDK before, so I've included it inline
> for simplicity (sorry that gmail mangled it). If you'd prefer I post it
> another way, I'm happy to do so.
>
> Patch is against JDK8 (
> http://hg.openjdk.java.net/jdk8/jdk8/file/a36df87b3901/common/autoconf/basics.m4
> ).
>
> diff -r a36df87b3901 common/autoconf/basics.m4
> --- a/common/autoconf/basics.m4 Thu Oct 24 09:10:01 2013 -0700
> +++ b/common/autoconf/basics.m4 Mon Oct 28 15:53:55 2013 -0700
> @@ -514,7 +514,7 @@
> if test "x$IS_GNU_MAKE" = x; then
> AC_MSG_NOTICE([Found potential make at $MAKE_CANDIDATE, however,
> this is not GNU Make. Ignoring.])
> else
> - IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP
> '\(3\.8[[12]]\)\|\(4\.\)'`
> + IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP -E
> '(3\.8[[12]])|(4\.)'`
> if test "x$IS_MODERN_MAKE" = x; then
> AC_MSG_NOTICE([Found GNU make at $MAKE_CANDIDATE, however this is
> not version 3.81 or later. (it is: $MAKE_VERSION_STRING). Ignoring.])
> else
>
More information about the build-dev
mailing list