[fpc-pascal] Compiler flag define or $IFOPT for optimizations
Tomas Hajny
XHajT03 at hajny.biz
Fri Jun 3 14:51:45 CEST 2022
On 2022-06-03 14:41, Benito van der Zander via fpc-pascal wrote:
Hi,
>> However, you can possibly solve it by always taking the options from
>> an environment variable to the command line and then including
>> contents of this command line to your sources.
>
> Unfortunately it is picking up all kinds of options from fpc.cfg and
> Lazarus.
>
> Like in this case, I tried to disable range checking, and it is still
> enabled.
You can disable using the configuration files using -n (that's what is
being done during the FPC release process for release builds) and define
all necessary / used options from the environment.
>> You can introduce something like that yourself by always building
> all your sources from scratch, but then the solution outlined above
> should work for you.
>
> I am setting up a build server that compiles the entire project from
> scratch on every commit.
As mentioned above, then the suggested approach should fit well, IMHO.
Tomas
>
> On 28.05.22 14:34, Tomas Hajny via fpc-pascal wrote:
>
>> On 2022-05-28 13:44, Benito van der Zander via fpc-pascal wrote:
>>
>> Hi,
>>
>>> I want to show how my program was compiled.
>>>
>>> Now I have string like "FPC3.2.2 i386-Linux R+C+" from
>>>
>>> compiler := 'FPC' + {$INCLUDE %FPCVERSION%} + ' ' + {$INCLUDE
>>> %FPCTargetCPU%}+'-'+{$INCLUDE %FPCTargetOS%}+ ' ' + {$IfOpt
>>> R+}+'R+'{$endif} {$IfOpt S+}+'S+'{$endif} {$IfOpt O+}+'O+'{$endif}
>>>
>>> {$IfOpt Q+}+'Q+'{$endif} {$IfOpt M+}+'M+'{$endif} {$IfOpt
>>> C+}+'C+'{$endif};
>>>
>>> But the optimization level (-O2 or -O1 ...) is missing.
>>>
>>> Is there an IFOPT for that? Or a define with all the arguments
>>
>> I don't think that there's such an option at the moment. However,
>> you can possibly solve it by always taking the options from an
>> environment variable to the command line and then including contents
>> of this command line to your sources. I don't think that it makes
>> much sense for the compiler to provide such an option, because
>> unlike the compiler version, different options (including the
>> optimization level) may be used for compilation of different units
>> and there's no such a thing as a general optimization level valid
>> for the complete compiled program from the compiler point of view.
>> You can introduce something like that yourself by always building
>> all your sources from scratch, but then the solution outlined above
>> should work for you.
>>
>> Tomas
>> _______________________________________________
>> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
>> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
More information about the fpc-pascal
mailing list