[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 Jeffrey A. Law changed: What|Removed |Added CC||law at gcc dot gnu.org Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #16 from Jeffrey A. Law --- Fixed and backported.
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 Richard Biener changed: What|Removed |Added Target Milestone|--- |13.3
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #15 from GCC Commits --- The releases/gcc-13 branch has been updated by Jonathan Yong : https://gcc.gnu.org/g:19da6d2d0048eb6a260a5cf8af707cb455848bfb commit r13-8107-g19da6d2d0048eb6a260a5cf8af707cb455848bfb Author: Costas Argyris Date: Mon Nov 20 17:58:16 2023 + mingw: Exclude utf8 manifest [PR70, PR108865] Make the utf8 manifest optional (on by default and explicitly off with --disable-win32-utf8-manifest) in the mingw hosts. Also eliminate duplication between the 32-bit and 64-bit mingw hosts by putting them both in the same branch and special-case only the 64-bit long long setting. PR mingw/70 PR mingw/108865 Signed-off-by: Costas Argyris Signed-off-by: Jonathan Yong <10wa...@gmail.com> gcc/Changelog: * configure.ac: Handle new --enable-win32-utf8-manifest option. * config.host: allow win32 utf8 manifest to be disabled by user. * configure: Regenerate. (cherry picked from commit 4f1ebd54380e16927cd0085be939165870354eac)
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #14 from Costas Argyris --- (In reply to Eric Botcazou from comment #13) > Thanks for the fix. Now it needs to be backported onto the 13 branch. Just sent email about it.
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 Eric Botcazou changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed||2023-11-28 CC||ebotcazou at gcc dot gnu.org --- Comment #13 from Eric Botcazou --- Thanks for the fix. Now it needs to be backported onto the 13 branch.
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #12 from Costas Argyris --- I think this can be considered as fixed now, since the new --disable-win32-utf8-manifest configure option leaves out the utf8 manifest and you shouldn't have a problem running gcc even on XP if you configure with that. However, you do need to build using the latest sources to use that option, since the patch was pushed to the master branch just earlier today.
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #11 from CVS Commits --- The master branch has been updated by Jonathan Yong : https://gcc.gnu.org/g:4f1ebd54380e16927cd0085be939165870354eac commit r14-5768-g4f1ebd54380e16927cd0085be939165870354eac Author: Costas Argyris Date: Mon Nov 20 17:58:16 2023 + mingw: Exclude utf8 manifest [PR70, PR108865] Make the utf8 manifest optional (on by default and explicitly off with --disable-win32-utf8-manifest) in the mingw hosts. Also eliminate duplication between the 32-bit and 64-bit mingw hosts by putting them both in the same branch and special-case only the 64-bit long long setting. PR mingw/70 PR mingw/108865 Signed-off-by: Costas Argyris Signed-off-by: Jonathan Yong <10wa...@gmail.com> gcc/Changelog: * configure.ac: Handle new --enable-win32-utf8-manifest option. * config.host: allow win32 utf8 manifest to be disabled by user. * configure: Regenerate.
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #10 from Costas Argyris --- > I suspect there should be an `AC_ARG_ENABLE` in configure.ac? It doesn't appear to be necessary to me.It also wasn't part of the advice of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108865#c44 as far as I can tell. >From the two examples given there, with_avrlibc is used just through its shell variable without any corresponding AC_ARG_WITH (couldn't find any with git grep avrlibc anyway). It also worked in my builds which were picking up the new --disable-win32-utf8-manifest option (or its absence), so it doesn't seem to be necessary to make any other changes. Did you get any failures and suspect it's due to AC_ARG_ENABLE missing?
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #9 from LIU Hao --- (In reply to Costas Argyris from comment #8) > (In reply to LIU Hao from comment #3) > > Costas, would you like to provide a configure option to exclude that > > manifest? > > I created a patch for that and attached it here: > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108865#c45 > > I have built it natively on x86_64-w64-mingw32 but without bootstrap yet > (not sure if that would add anything in this particular case) and no > i[34567]86 yet. > > It would be nice if you could also give it a go in your builds. I suspect there should be an `AC_ARG_ENABLE` in configure.ac?
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #8 from Costas Argyris --- (In reply to LIU Hao from comment #3) > Costas, would you like to provide a configure option to exclude that > manifest? I created a patch for that and attached it here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108865#c45 I have built it natively on x86_64-w64-mingw32 but without bootstrap yet (not sure if that would add anything in this particular case) and no i[34567]86 yet. It would be nice if you could also give it a go in your builds.
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #7 from Costas Argyris --- Some ideas on how this could be implemented in case someone wants to try and fix this sooner than me: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108865#c42
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #6 from Costas Argyris --- I see. I can try to come up with a patch to add a windows-host-specific configure option to exclude the utf8 manifest on demand, but I won't be able to work on this for a while...
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #5 from LIU Hao --- (In reply to Costas Argyris from comment #4) > A couple of comments: > > 1) Isn't Windows XP officially not supported any more?If that is the > case, does it make sense to introduce a new configure option solely to deal > with an unsupported host?I'm not even sure why this is called a > regression, given that it breaks something that is not officially supported. I don't think we have declared Windows XP unsupported. There was even an attempt to maintain Windows 98: https://www.mail-archive.com/mingw-w64-public@lists.sourceforge.net/msg21399.html I think the decision is probably we have default as Windows 10 but don't break old systems by intention, so when someone requests it they get it. > 2) Would it be easier if, instead of excluding the manifest via a new > configure option, we somehow made the manifest file itself smart enough to > ignore itself when running on Windows XP? https://learn.microsoft.com/en-us/windows/win32/win7appqual/compatibility---application-manifest#manifestation-of-change ``` Applications without a Compatibility section in their manifest will receive Windows Vista behavior by default on Windows 7 and future Windows versions. Note that Windows XP and Windows Vista ignore this manifest section and it has no impact on them. ``` But Microsoft documentation sometimes lies. If Windows XP does not ignore the manifest and fails instead, we will need a solution. > which has separate entries for all the Windows versions, marking them as > 'supportedOS'. > > Would it be possible to do this in the GCC manifest and solve this problem, > or did I misunderstand how the compatibility section works? XP was not assigned a UUID because it (2001) predated this manifest thing (2004 or 2005 I guess? since MSVCR80).
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #4 from Costas Argyris --- A couple of comments: 1) Isn't Windows XP officially not supported any more?If that is the case, does it make sense to introduce a new configure option solely to deal with an unsupported host?I'm not even sure why this is called a regression, given that it breaks something that is not officially supported. 2) Would it be easier if, instead of excluding the manifest via a new configure option, we somehow made the manifest file itself smart enough to ignore itself when running on Windows XP? Based on your comment above about the compatibility section in the MSYS2 manifest, it sounds like the GCC manifest could get a similar compatibility section that basically says "ignore this manifest when running on XP (or earlier)" such that it doesn't break in these old Windows versions. I searched for the MSYS2 manifest and I think it sources it from cygwin: https://sourceware.org/git/?p=cygwin-apps/windows-default-manifest.git;a=blob;f=default-manifest.rc;h=2c4ddf4783b953afaf7df9473450bf95842d1911;hb=HEAD which has separate entries for all the Windows versions, marking them as 'supportedOS'. Would it be possible to do this in the GCC manifest and solve this problem, or did I misunderstand how the compatibility section works?
[Bug target/111170] [13/14 regression] Malformed manifest does not allow to run gcc on Windows XP (Accessing a corrupted shared library) since r13-6552-gd11e088210a551
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70 --- Comment #3 from LIU Hao --- Costas, would you like to provide a configure option to exclude that manifest?