With latest svn update my ppcrossarm compiler (?) seems to be buggy. Val() is used in TiniFile.ReadFloat() which I use in my code. On x86_64 (and formerly on arm as well) it runs without any trouble.
var
test:extended;
e:integer;
begin
val('123456.789',test,e);
writeln(test);
writeln(strtofloat('123456.789'));
writeln(floattostr(123456.789));
end;
1.11111111000000E+006
1.11111111000000E+006
123456.789
English locale on arm (DecimalSeparator='.', ThousandSeparator=',')
Lazarus 0.9.29 (r27586M)
FPC 2.5.1 (16089)
make crosszipinstall CPU_TARGET=arm OS_TARGET=linux OPT="-dFPC_ARMEL" CROSSOPT="-dFPC_ARMEL -CfSOFT -Cparmv5"