[Bug 31603] New: App manifests that specify processorArchitecture="*" fail to find assemblies
http://bugs.winehq.org/show_bug.cgi?id=31603 Bug #: 31603 Summary: App manifests that specify processorArchitecture="*" fail to find assemblies Product: Wine Version: 1.5.12 Platform: x86 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: ntdll AssignedTo: wine-bugs(a)winehq.org ReportedBy: dank(a)kegel.com Classification: Unclassified Doing unset WINEPREFIX rm -rf ~/.wine sh winetricks -q vcrun2008 cd ~/wine-git/dlls/msvcr90/tests WINEDLLOVERRIDES=msvcr90=n ~/wine-git/wine msvcr90_test.exe.so says msvcr90.c:243: Tests skipped: msvcr90.dll not installed (got 126) This seems wrong; that dll is in fact installed. The app in question is built with the manifest http://source.winehq.org/source/dlls/msvcr90/tests/msvcr90.manifest which contains the line processorArchitecture="*" Tracing through the code, lookup_manifest_file in ntdll/actctx.c seems to incorrectly parse the native DLL's manifest as having build 0 rather than 30729. The problem appears to be that line 1872 assumes that the string lookup contains no *'s other than the ones in lookup_fmtW, and so doesn't skip to where it expected to when it does the strchrW: 1826 static const WCHAR wine_trailerW[] = {'d','e','a','d','b','e','e','f','.','m','a','n','i','f','e','s','t'}; 1842 sprintfW( lookup, lookup_fmtW, ai->arch, ai->name, ai->public_key, 1843 ai->version.major, ai->version.minor, lang ); 1872 tmp = dir_info->FileName + (strchrW(lookup, '*') - lookup); 1873 build = atoiW(tmp); 1874 if (build < min_build) continue; If ai->arch contains a '*', as it does in tests/msvcr90.manifest, this assumption is violated. Changing the manifest to say processorArchitecture="x86" lets the test run and find the native DLL, at least on x86. So, is the manifest wrong, or is lookup_manifest_file() wrong? (This came up while I was trying to write tests for vcomp.dll. It was frustrating to find that the example I'd borrowed the manifest from was broken.) -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=31603 --- Comment #1 from Dan Kegel <dank(a)kegel.com> 2012-09-02 15:19:50 CDT --- (I can't even copy and paste one line of text properly. I wanted lines 1823-1825, not 1826: 1823 static const WCHAR lookup_fmtW[] = 1824 {'%','s','_','%','s','_','%','s','_','%','u','.','%','u','.','*','.','*','_', 1825 '%','s','_','*','.','m','a','n','i','f','e','s','t',0}; ) -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=31603 Erich Hoover <ehoover(a)mines.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ehoover(a)mines.edu --- Comment #2 from Erich Hoover <ehoover(a)mines.edu> 2012-09-05 23:12:23 CDT --- (In reply to comment #0)
... So, is the manifest wrong, or is lookup_manifest_file() wrong? ...
It looks like there's a comment on MSDN that it should support "*": http://msdn.microsoft.com/en-us/library/windows/desktop/aa374191%28v=vs.85%2... -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=31603 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, testcase --- Comment #3 from Austin English <austinenglish(a)gmail.com> --- WINEDLLOVERRIDES=msvcr90=n ~/wine-git/wine msvcr90_test.exe.so fixme:iphlpapi:NotifyAddrChange (Handle 0x166e7d0, overlapped 0x166e7dc): stub wine: configuration in '/home/austin/.wine' has been updated. fixme:actctx:parse_depend_manifests Could not find dependent assembly L"microsoft.vc90.crt" (9.0.20718.0) msvcr90.c:318: Tests skipped: msvcr90.dll not installed (got 126) msvcr90: 0 tests executed (0 marked as todo, 0 failures), 1 skipped. still in wine-1.7.36. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=31603 super_man(a)post.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man(a)post.com --- Comment #4 from super_man(a)post.com --- The test still fails. I have seen this isue very often, but the version has been different. wine 1.8.rc1 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=31603 --- Comment #5 from super_man(a)post.com --- wine msvcr90_test.exe.so fixme:actctx:parse_depend_manifests Could not find dependent assembly L"microsoft.vc90.crt" (9.0.20718.0) wine 1.9.3 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=31603 --- Comment #6 from Gijs Vermeulen <gijsvrm(a)gmail.com> --- Tests still don't run with wine-6.18-241-ga87abdbe857. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=31603 Lorenzo Ferrillo <lorenzofer(a)live.it> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |lorenzofer(a)live.it --- Comment #7 from Lorenzo Ferrillo <lorenzofer(a)live.it> --- With wine 7.2, there is the issue of the "*" seems to be resolved, but the test are still failing. The first issue seems that the microsoft.vc90.crt manifest isn't installed (the vc80 is present instead). Creating the assembly manually (or avoid using winetricks to install vcrun2008 that remove all the manfiest related to it), fix the actctx:parse_depend_manifests Could not find dependent assembly issue. But then when msvcr90 is setted to native, the LoadDll routine fail to load it, seems to fail when opening the file mapping, so the trsts still fail -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (2)
-
wine-bugs@winehq.org -
WineHQ Bugzilla