[fpc-devel] Arm Hardfloat

Thomas Schatzl tom_at_work at gmx.at
Fri Oct 5 12:14:23 CEST 2012


On Fri, 2012-10-05 at 00:37 +0200, Den Jean wrote:
> On Friday 05 October 2012 00:12:46 Thomas Schatzl wrote:
> > Let's start from the beginning. What's your starting compiler? 2.7.0 I
> > guess? (which is the only option anyway for hardfloat).
> on i386 i used cross binutils from fedora packages 
> cross-binutils-common.noarch  2.22.52.0.3-1.fc17 
> cross-gcc-common.noarch  4.7.1-0.1.20120606.fc17   
> fpc 2.7.1 latest svn
> 

Okay.

> > Binutils/gas
> on arm
> 
> $ fpc -v
> Free Pascal Compiler version 2.7.1 [2012/10/04] for arm
> created from on i386 svn trunk using crosszip ....
> 
> $ as --version
> as called with --version
> GNU assembler (GNU Binutils) 2.22.0.20120323

And it's configured correctly for armhf target? Something like "This
assembler was configured for a target of `arm-linux-gnueabihf'."

> 
>> Can you also try a "make distclean"? And check if the packages directory
> > does not contain any fpmake executables, object or ppu files afterwards;
> already removed them by hand beforing this (make clean in that dir,
> stil had 1 .o and fpcmake (-> delp . and rm fpmake)

Unfortunately it's not that easy: the subdirectories also contain fpmake
executables, and then there are the "units_bs" directories that are
often kept which contain compilation artifacts.
Don't know what "delp" does, ie. whether it also cleans out that.

But your problem is that the compiler cannot find the correct gas or
just fails when trying to invoke it (that error -9).

> > > fpmake.pp(34) Fatal: There were 2 errors compiling module, stopping
> > > Fatal: Compilation aborted
> > > make[2]: *** [fpmake] Error 1
> > > make[2]: Leaving directory `/home/jan/svn/fpc/packages'
> > 
> > Can you enter the "/home/jan/svn/fpc/packages"  directory and issue the
> > following command (maybe before doing a distclean):
> too late, nice to know 
> > /home/jan/svn/fpc/compiler/ppcarm fpmake.pp -n
> > -Fu/home/jan/svn/fpc/packages/fpmkunit/units_bs/arm-linux
> > -Fu/home/jan/svn/fpc/rtl/units/arm-linux -dFPC_ARMHF -Aas -O- -CaEABIHF
> > -CfVFPV3_D16 -Cparmv7 -s
> > 
> > (note the additional "-s" param) and paste the resulting ppas.bat after
> > it fails here? The line that invokes gas should use the correct gas. And
> > it should have a correct "--march=armv7-a" parameter.
> I already had replaced as with a shell script that shows me the passed parameters:
> e.g now I have:
> as called with -mfloat-abi=hard -meabi=5 -march=armv7-a -mfpu=vfpv3-d16 -o arm/units/arm-linux/pp.o arm/units/arm-linux/pp.s

The parameters seem to be okay.

Given it's still the "Error -9" that is the problem, can you manually
invoke gas using the line from the ppas.sh script?

Maybe it prints some more information.

Honestly, I am somewhat out of ideas here.

Thomas





More information about the fpc-devel mailing list