Re: Windows ming64- loading resources in a Framework fails - bundleForClass
Richard Frith-Macdonald <[email protected]> Thu, 25 Feb 2021 21:47:33 +0000
| Newsgroups | gmane.comp.lib.gnustep.devel |
|---|---|
| Message-ID | <[email protected]> |
> On 25 Feb 2021, at 11:49, Richard Frith-Macdonald <[email protected]> wrote: > > > >> On 25 Feb 2021, at 11:05, Riccardo Mottola <[email protected]> wrote: >> >> Hi, >> >> Richard Frith-Macdonald wrote: >>> It's a mistake/bug, or maybe they think people using mingw64 actually want to cross-compile for mingw32 (seems perverse). >>> Anyway, it can be overridden by using --host=mingw64 when configuring gnustep-make, as a command line argument takes precedence over information from config.site >>> >> >> I actually found this informative info, which in case would also allow us to distinguis between the original mingw and mingw, if needed, the key is the w64 vs. pc >> >> Citing: >> >> This triplet specifies where the executables produced by this program (gcc) will run. Originally the >> MinGW.org project chose `*-pc-mingw32`, so we selected `*-w64-mingw32` to avoid the conflict. >> >> There is no special meaning about `w64` itself. `mingw32` on the other hand specifies the ABI, so >> all `i686-*-mingw32` targets are considered ABI-compatible. >> >> Neither does `w64` specify the target is 64-bit, nor does `mingw32` specify the target is 32-bit. >> They are just hard-coded names. > > Autoconf refers to the parts of the triplet as CPU-TYPE-MANUFACTURER-OPERATING_SYSTEM > config.guess returns x86_64-pc-mingw64 > > I don't really buy the argument that mingw32 and mingw64 are ABI compatible ... maybe it's technically/theoretically true for some definition of ABI, but it's praqctically false since in practice the two are tied to different processor architectures. > Certainly Autoconf (in the form opf config.guess) does not believe it. > > Still, since the mingw64 people seem to have chosen to do it this way, and presumably can't easily change, and the autoconf people probably don't want to change a standard that they 'own', I guess we will need to find a way to work around the fact that, depending on where you get the triplet from, it might say the system is mingw64 or might say it's mingw32. > We will need to find where gnustep-make looks for either, and put additional checks in place for other parts of the triplet. Given that we can get either x86_64-w64-mingw32 or x86_64-pc-mingw64 depending on whether the information comes from autoconf or from a config file supplied by the mingw-w64 project, it seemd to me that we need to standardise within our system. Since we are currently expecting the 'os' part of the triplet to contain mingw64 on a mingw64 system, the simplest option was for the configure/configure.ac script to map the host vendor-os and target vendor-os from w64-mingw32 to pc-mingw64 and leave everything else unchanged.