[fpc-pascal] 64 bit cross binutils on a 32 bit OS

Marcos Douglas md at delfire.net
Thu Apr 11 19:37:36 CEST 2013


On Thu, Apr 11, 2013 at 12:53 PM, Pierre Free Pascal
<pierre at freepascal.org> wrote:
>
> > On Windows, using FPC 2.7.1, I use:
> >  make crossinstall OS_TARGET=win64 CPU_TARGET=x86_64
> >
> > But this not works. I always got the error:
> > ================================================
> > W:/md/dev/freepascal/compiler/2.7.1/compiler/ppc.exe fpmake.pp  -
> > FuW:/md/dev/fre
> > epascal/compiler/2.7.1/packages/fpmkunit/units_bs/i386-win32 -
> > FuW:/md/dev/freepa
> > scal/compiler/2.7.1/rtl/units/i386-win32
> > Fatal: Can't find unit process used by fpmkunit
> > Fatal: Compilation aborted
> > make[3]: *** [fpmake] Error 1
> > make[3]: Leaving directory `W:/md/dev/freepascal/compiler/2.7.1/packages'
> > make[2]: *** [packages_all] Error 2
> > make[2]: Leaving directory `W:/md/dev/freepascal/compiler/2.7.1'
> > make[1]: *** [build-stamp.x86_64-win64] Error 2
> > make[1]: Leaving directory `W:/md/dev/freepascal/compiler/2.7.1'
> > make: *** [crossinstall] Error 2
> > ================================================
>
> Starting with fpc-2.6.2 release,
> this completes successfully for me:
> make distclean crossinstall OS_TARGET=win64 CPU_TARGET=x86_64 PREFIX=e:/pas/fpc-2.7.1
>
> Stating with a 2.7.1 win32 binary:
> E:\pas>fpc -iVDW
> 2.7.1 2013/03/28 2.7.1-r1:24029M
> (Meaning that I do have some local modifications, but I doubt those interfere with your problem...)
> I get the same success...
>
> Did you use a distclean before the crossinstall?
> win32 fpmake.exe generated for native win32 target might be a problem...
> I checked, and indeed, if you just do a native install
> followed by a crossinstall without a distclean in between,
> you do get
> E:/pas/trunk/fpcsrc/compiler/ppc.exe src/fpmkunit.pp  -FuE:/pas/trunk/fpcsrc/rtl/units/i386-win32 -FuE:/pas/trunk/fpcsrc
> /packages/paszlib/units/i386-win32 -FuE:/pas/trunk/fpcsrc/packages/fcl-process/units/i386-win32 -FuE:/pas/trunk/fpcsrc/p
> ackages/hash/units/i386-win32 -FUunits_bs/i386-win32 -Fu../paszlib/src -Fu../hash/src -Fi../paszlib/src  -Fi../fcl-proce
> ss/src/win -Fu../fcl-process/src -Fi../fcl-process/src/win32 -Fi../fcl-process/src/dummy
> make[4]: Leaving directory `E:/pas/trunk/fpcsrc/packages/fpmkunit'
> E:/pas/trunk/fpcsrc/compiler/ppc.exe fpmake.pp  -FuE:/pas/trunk/fpcsrc/packages/fpmkunit/units_bs/i386-win32 -FuE:/pas/t
> runk/fpcsrc/rtl/units/i386-win32
> Fatal: Can't find unit process used by fpmkunit
> Fatal: Compilation aborted
> make[3]: *** [fpmake] Error 1
>
>
> So the solution to your problem really is
> to run a 'distclean' make target before the 'crossinstall' target.

Thank you very much, worked!
I used "distclean" before, but I don't remember why I remove from my script.

Do you know if 'make clean' and 'make distclean' is the same?

Regards,
Marcos Douglas



More information about the fpc-pascal mailing list