https://bugs.winehq.org/show_bug.cgi?id=42474
Bug ID: 42474 Summary: unimplemented function api-ms-win-core-path-l1-1-0.dll.PathCchCombineEx Product: Wine Version: 2.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: api-ms-win-* Assignee: wine-bugs@winehq.org Reporter: anonymous.maarten@gmail.com Distribution: ---
Hey,
python 3.6 (32- and 64-bit) needs the unimplemented function
api-ms-win-core-path-l1-1-0.dll.PathCchCombineEx
URL: https://www.python.org/ftp/python/3.6.0/python-3.6.0-embed-amd64.zip
$ du -b python-3.6.0-embed-amd64.zip 6925798 python-3.6.0-embed-amd64.zip
$ shasum python-3.6.0-embed-amd64.zip 37bf20dcf39dfca096b11d29865202229a8fcb42 python-3.6.0-embed-amd64.zip
$ wine --version wine-2.0 (Staging)
Running Fedora 24
https://bugs.winehq.org/show_bug.cgi?id=42474
Maarten anonymous.maarten@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://www.python.org/ftp/ | |python/3.6.0/python-3.6.0-e | |mbed-amd64.zip
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #1 from Nikolay Sivov bunglehead@gmail.com --- What is your Wine version set to?
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #2 from Nikolay Sivov bunglehead@gmail.com --- Sorry, what I meant to ask was, what Windows version is set for your wineprefix.
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #3 from Maarten anonymous.maarten@gmail.com --- The default version: Windows XP
Changing it to 8 or 10 in winecfg keeps the same behavior.
https://bugs.winehq.org/show_bug.cgi?id=42474
Gijs Vermeulen acescopezz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |acescopezz@gmail.com
--- Comment #4 from Gijs Vermeulen acescopezz@gmail.com ---
From what I can find about this function, it should forward to kernelbase.dll.
But when I look inside the .spec file this function is not listed there.
I found this info on this website: http://www.geoffchappell.com/studies/windows/win32/kernelbase/api/index.htm?...
I guess the .spec file for kernelbase.dll has to be updated?
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #5 from Austin English austinenglish@gmail.com --- (In reply to Gijs Vermeulen from comment #4)
From what I can find about this function, it should forward to kernelbase.dll. But when I look inside the .spec file this function is not listed there.
I found this info on this website: http://www.geoffchappell.com/studies/windows/win32/kernelbase/api/index. htm?tx=18
I guess the .spec file for kernelbase.dll has to be updated?
Yeah. I see it in my copy from Windows 10 (but not windows 7).
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #6 from Gijs Vermeulen acescopezz@gmail.com --- (In reply to Austin English from comment #5)
(In reply to Gijs Vermeulen from comment #4)
From what I can find about this function, it should forward to kernelbase.dll. But when I look inside the .spec file this function is not listed there.
I found this info on this website: http://www.geoffchappell.com/studies/windows/win32/kernelbase/api/index. htm?tx=18
I guess the .spec file for kernelbase.dll has to be updated?
Yeah. I see it in my copy from Windows 10 (but not windows 7).
According to MSDN the function was added in Windows 8.
https://bugs.winehq.org/show_bug.cgi?id=42474
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|unimplemented function |Python 3.6 needs function |api-ms-win-core-path-l1-1-0 |api-ms-win-core-path-l1-1-0 |.dll.PathCchCombineEx |.dll.PathCchCombineEx CC| |00cpxxx@gmail.com Keywords| |download
https://bugs.winehq.org/show_bug.cgi?id=42474
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |austinenglish@gmail.com Ever confirmed|0 |1
--- Comment #7 from Austin English austinenglish@gmail.com --- (In reply to Gijs Vermeulen from comment #6)
(In reply to Austin English from comment #5)
(In reply to Gijs Vermeulen from comment #4)
From what I can find about this function, it should forward to kernelbase.dll. But when I look inside the .spec file this function is not listed there.
I found this info on this website: http://www.geoffchappell.com/studies/windows/win32/kernelbase/api/index. htm?tx=18
I guess the .spec file for kernelbase.dll has to be updated?
Yeah. I see it in my copy from Windows 10 (but not windows 7).
According to MSDN the function was added in Windows 8.
I sent a patch to sync the specfile: https://source.winehq.org/patches/data/131819
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #8 from Austin English austinenglish@gmail.com --- (In reply to Austin English from comment #7)
(In reply to Gijs Vermeulen from comment #6)
(In reply to Austin English from comment #5)
(In reply to Gijs Vermeulen from comment #4)
From what I can find about this function, it should forward to kernelbase.dll. But when I look inside the .spec file this function is not listed there.
I found this info on this website: http://www.geoffchappell.com/studies/windows/win32/kernelbase/api/index. htm?tx=18
I guess the .spec file for kernelbase.dll has to be updated?
Yeah. I see it in my copy from Windows 10 (but not windows 7).
According to MSDN the function was added in Windows 8.
I sent a patch to sync the specfile: https://source.winehq.org/patches/data/131819
Committed: https://source.winehq.org/git/wine.git/commitdiff/646117bf915e70e170a45cec56...
https://bugs.winehq.org/show_bug.cgi?id=42474
Sebastian Ernst ernst@pleiszenburg.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ernst@pleiszenburg.de
--- Comment #9 from Sebastian Ernst ernst@pleiszenburg.de --- *** Bug 42887 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #10 from Sebastian Ernst ernst@pleiszenburg.de --- @Austin English: How can I test this patch? I just tested both Wine 2.6 and Wine Staging 2.6 against CPython 3.6.1 with Windows Version set to XP, 7 and 10. No difference / no luck.
(However, I just figured out that CPython 3.5.3 does not require "PathCchCombineEx" and therefore runs.)
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #11 from Gijs Vermeulen acescopezz@gmail.com --- (In reply to Sebastian Ernst from comment #10)
@Austin English: How can I test this patch? I just tested both Wine 2.6 and Wine Staging 2.6 against CPython 3.6.1 with Windows Version set to XP, 7 and 10. No difference / no luck.
(However, I just figured out that CPython 3.5.3 does not require "PathCchCombineEx" and therefore runs.)
The patch he was talking about was an update of the .spec file for kernelbase.dll. It use somewhat related to this bug, but does not fix it.
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #12 from Gijs Vermeulen acescopezz@gmail.com --- Created attachment 58036 --> https://bugs.winehq.org/attachment.cgi?id=58036 stub try
I tried stubbing it, but it still fails.
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #13 from Austin English austinenglish@gmail.com --- (In reply to Gijs Vermeulen from comment #12)
Created attachment 58036 [details] stub try
I tried stubbing it, but it still fails.
Try E_NOTIMPL instead of S_OK.
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #14 from Gijs Vermeulen acescopezz@gmail.com --- (In reply to Austin English from comment #13)
(In reply to Gijs Vermeulen from comment #12)
Created attachment 58036 [details] stub try
I tried stubbing it, but it still fails.
Try E_NOTIMPL instead of S_OK.
When I do that, I get this error:
"Fatal Python error: buffer overflow in getpathp.c's join()"
With S_OK I get this error:
"Fatal Python error: Py_Initialize: unable to load the file system codec ModuleNotFoundError: No module named 'encodings'"
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #15 from Sebastian Ernst ernst@pleiszenburg.de --- Looks like "PathCchCombineEx" really is Windows 8 and above only. The odd things is though that Python 3.6 should explicitly support Windows Vista and 7. This API-call therefore should not exist.
I opened a bug against CPython seeking clarification: http://bugs.python.org/issue30186
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #16 from Sebastian Ernst ernst@pleiszenburg.de --- Relaying this from Eryk Sun in the Python bug tracker: "PathCchCombineEx isn't an import dependency. It's used dynamically via LoadLibraryW and GetProcAddress, with a fallback to PathCombineW. Does Wine maybe have a stub for this function that returns E_NOTIMPL (not implemented)?"
I looked at the code to understand what he says: https://github.com/python/cpython/blob/3.6/PC/getpathp.c#L219 Lines 219 to 242 is really where all the relevant stuff happens. Python tries to get the address of PathCchCombineEx. If that fails, it falls back to PathCombineW.
My understanding is that Wine even if it is set to Windows Vista or 7 returns an address for PathCchCombineEx which does not allow Python to fall back to PathCombineW. If PathCchCombineEx just was not there (in Windows Vista and 7 settings) or would return E_NOTIMPL, it might allow Python 3.6 to work (assuming a working implementation of PathCombineW).
Btw, Python 3.5 was using its own logic at this point: https://github.com/python/cpython/blob/3.5/PC/getpathp.c#L167
Does this information allow you to fix this issue?
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #17 from Gijs Vermeulen acescopezz@gmail.com --- (In reply to Sebastian Ernst from comment #16)
-snip-
In my patch I tried returning E_NOTIMPL and I got the error: Fatal Python error: buffer overflow in getpathp.c's join()
Maybe you could reply that in the python bug.
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #18 from Sebastian Ernst ernst@pleiszenburg.de --- I just did.
In the meantime, there are two lines of code which could trigger this exact fatal error (the messages are ironically identical): https://github.com/python/cpython/blob/3.6/PC/getpathp.c#L237 https://github.com/python/cpython/blob/3.6/PC/getpathp.c#L240
If it is the latter, you might be looking at a bug in your implementation of PathCombineW (?). I do not have a tool chain up and running for re-compiling Python for Windows with a bit more verbosity at this very spot ... Maybe this would help.
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #19 from Nikolay Sivov bunglehead@gmail.com --- (In reply to Sebastian Ernst from comment #16)
My understanding is that Wine even if it is set to Windows Vista or 7 returns an address for PathCchCombineEx which does not allow Python to fall back to PathCombineW. If PathCchCombineEx just was not there (in Windows Vista and 7 settings) or would return E_NOTIMPL, it might allow Python 3.6 to work (assuming a working implementation of PathCombineW).
Right, from their code, as soon as export is available it will be used, there's no Windows version thing, which is a good thing. Stub won't help here obviously, this needs real implementation in kernelbase.dll.
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #20 from Gijs Vermeulen acescopezz@gmail.com --- (In reply to Sebastian Ernst from comment #18)
I just did.
In the meantime, there are two lines of code which could trigger this exact fatal error (the messages are ironically identical): https://github.com/python/cpython/blob/3.6/PC/getpathp.c#L237 https://github.com/python/cpython/blob/3.6/PC/getpathp.c#L240
If it is the latter, you might be looking at a bug in your implementation of PathCombineW (?). I do not have a tool chain up and running for re-compiling Python for Windows with a bit more verbosity at this very spot ... Maybe this would help.
This "bug" is being tracked here btw bug 33317 . So I guess this bug and that bug can be merged and the lack of PathCchCombineEx implementation can be added to the title?
(In reply to Nikolay Sivov from comment #19)
Right, from their code, as soon as export is available it will be used, there's no Windows version thing, which is a good thing. Stub won't help here obviously, this needs real implementation in kernelbase.dll.
Thanks for the explanation. Do you agree to merge this with bug 33317 ?
https://bugs.winehq.org/show_bug.cgi?id=42474
Gijs Vermeulen gijsvrm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #58036|0 |1 is obsolete| |
--- Comment #21 from Gijs Vermeulen gijsvrm@gmail.com --- Created attachment 58895 --> https://bugs.winehq.org/attachment.cgi?id=58895 Hack
If someone really wants this to work, you can use this hack. It just hides the exports so the program uses a different code path and falls back to something that is implemented.
https://bugs.winehq.org/show_bug.cgi?id=42474
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED CC| |dmitry@baikal.ru, | |erich.e.hoover@wine-staging | |.com, michael@fds-team.de, | |sebastian@fds-team.de Staged patchset| |https://github.com/wine-com | |pholio/wine-staging/tree/ma | |ster/patches/kernelbase-Pat | |hCchCombineEx
https://bugs.winehq.org/show_bug.cgi?id=42474
Derek Lambert dlambert@dereklambert.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dlambert@dereklambert.com
https://bugs.winehq.org/show_bug.cgi?id=42474
--- Comment #22 from Derek Lambert dlambert@dereklambert.com --- Another workaround:
After deleting lib/wine/fakedlls/api-ms-win-core-path-l1-1-0.dll and lib/wine/api-ms-win-core-path-l1-1-0.dll.so I was able to install Python 3.6.
https://bugs.winehq.org/show_bug.cgi?id=42474
Christian c_pradelli@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |c_pradelli@yahoo.com
https://bugs.winehq.org/show_bug.cgi?id=42474
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |arny91@yahoo.it
--- Comment #23 from Anastasius Focht focht@gmx.net --- *** Bug 44750 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=42474
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Python 3.6 needs function |Multiple applications crash |api-ms-win-core-path-l1-1-0 |on unimplemented function |.dll.PathCchCombineEx |api-ms-win-core-path-l1-1-0 | |.dll.PathCchCombineEx | |(Python 3.6, AutoFlashGUI) CC| |focht@gmx.net Staged patchset|https://github.com/wine-com |https://github.com/wine-sta |pholio/wine-staging/tree/ma |ging/wine-staging/tree/mast |ster/patches/kernelbase-Pat |er/patches/kernelbase-PathC |hCchCombineEx |chCombineEx
--- Comment #24 from Anastasius Focht focht@gmx.net --- Hello folks,
obviously still present.
Refining summary to collect more apps (dupes) here. Also updating the Staging patchset URL to point to current "master" Wine-Staging repo.
$ wine --version wine-3.4
Regards
https://bugs.winehq.org/show_bug.cgi?id=42474
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Multiple applications crash |Multiple applications crash |on unimplemented function |on unimplemented function |api-ms-win-core-path-l1-1-0 |api-ms-win-core-path-l1-1-0 |.dll.PathCchCombineEx |.dll.PathCchCombineEx |(Python 3.6, AutoFlashGUI) |(Python 3.6, AutoFlashGUI, | |RenderDoc) CC| |joseph.kucia@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=42474
Walter Woden wodencafe@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wodencafe@gmail.com
--- Comment #25 from Walter Woden wodencafe@gmail.com --- Hi guys, I get this error Unhandled exception: unimplemented function api-ms-win-core-path-l1-1-0.dll.PathCchCombineEx called in 32-bit code When trying to run an application, FAForever (A external lobby application and mod manager to the game Supreme Commander: Forged Alliance) with 64 bit wine. The application is installed in 32 bit mode (/Program Files (x86)/) I tried with the latest 3.6 and still get the error, after installing and attempting to launch the application. The strange thing is, I only encounter this error with 64 bit wine, I do not encounter this error when installing and running the application with the latest 32 bit wine, even though within 64 bit wine the application is being run in 32 bit mode.
Please let me know if there additional info or assistance I can provide in solving this.
https://bugs.winehq.org/show_bug.cgi?id=42474
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=42474
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |andrew.thomas@hpcwales.co.u | |k
--- Comment #26 from Fabian Maurer dark.shadow4@web.de --- *** Bug 33317 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=42474
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzhang@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=42474
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|api-ms-win-* |kernelbase
https://bugs.winehq.org/show_bug.cgi?id=42474
Zhiyi Zhang zzhang@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|STAGED |RESOLVED Fixed by SHA1| |6150e20868df947ae745c36b6e2 | |73bce556e4e92
--- Comment #27 from Zhiyi Zhang zzhang@codeweavers.com --- Fixed by https://source.winehq.org/git/wine.git/commit/6150e20868df947ae745c36b6e273b...
https://bugs.winehq.org/show_bug.cgi?id=42474
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #28 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 4.0-rc1.
https://bugs.winehq.org/show_bug.cgi?id=42474
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|kernelbase |kernel32