Subject: bug#57386: 29.0.50; support make-symbolic-link without admin priviledge on Windows

From: Kiên Nguyễn Quang <[email-masked]>
Date: Thu, 25 Aug 2022 18:51:30 +0900

>
>
>  (is anyone who has Windows 10 still likely to
> use those old releases, given the automatic updates in Windows 10 that
> cannot be turned off? and if they do, do they indeed get
> ERROR_INVALID_PARAMETER?)
>
There is LTS branch of Windows that gets updated regularly and doesn't have
to update to a newer release build.
Those users (mostly enterprise users/devs) will get the
ERROR_INVALID_PARAMETER, I've tested that.

> When you call an API with a parameter that is invalid, you are risking
> an exception, depending on the API and the build (debug or not).  This
> has various unpleasant consequences; in the worst case, the Emacs
> process could be terminated.  As documented, the problem is limited to
> CRT functions, but our general policy is to avoid that even when using
> the Win32 APIs.  And version check is a simple enough way of avoiding
> that, so I see no reason not to do it here.

Okay, that makes sense. Although I think that's the problem of CRT APIs
only, as API should never throw exceptions, which is a foreign concept to
ABI and requires an exact library match to handle correctly

The new patch is attached.