[Lazarus] headaches trying to create x86_64 to i386 cross-compile deb package

Seth Grover sethdgrover at gmail.com
Fri Jan 21 15:42:36 CET 2011


(Cross-posted from the fpc-pascal list at Jonas' suggestion)

I've been trying to follow the directions here
http://wiki.lazarus.freepascal.org/How_to_setup_a_FPC_and_Lazarus_Ubuntu_repository
to build FPC .deb packages. I was able to build
fpc_2.4.2-110120_amd64.deb and fpc-src_2.4.2-110120_amd64.deb packages
and install them without any problems by following those directions
(and making a minor modification changing an "Svn export" to a "cp -a"
since the source directory I was building from is not a working copy).

However, I'm now trying to build a package for the x86_64 to i386
cross compiler. The "usage" printout of create_fpc_deb.sh says to
specify OS_TARGET, CPU_TARGET, and BINUTILSPREFIX as environment
variables, which I am doing. The first time I tried it it griped about
ppcross386 not being available, which I thought was strange (since
isn't that what I'm building) so I copied ppcross386 from another
machine into my /usr/bin so it would be available. However, the "make"
portion of the script is failing.

The command I'm running looks like:

OS_TARGET=linux CPU_TARGET=i386 BINUTILSPREFIX=i386-linux-
./create_fpc_deb.sh fpc /home/nitrodev/tmp/fpc-2.4.2

I see the script run through it's stuff and it gets to the part where
it's going to execute:

make clean all FPCArch=i386 OS_TARGET=linux FPC=/usr/bin/ppcross386
BINUTILSPREFIX=i386-linux- CROSSINSTALL=1

It does the "make clean" stuff apparently Ok, but when it goes to
build I see stuff like:

/usr/bin/ppcross386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64
-Fi../unix -Fix86_64 -FE.
-FU/home/nitrodev/tmp/fpc_patchdir/fpc/rtl/units/x86_64-linux -Cg
-dx86_64 -dRELEASE -Us -Sg system.pp
syscall.inc(18,2) Error: Illegal assembler style specified "GAS"
syscall.inc(23,15) Error: Invalid register name
etc...

I've done a "make crossinstall" before on other machines and it works
fine, but I'm trying to use this script to create the .deb and I'm not
sure how the "make" and "make install" equate to what I've done
before.

Is this broken? Am I doing something obviously wrong? Jonas seems to
think the approach the script takes will not work (see
http://lists.freepascal.org/lists/fpc-pascal/2011-January/027875.html).

I've posted the output at http://pastebin.com/Hj4Uu0RG.

Any help would be appreciated.

-SG

--
This email is fiction. Any resemblance to actual events
or persons living or dead is purely coincidental.

Seth Grover
sethdgrover[at]gmail[dot]com




More information about the Lazarus mailing list