Rough guide to overriding ATLAS's compiler choice/changing flags

Previous sections have discussed the more useful cases of overriding ATLAS's compiler and flags, which typically leave ATLAS's kernel compilers alone. Users often wish to add flags or change arbitrary compilers, however. This is rarely a good idea, and almost always provides reduced performance. However, you can do it. You can find more details by passing -help to configure.

If you use the -C flag, then you are overriding ATLAS's compiler choice (based on the abbrevation you specify, as described below), -F means to override the flags for that compiler, and -Fa tells configure that you want to keep ATLAS's default flags, but wish to append your own list of flags to them.

All of these flags take an abbreviation (<abbr>) describing the particular compiler/flag to override/append, where <abbr> is one of,

Therefore, by passing the following to configure:

   -Fa acg '-DUsingDynamic -fPIC'

We would have all C routines compiled with -fPIC, and also have the macro UsingDynamic defined (ATLAS does not use this macro, this is for example only).

As an example, if I want to use SunOS's f77 rather than gfortran, I could pass the following compiler and flag override:

   -C if f77    -F if 'dalign -native -xO5'

IMPORTANT NOTE: If you change the default flags in any way for the kernel compilers (even just appending flags), you may reduce performance. Therefore once your build is finished, you should make sure to compare your achieved performance against what ATLAS's architectural defaults achieved. See Section [*] for details on how to do this. If your compiler is a different version of gcc, you may also want to tell ATLAS not to use the architectural defaults, as described in Section [*].

R. Clint Whaley 2016-07-28