[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