[LLVMdev] RFC: Drop support running LLVM on Windows XP

253 views
Skip to first unread message

Reid Kleckner

unread,
Oct 30, 2014, 4:33:38 PM10/30/14
to LLVM Developers Mailing List
I'd like to raise our baseline Windows system requirements to Vista, dropping support for running LLVM on Windows XP. Microsoft dropped support for XP half a year ago in April 2014.

Our current status is that we require VS 2012 to build LLVM, and VS 2012 only runs on Vista+, but it has the ability produce binaries that run on XP. During the C++11-pocalypse, users expressed interest in keeping this working. I'm proposing that we drop support for this.

Vista introduced a lot of handy system APIs that could significantly simplify LLVM's Support library. For example, I'd really like to use the blessed one-time initialization routines in this CL:

Vista also introduced a bunch of condition variable APIs that I know less about, but that's another reason we might want to raise our base requirement as people look into parallel LTO and codegen. It also seems likely that we will want to use some of the new C++11 library features that are only present in newer CRTs, which don't run on XP.

Please respond if you have any objections. If there are no strong objections, I think we can start using Vista+ APIs in a week or so. We can still change our minds and revert stuff before the release if users feel this is too short notice.

Aaron Ballman

unread,
Oct 30, 2014, 4:44:03 PM10/30/14
to Reid Kleckner, LLVM Developers Mailing List
I am in favor of this switch, assuming there are no strong objections.

~Aaron
_______________________________________________
LLVM Developers mailing list
LLV...@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

David Majnemer

unread,
Oct 30, 2014, 8:46:06 PM10/30/14
to Reid Kleckner, LLVM Developers Mailing List
On Thu, Oct 30, 2014 at 1:29 PM, Reid Kleckner <r...@google.com> wrote:
I'd like to raise our baseline Windows system requirements to Vista, dropping support for running LLVM on Windows XP. Microsoft dropped support for XP half a year ago in April 2014.

Our current status is that we require VS 2012 to build LLVM, and VS 2012 only runs on Vista+, but it has the ability produce binaries that run on XP. During the C++11-pocalypse, users expressed interest in keeping this working. I'm proposing that we drop support for this.

Vista introduced a lot of handy system APIs that could significantly simplify LLVM's Support library. For example, I'd really like to use the blessed one-time initialization routines in this CL:

Vista also introduced a bunch of condition variable APIs that I know less about, but that's another reason we might want to raise our base requirement as people look into parallel LTO and codegen. It also seems likely that we will want to use some of the new C++11 library features that are only present in newer CRTs, which don't run on XP.

I would personally prefer we jump to Windows 7 instead.  Windows 7 introduced useful condition variable APIs over what Windows Vista provided like TryAcquireSRWLockExclusive.
 

Please respond if you have any objections. If there are no strong objections, I think we can start using Vista+ APIs in a week or so. We can still change our minds and revert stuff before the release if users feel this is too short notice.

Mueller-Roemer, Johannes Sebastian

unread,
Oct 31, 2014, 4:24:04 AM10/31/14
to Reid Kleckner, LLVM Developers Mailing List

As long as the new APIs are also supported on current MinGW-w64 compilers, I am for this switch.

 

--

Johannes S. Mueller-Roemer, MSc

Wiss. Mitarbeiter - Interactive Engineering Technologies (IET)

 

Fraunhofer-Institut für Graphische Datenverarbeitung IGD

Fraunhoferstr. 5  |  64283 Darmstadt  |  Germany

Tel +49 6151 155-606  |  Fax +49 6151 155-139

johannes.mu...@igd.fraunhofer.de  |  www.igd.fraunhofer.de

Jim Rowan

unread,
Oct 31, 2014, 4:12:31 PM10/31/14
to Reid Kleckner, LLVM Developers Mailing List
+1

_______________________________________________
LLVM Developers mailing list
LLV...@cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev


Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation

Robinson, Paul

unread,
Oct 31, 2014, 7:38:16 PM10/31/14
to Jim Rowan, Reid Kleckner, LLVM Developers Mailing List

We formally support our toolchain only on Windows 7 onward, so it's okay with us.

(Please make sure this goes in the release notes when you start doing something not supported in XP and/or Vista.)

--paulr

Greg Bedwell

unread,
Jul 13, 2015, 5:35:09 PM7/13/15
to Robinson, Paul, LLVM Developers Mailing List
Hi all,

It looks like this conversation stalled.  I have a local patch that I'd like to send upstream (automatically generating Windows crash dumps on clang/LLVM crashes) that makes use of a Windows API function that requires _WIN32_WINNT set to 0x0600 at minimum so I'd like to restart the conversation!

As there have so far been no objections that I've seen and we're branching imminently, it feels like a perfect time to make this change as soon as the release branch is taken, and adding a release note for 3.7 to the effect of it being the final version supporting XP.  I don't think there's been a clear conclusion on what we should raise it to though.

Any thoughts on this?

Thanks,
-Greg

Reid Kleckner

unread,
Jul 13, 2015, 6:29:24 PM7/13/15
to Greg Bedwell, LLVM Developers Mailing List
Nobody objected to raising the bar, so I think we can go ahead and do this. Keeping the XP support until 3.7 ships seems reasonable as it's less disruptive.

Should we consider bypassing Vista and jumping to 7 as the lowest supported Windows version as David suggested? I think we should document 7 as the recommended baseline. After we start using some of the newer APIs, we can see if users complain and evaluate the burden of maintaining Vista support at that time.

Aaron Ballman

unread,
Jul 13, 2015, 6:48:33 PM7/13/15
to Reid Kleckner, LLVM Developers Mailing List
On Mon, Jul 13, 2015 at 6:26 PM, Reid Kleckner <r...@google.com> wrote:
> Nobody objected to raising the bar, so I think we can go ahead and do this.
> Keeping the XP support until 3.7 ships seems reasonable as it's less
> disruptive.

Agreed.

> Should we consider bypassing Vista and jumping to 7 as the lowest supported
> Windows version as David suggested? I think we should document 7 as the
> recommended baseline. After we start using some of the newer APIs, we can
> see if users complain and evaluate the burden of maintaining Vista support
> at that time.

I think it's reasonable to switch to Windows 7 at this point. Vista's
mainstream support ended in 2012 and only has extended support until
2017, so it's sunsetting already.

~Aaron

NAKAMURA Takumi

unread,
Jul 14, 2015, 1:59:41 AM7/14/15
to Aaron Ballman, Reid Kleckner, LLVM Developers Mailing List

+1. We may focus Windows 7, aka NT6.1, as the baseline.

2015年7月14日(火) 7:48 Aaron Ballman <aa...@aaronballman.com>:

Greg Bedwell

unread,
Jul 31, 2015, 9:15:38 AM7/31/15
to NAKAMURA Takumi, LLVM Developers Mailing List
It sounds like there are no objections to jumping to Windows 7 as the baseline.  Is it worth getting a note added to the next LLVM weekly to give the potential change a bit of a wider viewership before going ahead with it or are we in a position to just do this now?  If so, what are the actual mechanics of the change, and who'd like to do it?
Thanks!
-Greg

Aaron Ballman

unread,
Jul 31, 2015, 9:35:33 AM7/31/15
to Greg Bedwell, LLVM Developers Mailing List
On Fri, Jul 31, 2015 at 9:09 AM, Greg Bedwell <gregb...@gmail.com> wrote:
> It sounds like there are no objections to jumping to Windows 7 as the
> baseline. Is it worth getting a note added to the next LLVM weekly to give
> the potential change a bit of a wider viewership before going ahead with it
> or are we in a position to just do this now? If so, what are the actual
> mechanics of the change, and who'd like to do it?

I think we should definitely get a note into the weekly update. We may
also want to get it into the 3.7 release notes as a warning to users.

I suspect we're in a position to make the switch now. As for the
mechanics, I'm less certain of all the places we have to touch, but
intuition suggests cmake and WindowsSupport.h.

~Aaron

Martell Malone

unread,
Jul 31, 2015, 1:50:22 PM7/31/15
to Aaron Ballman, Reid Kleckner, LLVM Developers Mailing List
I think we should definitely get a note into the weekly update. We may
also want to get it into the 3.7 release notes as a warning to users.
+1


As long as the new APIs are also supported on current MinGW-w64 compilers, I am for this switch.
May I also suggest dropping support for mingw.org toolchains for both hosts and targets
They are pre windows 7 and only support 32bit x86 targets

mingw-w64 has been maintained to support newer api's and now supports x64 and arm.

Yaron Keren

unread,
Jul 31, 2015, 2:42:12 PM7/31/15
to Martell Malone, LLVM Developers Mailing List
I don't think we support mingw.org as host since it lacks C++ 11 atomics. They may be leftover #ifdefs in the code which could be cleaned up.

As a target mingw.org toolchain itself is still quite popular. The mingw.org-specific code are just few lines locating the lib directory and adding an include path so we gain almost nothing by removing them. I personally do not use this toolchain but the mingw-w64 one.

Is someone using clang + mingw.org ?


Martell Malone

unread,
Jul 31, 2015, 5:02:57 PM7/31/15
to Yaron Keren, LLVM Developers Mailing List
I don't think we support mingw.org as host since it lacks C++ 11 atomics. They may be leftover #ifdefs in the code which could be cleaned up.
I don't see that in the docs but it makes sense that it is not supported.


As a target mingw.org toolchain itself is still quite popular. The mingw.org-specific code are just few lines locating the lib directory and adding an include path so we gain almost nothing by removing them. I personally do not use this toolchain but the mingw-w64 one.
Yes I am not saying that we should remove this code its very easy to keep.
I just think that if someone is experiencing issues with this setup though they should pointed to use mingw-w64 before filing issues as it is officially supported.
This is for all issues outside lib and include directories that is
All online documentation for the windows-gnu target should probably be mingw-w64 specific if there is any that is.

Yaron Keren

unread,
Jul 31, 2015, 5:13:45 PM7/31/15
to Martell Malone, LLVM Developers Mailing List
It's a good idea to point to the mingw-w64 distributions if asked.

Greg Bedwell

unread,
Jul 31, 2015, 7:05:36 PM7/31/15
to Aaron Ballman, LLVM Developers Mailing List
On 31 July 2015 at 14:34, Aaron Ballman <aa...@aaronballman.com> wrote:
I think we should definitely get a note into the weekly update. We may
also want to get it into the 3.7 release notes as a warning to users.


I've emailed Alex to ask him to highlight this discussion in LLVM Weekly.
Cheers,
-Greg
 

Hans Wennborg via llvm-dev

unread,
Oct 5, 2015, 2:18:46 PM10/5/15
to Reid Kleckner, llvm-dev
(cc'ing the new list address; sorry for the duplicate)

On Mon, Oct 5, 2015 at 11:14 AM, Hans Wennborg <ha...@chromium.org> wrote:
> Did we conclude that we've dropped Win XP support now?
>
> If so, I'll stop building the win snapshots in xp-compat mode and add
> a note to the 3.8 release notes.
>
> - Hans

llvm...@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

Aaron Ballman via llvm-dev

unread,
Oct 5, 2015, 2:19:51 PM10/5/15
to Hans Wennborg, llvm-dev
On Mon, Oct 5, 2015 at 2:18 PM, Hans Wennborg via llvm-dev
<llvm...@lists.llvm.org> wrote:
> (cc'ing the new list address; sorry for the duplicate)
>
> On Mon, Oct 5, 2015 at 11:14 AM, Hans Wennborg <ha...@chromium.org> wrote:
>> Did we conclude that we've dropped Win XP support now?

I believe we have, yes.

~Aaron

Hans Wennborg via llvm-dev

unread,
Oct 5, 2015, 2:41:49 PM10/5/15
to Aaron Ballman, llvm-dev
On Mon, Oct 5, 2015 at 11:19 AM, Aaron Ballman <aa...@aaronballman.com> wrote:
> On Mon, Oct 5, 2015 at 2:18 PM, Hans Wennborg via llvm-dev
> <llvm...@lists.llvm.org> wrote:
>> (cc'ing the new list address; sorry for the duplicate)
>>
>> On Mon, Oct 5, 2015 at 11:14 AM, Hans Wennborg <ha...@chromium.org> wrote:
>>> Did we conclude that we've dropped Win XP support now?
>
> I believe we have, yes.

Release notes updated in r249332.

Thanks,

Paweł Bylica

unread,
Oct 15, 2015, 3:16:58 AM10/15/15
to Hans Wennborg, Aaron Ballman, llvm-dev
Hi there,

Has the change been formalized in other form than 3.7 release notes?

I'm asking because I would like to use Windows Vista API in this http://reviews.llvm.org/D13753 and following patches. It looks it is enough to change the macro definition in WindowsSupport.h. Apparently, cmake does not set _WIN32_WINNT globally.

- Paweł

Aaron Ballman via llvm-dev

unread,
Oct 15, 2015, 8:41:39 AM10/15/15
to Paweł Bylica, llvm-dev
On Thu, Oct 15, 2015 at 3:16 AM, Paweł Bylica <chf...@gmail.com> wrote:
> Hi there,
>
> Has the change been formalized in other form than 3.7 release notes?

I'm not certain what other ways we would formalize it beyond the
release notes (and an announcement in the LLVM Weekly updates).

> I'm asking because I would like to use Windows Vista API in this
> http://reviews.llvm.org/D13753 and following patches. It looks it is enough
> to change the macro definition in WindowsSupport.h. Apparently, cmake does
> not set _WIN32_WINNT globally.

There's no issues with using a Vista (or Win 7) API. We're dropping
support for running on XP in 3.8.

~Aaron

Reply all
Reply to author
Forward
0 new messages