On 03 Mar 2014, at 09:24, Reinier Olislagers wrote:

make "FPC=/home/odroid/development/fpcbootstrap/arm-linux-ppcarm"
"--directory=/home/odroid/development/fpctrunk/compiler"
"CROSSOPT=-dFPC_ARMHF -Cparmv7a -CaEABIHF -CfVFPv3" "OPT=-dFPC_ARMHF"
"OS_TARGET=linux" "CPU_TARGET=arm" "OVERRIDEVERSIONCHECK=1" "cycle"

I just noticed that you are adding -dFPC_ARMH also to CROSSOPT. That does not do anything and can be removed. In combination with your remark at http://wiki.lazarus.freepascal.org/ARM_compiler_options that "e.g. adding -dFPC_ARMHF when compiling a program will not change anything" and the last post of Thaddy also talking about CROSSOPT, there seems to a lot of confusion about what this means. It's nevertheless very simple: * the -dXXX command line parameter simply tells the compiler to define symbol "XXX" as if there were a {$define XXX} at the top of every compiled source file. By definition this does not (and cannot) affect code generation. Regarding the statement on the wiki: it's like saying that adding "-vl" will not change anything regarding the code generation; it's not wrong, but it shouldn't be said either because it suggests that under some circumstances these parameters actually could change something (for the pedantic nitpickers: -dXXX could change something if fpc.cfg contains an "#ifdef XXX" statements, but that's not relevant here). * the compiler contains a bunch of {$ifdef FPC_ARMHF} source blocks. When these are enabled and you compile an ARM compiler, then the resulting compiler will generate ARM hardfloat ABI code. Adding - dFPC_ARMHF to OPT means that this parameter will be used while compiling the compiler (both cross and native), and hence the compiled ARM compilers (both cross and native) will generate ARM hardfloat ABI code * adding a parameter to CROSSOPT means that it is only specified when compiling code using a generated cross-compiler. So if you were to add -dFPC_ARMHF to CROSSOPT and not to OPT, then you would first build an ARM cross-compiler that generate softfp ABI code, and subsequently the makefiles would build a native ARM compiler that itself uses the softfp ABI, but which generates hardfloat ABI code. It seems extremely unlikely that you would deliberately want your cross-compiler and native compiler to generate different code. * Adding -dFPC_ARMHF both to OPT and CROSSOPT means that -dFPC_ARMHF will be passed once while building the cross-compiler and twice while building the native compiler. Again, this is not wrong, but it shouldn't be done because it suggests that under some circumstances - dFPC_ARMHF should be part of CROSSOPT.


Jonas
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to