On Wed Nov 23 20:30:34 2022 +0000, Dean M Greer wrote:
> I’m assuming in both cases you’ve built wine64 against Xcode14?
Yes, although I also reproduced it with a test app I built on Mojave. On Mojave environ wasn’t NULL, on Monterey/Ventura it was.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1396#note_17225
On Wed Nov 23 20:22:32 2022 +0000, Brendan Shanks wrote:
> Unfortunately this patch seems to be causing Wine to crash, at least on
> macOS Ventura and Monterey. After the preloader loads the wine loader,
> `environ` in the loader is NULL for some reason.
> I'm still looking into this, but as a quick hack, using
> `*(NSGetEnviron())` (and including `<crt_externs.h>`) instead of
> `environ` in main() works.
I’m assuming in bother cases you’ve built wine64 against Xcode14?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1396#note_17223
Unfortunately this patch seems to be causing Wine to crash, at least on macOS Ventura and Monterey. After the preloader loads the wine loader, `environ` in the loader is NULL for some reason.
I'm still looking into this, but as a quick hack, using `*(NSGetEnviron())` (and including `<crt_externs.h>`) instead of `environ` in main() works.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1396#note_17218
Also unifies hidden file handling.
Fixes bug [53826](https://bugs.winehq.org/show_bug.cgi?id=53826).
--
v12: ntdll: Try to avoid requesting the file name for a handle.
ntdll: Ensure that attributes are kept the same when renaming or hard-linking a file.
ntdll: Set xattr in NtCreateFile if inferred and requested attributes don't match.
ntdll: Only infer hidden attribute from file name if xattr is not present.
ntdll: Handle hidden file names in fd_get_file_info.
ntdll: Pass file path into fd_get_file_info if available.
ntdll: Do not compute file attributes for info classes that don't need them.
ntdll: Handle hidden file names inside get_file_info instead of after it.
ntdll: Do not open-code hidden file handling in get_dir_data_entry.
ntdll/tests: Add test for file attributes of files with names beginning with a dot.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1148
The first two patches are mostly needed to make wmic.exe work on Windows as well for easier testing and distinguishing between wmic.exe bugs and underlying libraries bugs (although it also makes sense not to depend on wbemprox implementation differences in Wine).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1527
When f7332ab4a6e199d03e4318d82c0b16a0396b935c switched load_so_dll
over to a proper Unix syscall, ntdll.so started providing the
symbol __wine_unix_call_funcs.
When a DLL calls NtQueryVirtualMemory(MemoryWineUnixFuncs), it can
do so speculatively, not knowing whether the corresponding unix
lib actually does provide anything.
When ntdll.so started providing this symbol, then such speculative
calls to NtQueryVirtualMemory(MemoryWineUnixFuncs) would end up
returning ntdll's __wine_unix_call_funcs if the intended DLL's
unix library lacked one.
This is the case with bcrypt, where the unix library doesn't
provide __wine_unix_call_funcs if gnutls is unavailable.
This fixes crashes after f7332ab4a6e199d03e4318d82c0b16a0396b935c,
in builds without gnutls.
Signed-off-by: Martin Storsjö <martin(a)martin.st>
--
v2: ntdll: Avoid accidentally picking up ntdll's __wine_unix_call_funcs for other DLLs
https://gitlab.winehq.org/wine/wine/-/merge_requests/1525
When f7332ab4a6e199d03e4318d82c0b16a0396b935c switched load_so_dll
over to a proper Unix syscall, ntdll.so started providing the
symbol __wine_unix_call_funcs.
When a DLL calls NtQueryVirtualMemory(MemoryWineUnixFuncs), it can
do so speculatively, not knowing whether the corresponding unix
lib actually does provide anything.
When ntdll.so started providing this symbol, then such speculative
calls to NtQueryVirtualMemory(MemoryWineUnixFuncs) would end up
returning ntdll's __wine_unix_call_funcs if the intended DLL's
unix library lacked one.
This is the case with bcrypt, where the unix library doesn't
provide __wine_unix_call_funcs if gnutls is unavailable.
This fixes crashes after f7332ab4a6e199d03e4318d82c0b16a0396b935c,
in builds without gnutls.
Signed-off-by: Martin Storsjö <martin(a)martin.st>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1525
This will end up moving window around only if the old virtual screen
origin is different from the new one. Don't send unnecessary messages
if it didn't change.
This helps speeding up D3D tests on the testbot VMs with multiple
displays and hopefully solve the timeout problems.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1524
Overwatch 2 verifies that every kernel callback that is run, lives in user32. Introduce a callback in user32 that just forwards to the other modules' callbacks.
--
v18: include: Add a comment explaining why all kernel callbacks must be in user32.
user32: Remove NtUserDriverCallback* kernel callbacks.
winex11.drv: Route kernel callbacks through user32.
winex11.drv: Pass a struct to x11drv_ime_set_result.
winex11.drv: Pass a struct to x11drv_dnd_post_drop.
winemac.drv: Route kernel callbacks through user32.
wineandroid.drv: Route kernel callbacks through user32.
opengl32: Route kernel callbacks through user32.
winevulkan: Route kernel callbacks through user32.
user32: Add NtUserDispatchCallback kernel callback.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1180
Jacek Caban (@jacek) commented about dlls/winevulkan/vulkan_thunks.c:
> return (void *)out;
> }
>
> +static inline void convert_VkDeviceOrHostAddressKHR_win32_to_host(const VkDeviceOrHostAddressKHR32 *in, VkDeviceOrHostAddressKHR *out)
> +{
> + if (!in) return;
> +
> + out->deviceAddress = in->deviceAddress;
> + out->hostAddress = (void *)UlongToPtr(in->hostAddress);
FWIW, this will not do the right thing on wow64 when the address is meant to be device address. It will override the upper part of deviceAddress. It was broken in a different way before that commit by not zeroing upper 32 bits when host address should be used, so it essentially depended on caller to initialize that part. Unfortunately, I don't see a good way of solving it properly.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1508#note_17182
On Windows, application-specific settings are stored in the registry
under HKCU\Console\<path_to_app>.
Our implementation of conhost.exe does not know which process is
connected to it, so we need to get the full process image name before
loading any application-specific console settings.
To do this, we extend the server protocol to pass the process Id of
the connected console process to conhost.exe.
Please run tools/make_requests before merging.
--
v3: conhost: Load application-specific settings using the full process image name
server: Send console process ID via get_next_console_request()
https://gitlab.winehq.org/wine/wine/-/merge_requests/1492
It is possible that a stream is destroyed while another thread is waiting on
event_empty_cond or event_cond. The waiting thread should have the opportunity
to be rescheduled and exit the critical section before the condition variables
and the mutex are destroyed.
--
v5: winegstreamer: Synchronize media source async commands and shutdown.
winegstreamer: Free the GStreamer buffer when freeing a WG parser stream.
winegstreamer: Synchronize access to the media source from callbacks.
winegstreamer: Synchronize concurrent access to the media stream.
winegstreamer: Synchronize concurrent access to the media source.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1278
It is possible that a stream is destroyed while another thread is waiting on
event_empty_cond or event_cond. The waiting thread should have the opportunity
to be rescheduled and exit the critical section before the condition variables
and the mutex are destroyed.
--
v4: winegstreamer: Synchronize media source async commands and shutdown.
winegstreamer: Free the GStreamer buffer when freeing a WG parser stream.
winegstreamer: Synchronize access to the media source from callbacks.
winegstreamer: Synchronize concurrent access to the media stream.
winegstreamer: Synchronize concurrent access to the media source.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1278