Forum > Android
-XP issue while testing the ARM cross compiler
(1/1)
chronozphere:
Hey everyone,
I seem to have managed to build a crosscompiler for ARM.. yeah :D
However, when testing the following source:
--- Code: ---program test;
begin
writeln('DATE ',{$i %DATE%});
writeln('FPCTARGET ',{$i %FPCTARGET%});
writeln('FPCTARGETCPU ',{$i %FPCTARGETCPU%});
writeln('FPCTARGETOS ',{$i %FPCTARGETOS%});
writeln('FPCVERSION ',{$i %FPCVERSION%});
end.
--- End code ---
using the command:
--- Code: ---fpc -Tlinux -Parm -va test.pas
--- End code ---
I got:
--- Code: ---[0.159] Searching file /usr/lib/fpc/2.7.1/bin/arm-linux//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /usr/lib/fpc/2.7.1/bin/arm-linux//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /usr/lib/fpc/2.7.1//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /usr/lib/fpc/2.7.1//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /usr/local/maven/bin//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /usr/local/maven/bin//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /usr/local/sbin//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /usr/local/sbin//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /usr/local/bin//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /usr/local/bin//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /usr/sbin//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /usr/sbin//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /usr/bin//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /usr/bin//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /sbin//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /sbin//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /bin//home/user/lazarus/fpc/binutils/as... not found
[0.159] Searching file /bin//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.159] Searching file /usr/games//home/user/lazarus/fpc/binutils/as... not found
[0.160] Searching file /usr/games//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.160] Searching file /home/nathan/android/android-sdk-linux_x86/platform-tools//home/user/lazarus/fpc/binutils/as... not found
[0.160] Searching file /home/nathan/android/android-sdk-linux_x86/platform-tools//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.160] Searching file /home/nathan/android/android-sdk-linux_x86/tools//home/user/lazarus/fpc/binutils/as... not found
[0.160] Searching file /home/nathan/android/android-sdk-linux_x86/tools//HOME/USER/LAZARUS/FPC/BINUTILS/AS... not found
[0.160] Assembler /home/user/lazarus/fpc/binutils/as not found, switching to external assembling
[0.160] There were 1 errors compiling module, stopping
[0.182] Compilation aborted
Error: /usr/local/bin/ppcarm returned an error exitcode (normal if you did not specify a source file to be compiled)
--- End code ---
So the string "/home/user/lazarus/fpc/binutils/as" is concatenated with each of the strings in $PATH, which is not good. The tutorial:
http://wiki.freepascal.org/Setup_Cross_Compile_For_ARM
told me to put:
--- Code: ----XP/home/user/lazarus/fpc/binutils/
--- End code ---
in my .fpc.cfg. So i looked up this -XP option and it says:
--- Code: ----XP<x> Prepend the binutils names with the prefix <x>
--- End code ---
Seems to me that this should only be used if you have your binutils prefixed, not for setting the path. If I remove that line from fpc.cfg, it finds
"/usr/local/bin/arm-linux-ld", so everything seems to work now.
So, is this an error in the article? Perhaps there is a better option for this.
Sorry, I'm a newbie and I don't know whether I'm doing this right, so I didn't feel, nor didn't know how, to edit the wiki page. Just thought i should post this.
Thanks.
P.S: The arm cross compiler was build from FPC 2.7.1 sources.
Leledumbo:
--- Quote ---So the string "/home/user/lazarus/fpc/binutils/as" is concatenated with each of the strings in $PATH, which is not good
--- End quote ---
That's actually how the compiler looks for assembler and linker, but... see below
--- Quote ---The tutorial:
http://wiki.freepascal.org/Setup_Cross_Compile_For_ARM
told me to put:
-XP/home/user/lazarus/fpc/binutils/
in my .fpc.cfg
--- End quote ---
I haven't read the article again, but I guess that "user" is actually your username. Anyway, if you install the cross-binutils somewhere in PATH (I have mine in /usr/bin, along with the standard binutils), -XP$FPCTARGET- should be enough and very portable. The article seems to have a bug by saying this -XP parameter, since it should only contains binutils prefix, while for specifying directory where the binutils are one should use -FD instead.
chronozphere:
Oops yeah... I should've replaced "user".
Looks like -XParm-linux- has been added to the command in the article. Just tested it and it works fine. Should also work when other crosscompilers are installed, i guess. Thanks for that. :)
Navigation
[0] Message Index