Skip to content

gh-152433: Windows: use LoadLibrary in UWP for system libs - #156972

Merged
zooba merged 1 commit into
python:mainfrom
thexai:uwp-loadlibrary
Sep 8, 2026
Merged

gh-152433: Windows: use LoadLibrary in UWP for system libs#156972
zooba merged 1 commit into
python:mainfrom
thexai:uwp-loadlibrary

Conversation

@thexai

@thexai thexai commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

LoadPackagedLibrary only should be used in UWP for apps package libs (not system libs).

This is a partial revert of ba28946.

LoadPackagedLibrary only should be used in UWP for apps package libs (not
system libs).
@thexai

thexai commented Sep 5, 2026

Copy link
Copy Markdown
Contributor Author

Ping @zooba for review

@chris-eibl chris-eibl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@zooba

zooba commented Sep 7, 2026

Copy link
Copy Markdown
Member

@thexai Have you confirmed that the API set DLLs get treated as system libraries here? (I see you mentioned the change, but I don't know whether it's effectively forcing LOAD_LIBRARY_SEARCH_SYSTEM32 or if it's forcing KnownDlls or something else, and the APISet is its own kind of thing...)

@zooba zooba added the skip news label Sep 7, 2026
@thexai

thexai commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

Yes, I confirmed in Xbox that produces error using LoadPackagedLibrary in this specific case. The error is not obvious because the alternate code path win32_xstat_slow_impl is used as fallback.

However, with the PR changes, GetFileInformationByName code path works correctly.

LoadPackagedLibrary only should be used to load app specific DLLs like "python3.dll" or modules *.pyd. All other system / Windows API DLLs should be loaded with LoadLibraryW same as regular Windows Desktop.

@zooba
zooba merged commit f37e8ff into python:main Sep 8, 2026
59 checks passed
@thexai
thexai deleted the uwp-loadlibrary branch September 9, 2026 13:59
maurycy added a commit to maurycy/cpython that referenced this pull request Sep 10, 2026
* main: (158 commits)
  pythongh-156924: Try reifying lazy imports in `ForwarRef.evaluate()` (python#156940)
  pythongh-156233: Fix typos and code snippet errors in the docs (python#156475)
  pythongh-156837: Refer to yield expressions in generator function definitions (pythonGH-156863)
  pythongh-155292: Skip updating unicodedata with mismatched interpreter (pythonGH-157066)
  pythongh-157170: Document the scope of global curses settings (pythonGH-157207)
  pythongh-155966: Correct handling of `math.tanpi` poles (python#155980)
  pythongh-157170: Restore use_env() after test_use_prescr_screen in test_curses (pythonGH-157171)
  pythongh-156910: fix deadlock in type_set_abstractmethods under free-threading (python#156948)
  pythongh-155648: Write the empty and placeholder IDLE tests (python#156260)
  pythongh-153569: centralize formatted-string state and source spans (python#156484)
  pythongh-157137: Mark the PEP 820 soft deprecations as 3.15, not `next` (python#157138)
  pythongh-152433: Use regular LoadLibrary in UWP for Windows system libs (pythonGH-156972)
  pythongh-121617: Fix Py_CLEAR() memcpy in C++: replace NULL with _Py_NULL (python#157188)
  pythongh-157135: Fix documentation errors in the `math.atan{2}pi` functions (python#157136)
  pythongh-121617: Fix Py_CLEAR() in C++: replace NULL with _Py_NULL (python#157067)
  pythongh-156774: Speed up pdb startup with asyncio guard (python#156775)
  pythongh-156109: Allow static, non-framework iOS builds (python#156110)
  pythongh-156780: Emscripten: add missing EM_JS_DEPS (python#156798)
  pythongh-152936: Make privileged functions available on Android (python#152977)
  pythongh-123018: Keep the libedit history file header when truncating (pythonGH-157165)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants