RFR(xxs): 8172579: 8168503 broke AIX build
Thomas Stüfe
thomas.stuefe at gmail.com
Thu Jan 12 13:05:14 UTC 2017
On Thu, Jan 12, 2017 at 10:32 AM, Magnus Ihse Bursie <
magnus.ihse.bursie at oracle.com> wrote:
> On 2017-01-12 09:56, Thomas Stüfe wrote:
>
> Hi Volker,
>
> thanks for the hint. GNU grep works, so I close this as wontfix.
>
> You might want to add a test in configure that it is picking up a correct
> grep.
>
> /Magnus
>
>
Thanks, good suggestion, I filed and implemented
https://bugs.openjdk.java.net/browse/JDK-8172712 for this.
..Thomas
> ..Thomas
>
> On Wed, Jan 11, 2017 at 6:51 PM, Volker Simonis <volker.simonis at gmail.com> <volker.simonis at gmail.com>
> wrote:
>
>
> Hi Thomas,
>
> why not simply using GNU grep? We already insist for so many other tools
> on the GNU version that this wouldn't be a big thing.
>
> And as far as I remember, GNU grep is already installed on most of our
> machines anyway. You just have to place /opt/freeware/bin in front of your
> PATH.
>
> Your fix is actually also fine, although it breaks the informal code
> formatting rules, which require the indentation of wrapped strings. But it
> is also quite sensitive and I'm sure this will break again in the future
> (in this or in other places).
>
> By the way, why does it break for 'cds' if it didn't for 'jvmci'? I didn't
> knew that we support 'cds' on AIX either?
>
> Regards,
> Volker
>
> Thomas Stüfe <thomas.stuefe at gmail.com> <thomas.stuefe at gmail.com> schrieb am Mi., 11. Jan. 2017 um
> 16:09:
>
>
> Dear all,
>
>
>
> please take a look at this tiny fix:
>
>
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8172579
>
> Webrev:
> http://cr.openjdk.java.net/~stuefe/webrevs/8172579-colon-
> 8168503-broke-AIX-build/webrev/common/autoconf/hotspot.m4.udiff.html
>
>
>
> JDK-8168503 exposed a bug in AIX grep. AIX grep, when called like this:
>
> "grep -Fx <patternlist>" is unable to handle empty patterns correctly.
>
> 8168503 added a line break in the definition of a variable:
>
>
>
> VALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti
>
> jvmci \
>
> - graal fprof vm-structs jni-check services management all-gcs nmt cds
>
> static-build aot"
>
> + graal fprof vm-structs jni-check services management all-gcs nmt cds
> \
>
>
>
> + static-build link-time-opt aot"
>
>
>
>
>
> So now, "cds" is followed by multiple spaces, which are later expanded to
>
> multiple newlines, and grep is unable to match the pattern immediately
>
> preceding these newlines (in this case, "cds"). This causes the
>
> HOTSPOT_VALIDATE_JVM_FEATURES
>
> function to fail with "Invalid JVM feature: cds".
>
>
>
> The error would also happened before when trying to match "jvmci", but so
>
> far we do not build jvmci on powerpc.
>
>
>
> The workaround for now is just to remove the superfluous spaces.
>
>
>
> I tried for some hours to find a better solution but could not find one
>
> which was small enough and worked on all platforms.
>
>
>
> I tried using sed to change multiple spaces to a single space, but did not
>
> get it to work correctly on AIX either.
>
>
>
> I thought about passing the pattern list as file to grep - which opposed
> to
>
> passing the pattern in the command line works as expected - but refrained
>
> from this because creating temporary files is error prone.
>
>
>
> I attempted to change the whole NEEDLE/STACK expression to a loop checking
>
> each single feature with '=~' against the list of valid features, but this
>
> felt too intrusive.
>
>
>
> The proposed fix is not the most elegant one but the risk for other
>
> platforms is minimal and it works.
>
>
>
> Kind Regards, Thomas
>
>
>
>
>
More information about the build-dev
mailing list