Skip to content

Windows 2k8/Vista support lost since 4-Dec nightly #19992

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
SteveGilham opened this issue Dec 18, 2014 · 9 comments
Closed

Windows 2k8/Vista support lost since 4-Dec nightly #19992

SteveGilham opened this issue Dec 18, 2014 · 9 comments
Labels
O-windows Operating system: Windows

Comments

@SteveGilham
Copy link

Issue title updated 22-Dec following further analysis.

Some time since that nightly (rustc 0.13.0-nightly (d9c7c00 2014-12-04 21:33:07 +0000)), the rustc executable fails fast before emitting any console output.

Windows Mini-dump

Dump Summary
------------
Dump File:  rustc.exe.5260.dmp : C:\Users\Steve\AppData\Local\CrashDumps\rustc.exe.5260.dmp
Last Write Time:    18/12/2014 19:38:55
Process Name:   rustc.exe : C:\Rust\bin\rustc.exe
Process Architecture:   x86
Exception Code: 0xC0000139
Exception Information:  
Heap Information:   Present

System Information
------------------
OS Version: 6.0.6002
CLR Version(s): 

Modules
-------
Module Name Module Path Module Version
----------- ----------- --------------
rustc.exe   C:\Rust\bin\rustc.exe   0.0.0.0
ntdll.dll   C:\Windows\System32\ntdll.dll   6.0.6002.18881
kernel32.dll    C:\Windows\System32\kernel32.dll    6.0.6002.19034
libgcc_s_dw2-1.dll  C:\Rust\bin\libgcc_s_dw2-1.dll  0.0.0.0
msvcrt.dll  C:\Windows\System32\msvcrt.dll  7.0.6002.18551
std-4e7c5e5c.dll    C:\Rust\bin\std-4e7c5e5c.dll    0.0.0.0
advapi32.dll    C:\Windows\System32\advapi32.dll    6.0.6002.18005
rpcrt4.dll  C:\Windows\System32\rpcrt4.dll  6.0.6002.18882

Error 0xC0000139 is "Entry Point Not Found" -- presumably in builds from the last week or so, a Win7 and later API call is being made at start-up as tests with the same nightly installer (‎17 ‎December ‎2014, ‏‎05:57:06) show that the self-same rustc executable will emit version details for a -v on Win7 64-bit, rather than immediately failing.

So far, I've not gotten anything else useful from the crash dump

@thestinger
Copy link
Contributor

Vista is already EOL and Rust only claims support for Windows 7, 8 and 2008.

@SteveGilham
Copy link
Author

Vista EOL is 11th April 2017 (see e.g. http://support2.microsoft.com/lifecycle/default.aspx?LN=en-gb&x=17&y=12&c2=11732)

The claimed OS version support for Rust is not obviously discoverable.

@kmcallister kmcallister added the O-windows Operating system: Windows label Dec 19, 2014
@vadimcn
Copy link
Contributor

vadimcn commented Dec 19, 2014

@SteveGilham: Could you please download a copy of the Dependency Walker and determine which API is missing?

@SteveGilham
Copy link
Author

Using rustc 0.13.0-nightly (42deaa5 2014-12-16 17:51:23 +0000), the reference of Kernel32.dll from STD-4E7C5E5C.DLL shows TryAcquireSRWLockExclusive and TryAcquireSRWLockShared in red. This confirms the suspicion I'd had when I'd spotted them when combing through the commits since the build that still worked.

@thestinger
Copy link
Contributor

@SteveGilham: Extended support means they aren't fixing anything but critical security bugs anymore.

The GitHub README has always said that only Windows 7 (and later) is supported and it's also in the guide. Supporting obsolete versions of Windows means doing awful dynamic loading hacks. It makes the code much harder to understand / modify and the code bloat matters in places like concurrency primitives.

@SteveGilham
Copy link
Author

The support statement is inaccurate, then. The TryAcquireSRWLockXxx APIs
are (as per
http://msdn.microsoft.com/en-us/library/windows/desktop/dd405523%28v=vs.85%29.aspx)

Minimum supported client
Windows 7 [desktop apps | Windows Store apps]

Minimum supported server
Windows Server 2008 R2 [desktop apps | Windows Store apps]
Win2k8 == Vista Server; it's Win2k8R2 that is Win7 Server, and by
deduction, that is what is actually being targeted here.

Now that we've established that it's all been working by coincidence up to
now, then the easy out is to just put up a corrected minimum OS statement
(ideally on the downloads page too, which is the first place to look), and,
ideally, add an OS version check in the installer preconditions.

Or it could be recognised that there is actually a large tail of older OS
versions (both client and server) in the field out there -- including 2k3
and XP (which latter has only in the last few months fallen below Win8),
but which would represent heroic measures.

On 19 December 2014 at 21:00, Daniel Micay [email protected] wrote:

@SteveGilham https://github.com/SteveGilham: Extended support means
they aren't fixing anything but critical security bugs anymore.

The GitHub README
https://github.com/rust-lang/rust/blob/master/README.md has always said
that only Windows 7 (and later) is supported and it's also in the guide
http://doc.rust-lang.org/guide.html#installing-rust. Supporting
obsolete versions of Windows means doing awful dynamic loading hacks. It
makes the code much harder to understand / modify and the code bloat
matters in places like concurrency primitives.


Reply to this email directly or view it on GitHub
#19992 (comment).

@SteveGilham
Copy link
Author

I dusted off a 2k8 Server Standard Edition VM, and installed 0.13.0-nightly (42deaa5 2014-12-16 17:51:23 +0000) on it. This OS edition makes the diagnosis plain:

2k8-crash

Issue title edited to reflect this.

@SteveGilham SteveGilham changed the title Windows Vista 32-bit support lost since 4-Dec nightly Windows 2k8/Vista 32-bit support lost since 4-Dec nightly Dec 22, 2014
@SteveGilham SteveGilham changed the title Windows 2k8/Vista 32-bit support lost since 4-Dec nightly Windows 2k8/Vista support lost since 4-Dec nightly Dec 22, 2014
@stej
Copy link

stej commented Feb 7, 2015

Ok, so is Vista support dead, or is there any hope? Currently the installer installs everything correctly, but rustc & cargo complain about compatibility issue.

@retep998
Copy link
Member

retep998 commented Feb 7, 2015

Someone would have to be willing to write alternative versions of code that don't depend on newer APIs. Having Rust work on XP is a requirement for it to be used in Servo, so there is definitely a need for it eventually. It's just that the number of Rust developers who care about such old versions of Windows is significantly less than the already small number of Rust developers that work on the Windows side of Rust.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O-windows Operating system: Windows
Projects
None yet
Development

No branches or pull requests

6 participants