<AWT Dev> RFR(xs): 8221375: Windows 32bit build (VS2017) broken
Alexey Ivanov
alexey.ivanov at oracle.com
Mon Mar 25 14:46:25 UTC 2019
Hi Thomas,
There was a thread about failing build on 32 bit Windows:
http://mail.openjdk.java.net/pipermail/build-dev/2018-November/023767.html
It continued in February 2019:
http://mail.openjdk.java.net/pipermail/build-dev/2019-February/024925.html
Fast debug builds were affected. Likely there was mismatch between
CALLBACK / JNICALL macro:
http://mail.openjdk.java.net/pipermail/build-dev/2019-February/024972.html
http://mail.openjdk.java.net/pipermail/build-dev/2019-February/024973.html
Magnus suggested a fix:
http://mail.openjdk.java.net/pipermail/build-dev/2019-February/024996.html
Yet there was no reply as whether it fixed the debug build or not.
Hope these pointers help.
Regards,
Alexey
On 25/03/2019 12:45, Thomas Stüfe wrote:
> Hi all,
>
> Following David's suggestion, I withdraw this bug and will open issues
> for each area separately.
>
> Cheers, Thomas
>
>
>
> On Mon, Mar 25, 2019 at 1:44 PM Thomas Stüfe <thomas.stuefe at gmail.com
> <mailto:thomas.stuefe at gmail.com>> wrote:
>
> Hi David,
>
> Updating vs2017 did not help :/
>
> Cheers, Thomas
>
> On Mon, Mar 25, 2019 at 8:17 AM David Holmes
> <david.holmes at oracle.com <mailto:david.holmes at oracle.com>> wrote:
>
> Hi Thomas,
>
> On 25/03/2019 5:01 pm, Thomas Stüfe wrote:
> > Hi David,
> >
> > (added net-dev, awt-dev, security-dev since part of these
> fixes are in
> > their territory)
>
> May be better to split up the reviews, cross-posting that many
> groups
> gets very messy given most people won't be subscribed to them
> all -
> myself included.
>
>
>
> > On Mon, Mar 25, 2019 at 1:34 AM David Holmes
> <david.holmes at oracle.com <mailto:david.holmes at oracle.com>
> > <mailto:david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>>> wrote:
> >
> > Hi Thomas,
> >
> > A few queries, comments and concerns ...
> >
> > On 25/03/2019 6:58 am, Thomas Stüfe wrote:
> > > Hi all,
> > >
> > > After a long time I tried to build a Windows 32bit VM
> (VS2017)
> > and failed;
> >
> > I'm somewhat surprised as I thought someone was actively
> doing Windows
> > 32-bit builds out there, plus there are shared code
> changes that should
> > also have been caught by non-Windows 32-bit builds. :(
> >
> >
> > Not sure what others do. I did a 32bit windows build,
> slowdebug, warning
> > enabled, and it failed with those 5+ issues.
> >
> > > multiple errors and warnings. Lets reverse the bitrot:
> > >
> > > cr:
> > >
> >
> http://cr.openjdk.java.net/~stuefe/webrevs/8221375--windows-32bit-build-(vs2017)-broken-in-many-places/webrev.00/webrev/
> > >
> > > Issue: https://bugs.openjdk.java.net/browse/JDK-8221375
> > >
> > > Most of the fixes are trivial: Calling convention
> mismatches (awt
> > DTRACE
> > > callbacks), printf specifiers etc.
> > >
> > > Had to supress a warning in os_windows_x86.cpp - I
> was surprised
> > by this
> > > since this did not look 32bit specifc, do we disable
> warnings on
> > Windows
> > > 64bit builds?
> >
> > What version of VS2017? We use VS2017 15.9.6 and we
> don't disable
> > warnings.
> >
> >
> > I use VS2017 CE. Not sure which version spcifically, but my
> compiler is at
> >
> > Microsoft (R) C/C++ Optimizing Compiler Version 19.14.26431
> for x86
>
> I think that would equate to an older version - 15.7
>
> MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7)
>
> Any chance you can upgrade to latest version? (Especially in
> light of
> the apparent compiler bug you cite below.)
>
> Thanks,
> David
> -----
>
> > > The error I had in vmStructs.cpp was a bit weird:
> compiler
> > complained about
> > > an assignment of an enum value defined like this:
> > >
> > > hash_mask_in_place = (address_word)hash_mask <<
> hash_shift
> > >
> > > to an uint64_t variable, complaining about narrowing.
> I did not
> > find out
> > > what his problem was. In the end, I decided to add an
> explicit
> > cast to
> > > GENERATE_VM_LONG_CONSTANT_ENTRY(name) (see
> vmStructs.hpp).
> >
> > Not at all sure that's the right fix. In markOop.hpp we
> see that value
> > gets special treatment on Windows-x64:
> >
> >
> > #ifndef _WIN64
> > ,hash_mask =
> right_n_bits(hash_bits),
> > hash_mask_in_place =
> (address_word)hash_mask <<
> > hash_shift
> > #endif
> > };
> >
> > // Alignment of JavaThread pointers encoded in
> object header
> > required
> > by biased locking
> > enum { biased_lock_alignment = 2 << (epoch_shift
> + epoch_bits)
> > };
> >
> > #ifdef _WIN64
> > // These values are too big for Win64
> > const static uintptr_t hash_mask =
> right_n_bits(hash_bits);
> > const static uintptr_t hash_mask_in_place =
> > (address_word)hash_mask << hash_shift;
> > #endif
> >
> > perhaps something special is needed for Windows-x86. I'm
> unclear how
> > the
> > values can be "too big" ??
> >
> >
> > I banged my head against this for an hour or so and I think
> this is a
> > compiler bug.
> >
> > What I get is:
> >
> > warning C4838: conversion from '' to 'uint64_t' requires a
> narrowing
> > conversion
> >
> > (Note the empty "from" string.)
> >
> > Here are my tries to provoke the error:
> >
> > VMLongConstantEntry iii[] = { { "hallo",
> > markOopDesc::hash_mask_in_place }, {0,0}}; <<< this fails
> > VMLongConstantEntry iii = { "hallo",
> markOopDesc::hash_mask_in_place };
> > << but this succeeds
> > uint64_t iii = markOopDesc::hash_mask_in_place; << this
> succeeds too
> >
> > I have no clue what this means. It is difficult to fix since
> the
> > expression is hidden in such a macro pile. But I think
> either we go with
> > my change or we disable the warning for win32 for the whole
> section.
> >
> > >
> > > With this patch we can build with warnings enabled on
> 32bit and 64bit
> > > windows.
> > >
> > > Since patch fixes both hotspot and JDK parts, I'm
> sending it to
> > hs-dev and
> > > core-libs-dev.
> >
> > Don't see anything that actually comes under
> core-libs-dev. Looks like
> > one net-dev, one awt-dev and one security-dev. Sorry.
> >
> >
> > Okay, I will add them.
> >
> > Cheers,
> > David
> > -----
> >
> >
> > Thanks for reviewing,
> >
> > Thomas
> >
> > > Thanks, Thomas
> > >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/security-dev/attachments/20190325/9e143f6c/attachment.htm>
More information about the security-dev
mailing list