So, running 32-bit Lazarus 2.x with cross compiler to 64-bit is the winning combination.
It's not though. That's the point of having the separate 32-bit cross compiler. That is to say, you're running a 64-bit machine, with 64-bit Lazarus, and a native 64-bit FPC with which to build 64-bit programs, and when you want to build for 32-bit you just switch the Lazarus project settings and the secondary 32-bit compiler binary is invoked instead.
I am familiar with this, and if you take a look at ct2laz from my signature you will see that I do it for a long time. The point is that I used to be able to generate all targeted executables no matter if Lazarus 32-bit or 64-bit was used, with fpcupdeluxe generated cross compilers. For a while, I can not build any more x64=>i386 cross compiler from fpcupdeluxe - as pointed in the link I provided.
The -dFPC_SOFT_FPUX80 thing is not necessary or relevant at all in the context of an "official" Lazarus install like ASBzone is talking about here. I am also pretty sure that -dFPC_SOFT_FPUX80 does in fact work anyways (although it may only exist in trunk.)
Does anyone know a way how to build x64=>i386 cross compiler with fpcupdeluxe for current fixes or trunks of FPC and Laz?
A cross-compiler from 64 to 32 bit compiler (under Windows and Linux) works when properly build. Yes, you have to build it yourself from source and the tool chain needs to be correct.
(e.g. linux needs multi-arch)
Good to hear. However I am not in a rush so I think I will wait with 64-bit IDE til that functionality gets restored into fpcupdeluxe for current fixes and trunks.