[PATCH v2 0/5] MR355: win32u: Move more display mode logic out of graphics drivers.
Huw Davies (@huw)
wine at gitlab.winehq.org
Mon Jul 4 04:24:23 CDT 2022
Huw Davies (@huw) commented about dlls/winemac.drv/display.c:
> - ret &= query_display_setting(hkey, "DefaultSettings.Orientation", &dm->dmDisplayOrientation);
> - dm->dmFields |= DM_DISPLAYORIENTATION;
> - ret &= query_display_setting(hkey, "DefaultSettings.FixedOutput", &dm->dmDisplayFixedOutput);
> -
> - NtClose(hkey);
> - release_display_device_init_mutex(mutex);
> - return ret;
> -}
> -
> -
> -static BOOL set_setting_value(HKEY hkey, const char *name, DWORD val)
> -{
> - WCHAR nameW[128];
> - UNICODE_STRING str = { asciiz_to_unicode(nameW, name) - sizeof(WCHAR), sizeof(nameW), nameW };
> - return !NtSetValueKey(hkey, &str, 0, REG_DWORD, &val, sizeof(val));
> -}
This is causing a link failure on macOS:
```
gcc -m32 -o dlls/winemac.drv/winemac.so -dynamiclib -install_name @rpath/winemac.so -Wl,-rpath, at loader_path\/ \
dlls/winemac.drv/clipboard.o dlls/winemac.drv/display.o dlls/winemac.drv/event.o \
dlls/winemac.drv/gdi.o dlls/winemac.drv/image.o dlls/winemac.drv/keyboard.o \
dlls/winemac.drv/macdrv_main.o dlls/winemac.drv/mouse.o dlls/winemac.drv/opengl.o \
dlls/winemac.drv/surface.o dlls/winemac.drv/systray.o dlls/winemac.drv/vulkan.o \
dlls/winemac.drv/window.o dlls/winemac.drv/cocoa_app.o dlls/winemac.drv/cocoa_clipboard.o \
dlls/winemac.drv/cocoa_cursorclipping.o dlls/winemac.drv/cocoa_display.o \
dlls/winemac.drv/cocoa_event.o dlls/winemac.drv/cocoa_main.o dlls/winemac.drv/cocoa_opengl.o \
dlls/winemac.drv/cocoa_status_item.o dlls/winemac.drv/cocoa_window.o dlls/ntdll/ntdll.so \
dlls/win32u/win32u.so -framework AppKit -framework Carbon -framework Security -framework OpenGL \
-framework IOKit -framework CoreVideo -framework QuartzCore -framework Metal
ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
Undefined symbols for architecture i386:
"_set_setting_value", referenced from:
_macdrv_ChangeDisplaySettingsEx in display.o
_init_original_display_mode in display.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/355#note_3190
More information about the wine-devel
mailing list