skeeto / w64devkit

Portable C and C++ Development Kit for x64 (and x86) Windows
The Unlicense
2.67k stars 185 forks source link

Unsolved issues: a call for assistance #58

Open skeeto opened 1 year ago

skeeto commented 1 year ago

Recent GCC and GDB updates have led to issues that currently have no solutions. I'm also stumped and have run out of avenues to search.

GCC 13.1 does not work on Windows XP (SOLVED)

As of 7256915e4b07b868ef137d4e591313a8eb032696, GCC no longer runs on Windows XP. Every other program works, just not cc1.exe. When attempting to run this program, (x86) Windows XP reports "The system cannot execute the specified program." with no further details. The same binary works fine on Windows 7 and later. To build your own test:

$ ./multibuild.sh -4q

advzip-compressed GDB 13.1 cannot be decompressed on x64 Windows

The problems began with fdac8e333f1436eb41607112646032b629d615c3. I normally advzip -z4 releases to shave about 5% off their size, but after I do this x64 Windows fails to decompress gdb.exe with error 0x80004005. No further information is provided by Windows. It still works on x86 Windows, and so I believe this is an old x64 Windows bug. It dates back at least as far as Windows 7. Until this is solved releases will be a few MiB larger.

More details, including a reduced sample file (advzip.sample) in 2cf762a80847533f4bc0797945d21678dcec7a3f. To reproduce: Place advzip.sample in a zip file, advzip -z4 that file, then try to decompress using x64 Windows's built-in ZIP support.

It is not feasible to compile GCC 13.1 on a Raspberry Pi 4

As of 13.1, GCC has become so large and complex that it runs out of memory during the bootstrap. So far I've built all the releases on this Raspi4. Not a big deal, but it is sad.

Peter0x44 commented 1 year ago

Could the GCC issue possibly be related to the following commit? https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=d11e088210a551235d3937f867ee1c8b19d02290 https://gcc.gnu.org/PR108865 I doubt it, but it's worth a further look anyway, I think.

Edit: on second look, this is apparently affecting both the "driver and compiler proper", so I think it would affect more than just cc1.exe if it did cause a problem

skeeto commented 1 year ago

Great find, @Peter0x44! That's the issue! I assumed the driver was simply propagating the error from the compiler, but yes, my description imprecise and it affects both. I'll disable the manifest in the i686 flavor.

With this blocker resolved, I'll have a new w64devkit release very soon.

Peter0x44 commented 1 year ago

Great! Glad I could help Perhaps it's an issue worth reporting upstream? or leaving as a comment on the bug tracker? As far as I can tell, there's no configure option to disable this, and clearly it causes issues on some windows versions Would using a "side by side" XML manifest file not fix the issue without compromising utf-8 on windows 10?

skeeto commented 1 year ago

Yeah, this seems like an issue they'd be interesting in hearing. I don't see anything on the GCC website or in its documentation listing supported versions of Windows, e.g. that would exclude Windows XP. They punt on this to Cygwin, MinGW, and mingw-w64.

xparq commented 10 months ago

Came here to express my most sincere condolences about the loss of the RPi build. :-/

MagicalDrizzle commented 10 months ago

For the second problem (which I can reproduce), you might want to try ECT instead? FOSS (Apache), achieves superior compression compared to advzip, and does not trigger the bug on Windows.

C:\Users\X\Downloads\adv>dir /on
09/09/23  03:56 PM           180,000 advzip.sample
09/09/23  04:08 PM           165,029 advzip.zip
09/09/23  04:08 PM           165,029 advzip-ect.zip

C:\Users\X\Downloads\adv>advzip -z4 advzip.zip
      165029      159906  96% advzip.zip
      165029      159906  96%

C:\Users\X\Downloads\adv>ect -9 -zip advzip-ect.zip
Processed 1 file
Saved 18.23KB out of 161.16KB (11.3089%)

C:\Users\X\Downloads\adv>dir /on
09/09/23  03:56 PM           180,000 advzip.sample
09/09/23  04:10 PM           159,906 advzip.zip
09/09/23  04:10 PM           146,366 advzip-ect.zip
               3 File(s)        486,272 bytes
               2 Dir(s)  248,945,229,824 bytes free