Description
I've made some investigation recently, and found that, there are only two APIs which are not supported by Windows XP, throughout the repo tree. There are:
- CreateSymbolicLinkW, only used by native::io::file::symlink()
- GetFinalPathNameByHandleW, only used by native::io::file::readlink()
And native::io::file::{symlink,readlink} are never used throughout the repo tree, except std::io::fs::{symlink,readlink} (which are really never used).
Do we really need including symlink/readlink functionality inside std? How other languages do?
Currently Windows XP is still wildly used in the world, especially in Asia. Its installed volume is much more than Mac OS + Linux + Unix. We give up supporting XP just because of two api absent? Maybe it's wrong.
cc #11950
update: readlink is used by rustc::metadata::filesearch.
update: This is my branch: https://github.com/liigo/rust/tree/xp
I just commented out the usage of CreateSymbolicLinkW and GetFinalPathNameByHandleW. This make the new rustc.exe run successfully in Windows XP, ant it works mostly OK (see my latest comment below).