On 07/10/17 11:14, Sven Barth via fpc-pascal wrote:
Am 07.10.2017 11:11 schrieb "Karoly Balogh (Charlie/SGR)" <char...@scenergy.dfmk.hu <mailto:char...@scenergy.dfmk.hu>>:
 >
 > Hi,
 >
 > On Sat, 7 Oct 2017, Sven Barth via fpc-pascal wrote:
 >
 > > > So where is my cross compiler ??
 > > >
 > > > Thanks for any help and suggestions.
 > >
> > A single compiler binary can always compile for all supported targets of
 > > that processor. So as long as all the units are available you simply
 > > need to pass "-Twin64" as additional parameter to compile for
 > > x86_64-win64.
 >
 > Sigh. :) Any reason why Windows is different? No other OS has different
 > target arguments for different CPUs, because the CPU type already
 > specifies if its for 32 or 64bit... (fix me?)

I had asked the same some time ago and the historic reason was that especially the system unit was considered too different to have both of them be the same target... I don't agree either, but that's how it is... :/

Regards,
Sven



OK so the earlier statement was not strictly true, and I do need an fpc build which has been build with the cross compiler. This seems to be missing from the distro pkg which is why I got myself several days work trying to set this up from trunk.

This is all made more complicated by having to keep the distro fpc to build trunk.

Now I have two different version , with trunk being able to cross compile a win64 exe of my hello.pas.

This seems fine from command line but when I try to use Lazarus to with project options specifying a Win64 target , it fails to find system.ppu and friends. The project builds and runs native.


HINT: using config file /etc/fpc.cfg
ERROR: compiled FPC unit not found: system.ppu
ERROR: compiled FPC unit not found: objpas.ppu
ERROR: compiled FPC unit not found: sysutils.ppu

Laz does seem to be sending the right args to fpc ( presumably to fpc )

    Info: (lazarus) Execute Title="Test: Compiling an empty file"
    Info: (lazarus) Working Directory="/tmp/"
    Info: (lazarus) Executable="/usr/bin/fpc"
    Info: (lazarus) Param[0]="-Twin64"
    Info: (lazarus) Param[1]="-Px86_64"
    Info: (lazarus) Param[2]="-MObjFPC"
    Info: (lazarus) Param[3]="-Scghi"
    Info: (lazarus) Param[4]="-O1"

I had to move the trunk libs to /usr/lib64 to be in the same place as the distro files and thus agree with fpc.cfg settings.

I am wondering whether this non-std position of the libs is highlighting a a bug in Lazarus assuming /usr/lib . It seems odd that command line fpc works but laz fails to find the libs.

Can you make any sense of this?

thx
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to