Repository navigation
Conversation
The only known working implementation is for i686 MSVC. - detection was already disabled and marked at not working with amd64 MSVC, - detection was already disabled on amd64 MinGW because amd64 Windows was tested, not just amd64 MSVC, - there is no MinGW implementation in the code, - this disables detection on MinGW explicitely whatever the architecture.
275fad6 to
8edc038
Compare
8edc038 to
2265238
Compare
|
Microsoft longjmp documentation warns:
Anyway as discussed elsewhere, since 32-bit Windows is obsolete it's probably not worth trying to port this to MinGW. |
|
Actually the code is already entirely skipped on amd64 with MSVC: So actually my second commit was adding with MinGW something that was even not implemented with MSVC (on amd64). So we can just decide to just always skip the code on MinGW, which is my first commit. |
2265238 to
229f874
Compare
|
So I removed the second commit. MinGW now does like MSVC amd64: skip the tests. We already know we can skip the tests since MSVC does it in all cases with amd64. |
|
It happened that it was already skipped on MinGW amd64 too because it was just testing for |
229f874 to
b67a76b
Compare
|
To quote the remaining commit message: |
b67a76b to
0f62129
Compare
|
@slipher I need this to get the i686 MinGW build working. |
0f62129 to
0885097
Compare
|
I added a patch to silence a warning. |
I thought you gave up on using MinGW for now since the ones in Debian are too old to build it (needs GCC 16; also may depend on the right TLS flavor being configured). In view of Unvanquished/Unvanquished#3572 maybe we will never need to build an x86 MinGW version. |
|
The Windows MinGW we use in CI cannot build for i686? |
0885097 to
fc36ea8
Compare
fc36ea8 to
8e1fc11
Compare
Move the Windows alignment attribute after the struct keyword so GCC accepts the declaration without triggering -Werror=attributes.
I used a toolchain there downloaded from a Github release, which can build for i686 (if downloading a different variant), yes, but only on a Windows host! No doubt Linux binaries can be found somewhere, but you have been saying that you prefer to have separately pre-built MSVC binaries instead of having to obtain the needed MinGW toolchain for a deps build. |
4da488b to
9971292
Compare
Enable SSE2 for x86-32 Windows builds so GCC can compile SSE intrinsics such as _mm_sfence() without a target-specific option mismatch.
Add the GCC compiler check to the existing __builtin_unreachable() workaround so GCC recognizes that NaClSwitch does not return.
Add GCC-compatible inline assembly for accessing Windows segment registers and the stack pointer while preserving the existing MSVC implementation. I used an LLM to convert the syntax.
My question was meaningless, I probably misread something at the time.
Yes of course they also provide some MinGW that can build i686 exe, except it requires some extra fixes in the test code.
I wasn't looking for some Linux MinGW.
Actually I want pre-build Windows binaries yes, but I would prefer to be able to build them myself with MinGW if possible. |
Cast the stack frame address through uintptr_t to avoid an integer-to-pointer size warning when building the 32-bit Windows test with GCC.
Add a tls_edit_i686 build option that makes the native tls_edit host tool use the x86-32 build environment, reusing the existing 32-bit MinGW toolchain instead of requiring a separate x86-64 MinGW toolchain. Supposedly an amd64 Windows machine can run a native i686 host tool, so we don't need to cross-compile the host tools. The option requires mingw=1 and a 32-bit target.
Extracted from:
Replaying parts of:
Does nothing until: