This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Return argv0-symlink.exp early if gdb can't load symlink
- From: Pedro Alves <palves at redhat dot com>
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: yao at codesourcery dot com, gdb-patches at sourceware dot org
- Date: Thu, 03 Apr 2014 13:11:59 +0100
- Subject: Re: [PATCH] Return argv0-symlink.exp early if gdb can't load symlink
- Authentication-results: sourceware.org; auth=none
- References: <1396428218-31822-1-git-send-email-yao at codesourcery dot com> <533BD0D5 dot 4000408 at codesourcery dot com> <83txabbtdl dot fsf at gnu dot org> <533C40A7 dot 1040502 at redhat dot com> <83ha6bbqc3 dot fsf at gnu dot org>
On 04/02/2014 06:20 PM, Eli Zaretskii wrote:
>> Date: Wed, 02 Apr 2014 17:53:59 +0100
>> From: Pedro Alves <palves@redhat.com>
>> CC: Yao Qi <yao@codesourcery.com>, gdb-patches@sourceware.org
>>
>>> Creating native symlinks generally require elevation on Windows. So
>>> unless Cygwin somehow managed to work around this (I didn't try, so I
>>> don't know), you will get UAC prompts when you try creating symlinks.
>>>
>>> Therefore, I don't recommend to go there.
>>>
>>
>> I suspect it's the specific tool (mklink, perhaps?) that tries to create
>> symlinks that somehow runs a UAC prompt.
>
> mklink just invokes the CreateSymbolicLink API. And if you need more
> data points, I see the same behavior in Emacs, when I invoke the
> make-symbolic-link function on Windows.
Okay. If that happens in console subsystem apps too, it should still
be possible to see if one has SeCreateSymbolicLinkPrivilege permissions
before calling CreateSymbolicLink somehow. I'd guess Cygwin might be
already doing that, but I really don't know.
Thanks,
--
Pedro Alves
>
>> On the permissions, according to:
>>
>> http://cygwin.com/ml/cygwin/2011-04/msg00088.html
>>
>>> They don't require administrator privilege per se: just SeCreateSymbolicLinkPrivilege,
>>> which can be granted to normal user accounts via local security policy. The easiest way to
>>> grant SeCreateSymbolicLinkPrivilege is to start gpedit.msc, go down to
>>> "Windows Settings"->"Security Settings"->"Local Policies"->"User Rights Assignment",
>>> then find "Create symbolic links" and add whatever users and groups you want[1].
>
> That is correct, and matches my experience, but the problem is that
> most Windows users are local admins on their machines, in which case
> adding SeCreateSymbolicLinkPrivilege doesn't work, because members of
> the Administrators group are treated specially when privileges are
> concerned. Thus the "normal user account" in the above is really a
> crucial part.
>
>> Assuming not having the permissions doesn't cause prompts resulting in
>> testsuite run hangs, I think it's OK. If the user doesn't have the
>> permissions, the symlink fails to be created and the tests require symlinks
>> end up UNRESOLVED or UNTESTED.
>
> If you are OK with that, so am I.
>