From a4774f42e35861c4bb16928cffb011c2d8a285ac Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Fri, 5 Nov 2021 23:06:45 +0000 Subject: [PATCH] bpo-45720: Drop references to shlwapi.dll on Windows (GH-29417) --- .../next/Windows/2021-11-05-01-05-46.bpo-45720.47Nc5I.rst | 3 +++ PC/getpathp.c | 4 ++-- PCbuild/_freeze_module.vcxproj | 2 +- PCbuild/pythoncore.vcxproj | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 Misc/NEWS.d/next/Windows/2021-11-05-01-05-46.bpo-45720.47Nc5I.rst diff --git a/Misc/NEWS.d/next/Windows/2021-11-05-01-05-46.bpo-45720.47Nc5I.rst b/Misc/NEWS.d/next/Windows/2021-11-05-01-05-46.bpo-45720.47Nc5I.rst new file mode 100644 index 00000000000..315759b07e1 --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2021-11-05-01-05-46.bpo-45720.47Nc5I.rst @@ -0,0 +1,3 @@ +Internal reference to :file:`shlwapi.dll` was dropped to help improve +startup time. This DLL will no longer be loaded at the start of every Python +process. diff --git a/PC/getpathp.c b/PC/getpathp.c index 549353d78b1..a27348024d2 100644 --- a/PC/getpathp.c +++ b/PC/getpathp.c @@ -92,7 +92,6 @@ #include #include -#include #ifdef HAVE_SYS_TYPES_H #include @@ -265,7 +264,8 @@ canonicalize(wchar_t *buffer, const wchar_t *path) return _PyStatus_NO_MEMORY(); } - if (PathIsRelativeW(path)) { + const wchar_t *pathTail; + if (FAILED(PathCchSkipRoot(path, &pathTail)) || path == pathTail) { wchar_t buff[MAXPATHLEN + 1]; if (!GetCurrentDirectoryW(MAXPATHLEN, buff)) { return _PyStatus_ERR("unable to find current working directory"); diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj index 12bdde2af84..d33e07c54b8 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -92,7 +92,7 @@ Console - version.lib;shlwapi.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies) + version.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies) diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index 646bc8e4800..b6599818692 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -106,7 +106,7 @@ _Py_HAVE_ZLIB;%(PreprocessorDefinitions) - version.lib;shlwapi.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies) + version.lib;ws2_32.lib;pathcch.lib;bcrypt.lib;%(AdditionalDependencies)