Omr: Deciding on a minimum version of windows to support

Created on 17 Apr 2018  路  7Comments  路  Source: eclipse/omr

We need to choose the minimum version of Windows to support. Currently we support building against the Windows XP SDK.

One option would be to remove which version of the Windows SDK we build against, using whatever is on the system. I don't like this answer because it could lead to us to only support the newest version of Windows.

Please CC anyone that might have a stake in this! I would also like to hear about any problems which came from supporting WinXP, and we can create some issues. If no one has any specific needs we should start a vote on what version to support. This page seems to imply we should support Windows 7 until 2020.

/cc @charliegracie @mstoodle @DanHeidinga @smlambert @pshipton @0xdaryl @fjeremic

build / configure discussion

Most helpful comment

I expect the versions of Windows which are still in support should be the minimums, i.e. Windows 7 (until 2020), Windows Server 2012 (until 2023). OpenJ9 also needs to compile with VS 2010 atm.

All 7 comments

@youngar What's the end goal here? Is there a cost to compiling against WinXP? Functionality that isn't available or has to be looked up dynamically?

You've asked for issues with supporting WinXP - is there an example that kicked off this discussion?

@DanHeidinga From my perspective, this is not driven by anything other than "do we need this", and wanting to simplify OMR.

Part of this is that I am trying to figure out if there is / has been a cost to compiling for WinXP. I am also trying to learn if someone sees a future need for WinXP support.

This issue was created from #2434, where we questioned the need for the for set(OMR_WINVER "0x501")

I had been curious if you (or someone) had identified a cost.

The reasons for defaulting to WinXP go all the way back to when OMR was part of J9 inside IBM. We had standardized the makefiles for WinXP and hadn't run into anything that required support for newer Windows releases so there was no impetus to change the base level as upgrading the compiler didn't require changing the base supported OS level.

Does changing the base level in OMR require OpenJ9 to make the same change?

@DanHeidinga Thanks for the explanation! If OMR does change the version of the Windows SDK it compiles against, it may lose its ability to compile against older versions. If this happens, it would force OpenJ9 to not be able to compile against older versions. I think there is a chance that we may be able to compile OpenJ9 against one version, and OMR against another, but that doesn't sound ideal and would still limit the version OpenJ9 supports.

I expect the versions of Windows which are still in support should be the minimums, i.e. Windows 7 (until 2020), Windows Server 2012 (until 2023). OpenJ9 also needs to compile with VS 2010 atm.

I don't see much sense in saying we support building on otherwise unsupported OS releases. Whether someone does work to actively remove support for such releases is presumably just a priority and cost/benefit call. That isn't and shouldn't be a Windows-specific policy.

Updating our "minimum support statement" to Windows 7 seems appropriate to me.

I feel a little bad having cast such a wide net, and the answer being relatively simple. Thanks for your help everyone.

My plan is currently to make a statement in our docs about supporting Windows 7 or newer. I'm going to make a code comment that we can change the supported version of Windows, but still target WinXP. Windows XP is still supported as a target by MSVC 2017. Hopefully this way, when someone finds a need to upgrade, they will know it is acceptable.

Was this page helpful?
0 / 5 - 0 ratings