<div dir="ltr"><div dir="ltr">On Wed, Jan 12, 2022 at 7:38 AM Martin Frb via fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
The downloads provided by Lazarus are also NOT a "pure, native 64-bit <br>
download". Only the "fpc.exe" and the non-cross "ppc64.exe" are native <br>
64 bit.<br>
<br>
As I said, I do not know, what is currently provided by the Fpc <br>
"combined 32-/64-bit download".<br>
No Idea, if any of the fpc/ppc executable in this download are already <br>
64-bit.<br></blockquote><div><br></div><div>Every single executable that actually originates from the FPC toolchain (so like `fpc.exe`, `ppcx64.exe`, `ppudump.exe`, `pas2js.exe`, `h2pas.exe`, and so on) contained in the current "lazarus-2.2.0-fpc-3.2.2-win64.exe" installer that the Lazarus website directs to when you click "Download Now" on a system runningĀ 64-bit Windows <b>IS</b> currently 64-bit. I just verified this myself. That particular installer does not include any cross compilers at all, also (the ones to target 32-bit Windows from 64-bit come in the smaller "lazarus-2.2.0-fpc-3.2.2-cross-i386-win32-win64.exe" installer.</div><div><br></div><div><div dir="ltr">On Wed, Jan 12, 2022 at 7:55 AM Tomas Hajny via fpc-devel <<a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Wrong - applies only to the Win64 target, whereas e.g. 64-bit Linux<br>(supported by the same compiler targetting 64-bit code) supports<br>extended. This means that compiling source code with this compiler may<br>result in a different binary as soon as there's e.g. an extended<br>contstant included in the source code, or any compile-time calculations<br>in this precision need to be performed.</blockquote><div><br></div><div>Isn't this specifically the kind of thing that the `FPC_SOFT_FPUX80` define solves? FPC does not even let you go from 64-bit Windows to 32-bit targets if that define isn't active IIRC, so presumably the same thing could be made the case in other scenarios if it's something people are widely concerned about.</div><div><br></div><div>In any case, people who want native 64-bit Windows toolchains want them pretty much exclusively for use <i>on </i>64-bit Windows to <i>target</i> 64-bit Windows, and will install any cross-compilers secondarily <i>if </i>they have a use for them. The 32-bit-to-64-bit Windows FPC toolchain is <i>not </i>a perfect drop-in replacement. Based on testing I did locally previously, it's not as fast as the native 64-bit one, and additionally there are other things to keep in mind like the 4GB RAM limit on 32-bit (which I have in fact seen more than one user on the Lazarus forums run into with larger projects, none of whom were using the 32-bit executables "on purpose").</div></div></div></div></div>