1Flang 2===== 3 4Flang is a Fortran compiler targeting LLVM. 5 6Visit the flang wiki for more information: 7 8https://github.com/flang-compiler/flang/wiki 9 10We have mailing lists for announcements and developers. 11Here's the link with the sign-up information: 12 13http://lists.flang-compiler.org/mailman/listinfo 14 15We have a flang-compiler channel on Slack. Slack is invitation only but anyone can join. Here's the link: 16 17https://join.slack.com/t/flang-compiler/shared_invite/MjExOTEyMzQ3MjIxLTE0OTk4NzQyNzUtODQzZWEyMjkwYw 18 19 20## Building Flang 21 22Instructions for building Flang can be found on the Flang wiki: 23https://github.com/flang-compiler/flang/wiki/Building-Flang 24 25 26## Compiler Options 27 28For a list of compiler options, enter 29 30``` 31% flang -help 32``` 33 34The Flang compiler supports accepts all clang 4.0 compiler options and supports many, as well as the following flang-specific compiler options: 35 36```lang-none 37-noFlangLibs Do not link against Flang libraries 38-mp Enable OpenMP and link with with OpenMP library libomp 39-nomp Do not link with OpenMP library libomp 40-Mbackslash Treat backslash character like a C-style escape character 41-Mno-backslash Treat backslash like any other character 42-Mbyteswapio Swap byte-order for unformatted input/output 43-Mfixed Assume fixed-format source 44-Mextend Allow source lines up to 132 characters 45-Mfreeform Assume free-format source 46-Mpreprocess Run preprocessor for Fortran files 47-Mrecursive Generate code to allow recursive subprograms 48-Mstandard Check standard conformance 49-Msave Assume all variables have SAVE attribute 50-module path to module file (-I also works) 51-Mallocatable=95 Select Fortran 95 semantics for assignments to allocatable objects (Default) 52-Mallocatable=03 Select Fortran 03 semantics for assignments to allocatable objects 53-static-flang-libs Link using static Flang libraries 54-M[no]daz Treat denormalized numbers as zero 55-M[no]flushz Set SSE to flush-to-zero mode 56-Mcache_align Align large objects on cache-line boundaries 57-M[no]fprelaxed This option is ignored 58-fdefault-integer-8 Treat INTEGER and LOGICAL as INTEGER*8 and LOGICAL*8 59-fdefault-real-8 Treat REAL as REAL*8 60-i8 Treat INTEGER and LOGICAL as INTEGER*8 and LOGICAL*8 61-r8 Treat REAL as REAL*8 62-fno-fortran-main Don't link in Fortran main 63``` 64 65