Hi Kenneth,

>> I noticed that some easyconfigs (e.g., ncurses) specify
>>
>>          toolchainopts = {'optarch': True}
>>
>> This makes me wonder about three things.  First, I was under
>> the impression that 'optarch = True' was the default, i.e.,
>> isn't the above setting in the easyconfig redundant?
>
> Yes, it is indeed redundant, the 'optarch' toolchain option is enabled
> by default.

OK, so these are probably copy/pasted leftovers from times where
'optarch' was not yet the default, right?

>>   Second,
>> does it play nicely with '--optarch=foo' or '--optarch=GENERIC'?
>> Which setting takes precedence?
>
> I think it does what you'd expect. They work together, one doesn't take
> precedence over the other, because they have different semantics.
>
> The 'optarch' toolchain option specifies that the use of
> architecture-specific optimization flags should be used (and it's
> enabled by default).
> This leads to using -xHost for the Intel compilers in $CFLAGS & co, for
> example.
> If is set to False, the architecture-specific optimization flags will
> not be included in $CFLAGS.
>
> The --optarch configuration option allows you to control *what*
> architecture-specific optimization flags are, so you can override the
> default.
> This is described in detail at
> http://easybuild.readthedocs.io/en/latest/Controlling_compiler_optimization_flags.html

Got it -- and it now makes sense.  I believe what confused me most
was the fact that there are multiple options with the same name but
different semantics.

> Does that answer your questions?

Yes.

> Do you feel any enhancements need to be made to the documentation to
> clarify things?

I couldn't find any description of the available toolchainopts in the
docs.  Especially knowing about things like 'pic' or how to generically
enable C++11 support are valuable at times.

W.r.t. docs: [1] has an unresolved reference to 'toolchain_table' and
[2] lists "current values", but especially for GCC, they are only valid
for X86_64.

Markus


[1]
http://easybuild.readthedocs.io/en/latest/Writing_easyconfig_files.html#mandatory-easyconfig-parameters
[2]
http://easybuild.readthedocs.io/en/latest/Controlling_compiler_optimization_flags.html#optimizing-for-a-generic-processor-architecture-via-optarch-generic

--
Dr. Markus Geimer
Juelich Supercomputing Centre
Institute for Advanced Simulation
Forschungszentrum Juelich GmbH
52425 Juelich, Germany

Phone:  +49-2461-61-1773
Fax:    +49-2461-61-6656
E-Mail: [email protected]
WWW:    http://www.fz-juelich.de/jsc


------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to