[Bug 50036] Remaining issues in Bugs in ntdll-Junction_Points in staging
WineHQ Bugzilla
wine-bugs at winehq.org
Sun Nov 22 12:18:39 CST 2020
https://bugs.winehq.org/show_bug.cgi?id=50036
Erich E. Hoover <erich.e.hoover at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #68679|0 |1
is obsolete| |
--- Comment #11 from Erich E. Hoover <erich.e.hoover at gmail.com> ---
Created attachment 68683
--> https://bugs.winehq.org/attachment.cgi?id=68683
Basic system dll symlink implementation
Okay, the wife let me spend way more time on this then I thought she would.
Attached is a patch with a basic implementation allowing the Wine system dlls
to be reparse points. Please note that this patch requires the staging patches
for reparse point support.
The implementation occurs in three key places:
server/fd.c: ignoring FILE_OPEN_REPARSE_POINT in open_fd
dlls/ntdll/unix/file.c: hiding the symlink in get_file_info
dlls/setupapi/fakedll.c: installing the dlls as a symlink in install_fake_dll
And this results in a rather substantial change in prefix size.
=== before ===
ehoover at lappy:~/src/wine-test$ du --max-depth=0 -h ~/.wine
451M /home/ehoover/.wine
=== after ===
ehoover at lappy:~/src/wine-test$ du --max-depth=0 -h ~/.wine
136M /home/ehoover/.wine
===
If you are interested in seeing what happens if you turn the symlink hiding
behavior on/off you can change IO_REPARSE_TAG_WINE to IO_REPARSE_TAG_SYMLINK in
dlls/setupapi/fakedll.c. An example of how you can see the difference in
behavior is by looking at the directory listing for system32 in wine cmd:
=== IO_REPARSE_TAG_WINE ===
...
11/22/2020 9:56 AM 339,749 xolehlp.dll
11/22/2020 9:56 AM 61,719 xpsprint.dll
11/22/2020 9:56 AM 57,863 xpssvcs.dll
=== IO_REPARSE_TAG_SYMLINK ===
...
11/22/2020 10:50 AM <SYMLINK> xolehlp.dll
[Z:\usr\local\lib\wine\xolehlp.dll]
11/22/2020 10:50 AM <SYMLINK> xpsprint.dll
[Z:\usr\local\lib\wine\xpsprint.dll]
11/22/2020 10:50 AM <SYMLINK> xpssvcs.dll
[Z:\usr\local\lib\wine\xpssvcs.dll]
===
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list