[fpc-devel] targetandroid - can't build for armv7, hangs on pooledmm.pp
Thomas Schatzl
tom_at_work at gmx.at
Wed Aug 1 10:05:09 CEST 2012
Hi,
On Tue, 2012-07-31 at 14:20 +0200, Dennis Spreen wrote:
> I've tested the "new" targetandroid branch, and by using fpc 2.6.0 and
> making a new fpcmake (taken from the targetandroid branch), I'm able to
> compile for armv5:
>
> make crossinstall OS_TARGET=android CPU_TARGET=arm CROSSOPT="-CfSOFT
> -Cparmv5t -mfloat-abi=soft" CROSSBINDIR=%ANDROID_BIN_ARM%
> BINUTILSPREFIX=arm-linux-androideabi-
>
> Works well. But if I'm using
That's what's mostly been tested and works as you found out.
>
> CROSSOPT="-CfVFPV3 -Cparmv7 -mfloat-abi=hard"
Last time I tried compiling with -Cfvfpv2 or 3 the compiler did not
cycle, so I could not test further. Has been some time, and this was
native compilation.
I think -mfloat-abi does nothing, but maybe that changed recently -
there have been many, many changes to the ARM support recently. Further
I am actually surprised that there is hardfp support for fpc. If so, it
is probably in a somewhat experimental state too.
Note that the second android fp ABI is still softfloat, although you can
use the vfp registers. I.e. -Cvfpv3(d16) is the only switch you can use,
in conjunction with -Cfsoft. (and add -Cparmv7).
Note that the other android fp ABI is still softfloat, although you can
use the vfp registers. I.e. -Cvfpv3(d16) is the only switch you should
use as fp related options.
> it hangs during compilation of fcl-base:
>
> start compiling package fcl-base for target arm-android.
> Compiling fcl-base\BuildUnit_fcl_base.pp
> Compiling .\fcl-base\src\ascii85.pp
> Compiling .\fcl-base\src\avl_tree.pp
> Compiling .\fcl-base\src\base64.pp
> Compiling .\fcl-base\src\blowfish.pp
> Compiling .\fcl-base\src\bufstream.pp
> Compiling .\fcl-base\src\cachecls.pp
> Compiling .\fcl-base\src\contnrs.pp
> Compiling .\fcl-base\src\custapp.pp
> Compiling .\fcl-base\src\eventlog.pp
> Compiling .\fcl-base\src\fptimer.pp
> Compiling .\fcl-base\src\gettext.pp
> Compiling .\fcl-base\src\idea.pp
> Compiling .\fcl-base\src\inifiles.pp
> Compiling .\fcl-base\src\inicol.pp
> Compiling .\fcl-base\src\iostream.pp
> Compiling .\fcl-base\src\libtar.pp
> Compiling .\fcl-base\src\maskutils.pp
> Compiling .\fcl-base\src\pooledmm.pp
>
> and now it hangs.
> Does not make any difference if targetandroid branch compiler used for
> the make crossinstall, or the current trunk\.
>
> Any clues what I've missed there?
At least after removing -mfloat-abi=hard it compiles through here.
(make clean crosszipinstall OS_TARGET=android CPU_TARGET=arm
CROSSOPT="-Cfvfpv3 -mfloat-abi=soft -Cparmv7" FPC=i386-linux-ppc386
BINUTILSPREFIX=arm-linux-androideabi-)
There is another recent compiler switch to pass options to the assembler
(you want "-march=armv7a" to avoid some warnings) to the assembler, but
atm I do not remember. Maybe somebody else can help?
Note that the targetandroid branch may not support these options yet. I
will merge from trunk again soon'ish.
Thomas
More information about the fpc-devel
mailing list