[PATCH] D95460: [flang][driver] Add forced form flags and -ffixed-line-length

Joachim Protze via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 18 09:18:39 PDT 2021


protze.joachim added a comment.

Hi Andrzej,

thanks for the detailed insights. I think I really misunderstood, what the -W flags can do here. I also was not up-to-date regarding the state of the flang implementation.

I just found, that compiling Spec OMP 2012 with clang-12 worked fine with my configuration, but compiling with current HEAD failed. Bisecting brought me to this patch.
What my build configuration basically does is to use gfortran to compile Fortran source to object files. Then I use clang/clang++ to link all the object files, basically:

  gfortran -c foo.f
  clang -lgfortran --gcc-toolchain=$(dirname $(dirname $(which gcc))) foo.o

In the build configuration, I can set FPORTABILITY flags for specific apps, but these flags are unfortunately passed to both the compile and the link step. Setting FLD to clang used to work, and now it broke.

One of my reasons for linking with clang is to make sure, that as much LLVM libraries as possible are linked. Especially, I want to pick up the LLVM version of the ThreadSanitizer runtime.

I tried to change my build configuration to use flang. After fixing some of the code (removing save keyword from variables, when having a global save), I could successfully compile one of the codes. Since flang under the hood uses gfortran for linking, this configuration picks up the GNU version of the ThreadSanitizer runtime. The GNU runtime is typically built as a dynamic library and comes with ~30-40% performance penalty. So, even when compiling with flang, I would prefer to link using clang.

I have no idea about the compiler internals, but would it be possible to mark the flang flags as known to the compiler tool-chain, but not used in case of clang? Finally, this would result in a `-Wunused-command-line-argument` warning.

Best
Joachim


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95460/new/

https://reviews.llvm.org/D95460



More information about the cfe-commits mailing list